基于51单片机24小时可调时钟1602液晶显示程序

上传人:jiz****88 文档编号:38885820 上传时间:2021-11-09 格式:DOC 页数:13 大小:117KB
返回 下载 相关 举报
基于51单片机24小时可调时钟1602液晶显示程序_第1页
第1页 / 共13页
基于51单片机24小时可调时钟1602液晶显示程序_第2页
第2页 / 共13页
基于51单片机24小时可调时钟1602液晶显示程序_第3页
第3页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
For personal use only in study and research; not for commercial use 芄基于 51 单片机 24 小时可调时钟 1602 液晶显示程序 膂 #in clude 薆 #defi ne uchar un sig ned char 蚆 #defi ne uint un sig ned int 蒂 sbit key1=P1A0; 薁 sbit key2=P1Al; 芆 sbit key3=P1A2; 蒃 sbit key4=P1A3; 薁 sbit key5=P1A4; 羁 sbit key6=P1A5; 肆sbit rs=P0A0; 液晶的第 4 端 RS 由开关独立 s2卩3人5 控制高电平写数据,低电平写命 令。 薅sbit lecdn=P0A1; 使能端需控制 LECDN,卩3人6 控制。根据硬件电路而定 袃 uchar miao ,fen ,shi, num; 蒀 uchar miao1,miao2,shi1,shi2,fe n1,fe n2; 螇 uchar table=0123456789; 蚆 void delay( uint x) 肂 薅 uint i,j; 芃 for(i=x; i0;i-) 腿 for(j=10;j0;j-); 膀 肅 void write_com(uchar com )/ 写指令 肄 賺 P2=com; 芈 RW=0;写指令位定义一个 io 口控制 ? 螈lecd n=0; /起初为低电平 时序图 螄 rs=0; II 写指令 rs 为低 节 delay(IO); II 简短延时 莇 lecd n=1; II 给以高脉冲 腿 delay(5); 蒄 lecd n=0; 肀 蝿 void write_data(uchar shu ) II 写数据 薇 芅 P2=shu; 将数据送给控制数据位的 io 口 賺 RW=0;写指令位定义一个 io 口控制 ? lecd n=0;蒈 rs=1; /写数据 rs 为低 区别 蒇 delay(10); 蚅 lecd n=1; 蚂 delay(5); 袈 lecd n=0; 膈 蒂 void in it() 初始化 螁 芇 write_com(0 x38); 显示模式设置 蚄 delay(20); 蒃 write_com(0 x0f); /显示开关,和光标设置,开关必开,光标不开 0 x0f 衿 delay(20); 螇 write_com(0 x06); /写完一个数据, 数据地址指针自动往后移动一位 蒅 delay(20); 薅 write_com(0 x01); /清屏指令,按下复位键上次的结果变清掉。 oxOc,开并闪烁 蒀 void tiaoshi() 膅 莂 if(ke y仁=0) 莀 衿 delay(100); if(key1=0) 莄 TRO=O; if(miao!=59) miao+; else miao=0; delay(IOOOO); if(key1=1) TR0=1; if(key2=0) delay(IOO); if(key2=0) TR0=0; if(miao!=0) miao-; else miao=59; delay(IOOOO); 蒆 if(key1=1) 肄 TR0=1; 羀 蚆 袅 if(key3=0) 薀 肁 delay(IOO); 聿 if(key3=0) 芄 莀 if(fen !=59) 衿 fen+; 腿 else 蚄 fen=O; 肁 袀 螇 if(key4=0) 薅 芃 delay(IOO); 蒃 if(key4=0) 膀 肄 if(fen !=O) 肃 fen-; 芀 else 芈 fen=59; 螈 螄 节 if(key5=0) 薀 腿 delay(IOO); 蒄 if(key5=0) 聿 蝿 if(shi!=23) 薆 shi+; 芄 else 賺 shi=0; 袇 羆 羅 if(key6=0) 膂 腿 delay(IOO); 蒅 if(key6=0) 螅 罿 if(shi!=0) 莈 shi-; 薆 ini t(); /缺少此初始化屏幕出现乱码 薈 羂 void shuzi() 袈 薅 miao仁miao/10; 蚃 miao2=miao%10; 蒈 shi仁 shi/10; 蚅 shi2=shi%10; 蚃 fen 1=fe n/10; 膃 fen 2=fe n%10; 腿 蚇 void main() 肅 薂 EA-1; 总中断一定是允许的。 罿 ET0=1; 打开定时器中断 0 螈 TMOD-OxOl; /设置工作模式方式一 膄 TH0-(65526-50000)/256; /给定时器装初值,高八位取整,低八位取余。 羁 TL0- (65526-50000)%256; 蒅 shi=23; 肁 蚀 袄 else 虿 TR0-1; 启动定时器 薆 shuzi(); 数字函数应该放在大循环里,否则会出现数字全 0 蒁 while(1) 莀 薇 shuzi(); 蚄 write_com(0 x82); 肄 delay(100); 膀 write_data(tableshi1); 蚈 delay(100); 螃 write_com(0 x83); 薄 delay(100); 袀 write_data(tableshi2); 蒆 delay(100); 肅 write_com(0 x85); 羃 delay(20); 蚁 write_data(tablefe n1); 薇 delay(20); 芄 write_com(0 x86); 莂 delay(20); 莁 write_data(tablefe n2); 薈 delay(50); 薆 write_com(0 x88);薆 ini t(); /缺少此初始化屏幕出现乱码 袂 delay(IOO); 膂 write_data(tablemiao1); 莆 delay(100); 蚄 write_com(0 x89); -+- 芁 delay(100); 薈 write_data(tablemiao2); 蒇 delay(50); 袃 write_com(0 x84); 蚀 delay(20); 螁 write_data(-); 羁 delay(20); 蚇 write_com(0 x87); 祎 delay(20); 薁 write_data(-); 螈 delay(50); 螆 tiaoshi(); 调时函数如果与在前面会会产生数子挺好久才显示出来! 芅 芁 螀 void timeO() in terrupt 1 膈 蚅 TH0=(65526-50000)/256; 肂 TL0=(65526-50000)%256;袁 nu m+; / 此中断 50 毫秒,num+的目的使其达到二十次。 if(num=20) num=0; if(miao=59) miao=0; if(fen=59) fen=0; if(shi=23) shi=0; else shi+; else fen+; else miao+; 仅供个人用于学习、研究;不得用于商业用途 For personal use only in study and research; not for commercial use. Nur f u r den pers?nlichen f u r Studien, Forschung, zu kommerziellen Zwecken verwendet werden. Pour l e tude et la recherche uniquement a des fins personnelles; pas a des fins commerciales. TO员BKO gA.nrogeHKO TOpMenob3ymrnflCH6yHeHuac egoB u HHuefigoHM _ 以下无正文 _ UCnO 员 B30BaTbCE B KOMMepqeckux ue 贝 EX.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!