您的位置: 旅游网 > 网红

AT89S51單片機并行IO端口的擴展

发布时间:2019-11-08 21:26:12

AT89S51单片机并行I/O端口的扩展

单片机面向工业控制领域,控制功能强,在工业测控系统、智能仪表、智能通信产品、智能家用电器和智能终端设备等领域得到广泛应用最常用的80C51系列单片机有4个并行端口(P0,P1,P2,P3端口),但对稍复杂的应用系统,真正可供用户使用的并行端口只有P1端口,且常因扩展I2C和SPI的器件需占用P1端口,迫使用户不得不扩展并行端口以满足实际需要

这里研究80C51系列单片机中的AT89S51并行I/O端口的扩展,采用并行可编程接口器件Intel 8155扩展并行I/O端口,并在扩展的I/O端口上实现数码管动态显示

2 系统设计

2.1 系统硬件设计

Intel 8155与AT89S51接口方法(图1):P0接8155的地址数据线AD0 AD7;单片机的ALE接8155的ALE;8155的CE与单片机的 P2.6相连接;8155的复位线RESET与单片机复位线RESET相连接;8155的RD和WR与AT89S51的RD和WR一一对应相连;IO/M 和P2.7相连

为节省I/O端口线,常使用数码管动态显示方式将所有数码管的a,b,c,d,e,f,g,sp引线并联在一起,由一个8位I/O端口控制,而公共端由另一个I/O端口控制动态方式显示时,各数码管分时轮流选通,在某一时刻只选通一位数码--管,并送出相应的段码,在另一时刻选通另一位数码管并送出相应的段码依此规律循环,即可使各位数码管显示将要显示的字符虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可给人以同时显示的感觉

Intel 8155的PB0~PB7接3个共阴极数码管的a dp引脚,PA0~PA2接3个共阴极数码管的com端,B端口送段码.A端口送位选通;共阴极数码管的a dp引脚分别接上拉电阻以提高数码管显示的亮度系统硬件电路如图1所示

2.2 系统软件设计

系统软件采用汇编语言编写,设计原理为LED数码管动态扫描,8155初始化设置A端口,B端口为输出端口,R5中查表项数为0,R3中为位选通码,采用查表法查出段码,送至8155的B端口,LED数码管位选通码送至A端口,延时,在最左边的数码管上显示0;查表项数加1,位选通左移,查出段码送至8155的B端口,位选通码送至A端口,延时,在中间的数码管上显示1,3个数码管轮流显示循环往复图2为软件流程

3 设计及调试

3.1 单片机最小系统

单片机最小系统是指用最少的元件组成的单片机可以工作的系统对于80C51系列单片机,最小系统一般应包括:单片机、晶振电路、复位电路、显示输出等

3.1.1 最小系统电路的组成

图3为单片机最小系统电路图,其组成有:

(1)单片机:1片AT89S51;(2)晶振电路:典型的晶振取12 MHz,C2和C3选用30 μF的电容;(3)复位电路:具有上电复位和手动复位功能的复位电路,由电容串联电阻并在电容上并接复位按键构成,由图3并结合“电容电压不能突变”的性质,可知,当系统上电或复位键按下后,RST引脚均会出现高电平,高电平持续时间由电路的RC值决定典型的51单片机当RST引脚的高电平持续2个机器周期以上将复位所以,适当组合RC的取值就可保证可靠复位设计中C1取10μF,R2取1 kΩ;(4)对于31引脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的 0000H开始执行此设计将程序烧写到AT89S51内部ROM中,因此,31引脚(EA/Vpp)接高电平(5)为在P1端口实现LED灯显示, P1.7端口上外接发光二极管,发光二极管接3.6 kΩ的上拉电阻

3.1.2 单片机最小系统的调试

对单片机最小系统进行测试:将P1.7引脚所接的LED二极管闪烁程序代码烧写到AT89S51单片机片内ROM中,在单片机最小系统电路板上插上单片机,接通电源,若发光二极管闪烁则说明最小系统电路工作正常,反之则需要检查错误

3.2 系统电路的调试

3.2.1 调试方法

在最小系统电路中按照图1完成并行I/O端口扩展的系统硬件电路编写系统软件程序并在Keil C软件环境下编译、连接、调试程序,修改错误用ISP编程器将实验程序代码写入AT89S51单片机片内ROM中在单片机系统硬件电路板上插上单片机,开机运行,若3个数码管依次显示“0”、“1”、“2”,则说明系统工作正常

3.2.2 调试中出现的问题及原因

在调试初期,由于未考虑8155复位比单片机复位慢,一开始未加100 ms延时程序,系统运行时出现3位数码管显示均为“8.”为找出发生此现象的原因,将数码管改由AT89S51单片机P1口送段码,P2口送位选通,将动态显示的程序做相应修改,调试通过后用ISP编程器将代码写入AT89S51单片机片内ROM中,开机运行,3个数码管动态显示“0”、“1”、 “2”此实验现象说明8155器件工作不正常按照图1连线,核实连线及端口地址无误后,再次用ISP编程器将实验程序代码写入AT89S51单片机片内ROM中,开机运行,3个数码管显示均为“8.”此现象说明8155器件工作不正常的原因不是硬件电路的问题研究8155的特性参数后发现8155 复位比单片机复位慢,在系统初始化时存在时差在系统复位后应加100 ms的延时,以保证8155完成复位工作在设计实验程序开始加100 ms延时程序,将实验程序代码写入AT89S51单片机片内ROM中,开机运行,3个数码管动态显示“0”、“1”、“2”,达到设计目标

4 结论

通过AT89S51与Intel 8155器件接口实现了并行I/O端口的扩展,实现了3个数码管动态显示由实验可知,采用8155扩展并行I/O端口方便、实用、成本低、且扩展的FO 端口可编程由于Intel 8155内部自带256B的SRAM和一个14位的加1计数器,因此在单片机外扩展8155不仅增加了并行I/O端口,同时丰富了SRAM与计数器等资源值得注意的是8155复位比单片机复位慢,在程序开始应加延时程序,调整系统初始化时,应调整Intel 8155和单片机的复位时差

远大医药立可安治疗腹泻怎么样
生物谷药业
急性心力衰竭的诱发因素
猜你会喜欢的
猜你会喜欢的