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

下载本文档

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

文档简介

1、单片机最小应用系统设计报告一、设计题目3二、设计目的3三、系统硬件图43.1 电路设计原理图43.2 电路设计PCB图5四、程序流程图6五、系统说明与分析95.1设计思路及设计过程95.2系统结构及各部分说明95.3系统连线说明145.4系统参数分析15六、源程序15七、总结15八、参考文献21一、 设计题目数字钟设计,开机时,显示12:00:00的时间开始计时;具体要求如下:1. P0.0/AD0控制“秒”的调整,每按一次加1秒;2. P0.1/AD1控制“分”的调整,每按一次加1分;3. P0.2/AD2控制“时”的调整,每按一次加1个小时;二、设计目的1、通过单片机最小系统的设计,了解常

2、用单片机应用系统开发手段和过程,进一步熟悉和掌握单片机的结构和工作原理,并能初步掌握一般单片机控制系统的编程和应用,从而进一步加深对单片机理论知识的理解。2、掌握单片机内部功能模块的应用:如定时器、计数器、中断系统、I/O口等。3、熟悉基本硬件电路的设计与制作。 4、掌握以单片机核心的电路设计的基本方法和技术,了解单片机的基本外围电路的设计和矩阵按键电路及数码管驱动电路的设计。5、学习UVISION对单片机的编程和调试方法。6、学习PROTEL软件的使用,掌PROTEL的基本用法,懂得绘制简单得原理图及其PCB的绘制。7、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。三、系

3、统硬件图3.1 电路设计原理图整个设计主要包括单片机基本的晶振电路,按键复位电路。具体的电路图如下图所示:图1 电路原理图3.2 电路设计PCB图 本次小系统的设计要求设计的电路板实单面板,因为设计中电路板较小,二元器件的数目较多,尤其是矩阵按键部分需要的连线较多,所以本次设计的PCB 板中夹杂着几根跳线。PCB的生成,主要是在绘制好电路原理图之后,定义各个元器件的封装形式,生成网络表之后,在新建的PCB中导入网络表,即可一自动生成PCB。根据元器件之间的飞线,设置各个参数之后手动布线。本次设计的PCB图如图2所示。图2 电路PCB图四、程序流程图 开中断,并允许T0中断计数单元清零开始MIN

4、ITE=60吗?显示数据处理HOUR=0HOUR=24吗?HOUR加1时按键识别成功否?显示数据处理MINITE=0MINITE加1分按键识别成功否?SECOND=0显示数据处理SECOND=60吗?SECOND加1TH0,TL0装入初值秒按键识别成功否?通过查表方式显示数据中断返回显示数据处理HOUR=0HOUR=24吗?秒计数0位选数值0位选数值8吗?数码位选加1T0中断入口秒计数加1秒计数500吗?SECOND加1MINITE=60吗?SECOND=0,并MINITE加1MINITE=60吗?MINITE=0,并HOUR加1图3 程序流程图五、系统说明与分析5.1设计思路及设计过程设计的

5、主要思想:把“单片机系统”区域中的P1.0P1.7端口用8芯排线连接到“动态数码显示”区域中的AH端口上;把“单片机系统:区域中的P3.0P3.7端口用8芯排线连接到“动态数码显示”区域中的S1S8端口上;把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上;显示部分使用数码管显示键值,单片机的P0口作为数码管的驱动口。还包括单片机的基本外围电路,晶振电路和按键复位电路。系统机构如图4所示。 单片机显示电路键盘接口复位电路时钟电路图4系统结构图软件设计主要是通过UVISION软件使用C 语言进行编程。

6、设计过程:1、 设计相应的电路原理图,编写C语言程序;2、 在实验箱上进行程序调试;3、 程序通过调试后,使用绘图软件PROTEL99,绘制相应的原理图,进行元器件封装后,生成相应的PCB 图,对其进行布局整理和单面板布线;4、 打印PCB图,印制在电路板上,放入氯化铁溶液中进行腐蚀;5、 腐蚀电路板之后进行元器件的焊接工作,焊接相应的电源线;6、 通过试验箱和下载软件,将程序烧如到单片机中;7、 进行最终的软、硬件的调试,直至完成相应的功能。5.2系统结构及各部分说明本次设计的单片机最小系统包括:单片机AT89S51部分,矩阵按键识别部分,数码管显示部分以及软件设计部分。下面就针对个法儿部分

7、的特点进行简要的说明。 1、单片机部分(1)AT89S51介绍AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。图5 AT89S51引脚图AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含8k B

