C51单片机实现液晶秒表以及简单计算器.doc

C51单片机实现液晶秒表以及简单计算器.doc

ID:55857412

大小:37.50 KB

页数:9页

时间:2020-06-10

C51单片机实现液晶秒表以及简单计算器.doc_第1页
C51单片机实现液晶秒表以及简单计算器.doc_第2页
C51单片机实现液晶秒表以及简单计算器.doc_第3页
C51单片机实现液晶秒表以及简单计算器.doc_第4页
C51单片机实现液晶秒表以及简单计算器.doc_第5页
资源描述:

《C51单片机实现液晶秒表以及简单计算器.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、电路图比较简单,是一个51最小系统,没有采用总线方式,而简单的连线方式,上有4*4矩阵键盘,一数码管,89S51单片机,串口下载线,数码管显示锁存芯片蜂鸣器1602液晶.因为最近考试太多,刚刚考试完又课程设计,桌子上太混乱,原理图没有找到.所以就先贴上代码.此代码已经调试成功过,可以实现时间的调整.4*4矩阵键盘,第一排前三列是实现小时分钟秒的加.第二排前三列是实现小时分钟秒的减.当然还可以通过设置矩阵键盘的键值,来实现加减乘除四则运算,由数码管显示参与运算的数字以及最终的运算结果.其他的不多说了,等下次我把图贴上,大家勉

2、强可以拿去研究下.其实硬件很简单,不详细说问题也不大的.#include#include#include#include#include#defineucharunsignedchar#defineuintunsignedintuchartemp1;voiddisplayListChar(unsignedcharX,unsignedcharY,ucharDData);uchardispbuf[]={'0','1','2','3','4','5'

3、,'6','7','8','9',':'};ucharsecond;  ucharminute;ucharhour;uinttcnt,g;ucharflag;voiddlms(void);ucharkbscan(void);voidShow_Time(void);voiddelay5ms(void);  voiddlms(void);  voidSettime(ucharverify);//verify在这里为调整的意思voiddelay400ms(void);///#definebusy0x80file://用/于检测LCD状态字中的Bu

4、sy标识///#defineRSaddr0x1000///#defineRWaddr0x2000///#defineCSaddr0x0400#definewc0x8fff#definewd0xdfff#definerc0xbfffvoidwaitLcd()                    //justwaituntil液晶不忙为止  {    chartemp;    bitflag=1;    while(flag==1)    {      temp=XBYTE[rc];      if(temp>>7==0)flag=0;   

5、   P1=temp;    }      P1=0xff;  }                                    //justwaituntil液晶不忙为止voidWriteCommand_Lcd(bitisCheck,charc)      {    if(isCheck==1)waitLcd();    XBYTE[wc]=c;  }voidwritedata(charc){    waitLcd();    XBYTE[wd]=c;}voidLcdInit()  {    delay5ms();  delay5

6、ms();delay5ms();WriteCommand_Lcd(0,0x38);//三次显示模式设置,不检测忙信号delay5ms();WriteCommand_Lcd(0,0x38);delay5ms();WriteCommand_Lcd(0,0x38);delay5ms();WriteCommand_Lcd(1,0x38);//显示模式设置,开始要求每次检测忙信号,8位2行5*7WriteCommand_Lcd(1,0x08);//关闭显示WriteCommand_Lcd(1,0x01);//清显示WriteCommand_Lcd(1

7、,0x06);//文字不动,光标右移WriteCommand_Lcd(1,0x0C);//显示开及光标设置  }voiddisplayListChar(unsignedcharX,unsignedcharY,ucharDData)  {Y&=0x1;X&=0xF;if(X<=0xF)  {    Y&=0x1;X&=0xF;if(Y)X

8、=0x40;X

9、=0x80;WriteCommand_Lcd(0,X);writedata(dispbuf[DData]);    }}voidShow_Time(unitk){  displayListC

10、har(0,0,hour/10);  displayListChar(1,0,hour%10);  displayListChar(2,0,10);  displayListCh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。