第二章 硬件电路设计1Word文档格式.docx
《第二章 硬件电路设计1Word文档格式.docx》由会员分享,可在线阅读,更多相关《第二章 硬件电路设计1Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
![第二章 硬件电路设计1Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/25/40e7a5a7-cc40-40b3-ad3b-3c2159f78809/40e7a5a7-cc40-40b3-ad3b-3c2159f788091.gif)
●5个中断源,分为2个中断优先权;
●32个I/O端口,可按位寻址;
●2个16位定时/计数器;
●1个全双工串行通信接口;
●片外数据和代码各有64KB寻址空间;
●有内置的时钟振荡器。
一AT89C51引脚及功能
AT89C51单片机采用40引脚双列直插封装(DIP)。
其引脚图见下图所示
下面分别说明40条引脚的功能。
1电源、引脚、VCC和GND
GND:
接地
VCC:
主电源+5V,正常操作和对EEPROM编程及验证时均接+5V电源。
2外接晶振引脚XTAL1和XTAL2
一个反相放大器的输入端,这个放大器构成了片内振荡器。
当采用外部振荡器时,对HMOS单片机,此引脚接地;
对CMOS,此引脚应悬浮。
而XTAL2在单片机的内部,接至上述振荡器的反相放大器的输出端。
对HMOS,该引脚接接收振荡器的信号,对CMOS,此引脚应悬浮。
本系统所接晶振为12MHZ。
3控制信号引脚RST、ALE/PROG、PSEN和EA/VPP
RST:
单片机复位引脚。
刚接上电源时,其内部各寄存器处于随机状态,在引脚上输入两个机器周期的高电平使单片机复位。
ALE/PROG:
地址锁存/编程脉冲输入引脚,当访问片外存储器时,ALE率1/6周期性地输出正脉冲信号。
因此,它可以作为对外输出的时钟,或用于定时的目的。
当访问片位数据存储器时,ALE会丢失一个信号周期。
我们用ALE作为8279的时钟输入,为使它更准确,我们用硬件电路把这个正脉冲补充上如图:
PSEN:
输出访问片位程序存储器的读选通信号。
CPU在有片位程序存储器取指令(或常数)期间,为各机器周期两次有效。
每当访问片外数据存储器时,这两次有效的PSEN信号将不会出现。
EA/Vpp:
程序存储器访问标志/编程电压输入,当EA输入高电平时,CPU可访问片内4KB的地址范围的程序存储器,若PC值超出4KB地址时,将自动转向片位程序存储器。
当EA输入低电平时,则只能访问片外程序存储器,不论片内是否有程序存储器。
当进行编程时,此引脚用于施加编程电压Vpp。
4输入/输出引脚P0、P1、P2、P3
P0:
P0口是是三态双向口,只有该口能直接用与对外部存储器的读/写操作,它还可以输出外部存储器的低8位地址。
P0能以吸收电流的方式驱动8个LSTTL负载。
P1:
P1口是一个带内部上拉电阻的8位准双向口。
P1能驱动4个LSTTL负载。
P2:
P2口也是一个带内部上拉电阻的8位准双向口。
在访问外部存储器时,由它输出高8位地址。
P2可以驱动4个LSTTL负载。
P3:
P3口也是一个带内部上拉电阻的8位准双向口。
这8个引脚还用于专门的第二功能,如下表:
P3口各位线与第二功能表
口线
第二功能
P3.0
RXD(串行口输入)
P3.1
TXD(串行口输出)
P3.2
/INT0(外部中断0输入)
P3.3
/INT1(外部中断1输入)
P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
/WR(片外数据存储器写选通)
P3.7
/RD(片外数据存储器读选通)
二:
AT89C51组成的最小系统介绍
单片机应该是一个最小的应用系统,但由于应用系统中有一些功能期间无法集成到芯片内部,如晶振、复位电路等,需要在片外加相应的电路。
另外,对于片内无ROM/EPROM的单片机,还应该配置片外程序存储器。
1晶振电路部分
如下图为89C51与片外时钟电路构成的12MHZ的晶振电路。
CPU的基本时钟是一个振荡器产生的,它用来生成同步控制信号并对内部的所有通信操作进行同步。
这些通信都是通过数据总线和地址总线进行的。
时钟可以通过内部振荡器方式和外部振荡器方式两种方式产生。
这里的电容C1、C2都选用30pF。
产生12MHZ的时钟频率。
89C51的机器周期是由12个时钟信号组成,被分成6个状态,成为S1~S6,每个状态分为节拍,即P1和P2,所以,可以对一个机器周期的12个时钟周期编号为S1P1、S1P2、。
。
S6P2。
MCS—51单片机还能为其它系统芯片提供时钟。
2复位电路
如图所示为一个简单实用的上电复位和手动复位电路。
电源刚上电时,AT89C51处于复位状,RESET为高电平使芯片复位。
为使芯片初始化正确,一般应保证RESET为高至少2个机器周期。
但是,在上电后,系统的晶振往往需要几十毫秒的稳定期,一般大于10ms,电路的复位时间主要由R和C确定。
RESET点电压V=VCC(1-e-t/T),T=-R1C1。
设V=1.5V为高电平和低电平的分界点,则:
t=-R1C1ln(1-V/VCC)
选择R1=100KΩ,C1=10uF,t=367ms,足以满足复位要求。
当系统需要复位时,按下SW1,电解电容C1通过R2快速放电,即为一个一阶电路的零输入响应。
电容的零输入响应电压
u=VCCe-t/T
T=R3C1=2ms,即为它下降到初始值的36.8%所需的时间。
其中74LS14是一个施密特反向器,它对变化非常缓慢的信号
第二节并行口扩展
一可编程并行口8255
8255是一种适合于多种微处理器的8位通用并行输入输出接口芯片,它有3个端口,3种工作方式,可通过编程改变其功能,使用灵活,通用性强,其引脚如图
各管脚定义如下
1I/O口线
A,B,C三个I/O接口的引线端分别是:
PA0-PA7,PB0-PB7,PC0-PC7共24条端线。
三个口都是锁存/缓存寄存器,A口,B口有锁存功能,C口无锁存功能。
三个口的工作方式由程序设定。
A口可设为基本输入输出方式,选通方式方式,双向工作方式。
B口可设为基本输入输出方式,选通方式方式。
C口可设为输入/输出口。
其特点是可分成高低两个4位使用。
高四位是PC4-PC7与A口组成一组称为A组。
第四位于B口组成一组称作B,当8255工作于选通或双向工作方式时,C口为联络信号线。
2数据线
8255时8位芯片,由8位数据线组成D0-D7。
数据线接于AT89C51的P0口,用以实现8255于CPU的数据传输。
3控制线
控制线控制8255的读写复位几片选信号
/RD:
读信号控制线,低电平有效,当其为低电平时,CPU对其进行读操作。
/WR:
输出控制线,低电平有效,当其为低电平时,CPU输出数据或命令字到8255端口。
RESET:
复为端,高电平有效。
当其为高电平时,8255内部寄存器全部清0,24条I/O线全部为高阻状态。
/CS:
片选信号线。
当其为低电平时,CPU选中此芯片。
4地址线
8255共占用四个口地址,A,B,C及控制口地址。
这四个地址之间的选择由A0,A1端口线控制。
本系统8255占用的地址为:
7FF0H~7FF3H
二8155可编程芯片
Intel8155是一种多功能的可编程常用外围接口芯片,它具有三个可编程I/O口,256B的静态RAM、一个14位的减数定时\计数器。
它与单片机的接口简单,得到广泛应用。
1、8155的引脚
8155为40引脚芯片,采用双列直插封装(DIP)形式,其引脚如图所示。
其中:
I/O口与存储器选择信号线,=1时,选择I/O口,
=0时,选择存储器;
2、8155的工作方式
8155内的控制逻辑电路中,设置了一个命令/状态寄存器,该寄存器分为两部分:
一个是控制命令寄存器,它只能写入,不能读出,用于选择I/O的工作方式。
另一个是状态标志寄存器,它只能读出,不能写入,用于存放A口和B口的工作方式。
工作方式0是基本输入输出方式,此时PA,PB,PC都可以做IO口,工作方式1是选通方式,此时PC口为联络信号。
由于8155内部设有地址锁存器,因此,它与AT89C51的接口非常简单,不需要任何附加电路。
如附图NO.1。
RAM的地址分配如下:
4F00H~4FFFH
I/O端口的地址分配如下:
5F00H~5F03H
第三节串行接口
串行接口的扩展是通过AT89C51单片机上已有的一个串行输入口和输出口,因此如果要进行符合RS-232规范的串行通信,还需一片电平转换芯片。
我们选择了MAX-232,可将AT89C51的TXD端的TTL电平转换成MAX-232电平和将MAX232电平转换成TTL电平送AT89C51的RXD端。
MAX232是一片集成度很高的的芯片,不需要外接任何电路,电路简单,使用方便。
本次设计外口的串口通过一个9针的插头与上位机PC进行通信。
电路接线图如图()所
示
第四节键盘与显示
为了便于控制,我们设计了通用键盘与显示。
为了编程方便,芯片采用Intel8279。
它是一种通用的可编程的键盘、显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。
管脚与功能如下:
DB0~DB7:
双向数据总线,用来传送8279与CPU之间的数据和命令。
CLK:
时钟输入线,用以产生内部定时的时钟脉冲。
RESET:
复位输入线,8279复位后被置为字符显示左端输入,双键锁定,程序时钟前置分频器被置为31,RESET信号为高电平有效。
A0:
缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据
IRQ:
中断请求输出线,高电平有效,当FIFO/传感器RAM中有数据时,此中断线变为高电平,在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM中还有信息,则此线重又变为高电平。
SL0~SL3:
扫描线,用来扫描按键开关,传感器阵列和显示数字,这些可被编程或被译码。
RL0~RL7:
回送线,经过按键或传感器开关与扫描线联接,这些回送线内部设置有上拉电路,使之保持为高电平,只有当一个按闭合时,对应的返回线变为低电平;
无按键闭合时,均保持高电平。
SHIFT:
换位功能,当有开关闭合时被拉为低电平,没有按下SHIFT开关时,SHIFT输入端保持高电平,在键盘扫描方式中,按键一闭合,按键位置和换位输入状态一起被存贮起来。
CNTL/STB:
当CNTL/STB开关闭合时将其拉到低电平,否则始终保持高电平,对于键盘输入方式,此线用作控制输入端,当键被按下时,按键位置就和控制输入状态一起被存贮起来,在选通输入方式中,作选通用,把数据存入FIFORAM中。
OUTA3~OUTA0及OUTB3~OUTB0:
显示输出A口及B口,这两个口是16×
4切换的数字显示。
这两个端口可被独立控制,也可看成一个8位端口。
BD:
空格显示,此输出端信号用于在数字转换时将显示空格或者用显示空格命令控制其显示空格字符。
8279可按其功能分为:
键盘功能块;
显示功能块;
控制功能块;
与CPU接口功能块
第五节中断扩展