8、ytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。    AT89S51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2

9、层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。AT89S51有两种节电运行模式:空闲模式和掉电模式。 空闲模式 在空闲模式下,CPU处于睡眠状态,振荡器和所有片内外围电路仍然有效。空闲模式可由软件设置进入(设IDL1)。在这种模式下,片内RAM和SFR中的内容保持不变。 空闲模式可通过任何一个允许中断或硬件复位退出。 若用硬件复位方式结束空闲模式,则在片内复位控制逻辑发生作用前长达约两个机器周期时间内,器件从断点处开始执行程序。片内硬件禁止访问内部RAM,但不禁止访问端口。为避免采用复位方式退出空闲模式时对端口的不应有的访问,在紧随设置

10、进入空闲指令(即设IDL1)的后面,不能是写端口或外部RAM的指令。 掉电模式引起掉电模式的指令是执行程序中的最后一条指令(使PD1的指令)。在掉电模式下,振荡器停止工作,CPU和片内所有外围部件均停止工作,但片内RAM和SFR中的内容保留不变,直到掉电模式结束。 退出掉电模式可用硬件复位或任何一个有效的外部中断INT0和INT1。复位可重新设置SFR中的内容,但不改变片内RAM中的内容。在Vcc电源恢复到正常值并维持足够长的时间之后,允许振荡器恢复并达到稳定,方可进行复位,以退出掉电模式。(2)晶振电路图6 系统晶振电路系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路(如图6所示

11、)。AT89S单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。(3)按键复位电路

12、复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图7所示的复位电路可以实现上述基本功能。但解决不了电源毛刺(A点)和电源缓慢下降(电池电压不足)等问题 而且调整 RC 常数改变延时会令驱动能力变差。左边的电路为高电平复位有效 右边为低电平Sm为手动复位开关,Ch可避免高频谐波对电路的干扰。图77 按键复位电路图7 复位电路2、矩阵按键识别部分3、显示电路显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及生产工艺,单片机应用系统中常用的显示

13、器有: 发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示器是现在最常用的显示器之一,如右图。七段数码管在工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间,还可以用来显示比赛的比分等,具有显示醒目、直观的优点。图8 数码管LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用静态方法进行显示,其硬件连接方式如系统原理图。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动

14、是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位

15、选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更

16、低。数码管使用条件:段及小数点上加限流电阻;使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定;使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA。4、软件设计部分(1)键盘的设计:开关控制信号由“K1K2K3K4”端口输出,具体的电路原理图如图1.18所示: 图9 键盘设计(2)显示程序设计静态显示是将段码输送到相应的驱动口P0口。根据所给定的高低电平,点亮不同的段,从而显示不同的数值。5.3系统连线说明1、AT89S51单片机的P1和P3口用作动态数码管显示接口,键盘的列线接到P0.0-P0.2口的作为键盘接口。2、 AT89S51

17、单片机的P1和P3连接到动态数码管上面。根据数码(0,1,2,3,4,5,6,7,8,9)来决定七段中的某一段或某几段进行绘制,例如如果数码为0,则显示0、1、2、3、4、5段;数码为1,则显示1、2段,依次类推。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,

18、相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。所以数码管的类型不同设置的段码就不同。3、AT89S51单片机的18、19脚连接系统的晶振电路。4、AT89S51单片机的9脚节系统的按键复位电路。5、AT89S51单片机的31脚、EA接VCC,使单片机读内部程序。5.4系统参数分析1、复位电路一般R取10K,C取10UF,教科书上R肯定是8.2K,都可以的,RC越大,充电时间越长,单片机上电复位过程越长,其实RC取值不是需要特别严格。还有种说法,R=1K,C=22UF,抗干扰性更好。复位电路的电阻和电容要根据复位脉冲的宽度要求计算得到:比如如果单片机的复位脉冲要求至少20ms,高电

19、平是5V,最大低电平为0.8V,则应按RC电路的放电(或充电)方程计算,使从5V放电到0.8V(或相反)所用的时间不小于20ms。2、两晶振电路的小电容一般取15-30PF即可。影响不大的。理论上是用的晶体越高,应该用更小的电容。比如说12M晶体,用20PF,1M晶体,用30PF,其实日常应用,根本是没有差别的,用20、30PF都一样。3、I/O口上拉电阻是用来提高它的带载能力的,编程后让某个I/O口置高电平,不带载应该电位就是5V,因为它的带载能力很弱,尤其这种输出为高电平带载,稍微带点负载(输出电流哪怕不到毫安级),这点电位用万用表量的话,要下降很大,接一电阻并到这个I/O口跟VCC,可以

