单片机课程设计 简易数字钟_第1页
单片机课程设计 简易数字钟_第2页
单片机课程设计 简易数字钟_第3页
单片机课程设计 简易数字钟_第4页
单片机课程设计 简易数字钟_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计说明书(2012 /2013学年第 二 学期)课程名称 : 单片机应用 题 目 : 简易数字钟 专业班级 :学生姓名 :学 号: 指导教师 : 韩昱 苗敬利等 设计周数 : 2周 设计成绩 :2013年 6 月 26 日目录第一章 课程设计目的*3第二章 课程设计任务*32.1设计题目*32.2原始数据及主要任务*32.3技术要求*3第三章 课程设计内容*33.1方案设计*43.2 CD4511芯片功能和使用方法*4 3.3MCS-51单片机定时器/计数器介*5 3.4 综合电路设计*63.5单元电路设计*73.5.1键盘单元*73.5.2数码管显示*83.5.3时钟产生单元*83.5

2、.4蜂鸣器电路单元*8第四章原理和仿真*93.6 原理图和仿真图*93.7系统调试*103.8 实习心得体会*11参考文献*13附录(c语言程序)*14一、课程设计目的:1.1综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验。1.2学习AT89C51定时/计数器的原理及基本应用,掌握多位数码管动态显示方法以及芯片CD4511等的特点。1.3掌握Keil uVision2 的使用方法和PROTEUS软件使用过程。二、课程设计任务 2.1设计题目:简易数字钟设计2.2原始数据及任务:采用AT89S51作为控制单元,实现简易数字钟设计

3、。1、确定总体设计方案;2、设计键盘输入电路;3、设计显示电路;4、合理分配地址,编写系统程序;5、利用Protel设计硬件电路原理图和PCB图;6、软硬件联机调试。2.3技术要求设计一台以MCS-51为核心的简易数字钟。四位数码管显示小时和分钟,中间的那个点来区分小时和分钟;每秒用LED闪烁一下;用了4个按键,一个是选择键,一个是加键,一个确认键。时间要精确,整点报时,声音间隔为一秒,并且可以调整时间调整位闪烁提示。三、课程设计内容3.1:方案设计过程如下(1)根据题目要求利用protel设计原理图,请老师检查是否有错误。(2)利用仿真软件protus铺设电路,进行合理安排布局。(3)学习k

4、eil编程软件,按照功能要求进行编程。(4)在确认无误后,将程序加载到protus进行仿真。(5)根据原理图进行硬件焊接电路板和检测。单元器件选择主要器件如下:STC90C52AD+单片机(DIP40);4位共阴数码显示管,4个470欧电阻,1个; 300欧电阻,7个; NPN三极管4个1k欧电阻,4个; 晶振:12MHz,1个;10K电阻,4个; 按键开关:4个;LED二极管1个; 蜂鸣器1个; PNP三极管1个。3.2CD4511简介说明和使用方法简介:CD4511 是一片 CMOS BCD锁存/7 段译码/驱动器,用于驱动共阴极 LED (数码管)显示器的 BCD 码七段码译码器。具有B

5、CD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动共阴LED数码管。 使用方法:其中a b c d 为 BCD 码输入,a为最低位。LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平。另外 CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。LE是锁存控制端,高电平时锁存,低电平时传输数据。ag是 7 段输出,可驱动共阴LED数码管。另外,CD4511显示数“6”时,a段消隐

6、;显示数“9”时,d 段消隐,所以显示 6、9 这两个数时,字形不太美观,若要多位计数,只需将计数器级联,每级输出接一只 CD4511 和 LED 数码管即可。所谓共阴 LED 数码管是指 7 段 LED 的阴极是连在一起的,在应用中应接地。限流电阻要根据电源电压来选取,电源电压5V时可使用300的限流电阻。其真值表如下图所示:3.3MCS-51单片机内部定时器/计数器中断系统简介用定时计数器T0,工作于定时,采用方式1,对6MHZ的系统时钟进行定时计数,形成定时时间50ms。计1200次分计数器自增1,时计数器加到24则时计数器清0。然后把分、时计数器分成十位和个位放到4个数码管的显示缓冲区

7、,通过数码管显示出来。在处理过程中加上了按键判断程序,能对按键处理。3.4综合电路设计本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、报警部分部分组成,软件部分对应的由主程序、初始化程序、LED显示程序、键盘扫描程序、启动程序、关闭程序、按键功能程序、EEPROM读写程序和延时程序等组成。其原理框图如下图3.4.1键盘单元键盘设计如下图所示(P0口需要通过上拉电阻接到+5V电源,这点需注意,上拉电阻接法如下)其中12个键的功能分配如下S1: 选择键 S2:加键 S3:减键 S4:确认键采用扫描控制端口P0的值来确定有没有键按下

8、,按下的是那个键。3.4.2数码管显示我们采用共阴数码管显示共4个,段选端接P2口,位选段接P1口,具体接法如下:数码管位选端由P1口高四位的4个端口控制,分别通过NPN接到数码管的公共端,其接法如上图:数码管显示是单片机中应用最为广泛的一种显示方式之一,共阴极数码管0到9十个数的代码如下:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;3.4.3时钟产生单元51单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增

9、益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。图中,电容器C起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MH2,采用6MHz的情况也比较多。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适用来使单片机的时钟与外部信号保持同步。3.4.4 蜂鸣器电路单元:如图下所示 第四章 原理和仿真3.5protel系统原理图如下:Protus仿真图如下:3.6系统调试硬件调试时可先检查面包板及焊接的质量情况,在检查无误后可通电检查LED显示器的点亮状况

