




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 益阳市安化县2025年数学四年级第二学期期末教学质量检测模拟试题含解析
- 上海科创职业技术学院《断层影像解剖学》2023-2024学年第二学期期末试卷
- 北京经贸职业学院《书法艺术欣赏》2023-2024学年第一学期期末试卷
- 营业执照租赁合同:合作协议
- 贵州黔南经济学院《生殖生物学》2023-2024学年第二学期期末试卷
- 海南健康管理职业技术学院《射频技术》2023-2024学年第二学期期末试卷
- 河北省鹿泉一中、元氏一中、正定一中等五校2025年高三全真物理试题模拟试卷(6)含解析
- 2025年福建省龙岩市高三下学期第二次月考生物试题含解析
- 内蒙古民族幼儿师范高等专科学校《视觉艺术实践》2023-2024学年第二学期期末试卷
- 广西医科大学《体检诊断学B》2023-2024学年第二学期期末试卷
- 血液学检验造血功能障碍性贫血
- 【基于STM32智能门锁系统的设计10000字(论文)】
- 工程伦理案例分析
- 优秀初中语文说课课件
- A06442《个人所得税自行纳税申报表(A表)》 (填写样例)
- 2022全科医师转岗培训理论考试题库及答案
- 建筑空间组合论
- 特种工作作业人员体格检查表
- 清远市城市树木修剪技术指引(试行)
- 广州国际文化中心详细勘察报告正文-171229end
- 警察礼仪(PPT53页)
评论
0/150
提交评论