C51单片机并行口扩展的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第27卷第4期 辽 宁 工 学 院 学 报 V ol.27,No.4
2007年 8 月 Journal of Liaoning Institute of Technology Aug.
2007
收稿日期:2006-12-11
作者简介:郭延锋(1971-),女,河北涞源人,讲师。

C51单片机并行口扩展的设计与实现
郭延锋,王 昊,张 军
(辽宁工业大学 计算机科学与工程学院,辽宁 锦州 121001)
摘 要:介绍了C51单片机的基本功能,C51单片机有4个I/O 口,但真正可供用户使用的并行口,只有P1口。

在此基础上以实例的方法介绍了一种C51单片机并行口的扩展方法,详述了其原理和设计思想,以此来满足较复杂的应用系统的使用。

关键词:选通信号;并行口;模拟信号
中图分类号:TP368 文献标识码:B 文章编号:1005-1090(2007)04-0242-02
Design and Realization of C51 Singlechip
Parallel Interface Expanded
GUO Yan-feng, WANG Hao, ZHANG Jun
(Computer Science & Engineering College, Liaoning University of Technology, Jinzhou 121001, China )
Key words: strobe signal; parallel interface; analog signal
Abstract: The basic function of C51 singlechip having 4 I/O interfaces was described. However, only P1 can be used as a parallel interface. Moreover, a sort of expanding method of parallel interface for C51 singlechip was presented based on the examples. Its principle and design idea were specified in detail so as to satisfy still more complicated application system.
C51单片机是最常用的系列,MCS -51系列单片机有4个I/O 口(P0、P1、P2、P3口),但对一个稍微复杂的应用系统来说,真正可供用户使用的并行口,只有P1口可用,用户不得不扩展并行口以满足实际的需要。

本文介绍的方法是将P1口扩展成一个或几个8位并行口,在每一个8位口上接入8个发光二极管作为输出,二极管是做开关量来使用的,在这里设计了软件程序,做到对开关量的开断控制。

为配合开关量的控制本文设计了两个共阴极LED 数码管,用来显示当前发光二极管发亮的序号,做到更加直观的双重控制效果,然后再将P0口通过D/A 转换器和一放大器输出一个模拟信号,其结果可以通过示波器看出。

这样整个系统既有数字信号输出和模拟信号输出,也有数码管显示功能,具有很强的实用性。

1 基于89C51的系统硬件设计
1.1 并行口扩展的电路设计
AT89C51单片机有4个I/O 口(P0、P1、P2、P3),通常仅使用P1口作为并行口,而令其余口(P2、P3)处于闲置状态,所以本文就是使用闲置不用的P2口作为选通信号线来将P1口进行并行口扩展。

这种扩展并行口的方式,连线简单,不占用存储器空间,编程也方便灵活。

在本文的设计中,采用芯片74HC573(带三态输出的八进制透明D 型锁存器)对P1口进行了一个8位并行口的扩展,选通信号选用P2口的P2.2引脚。

1.2 模拟信号输出的电路设计
模拟信号的输出需要用到D/A 转换器,本文使用最常用的8位D/A 转换器DAC0832来转换数字电压信号。

因DAC0832是并行D/A 转换集成电路,
第4期 郭延锋等:C51单片机并行口扩展的设计与实现
243
图1 硬件电路图
其输出为电流型,使用时必须额外增加一个运算放大器才能得到电压信号,在本次电路中使用了1个LM741放大器来放大信号输出,LM741是一个普通的单操作放大器,具有输入电压范围大、短路电压保护、高增益和不需频率补偿等优点。

DAC0832的片选端口与单片机的P3.3相连,XFER 和WR2接地,使之一直处于使能状态,即输入数据寄存器中的数字信号可直接转换为模拟信号。

D/A 转换电路输出一个周期的正弦波,通过外接示波器可以清晰地看到。

另外模拟信号的输出引在一个外接端子上,可以与其他系统相连接,做到通用性的效果。

1.3 静态数码管显示的电路设计
数码管显示器是各种仪器设备不可缺少的重要部件,是人—机对话的一种重要形式,显示机器的运行状态、数据处理结果,提示操作人员下一步要进行的操作等。

按照显示方法的不同,可分为静态显示和动态显示两种,本文所设计的电路是属于静态显示,是两位静态数码管显示,其主要的功能是显示当前发光LED 的序号,比如如果当前是L1灯亮,数码管将显示11,若是L2灯亮,数码管显示22字样等。

电路的设计使用2个8位的移位寄存器(74HC164),2个七段的LED 数码管(共阴极的)和2个8×330 Ω的电阻构成。

静态数码管显示的优点在于编写程序相对比较简单,一旦将欲显示的数据发送出去,只要当前显示的数据没有变化,就无须理睬它。

不足之处在于,如果显示的位数太多,硬件的开销和电源的功耗问题将会很严重。

1.4 复位部分的电路设计
本电路的复位电路用一个复位芯片MAX706P 来设计,并带有复位按钮一个。

复位是低电平有效的,有手动复位按钮,当程序跑飞或无响应时可以
选用手动复位。

复位信号来自于CPU 的P2.0口。

2 软件部分设计与应用
P1口的8位控制8个开关LED 指示灯,程序实现了对这8个指示灯的开关跑马控制,实验程序可以编写从L1至L8的循环发亮,在每个发光二极管发光的同时,数码管显示当前发亮LED 的序号,如11、22、33等。

也可让每个二极管闪烁,规定闪烁时间为0.5 s 或更长,然后再在每个LED 指示灯闪烁的同时,让LED 数码管显示当前闪烁的指示灯的序号,如L1灯闪烁时,数码管显示11字样;L2灯闪烁时,数码管显示22字样等等。

在数模转换这一子函数的编写上,是使用指针数组来编写的,DAC0832是实现D/A 转换的芯片,实现的功能是输出一正弦波模拟信号,当在端子口接一示波器时,示波器将输出一正弦波图形。

部分程序如下: AGAIN: MOV P1,A MOV 20H,A LCALL DELAY CHECK: MOV P2,#0FFH MOV A,P2 ANL A,#0FH
CJNE A,20H,AGAIN AJMP CHECK
3 结束语
并行口的扩展能力有限,如使用74LS573 (74LS373)且不进行驱动处理,则最多可扩展4个同样类型的并行输出端口,当然还需要与之对应的4个选通信号。

如扩展较多,选通信号占用并行口位数太多,例如欲扩展8个并行输出端口,则需要8个选通信号,此时,仅选通信号就占用了一个8位并行口,这对在I/O 端口线有限的单片机系统中,如此浪费资源的现象是不能容忍的。

本系统设计比较适合于在小型系统中应用。

参考文献:
[1] 刘德营. 单片机原理及接口技术[M]. 北京: 中国水利水
电出版社, 2006.
[2] 曹天汉. 单片机原理及接口技术[M]. 北京: 电子工业出
版社, 2006.
[3] 徐建军. MCS -51系列单片机应用及接口技术[M]. 北京:
人民邮电出版社, 2003.
[4] 周立功. 单片机与CPLD 综合应用技术[M]. 北京: 北京
航空航天大学出版社, 2003. 责任编校:孙 林。

相关文档
最新文档