1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
哪位大神能把我这个程序加个能在1602上显示星期的,搞了很久实在是搞不出来,希望有大神能点拨一下,十万分感谢
#include #define uchar unsigned char #define uint unsigned int #define DATA P0 ***it RS=P2^3; ***it RW=P1^5; ***it EN=P1^6; uint year=2016,month,day,hour,min,sec,count; uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};//定义0-9字符。 /*--------------延时函数---------------------------------*/ void delay(uint num) { uint x,y; for(x=num;x>0;x--) for(y=110;y>0;y--); } /*--------------写指令---------------------------------*/ void write_comd(uchar comd) { RS=0; RW=0; DATA=comd; delay(5); EN=1; delay(5); EN=0; } /*--------------写数据---------------------------------*/ void write_dat(uchar dat) { RS=1; RW=0; DATA=dat; delay(5); EN=1; delay(5); EN=0; } /*--------------屏幕初始化---------------------------------*/ void lcd_init() { write_comd(0x02);//归位 write_comd(0x06);//设置输入方式 write_comd(0x0c);//控制显示开关 write_comd(0x3c);//功能设置? write_comd(0x01);//清屏 } /*--------------初值---------------------------------*/ void Init_time() { EA=1; ET0=1; TMOD=0X01; TH0=(65536-30000)/256; TL0=(65535-30000)/256; TR0=1; } /*---------------定义工作方式---------------------*/ void lcd_timer() interrupt 1 { TH0=(65536-50000)/256; TL0=(65535-50000)/256; count++; if(count==20) { count=0; sec++; if(sec==5) //秒计时 { sec=0; min++; if(min==3)//分计时 { min=0; hour++; if(hour==2) { hour=0; day++; if(day==10) { day=0; month++; if(month==12) { month=0; year++; } } } } } } } /*--------------显示分秒---------------------------------*/ void lcd_display(uint miao,uint fen,uint shi) { write_comd(0xc0);//显示字母 write_dat(0x54); write_dat(0x69); write_dat(0x4d); write_dat(0x45); write_dat(':'); write_dat(table[shi/10]); write_dat(table[shi%10]); write_dat(':'); write_dat(table[fen/10]); write_dat(table[fen%10]); write_dat(':'); write_dat(table[miao/10]); write_dat(table[miao%10]); write_comd(0x80); write_dat(table[year/1000]); write_dat(table[year/100%10]); write_dat(table[year/10%10]); write_dat(table[year%10]); write_dat(':'); write_dat(table[month/10]); write_dat(table[month%10]); write_dat(':'); write_dat(table[day/10]); write_dat(table[day%10]); write_dat(0x2d); } /*--------------主函数---------------------------------*/ void main() { RW=0; RS=0; EN=0; Init_time(); lcd_init(); while(1) { lcd_display(sec,min,hour); } } |
|
相关推荐
1个回答
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12010 浏览 31 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 17:25 , Processed in 0.807479 second(s), Total 69, Slave 52 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号