微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 简述C51单片机并行口扩展设计及应用

简述C51单片机并行口扩展设计及应用

时间:02-18 来源:3721RD 点击:

1 引言

MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。但如是对一般的系统而言,这些功能往往闲置不用。那么就可以选用一些本来闲置不用的口线作为选通信号来进行并行口的扩展,这样就能充分利用单片机有限的i/o资源,在本设计中是将p1口扩展成一个或几个8位并行口,在每一个八位口上接入8个发光二极管做为输出,二极 管是做开关量来使用的,在这里设计了跑马灯和流水灯程序,做到对开关量的开断控制;配合开关量的控制笔者设计了一个共阳led数码管,用来显示当前发光二极管发亮的序号,做到更加直观的双重控制效果,然后再将p0口通过d/a转换器和一放大器输出一个模拟信号,其结果可以通过示波器看出。这样整个系统即有 了数字信号输出和模拟信号输出,也有数码管显示功能,实用性能大提高了。

2 基于89c51的系统硬件设计

2.1 并行口的扩展的电路设计

AT89C51是一种带4K字节FLASH存储器(FPEROM- FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。 AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度 非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的 AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

众所周知,c51系列的单片机都有四个i/o口(p0、p1、p2、p3),那么at89c51也不例外,但我们通常仅仅使用p1口作为并行 口,而令其余口(p2、p3)处于闲置状态,所以这次设计,我们就是使用闲置不用的p3口做为选能信号线来将p1口进行并行口扩展。

(1) 种方式的并行口扩展优点

  连线简单;

  不占用存储器空间;

(2) 编程也方便灵活。但也有很大的缺点

并行口扩展能力有限,(如使用74ls573(74ls373)且不进行驱动处理,则最多可扩展4个同样类型的并行输出端口,当然还需要与之对应的四个选通信号。)

如扩展较多,选通信号占用并行口位数太多,例如欲扩展8个并行输出端口,则需要8个选能信号,此时,仅选能信号就占用了一个8位并行口,这对在 i/o端口线有限的单片机系统中,如此浪费资源的现象是不能容忍的。在本次的设计中,采用芯片74hc573(带三态输出的八进制透明d型锁存器)对p1 口进行了一个8位并行口的扩展,选通信号选用p3口的p3.3引脚。原理图如图1所示:



图1 pi口扩展电路

2.2 拟信号输出的电路设计

数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网 络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数 字信号的器件。最常见的数模转换器是将并行二进制的数字量转换为直流电压或直流电流,它常用作过程控制计算机系统的输出通道,与执行器相连,实现对生产过 程的自动控制。数模转换器电路还用在利用反馈技术的模数转换器设计中。

模拟信号的输出需要用到d/a转换器,这里我使用最常用的8位的d/a转换器dac0832来转换数字电压信号。因dac0832是并行d/a转换集成电路, 其输出为电流型,在使用时,必须额外增加一个运算放大器,才能得到电压信号,在本次电路中使用了1个lm741放大器来放大信号输出,lm741是一个普通的单操作的放大器,具有输入电压范围大,短路电压保护,高增益和不需频率补偿等优点。dac0832的片选端口与单片机的p2.2相连,xfer和 wr2接地,使之一直处于使能状态,即输入数据寄存器中的数字信号可直接转换为模拟信号。d/a转换电路的输出是一个周期的正弦波,通过外接示波器可以清淅的看到。另外模拟信号的输出引在一个外接端子上,可以与其它系统相连接,做到通用性的效果。d/a转换原理图如图2所示:



图2 d/a转换

2.3 静态数码管显示的电路设计

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十

上一篇:STM32之通用定时器
下一篇:STM32F之RTC

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top