中北大学2010届毕业设计说明书 当执行内部编程指令时,EA应该接到VCC端。 ·XTAL1:振荡器反相放大器以及内部时钟电路的输入端。 ·XTAL2:振荡器反相放大器的输出端。 ·Vcc—电源电压输入端。 ·GND—电源地。 AT89S51单片机内部看门狗定时器介绍 89S51看门狗定时器一个14位计数器和一个看门狗复位WDTRST,地址是0A6H。WDT在单片机复位后的默认状态是关闭的,必须由程序激活后才开始工作,因此必须保持单片机有可靠的上电复位,否则看门狗将无法工作。由于89S51的看门狗定时器只是一个14位的计数器,如果要避免89S51在程序正常运行时产生复位信号,必须在16383个时钟周期内至少喂狗一次。而且这个时间是固定的无法更改。如果单片机的晶振频率是12MHZ,则每隔16S需要喂狗一次。由于WDT作用的是单片机的晶振,当晶振停振时,看门狗也随之失效[18][19]。 3.3 端口分配 P0口:
(1)作I/O口使用时,是一个准双向口,需要外加上拉电阻,特点是:当某引脚由原来的输出变为输入时,用户应先向锁存器写“1”,以免错误读出引脚上的内容。当复位时,口锁存器均自动置“1”,即输出驱动器(VT2)已截止,P0口作为输入口使用。
(2)作为地址/数据总线口使用时,是一个真正的双向口,不需要做任何的工作。 P1口:
是一个标准的准双向口,只能作为通用I/O口使用。作为输出时无需外接上拉电阻;当其作为输入时,同样也需要先向其锁存器写“1”,使输出驱动截止, P1口为输入端口。
可作为I/O口和高8位地址线A8~A15输出口。P2口比P1口多了一个多路开关MUX,当P2口作为通用的I/O口使用时,硬件置开关NUX倒向锁存器的Q端是一个准双向口。复位时,口锁存器均自动置“1”,即输出驱动器已截止,P2口可作为输入使用。当开关NUX倒向地址端时,P2输出高8位段地址A8~A15,用于寻址
第 11 页 共 36 页
中北大学2010届毕业设计说明书
外接的存储器和I/O口,这时不能再作为并行的I/O口使用。 P3口:
P3口是一个双功能口,分第一功能和第二功能。
当作为第一功能使用时,由内部硬件自动将第二功能输出线W置“1”,这时P3口作为通用I/O口,与P1口类似,是一个准双向口。复位时,口锁存器均自动置“1”,即输出驱动器截止,P3口作为输入口使用[20]。
当作为第二功能使用时,P3口同时具有AT89C51的多种特殊功能,具体如表3.2所示:
表3.2 P3口的第二功能 端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD (串行输入口) TXD(串行输出口) INT0 (外部中断0) INT1(外部中断1) T0(定时器0) T1(定时器1) WR(外部数据存储器写选通) RD(外部数据存储器都选通) 3.4详细电路设计 3.4.1 复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。复位后PC=0000H使单片机从第一个单元取指令。在实际应用中,无论是在单片机刚开始接上电源时,还是在断电或者发生故障以后都要复位。所以必须弄清楚MCS-51系列单片机的复位条件,复位电路的复位后状态,单片机的复位条件是在RST/UPD或RST端子上持续两个机器周期(即24个振荡周期)的高电平,如果时钟频率为12MHZ没个机器周期为1us,则只要2us以上的高电平时
第 12 页 共 36 页
中北大学2010届毕业设计说明书
间就能复位。当MCS-51系列单片机的复位端子RST两个机器周期以上的高电平时,单片机执行复位操作,完成对CPU的初始化处理,复位操作是整个应用系统运行前必须进行的一个环节。但是如果RST持续为高电平,单片机就处于循环复位状态,无法执行用户的控制程序[21]。
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位[22]。单片机系统的复位方式有:手动/自动按钮复位和上电复位。单片机采用上点自动复位电路,如下图所示,在通电的瞬间,由于电容两端电压不能突变,故在RST端的电位与Vcc相同;随后C通过R充电,充电电流逐渐减少,RST端的电位也逐渐下降,只要保证RST为高电平的时间大于两个机器周期,便能恢复正常。
常用的上电复位电路如图3.3所示:
图3.3 上电自动复位电路
3.4.2 时钟电路
时钟电路是单片机的心脏,它控制着计算机的工作节奏,CPU就是通过复杂的时序电路完成不同指令功能的。89S51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,利用芯片内部反相器和电阻组成的振荡电路,在XTAL1和XTAL2引脚上跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,形成单片机的时钟电路,可稳定频率并对振荡频率有微调作用。每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里
第 13 页 共 36 页
中北大学2010届毕业设计说明书
晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。晶振的作用是为系统提供基本的时钟信号[23]。本设计中取晶体振荡器的频率fOSC?12MHZ,电容C1、C2的主要作用是帮助振荡器起振,其值的大小对振荡器的频率有微调作用,典型值为C1=C230pF。
图3.4 内部时钟方式电路图
3.4.3 驱动电路
单片机与LED显示器的接口电路中,要是LED数码管正常发光,显示器驱动芯片也很重要。采用动态显示方式编写软件时,应选合适的延时时间,如果时间不合适,LED将会不停闪烁,这时可以适当调整延时常数即可解决问题。选择合适的驱动芯片以保证足够的显示亮度驱动电路如图3.5示。
用12只发光二极管模拟交通信号灯,以AT89S51单片机的P1口控制这12只发光二极管,由于单片机带负载能力有限,因此在P1口与发光二极管之间用74LS07作驱动[24]。
第 14 页 共 36 页
中北大学2010届毕业设计说明书
图3.5 驱动电路
图3.6 74LS07引脚图
第 15 页 共 36 页