单片机99秒计时器资料_第1页
单片机99秒计时器资料_第2页
单片机99秒计时器资料_第3页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、路的七段数码管的a b cd e f g端口上,利用数码管显示数字;RST接复位电路,实现电路的复位;XTAL1 XTAL2接晶振电路;整个电路实现循环动态显示数字 0099.2.3 AT89C51简单介绍及引脚说明AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPERO FalshProgrammable and Erasable Read Only Memory)的低电压,高性能 CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的 MCS-51指令集和输出管脚相兼容。AT89C51具有

4、如下特点: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能够用于外部程序数据存储 器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入 口,当FIASH进行校验时,P0输出原码,此时P0外

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

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

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

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

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

10、ALE EA复位电路单片机的复位电路有上电自动复位和按键手动复位两种。上电自动复位通过电容的放电实现。 在时钟电路工作后,在RST端给出两个 周期的搞点评就可完成复位操作;上电加按键手动复位的工作方式,当复位键按 下时,复位端通过小电阻与电源接通,电容迅速放电使RST引脚为高电平,当复 位键弹起后,电源通过电阻重新给电容充电,使RST端出现复位正脉冲,实现复 位,本电路采用上电自动复位单片机的时钟方式有内部时钟方式和外部时钟方式,本电路米用内部时钟方 式。内部时钟电路利用芯片内部的振荡器,在XTAL1和XTAL2两端跨接晶振,构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。外界晶振时C

11、1、C2都在30pF左右;C1、C2对频率都有微调作用,晶振的频率范围一般是1.2 12 MHz为了减小寄生电容,更好的保证振荡器稳定、可靠地工作,振荡器和 电容应尽可能的与XTAL1和XTAL2靠近。本设计时钟由12MHZ勺晶振来组成振荡 电路,来控制单片机对数码管的动态扫描。ooRP2RESPACK-8:TEXT按键电路图上图为本电路的按键(控制)电路,第一次按下按键,电平由高电平变为低电平,计时器从此刻开始计数; 第二次按下按键时, 电平由高电平变为低电平,计时器计时暂停,数码管显示暂停时的数字;第三次按下按键时,电平由高电平变为低电平,计时器复位,计时器数字变为00,当按键再次按下时重

12、新开始计时。2.5数码管的显示方法与工作方式显示方法发光二极管显示器一般由若干个发光数码管组成,数码管的每一位数码段是 一支发光二极管。当发光二极管导通时,相应的一个点或一个笔划发光,控制发 光二极管发光组合,可以显示出所需字符。若一个数码管的若干只发光二极管的阳极连接在一起, 通过阴极控制其显示,则 构成共阳极结构;若将发光二极管阴极连接在一起, 通过阳极控制其显示,则构 成共阴极结构。无论是共阴极数码还是共阳极数码, 其显示字形中碼段的定义是一致的。 微 机进行显示控制时,一般通过I/O 口送出七段码。显然即使送出的七段码相同, 若I/O 口线与数码管引脚连线不同,显示的字形也不相同。在本

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

