版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、工程设计报告电子钟班级: 学号: 姓名: 基于单片机的电子钟设计简介:电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而电子钟得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。功能:本作品是基于2051的电子时钟,有时分秒,年月日,跑表等功能,手动校时的功能。一、原理说明:1、显示原理:显示部分主要器件为6位共阳红色数码管,位选驱动采用PNP型三极管驱动,列选采用74HC164串入并出驱动,单片机采用方式0串口通信,各端口配有限流电阻,驱动方式为扫描。2、键盘原理:按键S1单片机复位键、S2模
2、式切换。S3校时3、单片机系统:采用AT89C2051为核心器件,并配合所有的必须电路,具有上电复位的功能,手动复位功能。AT89C2051二、使用说明:1、时钟功能:上电后即显示HELLO。两秒后显示初始时间2、查看年月日:在显示时钟状态下按下S2即显示年月日,两秒后自动回到显示时钟状态下3、秒表功能:在显示时钟状态下连续按两次S2键 即进入秒表状态,此时按S3即可启动,再次按S3即可暂停,按下S2清零,若在清零状态下再次按下S2即推出秒表状态进入时钟状态4、校时功能:短按一次S3,即当前年月日为闪烁状态,按动S2则相应位位加1,按动S3则月位闪烁,依次类推。当秒闪烁时,按下S2为秒清零电路
3、图:成品图:程序:#include#include#define uchar unsigned char#define uint unsigned int#define y 100 /灭的时间#define z 200 /z-y 亮的时间void DISP(uchar i,j,k);void DISP1(uchar i,j,k);uchar year=0;uchar month=12;uchar day=31;uchar hour=23;uchar min=59;uchar sec=50;uchar ms=0;uchar bsec=0;uchar bmin=0;uchar m,n=0,temp
4、;sbit dip1=P15;/数码管1sbit dip2=P14;/数码管2sbit dip3=P13;/数码管3sbit dip4=P12;/数码管4sbit dip5=P11;/数码管5sbit dip6=P10;/数码管6sbit key1=P32;/调整按键sbit key2=P37;/加1按键uchar time=20;uchar code numtab10=0x03,0x3F,0x45,0x15,0x39,0x91,0x81,0x37,0x01,0x11;uchar code monthtab13=0,32,29,32,31,32,31,32,32,31,32,31,32;voi
5、d Delay_ms(uint i) /函数void Delay_ms(uint i);实现功能:进行毫秒延时unsigned int j;for(;i0;i-) for(j=0;j=60)sec=0;min+;if(min=60)min=0;hour+;if(hour=24)hour=0;day+;if(day=monthtabmonth)day=1;month+;if(month=13)month=1;year+;if(year=100)year=0;void timer1(void) interrupt 3 /函数void timer1(void) interrupt 1 ;实现功能:定
6、时中断TH1 = 0x0D8; TL1 = 0x0F0;ms+;if(ms=100)ms=0;bsec+;if(bsec=60)bsec=0;bmin+;if(bmin=60)bmin=0;void jiaoshi (void) /函数void jiaoshi(void) ;实现功能: 校时uchar m;Delay_ms(20);if(key1=0)while(key1=0);/等待按键释放m=0;while(1)m+;if(m=y&m=z)m=0;DISP(year,month,day);if(key2=0)Delay_ms(20);if(key2=0)while(key2=0);/等待按
7、键释放year+;if(year=100)year=0;if(key1=0)Delay_ms(20);if(key1=0)while(key1=0);/等待按键释放break; m=0;while(1)m+;if(m=y&m=z)m=0;DISP(year,month,day);if(key2=0)Delay_ms(20);if(key2=0)while(key2=0);/等待按键释放month+;if(month=13)month=1;if(key1=0)Delay_ms(20);if(key1=0)while(key1=0);/等待按键释放break; m=0;while(1)m+;if(
8、m=y&m=z)m=0;DISP(year,month,day);if(key2=0)Delay_ms(20);if(key2=0)while(key2=0);/等待按键释放day+;if(day=monthtabmonth)day=1;if(key1=0)Delay_ms(20);if(key1=0)while(key1=0);/等待按键释放break; m=0;while(1)m+;if(m=y&m=z)m=0;DISP(hour,min,sec); if(key2=0)Delay_ms(20);if(key2=0)while(key2=0);/等待按键释放hour+;if(hour=24
9、)hour=0;if(key1=0)Delay_ms(20);if(key1=0)while(key1=0);/等待按键释放break; m=0;while(1)m+;if(m=y&m=z)m=0;DISP(hour,min,sec); if(key2=0)Delay_ms(20);if(key2=0)while(key2=0);/等待按键释放min+;if(min=60)min=0;if(key1=0)Delay_ms(20);if(key1=0)while(key1=0);/等待按键释放break; m=0;while(1)m+;if(m=y&m=z)m=0;DISP(hour,min,s
10、ec);if(key2=0)Delay_ms(20);if(key2=0)while(key2=0);/等待按键释放sec=0;if(key1=0)Delay_ms(20);if(key1=0)while(key1=0);/等待按键释放break; /函数void DISP1() ;实现功能:刷新显示器/void DISP1(uchar i,j,k)P1=255;SBUF=numtabi/10;while(TI=0);TI=0;P1=j;/打开第相应数码管Delay_ms(1);P1=255;SBUF=numtabi%10;while(TI=0);TI=0;P1=k;/打开第相应数码管Dela
11、y_ms(1);P1=255;/函数void DISP() ;实现功能:刷新显示器/void DISP(uchar i,j,k)DISP1(i,0xDF,0XEF);/ 1101 1111 1110 1111DISP1(j,0xF7,0XFB);/ 1111 0111 1111 1011DISP1(k,0xFD,0XFE); /1111 1101 1111 1110/函数void main() ;实现功能:主函数/void main()init();/初始化系统temp=0;for(m=0;m200;m+) /显示问候语P1=255;SBUF=0x29;while(TI=0);TI=0;P1=
12、0xEF;/打开第相应数码管Delay_ms(1);P1=255;SBUF=0xC1;while(TI=0);TI=0;P1=0xF7;/打开第相应数码管Delay_ms(1);P1=255;SBUF=0xCB;while(TI=0);TI=0;P1=0xFB;/打开第相应数码管Delay_ms(1);P1=255;SBUF=0xCB;while(TI=0);TI=0;P1=0xFD;/打开第相应数码管Delay_ms(1);P1=255;SBUF=0x03;while(TI=0);TI=0;P1=0xFE;/打开第相应数码管Delay_ms(1);init();/初始化系统while(1)l
13、oop1:if(key1=0)jiaoshi();DISP(hour,min,sec);if(key2=0)Delay_ms(20);if(key2=1)goto loop1;else while(key2=0);/等待加1按键松开m=255;loop2:DISP(year,month,day);m=m-1;if(key2=0)Delay_ms(20);if(key2=0)while(key2=0);/等待按键释放temp=0;while(1)DISP(bmin,bsec,ms);if(key2=0)Delay_ms(20);if(key2=0)while(key2=0);ms=0;bsec=0;bmin=0; goto loop1;if(key1=0)Delay_ms(20);if(key1=0)while(key1=0);TR1=1;while(1) DISP(bmin,bsec,ms);if(key2=0&ms=0&bmin=0&bsec=0)Delay_ms(20);if(key2=0)while(key2=0);TR1=0; goto
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- M108抗体注射液生产车间建设项目可行性研究报告写作模板-备案审批
- 郑州职业技术学院《论文写作学术交流和规范》2023-2024学年第一学期期末试卷
- 云南三鑫职业技术学院《财务管理基础(英文版)》2023-2024学年第一学期期末试卷
- 述职报告模板
- 职业导论-房地产经纪人《职业导论》名师预测卷4
- 有关保健与健康书籍读书报告
- 二零二五版城市综合体建设项目招标投标合同书3篇
- 二零二五年项目投资与股权分配合同2篇
- 人教版四年级数学下册第五单元综合卷(含答案)
- 2024-2025学年陕西省榆林市榆林二中高一(上)期末数学试卷(含答案)
- 航天科工集团在线测评题
- 山东省潍坊新2025届高三语文第一学期期末经典试题含解析
- 医院三基考核试题(康复理疗科)
- 2024-2030年中国招标代理行业深度分析及发展前景与发展战略研究报告
- (新版)吉林一级健康管理师高频核心题库300题(含答案)
- JT-T-1344-2020纯电动汽车维护、检测、诊断技术规范
- 2024年湖北省武汉市中考语文试卷真题(含答案)
- 基因突变和基因重组(第1课时)高一下学期生物人教版(2019)必修2
- 天津市八校2023-2024学年高三年级下册联合模拟考试数学试题(二)(含答案解析)
- 纳米技术增强早期疾病生物标志物的检测
- 产品销量分析表折线图excel模板
评论
0/150
提交评论