20、提高它的带载能力,这个电阻就叫上拉电阻。一般这个电阻取值都是1K到10K左右,注意这个电阻也不能太小啊,虽然越小上拉能力越强,但是I/O承受的灌电流越大,太大要烧I/O口的。4、显示电路中数码管的驱动要家限流电阻,但那是限流电阻不能加的太答,一般在200欧就可以使数码管很亮,如果加的电阻太大的话数码管就会很暗。5、矩阵按键系统最好也加上一排上拉电阻以保证气稳定性,一般选取1K 就可以。六、源程序#include <AT89X51.H>unsigned char code dispcode=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,

21、0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00;unsigned char dispbitcode=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f;unsigned char dispbuf8=0,0,16,0,0,16,0,0;unsigned char dispbitcnt;unsigned char second;unsigned char minite;unsigned char hour;unsigned int tcnt;unsigned char mstcnt;unsigned char i,j;void mai

22、n(void) TMOD=0x02; TH0=0x06; TL0=0x06; TR0=1; ET0=1; EA=1; while(1) if(P0_0=0) for(i=5;i>0;i-) for(j=248;j>0;j-); if(P0_0=0) second+; if(second=60) second=0; dispbuf0=second%10; dispbuf1=second/10; while(P0_0=0); if(P0_1=0) for(i=5;i>0;i-) for(j=248;j>0;j-); if(P0_1=0) minite+; if(minite

23、=60) minite=0; dispbuf3=minite%10; dispbuf4=minite/10; while(P0_1=0); if(P0_2=0) for(i=5;i>0;i-) for(j=248;j>0;j-); if(P0_2=0) hour+; if(hour=24) hour=0; dispbuf6=hour%10; dispbuf7=hour/10; while(P0_2=0); void t0(void) interrupt 1 using 0 mstcnt+; if(mstcnt=8) mstcnt=0; P1=dispcodedispbufdispb

24、itcnt; P3=dispbitcodedispbitcnt; dispbitcnt+; if(dispbitcnt=8) dispbitcnt=0; tcnt+; if(tcnt=4000) tcnt=0; second+; if(second=60) second=0; minite+; if(minite=60) minite=0; hour+; if(hour=24) hour=0; dispbuf0=second%10; dispbuf1=second/10; dispbuf3=minite%10; dispbuf4=minite/10; dispbuf6=hour%10; dis

25、pbuf7=hour/10; 七、总结1、制作了这个最小系统后,基本理解了protel软件的一些基本使用思路:(1)主要分两个部分,一个为原理图,一个为PCB图,原理图为你所要实现电路的基本原理结构,只是实现其原理的框图。一个为PCB,就是你所做的电路的具体实现形式,所做电路的大小,元件大小,导线大小都完全和做出后的电路板一摸一样,做PCB的时候,要考虑到很多的因素,比如导线的宽度,焊盘大小,安全间距,元件摆放位置,元件大小,干涉情况等。(2)原理图和PCB又是有关联的,它们电气特性是一样的,在一边的修改完全可以反映到另一方面。这就使的设计思路的唯一性,也让改动变得更加合理以及人性化。(3)原

26、理图和PCB都有自己元件库里的元件和一些基本的电路线路组成的。在做原理图和PCB的时候,最好先吧它们的元件进行统一。似得原理图和PCB能环环相扣,减少设计出错得可能性。2、在进行这个最小系统的编程设计时,不用以前学习的汇编编程,改用C语言进行编程。学习了单片机的C语言编程后,发现C语言编单片机程序的时候比汇编更加直观,逻辑性也更加强,也更加容易编出大的程序。由于C语言强大的逻辑功能,有时后能编出一些汇编无法或者很难编写出来的功能,或者是说用软件逻辑实现硬件控制的一些操作。虽然C编程的时候对时间延迟有些不足,但是经过网上搜索后也找到了比较好的解决办法,延迟程序编写时应该也能和汇编做到差别不大。通过这次最小系统的制作,也已经基本掌握用C编单片机程序。3、在进行电路板和元件的组装过程中,自己也摸索出一些方法。比如元件放置到电路板上的时候,最好一个模块一个模块地放上去,做好第一次(比如是单片机及其最基本电路),先检测成功,然后再计划放第二个模块。放前事先考虑好放入模块后可能出现地电气特性(比如灯的亮灭,某些引脚的高的电平的状态),放入模块后检测这些状态是否和原先设想的一样,不一样就分析问

温馨提示

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

评论

0/150

提交评论