14、的线完 成多个数码管的显示。但与动态显示相比,动态显示电路连接更简单,节省单片 机I/O 口,从而节省单片机的资源,如今已经有很多这样成熟的基于动态扫描的 芯片,并且采用动态显示方式极大的节省单片机的资源,特别是在单片机的I/O数量比较紧张的情况下,更能体现采用动态显示的优越性。 因此,在现在的多数 电子系统中,数码管多数采用动态扫描技术来显示,本设计中我们采用的事动态 显示方法。2.6仿真电路图及电路连接数码管显示图系统硬件连接(1.把“单片机系统”区域中的 PO.O/ADO P0.6/AD6端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个 a e端口上;要求:P0.0/AD0对应

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

16、显示的数字;(6连接复位电路和时钟电路。2.7利用PROTUES进行仿真电路图的连接利用工具栏中的PICK利用关键字寻找所需要的仿真元器件。如图所示DEVICEOMCAI-QMN%4ESLF阿加TE5E 2?MIM41E 刑 野 TMUMATEmWICR y_ LEPHQ着借I厢 丨琏箭取CBMZSSffTBffil MiiiiKCridei I斗£ cate. 33HF2 2il6 g 1 mi- UtiFF IArflSCSl fiU9MKffli§051UARrjATKC51 nB2MCS«6ii:溺i Hng皿加 UM矶H血护如dog f”饶:知蹴 T.

17、UART l*TffiC51RB2 BUS MCSfflSiiSffii加 |1ftB 卯抵(曲iH霍 WMc切 li".:川融 Tw. MET IATaS£5llfliUMCSSiEHSEI tlniKQriii |32±B «h. -IRWHe. Wridicbglnw. JiltW Tbk. UART |ATSKGIHL2 BUSMCSSIEI3E1|X5lH址址 4EHHElii¥” 31IE-U. TiM±. UART lAragcm ruemcsscbiski h阳曲 |别抽4mH2.wditk4 去i&吐 imt

18、. UAFrj台MCKlHlSffil M<iDC>x4e< ItUfl tcrie. 4UMHz.Hdoci trcm.為1#诫 I vwti-.吨f iTfTfWTI THVITT1hrO.&nI1號WclU"I利用鼠标将找到的各个元器件连接起来。如下图所示M.EC1 丄 C7jTVTk跖HU1P她PJ3JWJ3 Pi P關PltM6 P17.M7P1WP2.W R2ftlO F2>1 F2眦 FISjAU F;迅P FJ.JjfiliT1亠丄丄丄丄丄丄MJF1.1F1.2Fl 3Fl.lF1.5F13Fl:P3/.BD醐庐WP3a_P咂P3.?i

19、TORESPO|fL将KEIL软件编译无误后生成的HEX文件导入到仿真电路图的AT89C51单片机 中,如图所示ILX带最后,在所有的步骤无误后即可进行软件仿真。 利用左下角的按钮可控制仿真的 运行和停止。AT89C51:u100ZJ456-D25LTA?OOD107MOOGATEOia A7Q0D127MQQ4ATEJ19A7QOD157MO(MATE3ie A700V336MOXA1E028 ADCD8062A109C51BUTTONCAP &PAJOTDF CRYSTAL DIuDE-LEDRE 5FtESPACK-e 洒临RC3AU11AL1POO/AP0.1/AP0.2/A1

20、XIAL2PD.3JIA1PD./AlPD.5JIA1PD.6XA1PD.7W1P2,SP3.HP2.2WPSEN也也ALEP2.4WE4P2.5WP2.6WP21IAP1.0P3WH.ipain門.2PI .3PS2/NP谕PI .4P3.4fPI .5P35fPI .6P11P3.7JIM* I II I I o 5 H朋落叮 ANI汹TING MOO:07400000(CFU bat 15劭完成后的仿真电路图如下3软件设计3 .1流程图此程序采用汇编语言用十六进制算法编写了两位数码管循环扫描动态显示的专用程序。通过软件的控制使两位数码管能从 00计数到99,再回到00,依 次进行循环。若

21、在计数期间有复位高电平出现时,便重新从00开始计数。并有电源开关控制让电路是否工作,且有指示灯只是电源是否正常。主程序流程图如下图所示KEYCNT=1KEYCNT=2TO停止KEYCMT=3中断程序流程图在正常计时状态下,若按下 P1.1 口按键,则进行时钟/秒表功能的转换, 转换后计时从开始。当按下 P1.2 口的按键时,可实现清0、计时启动、暂停功3.2程序代码sec ond equ 30htcount equ 31hkco unt equ 32h key bit p3.7org 00hsjmp startorg 00hsjmp startorg 0bhljmp int_tOstart:m

22、ov dptr,#tablemov p2,#3fhMOV P0,#3fh;开始显示器显示00mov sec on d,#00hmov tco un t,#00hmov kco un t,#00hmov tmod,#01h;定时器0工作在方式1mov tl0,#(65536-50000)/256mov th0,#(65536-50000) mod 256k1: jb key,$lcall delayjb key,$;等待按键mov a,kco untcjne a,#00H,k2;判断按键次数setb TRO;第一次按键启动定时器mov ie,#82hjnb key,$inc kco unt;抬起

23、按键定时器次数加1Ijmp k1k2: cjne a,#01h,k3clr tr0;第一次按键关闭定时器mov ie,#00hjnb key,$inc kco unt;按键抬起按键次数加1Ijmp k1k3: cjne a,#02h,k1;第三次按键返回初始状态jnb key,$Ijmp start in t_tO:mov th0,#(65536-50000)/256mov tl0,#(65536-50000) mod 256inc tco untmov a,tco unt;是否积够1秒cjne a,#20,i2mov tco un t,#00hinc sec ond mov a,sec on

24、dcjne a,#100,i1mov sec on d,#OOhi1:mov a,sec ondmov b,#10div abmove a,a+dptr;显示时间mov p0,amov a,bmove a,a+dptrmov p2,ai2: retitable:db 3fh,06h,5bh,4fh,66hdb 6dh,7dh,07h,7fh,6fhdelay:mov r6,#20d1:mov r7,#250djnz r7,$djnz r6,d1retend3.3利用KEIL软件进行程序编译打开 keil 之后新建工程,选择 ateml ,如下图所示在选择方式为atmel之后,在选择单片机是选择

25、AT89C51,选择情况如下图所示 - »» j« 4 甲SJl-s-s®-甲ffls-ffl:®也:_ZU A.T8V 匚 S1. 口 3* _匚二| A.TSVF5 1|I" JkT&TFSIRCr"a rh曰fsn-I B ATSVFS5WDA.TS-9C1O51-f i1 os i i_rI_二1 ATB9匚 NCJS 1 I_"I ATSQC4O51JVTBT 匸 B 1*| 11 r匚,选择为完成后,新建程序并将程序编写后打入,保存为asm格式Ji_|= C:UsersiP2.PO.HOT B,

26、DIV A3) MOVC KOV MOV MOVC WOV12: REII TABLE: DBDBDELAY;盟VMOV R mi | rtiN?g)F.禺”.诚DeviceTarget Output Listing C51A51BL51 Locate EL51 MiFile Edit View Project Debug Flash Peripherals Tools SVCS Window Help0|x %e |库啻4%鬼恵%|7俺临|詈i叮凶闭-:j| Target 1.Source Group 1保存玩之后设置其他的要求的要求,比如要设置晶振为12MHzOptions for Tar

27、get 'Target 1'Atmel AT89C51Use On-chip RDI)1Xtal OflHz): 12|Off_chip Code ireiroryOff-chip Xhta meFEpromEprom在设置完成后可利用软件本身的编译程序进行编译,编写正确就会提示无错误无警告;假如程序有问题的话,就会显示所编写的程序的错误类型及错误所在的位置EJ :_i Target 1宙匸 Source Group 1Pl C:UsersacerDesktop 伊建丈代芜,123,ASM03ne 100111ir.cv Eccnd, #CiQhil:mov af seccnd

28、mcv tr#10div ab move a,a+dptr mGv pOj amove a,a+dptrKiev p2f 已12 : reti3fh,0hF5btir4£iithdelay:mov r6r12011:mev r?7t +25Qdjnz r7,星dj nz rfi r dlretend0F. |(gL. dlBProgram Size: data8 D xdataO code153 creating hex file from " 123"."123" - 0 Error(s), 0 Warning(s), l| 41 | RBiiildA Commsncj 入 Find in Films 程序正确后就能把文件转换为hex格式,兵将其输入到设计的计时器电路的AT89C51单片机中,将编写的程序展示出来。将编译无误的程序导入仿真电路图中运行运行过程中,第一次按下按键,计时器开始从00开始计时;第二次按下按键,计时器计时暂停,若计时超过99秒,计时器从00开始循环计时;第三次按下按 键,计时器复位00。计时器复位图第二次按下按键计时器显示当前计数第三次按下按键计时器复位4结论使用软件和编写程序时一定要注意每一个细节,一个分号的遗漏也会造成错 误。制作前一定要

温馨提示

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

评论

0/150

提交评论