单片机99秒计时器(共24页)_第1页
单片机99秒计时器(共24页)_第2页
单片机99秒计时器(共24页)_第3页
单片机99秒计时器(共24页)_第4页
单片机99秒计时器(共24页)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、 - 27 - 1设计(shj)背景 单 片 机单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力(nngl)的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。计时器广泛应用于实际生活当中,有倒计时器和计时器,我们本次设计(shj)为计时器。计时器广泛应用于各种比赛当中用来计时,往往都精确到百分秒的精度,其次也应用于计时闹钟等。生活中计时器比较常见,而设计计时器是很具有实际意义的。2 硬件设计:2.1

2、99秒计时器的总体设计方案利用单片机的定时器设计一个秒计时器,其中设有一个按键,当第一次按下按键时,开始计时,第二次按下按键时,停止计时,送入P0和P2端口显示,P0口驱动显示秒时间的十位,而P2口驱动显示秒时间的个位。第三次按下按键时使定时器清零,等待下一次按键。本设计中需要一个时钟电路,一个复位电路和一个控制电路来实现整个电路的运行,实现00到99的循环计时。2.2 99秒计时器的组成及其原理图秒计时器由以下几个部件组成:单片机AT89C51、两个静态数码显示、一个按钮等其它组件。 该电路的工作原理:AT89C51从稳压(wn y)电路中获得稳定的+5V电压,接到VCC端,提供稳定的电压(

3、diny);P2、P0口通过电阻接到显示电路的七段数码管的a b c d e f g 端口上,利用数码管显示数字;RST接复位电路,实现电路的复位;XTAL1、XTAL2接晶振电路;整个(zhngg)电路实现循环动态显示数字0099.2.3 AT89C51简单介绍及引脚说明AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准

4、的MCS-51指令集和输出管脚相兼容。AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据(shj)存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入

5、口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。本设计中采用P0口显示计时器的十位数字。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收(jishu)输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻(dinz)的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流

6、。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。本设计中采用P2口显示计时器的个位数字。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表