10、。若亮度不理想,可以调整P3口的电阻大小,一般情况下取200电阻即可获得满意的亮度效果。 硬件调试:硬件调试是利用基本测试仪器(万用表等),检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。静态调试:是在用户系统未工作时的一种硬件检测。第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。第三步:加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值第四步:联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。动态调试:是在用户系统工作的情况下发现和排除用户

11、系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。软件调试:软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语

12、法错误与逻辑错误并加以排除纠正的过程。可以利用仿真器加以调试,对系统单个单元进行调试,当单元电路成功后,在对整个程序调试,最后在用CPU芯片调试。通过软硬结合的方式对电路板进行硬件调试,硬件没错误之后,开始进行软件编程,直到整个功能实现,并进行优化。3.7 课程设计心得体会和收获:我经过这两个星期单片机课程设计的学习,我们组从画原理图。到的protus仿真图修改,再到程序的编写和电路板的焊接都主要是我自己解决的,错了向老师和同学们请教然后再次去修改。在这个过程中我不仅加深了对单片机理论的理解,懂得了更多理论的知识,而且我还学会了将理论知识更好的运用到实际当中去。课程设计是对我们能力的训练,随着

13、科学技术的不断发展,单片机已运用广泛。在生活当中可谓是无所不在,小到遥控器、手机,大到电脑等家用电器,可以说跟我们的生活息息相关。因此作为二十一世纪的大学生来说掌握单片机的开发及时是十分重要的。回想两个星期的课程设计,真的是感慨颇多,从刚刚开始的容易上手到后面的摸不着方向,通过查询资料请教老师解决了所有的问题。通过这次的课程设计,让我懂得了理论与实际的结合时非常重要的,只有结合起来才能得出想要的结论,从理论当中得出结论,从而提高自己的实际动手能力和独立思考能力。在设计的过程中发现自己的不足之处,对以前所学的知识理解的不够深刻,掌握的不够不够牢固,比如对单片机的汇编语言不能理解,不懂得一些元件的

14、运用等等。课程设计结束后,一定要把自己以前没学有车的重新温过一次。在设计中遇到的许多的问题,都在老师的帮助下和同学的指导下完成了,让我体会到了团队合作的重要性,同时也感谢同学和老师对我的指导。参考文献1电力电子技术基础(第五版)康华光主编 高等教育出版社。2单片机原理及应用 张毅刚 主编 高等教育出版社。3电路设计与制版Protel 99入门与提高 老虎工作室编制。4PROTEUS入门实用教程第2版周润景蔡雨恬编著机 械 工 业 出 版。5单片机10天征服你郭天祥 哈尔滨工程大学录制。附录: C语言实验程序如下#include <reg52.h>#define uchar unsi

15、gned char#define uint unsigned intuchar code table=0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90; uchar t0,t1,min,hour,function,a0,a1,a2,a3;bit shan;void delay(uint count) ;uchar keychuli();uchar key();void display(uchar,uchar,uchar,uchar);void send();void ini();void chuli();/*主函数*void main()ini();wh

16、ile(1)display(16,16,16,17); if(key()=1) /当k1按下后则定时器驱动时钟开始走TR0=1;function=1;shan=0;while(1)send();/ 送数display(a0, a1, a2, a3); / 显示chuli(); /处理/*初始化程序*voidini()TMOD=0x01,TH0=0x3c,TL0=0xb0;TH1=0x3c,TL1=0xb0; / 定时50ms中断一次EA=1,ET0=1,TR0=0;ET1=1;TR1=0;/*键值处理程序*void chuli()switch(key()case 0:break;case 1:

17、/ 当按键k1按下后function+;/ 判断按下的次数switch(function)case 1:TR0=1;TR1=0;shan=0;break;/一次条秒同时闪烁case 2: /两次调分同时闪烁case 3:/三次调分同时闪烁case 4:TR0=0;TR1=1;shan=1;break;/四次跳出调整状态时钟继续走时case 5:function=1;TR0=1;TR1=0;shan=0;break;/轮流循环break;case 2:/k2键上调switch(function) case 1:break;case 2:min+;if(min=60)min=0;break;cas

18、e 3:hour+;if(hour=24) hour=0;break;break; case 4: /k3键下调switch(function)case 1:break;case 2:min-;if(min=255) min=59;break;case 3:hour-;if(hour=255) hour=23;break;break;/*定时器0的中断服务程序*void timer0() interrupt 1 using 3TH0=0x3c,TL0=0xb0;t0+;if(t0=1200)t0=0;min+;if(min=60)min=0;hour+;if(hour=24)hour=0;/*

19、定时器1的中数服务程序,对shan取反,以使灯闪烁*void timer1() interrupt 3 using 2TH0=0x3c,TL0=0xb0;t1+;if(t1=40)t1=0;shan=shan;uchar keychuli() uchar k; k=P1; /P1口内容送K k=k; /取反 k=(k&0xff); /屏蔽高4位,如果扫描8键,屏蔽该句。 return(k); /返回键值 /*函数原型:key();功能:键盘扫描函数,函数返回值即键值。uchar key() uchar keyzhi,keyzhii; /电子钟键盘按键键值临时存放 keyzhi=keychuli(); /调P1口处理函数 if(keyzhi!=0) /有键动作延时去抖动,否则函数返回 send(); display(a0, a1, a2, a3); display(a0, a1, a2, a3); keyzhi=keychuli(); /再次调P1口处理函数 if(keyzhi!=0) /真正

温馨提示

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

评论

0/150

提交评论