当前位置: 首页 > 范文大全 > 公文范文 >

一种51单片机分时控制片外设备的实现方法

时间:2022-03-22 09:12:30  浏览次数:

摘 要:从硬件电路设计和软件程序设计2个方面论述了51单片机在外部设备多样化且开发板空间有限的情况下,利用I/O控制口,通过译码器芯片进行扩展,同时改变编程方式,进一步简化程序设计,从而实现对外部设备的分时控制。借助该方法可使用较少的I/O口,分时控制较多的外部设备,进而优化开发板的资源布局,提高其空间利用率。

关键词:51单片机;多样化 ;I/O控制 ;译码扩展 ;分时控制 ;空间利用率

中图分类号:TP23 文献标识码:A 文章编号:2095-7394(2018)02-0069-04

单片机是一种把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、中断系统、定时器/计数器以及I/O接口电路等集成在一块芯片上的微型计算机。单片机有很多种。[1-3]基于51内核的单片机,简称51单片机。做过51单片机相关项目开发工作的电子爱好者都知道,很多情况下需要利用I/O口即通常所說的引脚来产生各种控制信号以驱动外部设备工作。例如,8位LED灯、数码管、LCD1602和LCD12864等外部设备都需要P0口发送或接收8位二进制数据信息,如果开发板上所有使用8位二进制数据信息的外部设备都与P0口相连接,那么此时将无法确定这些数据信息该驱动哪个外部设备,若将外部设备和51单片机配置在一块空间有限的开发板上时,也很难利用较少的I/O口控制多个外部设备,这样就不能有效地提高I/O口的利用率。

给出了一种51单片机分时控制外部设备的实现方法。通过译码器芯片对I/O口进行扩展,利用所产生的有效电平信号使能外部设备的前置锁存器片选端,从而确定数据信息的流向,实现对外部设备的分时控制,同时提高I/O口的利用率,优化开发板的资源布局。该方法已通过实际应用于开发板的设计当中,并验证其稳定性。

1 I/O控制

51单片机有4个8位并行I/O接口,即P0口、P1口、P2口和P3口。P0口为三态双向口,每个口可独立控制,内部无上拉电阻,呈高阻态,不能正常地输出高/低电平信号,因此该组I/O口在使用时务必要外接上拉电阻,一般接入阻值为10KΩ的排阻即可,同时该口既可作输入/输出口使用,又可作数据/地址总线使用,这里将P0口用作数据总线口,与外部设备之间进行数据信息的交换。P1口、P2口和P3口相似,以P2口为例介绍。P2口为准双向I/O口,每个口也可以独立控制,与P0口不同的是内接有上拉电阻,可以正常地输出高/低电平信号,同时该口既可作地址总线口使用,又可作输入/输出口使用,这里将P2口用作输出控制口,向外部设备发送控制信号。

2 外部设备的多样化

目前市场上所售的单片机开发板,种类丰富,板载资源较多,有独立按键、矩阵键盘、8位LED灯、数码管、超声波测距、红外探测、AD/DA转换、蜂鸣器和继电器等模块。[4-6]这些模块性质复杂,数量较多,但具有良好的应用系统模拟功能,正因为这一点,为了实现对多样化外部设备的分时控制,合适的开发板设计方案变得越来越重要。

3 译码器

3.1 译码器工作原理

如图1所示,74138译码器芯片为二进制译码器芯片,即3线—8线译码器,该芯片有3个输入端A、B、C,3个附加端G1、G2AN、G2BN和8个输出端Y0N—Y7N。由表1可知,当G1=1、G2AN+G2BN=0时,译码器处于正常工作状态,否则译码器被禁止,所有的输出端均被封锁在高电平。例如,当译码器正常工作时,如果CBA=101,那么此时Y5N输出端将输出有效的低电平信号,其他情况类推,这样在每个输出端就可得到不同的低电平有效信号。[7-8]

3.2 译码器扩展

如图2所示,第一片74138的G2AN、G2BN附加端和第二片74138的G1附加端相连作为第一个地址输入端,同时令第二片74138的G2AN=G2BN=0,这样4个地址输入端可分别与P2口高四位相连。同理,当P2^7~P2^4= 0000~1111时,S0~S15这16个输出端将分别输出有效的低电平信号,以实现4线—16线扩展。

4 外部设备分时控制的实现

如图3所示,该电路为8位LED灯显示驱动电路,74573锁存器作为LED灯显示的驱动芯片,具体连接方式为74573锁存器芯片的D1~D8输入端与51单片机的P0^0~P0^7相连,输出端直接与LED显示电路连接,VCC和GND默认。上文提到单个74138译码器芯片或者多个74138译码器芯片经过扩展均可产生外部设备所需的控制信号,这些控制信号的目的地就是74573锁存器芯片的LE片选端,例如当P2^7~P2^4=1 101时,第二片74138的Y5N输出端就会产生有效的低电平信号,该控制信号即图.3中的S13经反相器取反后将作为74573芯片工作的片选信号。这样设计电路的好处在于只需利用所产生的控制信号让某个外部设备的锁存器驱动芯片LE端使能,打开锁存器的大门,P0口数据随之就会通过74573锁存器芯片进入外部设备,该外部设备就能够正常工作。

