单片机 - 图文 联系客服

发布时间 : 星期一 文章单片机 - 图文更新完毕开始阅读69b86228e2bd960590c6775c

二、硬件设计

2.1硬件设计中的元件 2.1.1、AT89S51单片机简介

AT89S51单片机的内部功能模块包括并行口,串行口,中断系统、定时器/计数器、看门狗、ISP等。AT89S51单片机共有4个8位的并行双向I/O口,32位I/O线,每一位I/O线均由自身的输出锁存器、输出驱动器和输入缓冲器组成。4个I/O接口分别用特殊功能寄存器P0到P3给予命名,利用这四个接口很方便的实现CPU与外部芯片及外部设备的信息数据交换。在不需要外部系统功能扩展时,P0到P2口均可作通用的I/O信息通道,P3口也可作I/O口或第二功能用,在需外部扩展时,P0口为地址/数据分时复用接口,P2作高8位地址线用,由P3口和P2口组成16位地址总线,同时P0口又作为8位数据总线,P1口仅能作为通用I/O口用,此时P3口不能作I/O口,仅作为第二功能用。

AT89S51单片机的中断系统主要由5个中断入口、几个与中断有关的特殊功能寄存器(TCON、SCON的相关位作中断的标志位,中断允许控制寄存器IE,中断优先级控制寄存器IP)、中断顺序查询逻辑电路等组成。AT89S51单片机的结构图如图2.1 U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RST293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图2.1 AT89S51单片机的结构图

2.1.2、8255可编程并行接口芯片简介:

8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。8355A的硬件图如图2.2.

8

U3343332313029282753698356D0D1D2D3D4D5D6D7RDWRA0A1RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC78255A43214039383718192021222324251415161713121110 图2.2 8355A的硬件图

2. 2系统硬件结构图: U117161514131211102827262524232221P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT1P3.2/INT0P3.1/TXDP3.0/RXDP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD0AT89C51181714138743P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.087654321VCCR110kR210kC31uFEAALEPSEN313029U3R18R16R1510k10kR2110kR2010kR1710kR1910k10kR2210k10111213171615142524232221201918373839401234PC7PC6PC5PC4PC3PC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA08255A635893652728293031323334U2LEOE191615129652Q7Q6Q5Q4Q3Q2Q1Q074LS373D7D6D5D4D3D2D1D01113233343536373839RST9C1XTAL2181uFXTAL119X1CRYSTALC21uFCSRESETA1A0WRRDD7D6D5D4D3D2D1D0D3D1D2D6D5D4LED-YELLOWLED-REDLED-GREENLED-YELLOWLED-REDLED-GREENR2310kVCC 图2.3系统硬件结构图

2.3对硬件设计的描述:

课题要求51单片机及可编程并行接口芯片Intel8255A实现一个模拟交通灯系统。十字路口东西方向和南北方向各安装一组交通灯,其中东西方向红、绿、黄灯对应试验仪G6区发光二极管3、1、2;南北方向红、绿、黄灯对应试验箱G6区发光二极管4、5、6,一共需要六个发光二极管;此外双方都有对应的倒计时LED,因为倒计时有20s和5s,因此需要四个LED显示器,且采用动态显示的方法。因此,如上图所示,硬件设计采用8255A的PA口控制发光二极管,PB口控制LED显示器的显示位,PC口控制LED显示器的显示状态。外部中断采用键盘控制。

9

三、软件设计

3.1、系统的功能模块

本系统的功能模块如下: MCS-51单片机模块,8255A模块,LED显示器模块,二极管显示模块。系统的功能模块关系图如下:

锁存LED显示片选MCS—51单片机8255A扩张CPU的并行接口交通灯亮灭显示 图3.1功能模块关系图

3.2 各软件模块的实现过程: 3.2.1程序的初始化以及主程序的设计

先根据所给的片选地址计算出8255A各I/O口得地址,定义程序的起始入口地址,在主程序中,设置压栈地30H,因为本程序采用了外部中断,在主程序中设置外部中断0初始化。因8255A的三个I/O口A、B、C口都工作在输出状态,A口控制二极管发光的显示,B口控制LED显示管的字符控制信号,C口控制LED显示管的位控制信号,8255A采用方式一的工作,因此8255A的方式控制字为80H。 相应的程序代码:

PA_8255 EQU 0FFFCH PB_8255 EQU 0FFFDH PC_8255 EQU 0FFFEH

CON_8255 EQU 0FFFFH ORG 0000H AJMP START ORG 0003H AJMP INT_0 ORG 0030H START: MOV SP,#30H

SETB IT0 ;外部中断为下降沿触发 SETB EA SETB EX0

MOV DPTR,#CON_8255 MOV A,#80H ;写方式控制

MOVX @DPTR,A

相应的流程图:

开始初始化设定初值写控制方式字 10

3.2.2发光管的显示的设计

此部分按照四个状态变化循环,状态0:东西向绿灯亮,南北向红灯亮;延时20秒进入状态1;状态1:东西向黄灯亮,南北向红灯亮;延时5秒进入状态2;状态2:东西向红灯亮,南北向绿灯亮;延时20秒进入状态3;状态3:东西向红灯亮,南北向黄灯亮;延时5秒进入状态0,状态0的字型码为F6H,状态1的字型码为F5H, 状态2的字型码为EBH,状态4的字型码为BDH。延时的时间需要调用延时子程序来实现。

相应的程序代码:

LOOP0: MOV DPTR, #PA_8255 ;状态一:东西红灯,南北绿灯,延时20s MOV R2, #0F6H MOV A,R2

MOVX @DPTR,A MOV R7,#20 LCALL DELAY

LOOP1: MOV DPTR, #PA_8255 ;状态二:东西红灯,南北黄灯,延时5s MOV R2, #0F5H MOV A,R2

MOVX @DPTR, A MOV R7,#5 LCALL DELAY

LOOP2: MOV DPTR, #PA_8255 ;状态三:东西绿灯,南北红灯,延时20s MOV R2, #0EBH MOV A,R2

MOVX @DPTR, A MOV R7,#20 LCALL DELAY

LOOP3: MOV DPTR, #PA_8255 ;状态四:东西绿灯,南北黄灯,延时5s MOV R2 , #0DBH MOV A,R2

MOVX @DPTR,

MOV R7,#5

LCALL DELAY

SJMP LOOP0相应的流程图:

将状态0送入PA口调用DELAY子程序实现20s将状态1送入PA口调用DELAY子程序实现5s将状态2送入PA口调用DELAY子程序实现20s将状态3送入PA口调用DELAY子程序实现5s

11