单片机数字钟实训报告_第1页
单片机数字钟实训报告_第2页
单片机数字钟实训报告_第3页
单片机数字钟实训报告_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机救生的宴制想告学院:电子工程学院专业:机电一体化班级:姓名:手机号:一、任务及要求用51单片机设计时、分、秒计时器,详细要求如下。1、具有时、分、秒计时功能和8位数码管显示功能,显示格式为:“时一 分一秒”;2、用Proteus设计仿真电路进行结果仿真;3、4人组成设计小组完成,小组成员有明确分工,1人负责总体方案设计 及报告撰写,2人负责功能模块函数设计,1人负责仿真电路设计及调试。4、完成程序设计、仿真电路设计、结果仿真。5、本试验要求设计一个数字计时器,可以完成。分00秒23小时59分59 秒的计时功能,并在掌握电路的作用下有开机清零。6、指标要求:,显示时、分、秒。采纳24小时制

2、,小时计数器按“23翻00”规律计数。. 为了保证计时精确、稳定,由单片机的定时器来计时。7、设计要求: 画出电路原理图(或仿真电路图);元器件及参数选择; 电路仿真与调试;连接实物图,并调试;写出报告,并做总结;二、设计方案1、总体设计方案(李文负责完成)(说明总体设计方案构思、程序模块构成、仿真电路构成等内容,不少于 300 字)。构思:实现时钟的设计,假如采纳软件延时的方法来实现时钟,太耗cpu 了,因此采纳51单片机的内部硬件资源来实现时钟,因此采纳定时器来定时,由于 单片机的最大定时的时间为65.536ms;但是我们要定时1s,为了便利,我们那么选 用定时器。工作方式1且定时50ms

3、,然后在中断2。次那么有了 Is,有了 Is就好 办了,分,时就好办了,只要在1秒的基础上加就可以实现时钟了,有了时,分, 秒就要显示了,由于时,分,秒都是两位,因此要把个位与十位分别,然后在分 别在数码管上显示,这样就实现时钟的设计。程序模块:1、主函数:(调用初始化函数,调用显示函数)2、显示函数:(延时函数,数码管显示代码)3、中断服务函数:(时,分,秒的实现)仿真电路构成:数字钟的结构组成:电1)晶体振荡器电路2)复位电路3)数码管使用非门驱动及数码管详细:52单片机的最小系统(52单片机,晶振电路(12MHz晶振,和30pF 的无极性容),复位电路(l()k电阻,10uf极性电容,开

4、关),外加八位一体的 数码管,数码管驱动电路; 2、显示模块程序流程图3、中断服务函数模块程序流程图4、主函数模块的设计5、仿真电路图三、程序代码:/*功能:用共阴的八位一体的数码管显示时间“小时分钟一秒”位码接P2 口;段码接P0 口;使用定时器0定时1s, 刃#include vreg5Lh头文件#define uchar unsigned char 宏定义#define uint unsigned int /uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0

5、x39,0 x5e,0 x79,0 x71;共阴七段编码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工作在方式1TH0=0X3C; 装初值TL0=0XB0;EA=1;开总中断ET0=l;开定时器0中断TR0=l;启动定时器0sec=0; 秒设初值min=0; 分设初值hour=0;时设初值count=0; 计数设初值PO=Oxff;/P2=0 xff;/ _

6、void display ()显示函数( 、uchar secl,sec2,minl,min2,hourl,hoiir2;定义变量secl= sec/10; 秒的十位sec2= sec% 10;秒的个位minl= min/10;分 的十位min2= min % 10; 分 的个位hourl= houi710;时的十位hour2= hour% 10;时的个位P2= 0 x80; 秒个位的位码P0= tablesec2; 秒个位的段码delay ;P2= 0 x40;秒十位的位码P0= tablesecl; 秒十位的段码delay ;P2= 0 x20;/ 的位码P0= 0 x40;/ 的段码de

7、lay ;P2= 0 x10;分十位的位码P0= tableminl;分十位的段码delay ;P2= 0 x08;/分个位的位码P0= tablemin2;分个位的段码delay ;P2= 0 x04;/ ” 的位码P0= 0 x40;“二 的段码delay ;P2= 0 x02;时个位的位码P0= tablehour2;时个位的段码delay (5);P2= 0 x01; 时的十位的段码P0= tablehourl; 时的十位的段码delay ;void main()(init();初始化函数while(l)displayO; 时间显示函数 )void time() interrupt 1

8、 中断服务函数(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+; 计数加一)五、设计总结单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很 有意义。在做的过程中能够觉察许多的问题,只有自己亲身去做了就会遇到你在 书上所没有的,并且你

9、要一个又一个的解决,这个有点难,要找到自己的错误在 哪里,这还真的难,有时候自己的错误自己很难的看出来,我就一个main写错 了,我找了半天还没找问题在哪里,外表看是看不出的,由于我只是a与i对调 了一下,害的我搞了半天才查出来,这个无形的,编译是不会出错,只是一个警 告,但是下载单片机里就是不消失结果,改了之后就ok 了,在写程序的时候大 小写特殊要留意的,还有程序的结构清晰明白,最终还是完成任务。在学习的过程中带着问题去学我觉察效率很高,这是我做这次课程设计的一大收 获。此外,要做好一个课程设计,就必需做到:在设计程序之前,对所用单片机 的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思 路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计 好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一 个程序的完善与否不仅仅是实现功能,而应当让人一看就能明白你的思路,在我 们遇到问题时,我们应当将每次遇到的问题纪录下来,并分析清晰,以免下次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论