内容发布更新时间 : 2024/12/27 6:11:24星期一 下面是文章的全部内容请认真阅读。
.
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。
PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出 2.5 硬件电路设计
2.5.1时钟电路与复位电路
MCS--51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。
这里,我们选用51单片机12MHZ的内部振荡方式,利用12分频的晶振的一个机器周期为一微妙,通过循环延时产生0.1秒的延时,电容器C1、C2起稳定振荡频率,
.
快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要使晶体振荡器X1尽可能接近单片机。晶振电路原理及单片机复位电路图如图2-3所示。
图2-3 时钟与复位电路图
单片机的时钟信号用来提供单片机内各种微操作的时间基准,89C51片内设有一个由反向放大器所构成的振荡电路,XTAL1和XTAL2分别为振荡电路的输入和输出端,89C51单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。
对于复位操作,我们采用手动复位,通过按钮开关使单片机进入复位状态,这是单片机能否正常工作的关键。 2.5.2 硬件电路设计
使用proteus软件设计的硬件电路包含了三个功能控制键和一个单片机复位按钮及蜂鸣器控制开关。具体如图2-4所示。
时钟电路与复位电路已在前边介绍,在此主要介绍端口电路,对于外显电路的设计我们采用四位数码管,事实上根据要求只用到三位,我们利用P1.4、P1.5、P1.6对数码管进行位选。对于按钮开关电路,我们利用P3.0、P3.1、P3.2分别作为开始、停止及清零功能的电路接口。对于声音提示我们采用喇叭装置,信号由P1.0口接入经过非门和驱动电源构成。
.
图2-4 硬件电路连接图
2.5.3 显示电路
显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用4个共阳极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。
在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。
图2-5 显示电路图
.
在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。电路图如2-5所示。
图2-6 发声电路
此外,为更好的让秒表读秒计数,显示电路还加了一个发声装置,图中喇叭会在每一秒响一次,每十秒停响一次。电路如图2-6所示。 2.5.4 键盘电路
在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用部分P3口做开关,P3.0启动,P3.1暂停,P3.2清零,电路图如2-7所示。
图2-7 键盘电路图
.
3 软件设计
3.1 程序设计 3.1.1 程序流程图
根据设计内容,可做出主程序流程图如图3-1所示。
开 始 初始化 N Y Y 有进位吗? Y 有暂停指令吗? 十秒位加一 N Y Y 有清零指令吗? N 有进位吗? N N 声音提示 0.1秒位加一 秒位加一 有进位吗? Y N
图3-1 主程序流程图