单片机智能电子钟(编辑修改稿)内容摘要:

是一句程序的修改或诞生,但那种收获的感觉很暖人心。 8 参考文献 《单片机原理与应用》 倪云峰 主编 《 51 单片机 c 语言教程》 郭天祥 主编 《 51 单片机原理与应用》 陈海宴 主编 《单片机 c 语言应用 100 历》 王东锋 主编 附录 项目设计 评 语 项目设计 成 绩 指导教师 (签字) 年 月 日 程序 include define uchar unsigned char define uint unsigned int define ulong unsigned long uchar code table[]=2020:01:01 000。 uchar code table1[]= 00:00:00 00:00。 uchar code table2[]=0123456789。 sbit lcd_rs =P3^3。 //定义 LCD 端口 sbit lcd_rw=P3^4。 sbit lcd_en=P3^5。 sbit Sclk=P2^6。 9 sbit Io=P2^7。 sbit Rst=P2^5。 sbit S1=P1^0。 //菜单键 sbit S2=P1^1。 //加键 sbit S3=P1^2。 //减键 sbit S4=P1^3。 //退出菜单键 sbit ss=P1^4。 //秒表键,第一次启动,第二次暂停,第三次清零 sbit FMQ=P2^3。 void yue31()。 //31 天的月份函数 void yue30()。 //30 天的月份函数 void yue29()。 //29 天的月份函数 void yue28()。 //28 天的月份函数 void Timing()。 //闹钟设置 void miaobiao()。 //秒表函数 uchar count, k1num。 //声明秒的变量 char shi,fen,miao。 //声明时分秒 uint nian, yue,ri,ji=0,mm=0。 //声明年月日,秒表计数,和秒表按键次数 uchar f,s。 //定时器 / void delay(uchar z)//延时函数 { uchar x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } void write_(uchar )//lcd 写指令 { lcd_rs=0。 lcd_rw=0。 lcd_en=0。 P0=。 delay(5)。 lcd_en=1。 delay(5)。 lcd_en=0。 } void write_data(uchar date)//lcd 写数据 { lcd_rs=1。 lcd_rw=0。 10 lcd_en=0。 P0=date。 delay(5)。 lcd_en=1。 delay(5)。 lcd_en=0。 } void miaobiao(char kk)//秒表函数 { uchar biao_bai,biao_shi,biao_ge。 biao_bai=kk/100。 biao_shi=kk%100/10。 biao_ge=kk%100%10。 write_(0x80+13)。 write_data(table2[biao_bai])。 write_(0x80+14)。 write_data(table2[biao_shi])。 write_(0x80+15)。 write_data(table2[biao_ge])。 write_(0x0c)。 } void write_fsm(uchar add,uchar date)//计算时分秒位 { uchar shi,ge。 shi=date/10。 ge=date%10。 write_(0x80+0x40+add)。 write_data(0x30+shi)。 write_data(0x30+ge)。 } void write_nyr(uchar add,uchar date)//计算月日位 { uint shi,ge。 shi=date/10。 ge=date%10。 write_(0x80+0x00+add)。 write_data(0x30+shi)。 write_data(0x30+ge)。 } void write_nian(uchar add,uchar date)//计算年位,年是百位 11 { uint bai,shi,ge。 bai=date/100%10。 shi=date/10。 ge=date%10。 write_(0x80+0x00+add)。 write_data(0x30+bai)。 write_data(0x30+shi)。 write_data(0x30+ge)。 } void jiaxian()//设置键盘加显 { if(k1num!=0) { if(S2==0) { delay(10)。 if(S2==0) { while(!S2)。 //松手检测 if(k1num==1) { miao++。 if(miao==60) miao=0。 write_fsm(8,miao)。 //write_(0x0e)。 write_(0x80+0x40+8)。 } if(k1num==2) { fen++。 if(fen==60) fen=0。 write_fsm(5,fen)。 write_(0x80+0x40+5)。 } if(k1num==3) { shi++。 if(shi==24) shi=0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。