7、所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部(wib)输入) P3.5 T1(记时器1外部(wib)输入) P3.6 /WR(外部(wib)数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,A

8、LE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-F

9、FFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.4复位电路(d

10、inl)、时钟电路及控制电路 复位(f wi)电路 单片机的复位(f wi)电路有上电自动复位和按键手动复位两种。 上电自动复位通过电容的放电实现。在时钟电路工作后,在RST端给出两个周期的搞点评就可完成复位操作;上电加按键手动复位的工作方式,当复位键按下时,复位端通过小电阻与电源接通,电容迅速放电使RST引脚为高电平,当复位键弹起后,电源通过电阻重新给电容充电,使RST端出现复位正脉冲,实现复位,本电路采用上电自动复位 时钟(shzhng)电路 单片机的时钟方式有内部时钟方式和外部时钟方式,本电路采用内部时钟方式。内部时钟电路利用芯片内部的振荡器,在XTAL1和XTAL2两端(lin dun

11、)跨接晶振,构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。外界晶振时C1、C2都在30pF左右;C1、C2对频率都有微调作用,晶振的频率范围一般是1.212MHz。为了减小寄生电容(dinrng),更好的保证振荡器稳定、可靠地工作,振荡器和电容应尽可能的与XTAL1和XTAL2靠近。本设计时钟由12MHZ的晶振来组成振荡电路,来控制单片机对数码管的动态扫描。 按键(n jin)电路图 上图为本电路的按键(控制)电路,第一次按下按键,电平由高电平变为低电平,计时器从此刻开始计数;第二次按下按键时,电平由高电平变为低电平,计时器计时暂停,数码管显示(xinsh)暂停时的数字;第三次按下按

12、键时,电平由高电平变为低电平,计时器复位,计时器数字变为00,当按键再次按下时重新开始计时。2.5 数码管的显示方法与工作(gngzu)方式显示方法发光二极管显示器一般由若干个发光数码管组成,数码管的每一位数码段是一支发光二极管。当发光二极管导通时,相应的一个点或一个笔划发光,控制发光二极管发光组合,可以显示出所需字符。若一个数码管的若干只发光二极管的阳极连接在一起,通过阴极控制其显示,则构成共阳极结构;若将发光二极管阴极连接在一起,通过阳极控制其显示,则构成共阴极结构。无论是共阴极(ynj)数码还是共阳极数码,其显示字形中碼段的定义是一致的。微机进行显示控制时,一般通过I/O口送出七段码。显

13、然即使送出的七段码相同,若I/O口线与数码管引脚连线不同,显示的字形也不相同。在本设计中我们组采用了共阴极的显示方法。工作(gngzu)方式根据控制(kngzh)原理不同,显示方式分为静态显示方式和动态显示方式。若数码管显示为某一个字符时相应的发光二极管恒定的导通或截止,则该显示方式为静态显示方式。静态显示方式时所有数码管同时点亮,字符显示期间加在数码管上的七段码不变,即每一个数码管对应一个8位I/O接口,所以占用的硬件资源较多。动态显示则是轮流点亮各数码光即对显示器进行扫描。任何时刻只给一个数码管通电,通电一定时间后再给下一个数码管通电。只要刷新率足够高,动态显示方式同样可以实现稳定显示。动

14、态显示的最大优点是节约I/O口。静态显示方式简单不容易出错,如果电路设计合适,也能够用较少的线完成多个数码管的显示。但与动态显示相比,动态显示电路连接更简单,节省单片机I/O口,从而节省单片机的资源,如今已经有很多这样成熟的基于动态扫描的芯片,并且采用动态显示方式极大的节省单片机的资源,特别是在单片机的I/O数量比较紧张的情况下,更能体现采用动态显示的优越性。因此,在现在的多数电子系统中,数码管多数采用动态扫描技术来显示,本设计中我们采用的事动态显示方法。2.6仿真电路图及电路连接 数码管显示图 系统硬件连接(1 把“单片机系统”区域中的P0.0/AD0P0.6/AD6端口用8芯排线连接到“四

15、路静态数码显示模块”区域中的任一个ae端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,P0.6/AD6对应着e。 (2 把“单片机系统(xtng)”区域(qy)中的P2.0/A8P2.6/A14端口用8芯排线连接(linji)到“四路静态数码显示模块”区域中的任一个ae端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,P2.6/A14对应着e。 (3 把“单片机系统“区域中的P3.7/RD用导线连接到”独立式键盘“区域中的SP1端口上;(4. 把三极管提供电压的蜂鸣器连接到按键电路上,当按键按下时,蜂鸣器响起,提示开始计时、暂停计时或者复位;(5 将8排阻按照顺序

16、连接到数码显示管的电路中通过控制电阻的大小来控制a b c d f e g管的灭或者亮从而控制数码管显示的数字;(6 连接复位电路和时钟电路。2.7利用PROTUES进行仿真电路图的连接利用工具栏中的PICK 利用关键字寻找所需要的仿真元器件。如图所示利用(lyng)鼠标将找到的各个元器件连接起来。如下图所示将KEIL软件编译无误后生成(shn chn)的HEX文件导入到仿真电路图的AT89C51单片机中,如图所示最后(zuhu),在所有的步骤无误后即可进行软件仿真。利用左下角的按钮可控制仿真的运行和停止。完成(wn chng)后的仿真电路图如下(rxi) 3软件设计3 .1流程图 此程序采用

17、汇编语言用十六进制算法编写了两位数码管循环扫描动态显示的专用程序。通过软件的控制使两位数码管能从00计数到99,再回到00,依次进行循环。若在计数期间有复位高电平出现时,便重新从00开始计数。并有电源开关控制让电路是否工作,且有指示灯只是电源是否正常。 主程序流程图如下(rxi)图所示中断(zhngdun)程序流程图在正常(zhngchng)计时状态下,若按下P1.1口按键,则进行(jnxng)时钟 /秒表功能的转换,转换后计时从开始。当按下P1.2口的按键时,可实现清0、计时启动、暂停功能。3.2 程序代码second equ 30htcount equ 31hkcount equ 32hk

18、ey bit p3.7org 00hsjmp startorg 00hsjmp startorg 0bhljmp int_t0start:mov dptr,#tablemov p2,#3fhMOV P0,#3fh ;开始(kish)显示器显示00mov second,#00hmov tcount,#00hmov kcount,#00hmov tmod,#01h ;定时器0工作(gngzu)在方式1mov tl0,#(65536-50000)/256mov th0,#(65536-50000) mod 256k1: jb key,$lcall delayjb key,$ ;等待(dngdi)按键

19、mov a,kcountcjne a,#00H,k2 ;判断按键次数setb TR0 ;第一次按键(n jin)启动定时器mov ie,#82hjnb key,$inc kcount ;抬起按键(n jin) 定时器次数加1ljmp k1k2: cjne a,#01h,k3clr tr0 ;第二次按键(n jin)关闭定时器mov ie,#00hjnb key,$inc kcount ;按键抬起按键次数加1ljmp k1k3: cjne a,#02h,k1 ;第三次按键返回初始状态jnb key,$ljmp startint_t0:mov th0,#(65536-50000)/256mov t

20、l0,#(65536-50000) mod 256 inc tcountmov a,tcountcjne a,#20,i2 ;是否积够1秒mov tcount,#00hinc secondmov a,secondcjne a,#100,i1mov second,#00hi1:mov a,secondmov b,#10div abmovc a,a+dptr ;显示(xinsh)时间mov p0,amov a,bmovc a,a+dptrmov p2,ai2: retitable:db 3fh,06h,5bh,4fh,66h db 6dh,7dh,07h,7fh,6fhdelay:mov r6,#

21、20d1:mov r7,#250 djnz r7,$djnz r6,d1retend3.3利用KEIL软件进行(jnxng)程序编译打开keil之后(zhhu)新建工程,选择ateml,如下图所示在选择(xunz)方式为atmel之后,在选择单片机是选择AT89C51,选择情况如下图所示,选择为完成后,新建程序并将程序编写后打入,保存(bocn)为asm格式保存玩之后设置其他的要求的要求,比如要设置晶振为12MHz在设置完成后可利用软件本身的编译程序进行编译,编写正确就会提示无错误无警告;假如程序有问题的话,就会显示所编写的程序的错误类型及错误所在的位置。程序正确后就能把文件转换为hex格式,

22、兵将其输入到设计的计时器电路的AT89C51单片机中,将编写的程序展示出来。将编译无误的程序(chngx)导入仿真电路图中运行运行过程(guchng)中,第一次按下按键,计时器开始从00开始计时;第二次按下按键,计时器计时暂停,若计时超过99秒,计时器从00开始循环计时;第三次按下按键,计时器复位00。 计时器复位(f wi)图第二次按下按键(n jin)计时器显示当前计数 第三次按下按键(n jin)计时器复位4结论(jiln) 使用软件和编写程序时一定要注意每一个细节,一个分号的遗漏也会造成错误。制作前一定要做好规划设计,反复论证和计算,防止考虑不到的地方使得做好的东西需要翻工。如果制作或

23、使用中发现问题,既极大地打击积极性和自信心,还会极大地消耗时间,拖延项目的进度。制作硬件也一定要耐心细致,极小的失误都会造成短路等问题而直接造成大错。这门课的学习确实给了我们很多,而且不单单是知识和技能,还有精神层面上的东西。而在项目制作过程中的困难和喜悦,希望和失望,成功和失败,也都是我们心中永远的宝贵财富。通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。这个设计过程中,我们通过在原有的计数器系统进行了改进,使之增添了暂停、计数、清零等的三个控制功能,使之成为一个更加适用,功能更加完备的属于自己的一个系统。设计结果能够符合题意,成功完成了此次实习要求,我们

温馨提示

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

评论

0/150

提交评论