智能电子钟(LCD显示).docx

智能电子钟(LCD显示).docx

ID:61432141

大小:77.79 KB

页数:10页

时间:2021-01-30

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

《智能电子钟(LCD显示).docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

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

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

3、闪烁voidDelay10ms();voidInt0Configuration();//外部中断0设置voidLcdDisplay();//显示函数ucharSetState,SetPlace;//设置状态、光标位置voidmain()//主函数{uchari;Int0Configuration();//外部中断0设置lcd1602Init();//1602初始化ds1302Init();//1302初始化while(1){if(SetState==0)//如果没有键按下,就显示时间{//SetState的高低由中断控制,按下K1则为1,再次按下则为0ds1302r

4、eadtime();}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{Delay10ms();//消除抖动if(K3==0){TIME[SetPlace]++;if((TIME[SetPlace]&0x0f)>9)//换成BCD码{TIME[

5、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]>0x32)&&(SetPlace==3))//日只能到31{TIME[SetPlace]=0;}if((TIME[SetPlace]>0x13)&&(SetPlace==4))//月只能到12{TIME[Se

6、tPlace]=0;}if((TIME[SetPlace]>0x7)&&(SetPlace==5))//周只能到7{TIME[SetPlace]=0;}if((TIME[SetPlace]>0x99)&&(SetPlace==6))//年只能到2099{TIME[SetPlace]=0;}}while((i<50)&&(K3==0))//松手检测{Delay10ms();i++;}i=0;}}LcdDisplay();//Lcd1602显示时间}}voidLcdDisplay()//显示函数{writecom(0x80+0x40);writedata('T');wr

7、itedata('I');writedata('M');writedata('E');writedata(':');writedata('0'+TIME[2]/16);//时writedata('0'+(TIME[2]&0x0f));writedata(':');writedata('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. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。