C51单片机实现液晶秒表以及简单计算器-----C51单片机制作.doc_第1页
C51单片机实现液晶秒表以及简单计算器-----C51单片机制作.doc_第2页
C51单片机实现液晶秒表以及简单计算器-----C51单片机制作.doc_第3页
C51单片机实现液晶秒表以及简单计算器-----C51单片机制作.doc_第4页
C51单片机实现液晶秒表以及简单计算器-----C51单片机制作.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

丨 丨羽绒服丨C51单片机实现液晶秒表以及简单计算器-C51单片机制作电路图比较简单,是一个51最小系统,没有采用总线方式,而简单的连线方式,上有4*4矩阵键盘,一数码管,8ArrayS51单片机,串口下载线,数码管显示锁存芯片蜂鸣器1602液晶.因为最近考试太多,刚刚考试完又课程设计,桌子上太混乱,原理图没有找到.所以就先贴上代码.此代码已经调试成功过,可以实现时间的调整.4*4矩阵键盘,第一排前三列是实现小时分钟秒的加.第二排前三列是实现小时分钟秒的减.当然还可以通过设置矩阵键盘的键值,来实现加减乘除四则运算,由数码管显示参与运算的数字以及最终的运算结果.其他的不多说了,等下次我把图贴上,大家勉强可以拿去研究下.其实硬件很简单,不详细说问题也不大的.#includereg51.h#includestdio.h#includestdlib.h#includeintrins.h#includeabsacc.h#defineucharunsignedchar#defineuintunsignedintuchartemp1;voiddisplayListChar;uchardispbuf=0,1,2,3,4,5,6,7,8,Array,:;ucharsecond;ucharminute;ucharhour;uinttcnt,g;ucharflag;voiddlms;ucharkbscan;voidShow_Time;voiddelay5ms;voiddlms;voidSettime;/verify在这里为调整的意思voiddelay400ms;/#definebusy0x80file:/用/于检测LCD状态字中的Busy标识/#defineRSaddr0x1000/#defineRWaddr0x2000/#defineCSaddr0x0400#definewc0x8fff#definewd0xdfff#definerc0xbfffvoidwaitLcd/justwaituntil液晶不忙为止chartemp;bitflag=1;whiletemp=XBYTErc;ifflag=0;P1=temp;P1=0xff;/justwaituntil液晶不忙为止voidWriteCommand_LcdifwaitLcd;XBYTEwc=c;voidwritedatawaitLcd;XBYTEwd=c;voidLcdInitdelay5ms;delay5ms;delay5ms;WriteCommand_Lcd;/三次显示模式设置,不检测忙信号delay5ms;WriteCommand_Lcd;delay5ms;WriteCommand_Lcd;delay5ms;WriteCommand_Lcd;/显示模式设置,开始要求每次检测忙信号,8位2行5*7WriteCommand_Lcd;/关闭显示WriteCommand_Lcd;/清显示WriteCommand_Lcd;/文字不动,光标右移WriteCommand_Lcd;/显示开及光标设置voiddisplayListCharY=0x1;X=0xF;ifY=0x1;X=0xF;ifX|=0x40;X|=0x80;WriteCommand_Lcd;writedata;voidShow_TimedisplayListChar;displayListChar;displayListChar;displayListChar;displayListChar;displayListChar;displayListChar;displayListChar;switchcase1:displayListChar;case2:displayListChar;case3:displayListChar;case4:displayListChar;case5:displayListChar;case6:displayListChar;case7:displayListChar;case8:displayListChar;caseArray:displayListChar;case10:displayListChar;case11:displayListChar;case12:displayListChar;case13:displayListChar;case14:displayListChar;case15:displayListChar;case16:displayListChar;voidSettime/键盘设置/1/hour+2/minute+0xde3/second+0xbe+/4/hour-0xed5/minute-0xdd6/second-0xbd-/78Array*/0CLR=/hour+的代码ififdlms;ifhour+;ifhour=0;/while;verify=0x00;/1/hour+2/minute+0xde3/second+0xbe/minute+的代码elseifdlms;ifminute+;ifminute=0;/while;verify=0x00;/1/hour+2/minute+0xde3/second+0xbe/second+的代码elseifdlms;ifsecond+;ifsecond=0;/while;verify=0x00;/1/hour+2/minute+0xde3/second+0xbe/hour-的代码elseifdlms;ififhour=24;hour-;/if/hour=23;/電路圖比較簡單,是一個51最小系統,沒有采用總線方式,而簡單的連線方式,上有4*4矩陣鍵盤,一數碼管,8ArrayS51單片機,串口下載線,數碼管顯示鎖存芯片蜂鳴器1602液晶.因為最近考試太多,剛剛考試完又課程設計,桌子上太混亂,原理圖沒有找到.所以就先貼上代碼.此代碼已經調試成功過,可以實現時間的調整.4*4矩陣鍵盤,第一排前三列是實現小時分鐘秒的加.第二排前三列是實現小時分鐘秒的減.當然還可以通過設置矩陣鍵盤的鍵值,來實現加減乘除四則運算,由數碼管顯示參與運算的數字以及最終的運算結果.其他的不多說瞭,等下次我把圖貼上,大傢勉強可以拿去研究下.其實硬件很簡單,不詳細說問題也不大的.#includereg51.h#includestdio.h#includestdlib.h#includeintrins.h#includeabsacc.h#defineucharunsignedchar#defineuintunsignedintuchartemp1;voiddisplayListChar;uchardispbuf=0,1,2,3,4,5,6,7,8,Array,:;ucharsecond;ucharminute;ucharhour;uinttcnt,g;ucharflag;voiddlms;ucharkbscan;voidShow_Time;voiddelay5ms;voiddlms;voidSettime;/verify在這裡為調整的意思voiddelay400ms;/#definebusy0x80file:/用/於檢測LCD狀態字中的Busy標識/#defineRSaddr0x1000/#defineRWaddr0x2000/#defineCSaddr0x0400#definewc0x8fff#definewd0xdfff#definerc0xbfffvoidwaitLcd/justwaituntil液晶不忙為止chartemp;bitflag=1;whiletemp=XBYTErc;ifflag=0;P1=temp;P1=0xff;/justwaituntil液晶不忙為止voidWriteCommand_LcdifwaitLcd;XBYTEwc=c;voidwritedatawaitLcd;XBYTEwd=c;voidLcdInitdelay5ms;delay5ms;delay5ms;WriteCommand_Lcd;/三次顯示模式設置,不檢測忙信號delay5ms;WriteCommand_Lcd;delay5ms;WriteCommand_Lcd;delay5ms;WriteCommand_Lcd;/顯示模式設置,開始要求每次檢測忙信號,8位2行5*7WriteCommand_Lcd;/關閉顯示WriteCommand_Lcd;/清顯示WriteCommand_Lcd;/文字不動,光標右移WriteCommand_Lcd;/顯示開及光標設置voiddisplayListCharY=0x1;X=0xF;ifY=0x1;X=0xF;ifX|=0x40;X|=0x80;WriteCommand_Lcd;writedata;voidShow_TimedisplayListChar;displayListChar;displayListChar;displayListChar;displayListChar;displayListChar;displayListChar;displayListChar;switchcase1:displayListChar;case2:displayListChar;case3:displayListChar;case4:displayListChar;case5:displayListChar;case6:displayListChar;case7:displayListChar;case8:displayListChar;caseArray:displayListChar;case10:displayListChar;case11:displayListChar;case12:displayListChar;case13:displayListChar;case14:displayListChar;case15:displayListChar;case16:displayListChar;voidSettime/鍵盤設置/1/hour+2/minute+0xde3/second+0xbe+/4/hour-0xed5/minute-0xdd6/second-0xbd-/78Array*/0CLR=/hour+的代碼ififdlms;ifhour+;ifhour=0;/while;verify=0x00;/1/hour+2/minute+0xde3/second+0xbe/minute+的代碼el

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论