在这里需要强调一点,与该例子相似,其他的外部设备也需要前置74573锁存器驱动芯片,这样译码器芯片所产生的有效控制信号就可作为打开某个外部设备驱动大门的钥匙,之后P0口发送的8位二进制数据信息就能有方向、有目的地通过锁存器芯片进入某个外部设备,从而使该外部设备正常工作,继而实现对众多外部设备的分时控制。当然,此时外部设备之间就不会产生8位二进制数据信息究竟该流向谁的冲突。

5 开发板空间利用率的提高

随着信息电子技术的发展,一个开发板资源布局方案的好坏直接影响着电子生产厂家的经济效益,所以开发板设计是否合适的问题受到越来越多生产厂家的重视。这一设计方案,能够对开发板上的设备进行合理布局,有效地利用开发板的空间,从而提高开发板的空间利用率,使得板载资源更加丰富成为一种可能。更重要的是,与之前老套的设计方案相比,这样设计开发板能够大大降低成本,提高经济效益,助力开发板设计的进一步发展。

下面运用硬件设计方案,从软件程序设计的角度,给出51单片机分时控制外部设备的实现方法(以8位LED灯和8位数码管显示为例)。

#define uchar unsigned char //数据类型宏定义

#define uint unsigned int

/******************************延时模块******************************/

void delayxms(uint time)

{

uint i,j;

for(i=time;i>0;i--)

for(j=0;j<110;j++);

}

/********************************************************************/

/************************共阳极LED灯闪烁模块************************/

void led(void)

{

P2 = ((P2&0x0f)|0xd0); //LED驱动芯片使能

P0 = 0xff; //熄灭全部的LED灯

P2 &= 0x0f; //关闭LED驱动芯片

delayxms(1000); //延时1s

P2 = ((P2&0x0f)|0xd0); //LED驱动芯片使能

P0 = 0x00; //打开全部的LED灯

P2 &= 0x0f; //关闭LED驱动芯片

delayxms(1000); //延时1s

}

/********************************************************************/

/*********************共阳极数码管动态扫描显示模块*******************/

uchar smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};//断码0—7

void smgx(void)

{

uint i;

for(i=0;i<8;i++)

{

P2 = ((P2&0x0f)|0x70); //数码管位选驱动芯片使能

P0 = (1<

P2 &= 0x0f; //关闭断数码管位选驱动芯片

P2 = ((P2&0x0f)|0xb0); //数码管段选驱动芯片使能

P0 = smg[i]; //数码管动态断码显示

P2 &= 0x0f; //关闭数码管断选驱动芯片

delayxms(10); //数码管显示稳定

}

}

/********************************************************************/

6 结语

利用51单片机的I/O扩展电路,通过对P2口高四位进行编程处理,轻松实现对多个外部设备的分时控制,不仅优化了板载资源的布局,也进一步提高了I/O口的利用率。此方法已实际应用于2017年全国大学生电子设计大赛安徽工业大学省级选拔赛的电路设计当中,经验证其工作稳定,这里特别感谢为该设计方案做出突出贡献的竞赛组成员。相信随着信息电子技术的不断完善和发展,這种性能可靠的开发板设计方案会得到广泛的应用。

参考文献:

[1] 阎石.数字电子技术基础[M].北京:高等教育出版社,2005:174-178.

[2] 皮大能.单片机原理与应用[M].西安:西北工业大学出版社,2017.

[3] 郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009.

[4] 张毅刚.单片机原理及应用[M].北京:高等教育出版社,2003.

[5] 付家才.单片机控制工程实践技术[M].北京:化学工业出版社,2004.

[6] 沙占有.单片机外围电路设计[M].北京:电子工业出版社,2007.

[7] 王建校.C51系列单片机及C51程序设计[M].成都:巴蜀书社,2002.

[8] 宏晶科技.STC12C5A60S2系列单片机器件手册[EB/OL].(2012-02-24)[2018-03-05]https://wenku.baidu.com/view/50ec898c6529647d272852e8.html.

An Implementation Method of Off Chip Device for 51 MCU Time Sharing Control

YUAN Xiang-ping, TANG De-zhi, YANG Ying-nan

(School of Electrical and Information Engineering, Anhui University of Technology, Ma"anshan 243000, China)

Abstract: This paper, from the hardware design and software design, discussed that under the circumstances of diversified external devices and limited development board space, through I/O ports, 51 single chip microcomputer can extend through the decoder chip, change the programming way, further simplify the program design, so as to realize the time-sharing control of external devices. With the help of this method, we can use less I/O port and control more external equipment in time, and then optimize the resource layout of the development board and improve the utilization ratio of space.

Key words: 51 single chip microcomputer; I/O control; decoding extension; time sharing control; space utilization ratio;diversification

责任编辑 张志钊

推荐访问: 单片机 外设 控制 方法