智能电子钟(lcd显示)

智能电子钟(lcd显示)

ID:20512170

大小:83.98 KB

页数:10页

时间:2018-10-11

智能电子钟(lcd显示)_第1页
智能电子钟(lcd显示)_第2页
智能电子钟(lcd显示)_第3页
智能电子钟(lcd显示)_第4页
智能电子钟(lcd显示)_第5页
资源描述:

《智能电子钟(lcd显示)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、注:本程序并没有显示星期,如有需要,可自行添加。/*******************************************************实验名称:智能电子钟(LCD显示)*实验效果:1602显示时钟,按K1进入时间设置,K2分别选择秒*分时日月星期年,按K3时间加一/******************************************************/#include#include"ds1302.h"#include"lcd1602.h"#defineuin

2、tunsignedint#defineucharunsignedchar/********************************************************声明:本实验所有IO口只与“1302时钟按键设置”仿真图配套**/******************************************************/sbitK1=P3^2;//接的是INT0K1时钟设置(按一下开始调节时间,再按一下退出调节时间)sbitK2=P3^3;//接的是INT1K2选择秒分时日月星期年sb

3、itK3=P3^4;//接的是TOK3加时间voidCursor();//设置时光标闪烁voidDelay10ms();voidInt0Configuration();//外部中断0设置voidLcdDisplay();//显示函数ucharSetState,SetPlace;//设置状态、光标位置voidmain()//主函数{uchari;Int0Configuration();//外部中断0设置lcd1602Init();//1602初始化ds1302Init();//1302初始化while(1){if(SetSta

4、te==0)//如果没有键按下,就显示时间{//SetState的高低由中断控制,按下K1则为1,再次按下则为0ds1302readtime();}else{if(K2==0)//消除抖动{Delay10ms();if(K2==0)//如果K2被按下,则光标移动{SetPlace++;if(SetPlace>=7)//年月日星期时分秒共7个时间SetPlace=0;}while((i<50)&&(K2==0))//松手检测{Delay10ms();i++;}i=0;}if(K3==0)//如果K3被按下,则时间每次加1{De

5、lay10ms();//消除抖动if(K3==0){TIME[SetPlace]++;if((TIME[SetPlace]&0x0f)>9)//换成BCD码{TIME[SetPlace]=TIME[SetPlace]+6;}if((TIME[SetPlace]>0x60)&&(SetPlace<2))//分秒只能到59{TIME[SetPlace]=0;}if((TIME[SetPlace]>0x24)&&(SetPlace==2))//小时只能到23{TIME[SetPlace]=0;}if((TIME[SetPlace]

6、>0x32)&&(SetPlace==3))//日只能到31{TIME[SetPlace]=0;}if((TIME[SetPlace]>0x13)&&(SetPlace==4))//月只能到12{TIME[SetPlace]=0;}if((TIME[SetPlace]>0x7)&&(SetPlace==5))//周只能到7{TIME[SetPlace]=0;}if((TIME[SetPlace]>0x99)&&(SetPlace==6))//年只能到2099{TIME[SetPlace]=0;}}while((i<50)&&

7、(K3==0))//松手检测{Delay10ms();i++;}i=0;}}LcdDisplay();//Lcd1602显示时间}}voidLcdDisplay()//显示函数{writecom(0x80+0x40);writedata('T');writedata('I');writedata('M');writedata('E');writedata(':');writedata('0'+TIME[2]/16);//时writedata('0'+(TIME[2]&0x0f));writedata(':');writeda

8、ta('0'+TIME[1]/16);//分writedata('0'+(TIME[1]&0x0f));writedata(':');writedata('0'+TIME[0]/16);//秒writedata('0'+(TIME[0]&0x0f));writecom(0x80);writ

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

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

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