找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2638|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)1602LCD時鐘,請求大神幫忙看看為什么不能讀數(shù)據(jù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
//LCD源程序//
#include<reg51.h>
#include<lcd1602.h>
#define uchar unsigned char
#define uint unsigned int
uchar int_time;//定義中斷次數(shù)計數(shù)變量
uchar second;//秒計數(shù)變量
uchar minute;//分計數(shù)變量
uchar hour;//時計數(shù)變量
uchar code date[]="  H.I.T CHINA  ";
uchar code time[]=" TIME 23:59:55";
void clock_init() //對lcd放入初始數(shù)據(jù)
{
uchar i,j;
for(i=0;i<16;i++)
{
write_data(date[i]);
}
write_com(0x80+0x40);
for(j=0;j<16;j++)
{
write_data(time[j]);
}
}
void clock_write(uint s,uint m,uint h)//對lcd時間進(jìn)行刷新
{
write_sfm(0x47,h);
write_sfm(0x4a,m);
write_sfm(0x4d,s);
}
void main()
{
init1602();   //lcd初始化
clock_init(); //放入初始數(shù)據(jù)
TMOD=0x01;    //方式1
EA=1;
ET0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
int_time=0;  //中斷次數(shù)計數(shù)變量
second=55;  //秒
minute=59;    //分
hour=23;  //時
while(1)
{
clock_write(second,minute,hour);
}
}
void int0() interrupt 1 using 1   //中斷系統(tǒng)
{
int_time++;;
if(int_time==20)
{
int_time=0;
second++;
}
if(second==60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
{
hour=0;
}
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
}


//LCD頭文件//
#ifndef LCD_CHAR_1602_2005_4_9
#define LCD_CHAR_1602_2005_4_9
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P2^0;
sbit lcdrw=P2^1;
sbit lcden=P2^2;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)  //寫命令函數(shù)
{
lcdrw=0;
lcdrs=0;
P3=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)  //寫數(shù)據(jù)函數(shù)
{
lcdrw=0;
lcdrs=1;
P3=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init1602()    //lcd初始化
{
lcdrw=0;
lcden=0;
write_com(0x3c);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
void write_sfm(uchar *pp,uint n)
{
int i;
for(i=0;i<n;i++)
{
write_data(pp[i]);
}
}
#endif

謝謝大神們
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:111634 發(fā)表于 2018-2-10 22:47 | 只看該作者
本帖最后由 zl2168 于 2018-2-10 22:48 編輯

實(shí)例91  具有校正功能的時鐘1302(LCD1602顯示)
先Proteus仿真,確認(rèn)有效。
實(shí)例91 帶校正時鐘1302(LCD1602顯示).rar (52.68 KB, 下載次數(shù): 51)

以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,書中電路和程序設(shè)計有詳細(xì)說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費(fèi)下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購買。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表