版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机数字钟实训报告学院:电子工程学院专业:机电一体化班级:姓名:手机号:一、任务及要求用51单片机设计时、分、秒计时器,具体要求如下。1、 具有时、分、秒计时功能和8位数码管显示功能,显示格式为:“时分秒”;2、 用Proteus设计仿真电路进行结果仿真;3、 4人组成设计小组完成,小组成员有明确分工,1人负责总体方案设计及报告撰写,2人负责功能模块函数设计,1人负责仿真电路设计及调试。4、 完成程序设计、仿真电路设计、结果仿真。 5、本实验要求设计一个数字计时器,可以完成0分00秒23小时59分59秒的计时功能,并在控制电路的作用下有开机清零。 6、指标要求:.显示时、分、秒。 采用24小
2、时制,小时计数器按“23翻00”规律计数。. 为了保证计时准确、稳定,由单片机的定时器来计时。7、设计要求: 画出电路原理图(或仿真电路图); 元器件及参数选择; 电路仿真与调试; 连接实物图,并调试; 写出报告,并做总结;二、设计方案 1、总体设计方案(李文负责完成)(说明总体设计方案构思、程序模块构成、仿真电路构成等内容,不少于300字)。构思:实现时钟的设计,如果采用软件延时的方法来实现时钟,太耗cpu了,因此采用51单片机的内部硬件资源来实现时钟,因此采用定时器来定时,由于单片机的最大定时的时间为65.536ms;但是我们要定时1s,为了方便,我们则选用定时器0工作方式1且定时50ms
3、,然后在中断20次则有了1s,有了1s就好办了,分,时就好办了,只要在1秒的基础上加就可以实现时钟了,有了时,分,秒就要显示了,由于时,分,秒都是两位,因此要把个位与十位分离,然后在分别在数码管上显示,这样就实现时钟的设计。程序模块:1、主函数:(调用初始化函数,调用显示函数) 2、显示函数:(延时函数,数码管显示代码) 3、中断服务函数:(时,分,秒的实现)仿真电路构成:数字钟的结构组成: 电1)晶体振荡器电路2) 复位电路 3)数码管使用非门驱动及数码管具体:52单片机的最小系统(52单片机,晶振电路(12MHz晶振,和30pF的无极性容),复位电路(10k电阻,10uf极性电容,开关),
4、外加八位一体的数码管,数码管驱动电路; 2、显示模块程序流程图 3、中断服务函数模块程序流程图 4、主函数模块的设计 5、仿真电路图3、 程序代码: /* 功能:用共阴的八位一体的数码管显示时间“小时-分钟-秒” 位码接P2口;段码接P0口;使用定时器0定时1s,*/#include /头文件#define uchar unsigned char /宏定义#define uint unsigned int /uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x
5、71;/共阴七段编码 uchar sec,min,hour,count;/ 定义变量void delay (uchar x)/延时1ms的函数 uchar z ,y; for (y=x;y0;y-) for (z=124;z0;z-); void init (void)/初始化函数 TMOD=0X01;/定时器0工作在方式1 TH0=0X3C;/装初值 TL0=0XB0; EA=1;/开总中断 ET0=1;/开定时器0中断 TR0=1;/启动定时器0 sec=0; /秒设初值 min=0; /分设初值 hour=0;/时设初值 count=0;/计数设初值 P0=0xff;/ P2=0xff;
6、/ void display ()/显示函数 uchar sec1,sec2,min1,min2,hour1,hour2;/定义变量 sec1= sec/10; /秒的十位 sec2= sec%10; /秒的个位 min1= min/10; /分的十位 min2= min%10;/分的个位 hour1= hour/10;/时的十位 hour2= hour%10;/时的个位 P2= 0x80; /秒个位的位码 P0= tablesec2; /秒个位的段码 delay(5); P2= 0x40;/秒十位的位码 P0= tablesec1; /秒十位的段码 delay(5); P2= 0x20; /
7、“-”的位码 P0= 0x40; /“-”的段码 delay(5); P2= 0x10; /分十位的位码 P0= tablemin1;/分十位的段码 delay(5); P2= 0x08; /分个位的位码 P0= tablemin2;/分个位的段码 delay(5); P2= 0x04; /“-”的位码 P0= 0x40; /“-”的段码 delay(5); P2= 0x02; /时个位的位码 P0= tablehour2;/时个位的段码 delay(5); P2= 0x01; /时的十位的段码 P0= tablehour1;/时的十位的段码 delay(5); void main() ini
8、t(); /初始化函数 while(1) display(); /时间显示函数 void time() interrupt 1 /中断服务函数 TH0=0X3C; /重装初值 TL0=0XB0; if(count=20)/定时一秒 count=0; /计数清零 if(sec=59) /秒计时到60秒 sec=0; /秒清零 if(min=59)/分计时到60秒 min=0; /分清零 if(hour=23) /小时计数到24 hour=0;/小时清零 else hour+;/小时加一 else min+; /分加一 else sec+; /秒加一 count+; /计数加一5、 设计总结 单片
9、机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。在做的过程中能够发现很多的问题,只有自己亲身去做了就会遇到你在书上所没有的,并且你要一个又一个的解决,这个有点难,要找到自己的错误在哪里,这还真的难,有时候自己的错误自己很难的看出来,我就一个main写错了,我找了半天还没找问题在哪里,表面看是看不出的,因为我只是a与i对调了一下,害的我搞了半天才查出来,这个无形的,编译是不会出错,只是一个警告,但是下载单片机里就是不出现结果,改了之后就ok了,在写程序的时候大小写特别要注意的,还有程序的结构清楚明了,最后还是完成任务。 在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的一大收获。另外,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,在我们遇到问题时,我们应该将每次遇到的问题记录下来,并分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年延安市子长县数学三年级下学期期中联考模拟试题(含答案)
- 2025-2026学年广西壮族北海市铁山港区四下数学期中达标检测模拟试题(含答案)
- 钢铁重要培训服务协议
- 港口定制化劳务派遣协议
- 2026年中职艺术设计学(设计教学实操)试题及答案
- 阳光高考试题及答案
- 人生考试题及答案
- 外荥小学考试题及答案
- 星海乐理考试题及答案
- 篮球名人考试题库及答案
- 2026年浙江平湖市国有企业公开招聘工作人员35人考试模拟试题及答案详解
- 2026年四川省拟任县处级党政领导职务政治理论水平任职资格考试冲刺试题及答案
- 2026年高考全国2卷数学高考真题试题(含答案)
- 2026年度全国保密教育线上培训题库(选择+判断)及参考答案
- 2026年比亚迪网申在线测试题及答案
- 无人机数字化管控平台搭建方案
- 乐平市市属国资控股集团有限公司面向社会公开招聘人员【15人】笔试历年常考点试题专练附带答案详解
- TCABEE080-2024零碳建筑测评标准(试行)
- 审计署工作保密制度
- 医疗器械质量意识培训资料
- 2026年中医内科临床诊疗指南-尘肺病
评论
0/150
提交评论