微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机课程设计秒表设计的电路、程序及调试等资料

单片机课程设计秒表设计的电路、程序及调试等资料

时间:10-02 整理:3721RD 点击:
        
单片机课程设计秒表设计的电路、程序及调试等资料

一、复位电路
MCS-51单片机的复位是靠外部电路实现的。MCS-51单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地复位。MCS-51单片机通常采用上电自动复位和按键复位两种方式。最简单的复位电路如下图:


上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上的高电平,就能使单片机有效的复位。在应有系统中,有些外围芯片也需要复位。如果这些芯片复位端的复位电平与单片机的复位电平的要求一致,则可以将复位信号与之相连。

二、振荡器电路

   MCS--51单片机单片机内部的振荡电路是一个到增益反相放大器,引线 XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成成时钟,外部还需要附加电路。石晶振荡和陶瓷振荡均可采用.有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。51单片机的时钟产生方式有两种,分别为:内部时钟方式和外部始终方式。利用其内部的震荡电路XTAL1和XTAL2引线上外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到XTAL2输出的时钟信号。在MCS-51单片机一般常用内部时钟方式,也就是在XTAL1和 XTAL2之间连接晶体震荡器与电容构成稳定的自激震荡器,如下图:


晶体和电容决定了单片机的工作时间精度为1微秒。晶体可在1.2- 12MHz之间选择。MCS-51单片机在通常应用情况下,使用震荡频率为6MHZ的石英晶体,而12MHZ频率的警惕主要是在高速串行通信情况下才使用,在这里我用的是12MHZ石英晶体。对电容无严格要求,但它在取直对震荡频率输出的稳定性、大小及震荡电路起震荡速度有一点影响。C1和C2可在20 -100PF之间取直,一般情况取30PF。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2。由于的XTAL2逻辑电平不是TTL的,所以还要接一个上拉电阻。

三、电源电路
电源电路是最基本,最必须的电源部分安装,任何电路都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所忽略,其实有将近一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。    AT89C51实验开发板提供了一个6-9V伏400毫安的外接交流电源,通过整流滤波稳压电源输出的直流电压通过专门的电源插座把直流电压引入实验开发板,左边两个是5伏的电源滤波电容,一般大电容旁边并联一个小电容的目的是降低高频内阻,因为大的电解电容一般采用卷绕工艺制造,所以等效电感较大,小电容可以提供一个小内阻的高频通道,降低电源全频带内阻。通过三端稳压芯片7805稳压成5伏直流电源提供给单片机系统使用,右边两个电容是5伏电源的滤波电容,电阻和绿色的LED组成5伏电源的工作指示电路,只要电源部分正常,绿色的LED1就会点亮,我们可以根据这个LED来判断整个电源部分是否工作正常。这个在实际电路中常常见的。如下图:


四、AT89C51芯片介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效的微控制器。


AT89C51芯片如下

1.1主要特性:
·与MCS-51 兼容         ·4K字节可编程闪烁存储器    ·全静态工作:0Hz-24Hz     ·三级程序存储器锁定     ·128*8位内部RAM      ·32可编程I/O线
·两个16位定时器/计数器     ·5个中断源       ·可编程串行通道    ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路        
1.2管脚说明:
VCC、VPP:接电压。   VSS:接地。
   P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,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口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址"1"时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。 P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入"1"后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
    P3口也可作为AT89C51的一些特殊功能口,口管脚 备选功能
P3.0 RXD(串行输入口)     P3.1 TXD(串行输出口)     P3.2 /INT0(外部中断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端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
   /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
    /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
1.3、芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写"1"且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一

五、两位数码管循环显示00~99电路
数码管只要是用于数字的显示。数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同。两位数码管循环电路是由1K的电阻、IN4148二极管和数码管组成,电源+5V通过560的电阻直接给数码管的7个段位供电,P0.0-P0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,P2.6接显示个位数的数码管的3、8引角,P2.7则接十位数的。P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的PNPS8550三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示需要的数字。两位数码管循环电路图如下:
             三、软件设计
AT89C51显示00~99汇编语言程序
要实现两位数码管显示00~99依次循环的秒表设计,必须得将AT89C51芯片写入程序,只有将程序写进AT89C51芯片,才能实现其秒表的原理功能。
                  
3.2 汇编语言程序
以下是用AT89C51实验板的两位数码管显示00~99依次循环的汇编语言程序:

  1. ORG 0000H
  2. A_BIT EQU 20H
  3. B_BIT EQU 21h
  4. TEMP EQU 22h
  5. STAR: MOV TEMP,#0
  6. STLOP: ACALL DISPLAY
  7. INC TEMP
  8. MOV A,TEMP
  9. CJNE A,#100,NEXT
  10. MOV TEMP,#0
  11. NEXT: LJMP STLOP
  12. DISPLAY: MOV A,TEMP
  13. MOV B,#10
  14. div AB
  15. MOV B_BIT,A
  16. MOV A_BIT,B
  17. MOV DPTR ,#NUMT
  18. MOV R0,#4
  19. DPL1: MOV R1,#250
  20. DPLOP: MOV A,A_BIT
  21. MOVC A,@A+DPTR
  22. MOV P0,A
  23. CLR P2.7
  24. ACALL D1MS
  25. SETB P2.7
  26. MOV A,B_BIT
  27. MOVC A,@A+DPTR
  28. MOV P0,A
  29. CLR P2.6
  30. ACALL D1MS
  31. SETB P2.6
  32. DJNZ R1,DPLOP
  33. DJNZ R0,DPL1
  34. RET
  35. D1MS: MOV R7,#250
  36. DJNZ R7,$
  37. RET
  38. 7段数码管0~9数字的共阳显示代码:
  39. NUMT: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  40. END

复制代码


四、调试和使用
4.1 189C54芯片的调试
断单片机芯片及时钟系统是否正常工作有一个简单的办法,就是用万用表测量单片机晶振引脚(18、19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24V,19脚对地约2.09V。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导   线短时间和+5V连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1毫秒,再十位显示1毫秒,不断循环,这样只要       扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示
4.2 5伏电源安装调试
电阻和绿色的LED组成5伏电源的工作指示电路,只要电源部分正常,绿色的LED1就会点亮,我们可以根据这个LED来判断整个电源部分是否工作正常,电源部分就是下面图像中需要安装的元件。注意事项:
1. 有极性的电解电容正负不要颠反,引脚长的哪个为正
2. 三端稳压7805不要装反
3. LED极性不要颠反,引脚长的哪个为正极
4.3 两位数码管
数码管只要是用于数字的显示,安装时不能把数码管安装颠反了。还要注意三极管各引脚的极性。

数码管只要是用于数字的显示,安装时不能把数码管安装颠反了。还要注意三极管各引脚的极性。

dofan哥很积极 表扬下 哈哈 精神上的 肉体上的没办法

给力呀,,,为什么我读书的时候不知道这论坛呢……

很不错~

还不懂,看看

89S51怎么调试啊?

看不懂,有些话和书上的一模一样。

要程序啦

汇编没学

看不懂

原理图呢?

要是C就好啊

有没有60s的?

看不懂

很好很强大!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top