第三章主机及其接口精Word格式文档下载.docx
《第三章主机及其接口精Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第三章主机及其接口精Word格式文档下载.docx(41页珍藏版)》请在冰豆网上搜索。
(1)片内无ROM,必须外接EPROM;
片内RAM仅128字节,常需外接RAM。
(2)P0和P2口用作地址总线和数据总线,P3口往往用于控制功能,真正能用于I/O端口的只有P1口。
因此通常需要外接I/O接口。
二、外接存贮器和外接I/O接口
1、外接存贮器
P2口输出存贮器地址的高8位。
P0口分时输出地址的低8位和传送指令字节或数据。
地址锁存器通常采用74LS373。
当PSEN有效时,ROM的指令字节通过P0读入CPU,
RAM的读写由
和
控制,该控制信号由外部RAM访问指令MOVX产生。
2、外接I/O接口
可采用带锁存的三态缓冲器74LS373、8212或8282等,也可采用功能较强的可编程I/O接口芯片8155、8255等。
三、基于8031的主机电路实例――图3-1-6
3.2测控接口及程序
3.2.1A/D与微机接口及程序
A/D转换器引脚
相连的8031单片机引脚
输出引脚
A/D转换数据
二进制码
P0口
BCD码
P1口或P3口
转换结束标志
中断方式
或
查询方式
P3.x
定时方式
无
输入引脚
转换开始指令
P2.x,
多路选通指令
P0口经地址译码
读取数据指令
外部转换时钟
ALE(ALE脚的频率是单片机时钟频率的1/6)
注:
10位以上的A/D转换器,为了能和8位字长的CPU直接配接,输出数据寄存器增加了读数控制逻辑电路,把10位以上的数据分时读出。
对于内部不包含读数据控制逻辑电路的A/D转换器,在和8位字长的CPU相连接时,应增设三态门对转换后数据进行锁存,以便控制10位以上的数据分二次进行读取。
一、ADC0809与8031的接口
ADC0809内部组成如图2-1-13(a)所示,片内包含一个8选1的MUX和一个逐次逼近型A/D,因此有8个模拟输入IN0~IN7和8位数据输出2-1~2-8。
ADC0809与8031的接口可以有三种方式:
1、定时方式(等待延时方式)
图3-2-1ADC0809的定时方式接口电路
(1)定时方式特点――ADC0809的EOC脚不接8031。
等待延时时间必须大于ADC0809完成A/D转换所需的时间100μs。
即发生启动脉冲后至少延时100μs才可读取A/D转换数据。
(2)若P2.7作为片选信号(P2.7=0),且先采样IN0,则MOVDPTR,#7FF8H:
与P2.7控制ADC的地址锁存和转换启动,MOVX@DPTR,A
与P2.7控制打开ADC的数据输出锁存器MOVXA,@DPTR
(3)转换程序实例――分别对8路模拟信号轮流采样一次,并依次把A/D转换结果转存到数据存储区。
(程序清单见教材)
2、中断方式
图3-2-2ADC0809的中断或查询方式接口
(1)中断方式特点――ADC0809的EOC脚经非门接8031的
(2)若P2.3作为片选信号(P2.3=0),且先采样IN0,则MOVDPTR,#F7F8H:
与P2.3控制ADC的地址锁存和转换启动,MOVX@DPTR,A
与P2.3控制打开ADC的数据输出锁存器MOVXA,@DPTR
(3)转换程序实例――巡回检测一遍8路模拟量输入,将转换后的数据依次存放在片内RAM的30H~37H单元中。
3、查询方式
(1)查询方式特点――ADC0809的EOC脚经非门接8031的P3.3
(2)若P2.3作为片选信号(P2.3=0),且只采样IN3,则MOVDPTR,#F7FBH:
(3)转换程序实例――对IN3通道模拟输入采样10次,转换结果转存到从0000H单元起的数据存储器中。
二、MC14433与8031接口
1、主要特点:
(1)MC14433是3位半(最大输出数字为1999)BCD码双积分A/D芯片,只有一个模拟输入VX,当DS1~DS4(数据字位选通信号输出端)分别为1时,千、百、十、个位的BCD码在Q0~Q3(BCD码数据输出端)输出。
(2)当DS1为1(千位选通)时,
Q3=0表示“千位是1”,Q3=0表示“千位是0”。
Q2=1表示“信号为正”,Q2=0表示“信号为负”。
Q0=1表示“量程错误”:
Q0=1且Q3=0表示“过量程”;
Q0=1且Q3=1表示“欠量程”。
(3)Q0~Q3和DS1~DS4接P1口。
(4)转换结束标志EOC(与DU短接)作为8031的中断申请信号。
图3-2-3MC14433与8031的接口
2、转换程序实例――设转换结果存缓冲器20H、21H,格式为
20H符号位XX千位、百位
21H十位、个位
3.2.2VFC与微机接口及程序
一、VFC与微机接口的特点
(1)接口简单、占用计算机硬件资源少。
(2)抗干扰性能好。
(3)便于远距离传输。
可通过调制进行无线传输或光传输。
由于以上这些特点,V/F转换器适用于一些非快速而需进行远距离信号传输的A/D转换过程。
另外,还可以减化电路、降低成本、提高性价比。
二、VFC与单片机接口电路工作原理及程序
图3-2-4VFC与8031接口
图3-2-5电压-频率-数字转换原理
1、VFC输出的频率
作为外部计数脉冲接入8031的T1(P3.5)脚,
T1置为计数方式,而T0则置为定时方式。
2、接口电路工作原理
(1)开始时,将TR0与TR1置1,使T1对被测频率fx进行计数的同时,T0对基准频率f0(0.5MHz)进行计数。
(2)当T0从预置数m计数到溢出(即216)时申请中断,CPU响应中断,将TR1置“0”并将T1中的计数值读出,读出值Nx与被测电压Vx的关系为
3、接口程序实例――取m=15536(即3CB0H),转换结果存放在20H、21H。
三、VFC与8031单片机接口的改进电路
1、使用光电隔离器减少干扰
图3-2-6使用光电隔离器减少干扰
2、采用线路驱动增大传输距离
图3-2-7使用串行通讯器件增大传输距离
3.2.3D/A与微机接口及程序
D/A转换器数据输入端
与8031的P0口连接方式
无输入锁存的DAC
D/A数据=8位
通过8位锁存器相连
D/A数据>
8位
通过两级锁存器相连,如图3-2-8
有输入锁存的DAC
直接相连
低8位直接相连,
高位通过锁存器相连。
一、无输入锁存的DAC与微机接口――以AD7520为例
1、接口电路图3-2-8:
74LS74
(1)的口地址为BFFFH,
74LS74
(2)和74LS377的口地址均为7FFFH。
图3-2-8AD7520与8031接口电路
2、D/A转换子程序――以图3-2-8接口电路为例
8031单片机先把高2位数据输出到74LS74
(1),接着把低8位数据输出到74LS377,与此同时,74LS377的片选信号也作为74LS74
(2)的时钟脉冲,把74LS74
(1)的高2位数据打入74LS74
(2)中,从而使一个完整的10位数据同时到达AD7520的10位数据输入端转换成相应的模拟输出电压。
二、有输入锁存的DAC与微机的接口――以DAC0832为例
1、DAC0832的结构与引脚
图3-2-9DAC0832的结构与引脚
负跳变时,外部数据锁存入“输入锁存器R1”;
负跳变时,“输入锁存器R1”数据锁存入“DAC锁存器R2”。
2、DAC0832与8031接口
8031引脚
相连的DAC0832引脚
单缓冲方式接口
(图3-2-10、图2-2-7)
双缓冲方式接口
(图3-2-11、图2-2-8)
P2.7
(P2.7=0――地址码7FFH)
DAC
(1)和
(2)的
P2.6
(P2.6=0――地址码BFFH)
DAC
(2)的
P2.5
(P2.5=0――地址码DFFH)
DAC
(1)的
工作过程
分时锁存并转换
先分时锁存,后同时转换
转换程序
MOVDPTR,#DFFFH
MOVA,#DATA1
MOVX@DPTR,A
MOVDPTR,#BFFFH
MOVA,#DATA2
MOVDPTR,#D7FFFH
3.2.4开关型功率接口
大多采用锁存器做开关量的输出电路,如74LS373、8255、8031的P1口等。
一、继电器输出驱动接口――适用与启停负荷不太大的设备
图3-2-12典型继电器接口电路
二、继电器—接触器输出驱动电路接口――适用与启停负荷很大的设备
图3-2-13继电器—接触器接口电路
1、工作原理:
小型继电器的触点控制交流接触器的线圈回路,
再由交流接触器的触点控制动力回路。
2、电路改进:
用固体继电器代替通用型继电器J,可消除J触点的电火花,
用晶闸管无触点开关代替接触器CJ,可消除CJ触点的电弧干扰。
三、光电耦合器—晶闸管输出驱动电路接口――图2-3-6
四、脉冲变压器—晶闸管输出电路接口
图3-2-14脉冲变压器—晶闸管输出电路
脉冲变压器用于隔离右侧主回路与左侧触发电路,并把触发脉冲加到晶闸管的门极上。
使用脉冲变压器,可以把脉冲电压升高或降低,改变脉冲的极性及使阻抗匹配。
脉冲触发方式可以减少晶闸管门极的功耗以及触发信号放大电路的功耗。
它是晶闸管较常用的触发方式。
为了保证触发的晶闸管可靠导通,要求触发的脉冲具有一定的宽度。
但是如果触发脉冲宽度很宽,铁芯就会接近或达到饱和,这样脉冲变压器将失去作用。
为了避免这种情况,可以用多个窄脉冲代替宽脉冲。
为此,采用左侧的触发电路。
8031的P1.0引脚加到比较器LM311的选通端,当需要晶闸管导通时,将P1.0置“1”,给LM311发出一个选通信号。
比较器LM311用来产生过零触发脉冲。
调节电位器R,改变VP,可改变过零触发脉冲的宽度。
该电路的定时波形如图3-2-15所示。
图3-2-15定时波形图
3.3人—机接口及程序
3.3.1显示器接口及程序
一、LED显示器接口及程序
1、LED显示器的组成――由多位LED显示块排列而成
LED显示块――由8个发光二极管排列而成
2、LED显示器的显示方式和译码方式
(1)多位LED显示块的显示方式
静态显示
(各位同时显示)
动态显示
(逐位轮流显示)
每位LED显示块的段选端
分别接一个8位锁存器/驱动器。
应并接到同一个8位I/O口或锁存器/驱动器
各位LED显示块的位选端应连在一起
共阳极时
固定接+5V
共阴极时
固定接地
(2)从要显示数字的BCD码转换成对应的段选码(称为译码)的方式
译码方式
硬件译码
软件译码
微机输出
显示数字的BCD码
通过查表软件得到的段选码
显示器段选端接口
锁存器/译码器/驱动器
锁存器/驱动器(无译码器)
3、LED显示器接口电路
硬件译码接口
软件译码接口
静态
显示
段选端接口
每位各接一组
“锁存器/译码器/驱动器”
“锁存器/驱动器”
位选端接口
共阳极时各位位选端都接+5V,
共阴极时各位位选端都接地
动态
各位共接一组
每位位选端各接“译码器/驱动器”的一位驱动端
4、常用接口器件:
(1)段选端接口器件
BCD-7段译码器MC14558
BCD-7段译码/驱动器MC14547
BCD-7段锁存/译码/驱动器MC14513、MC14495以及9368,
并行输入4位LED静态显示锁存/译码/驱动器接口芯片ICM7212
串入并出移位寄存器74LS164(适用于软件译码)
(2)动态显示位选端接口器件
3-8译码器74LS138
(3)动态显示(段选位选)接口器件
串行输入4位LED动态显示驱动接口芯片MC14499
8155
5、软件译码接口及程序实例
(1)静态显示器接口及程序实例
图3-3-4软件译码静态显示器接口实例
(程序清单见教材)
(2)动态显示器接口及程序实例
图3-3-5用8155实现8位动态LED显示器
二、LCD显示器接口及程序
1、LCD显示器工作原理
笔段电极与公共电极之间呈现交替变化的电压,该笔段显黑色。
七段LCD显示电路
2、LCD与LED的比较
LCD与LED的相同点――都是笔段显示,都需要译码(硬件译码或软件译码)。
LCD与LED的不同点:
LED显示器
LCD显示器
显示机理
发光二极管导通发光
液晶的电光效应
笔段显示条件
笔段电极与公共电极之间
加直流电压
加方波电压
公共电极
接高电平或低电平
接方波电压
驱动接口电路
不要方波信号(如ICM7212)
需要方波信号(如ICM7211)
3、LCD显示器接口及程序实例――图3-3-6
图3-3-6硬件译码静态LED显示实例
(1)接口电路:
4N07――4位LCD显示器
MC14543――LCD的锁存/译码/驱动器
P3.7――提供方波信号给驱动器和显示器的公共电极
(2)程序清单见教材
3.3.2键盘接口及程序
一、键盘的结构、类型及工作方式
1、键盘的结构
(1)按键――是一种按压式或触摸式常开型按钮开关
(按压或触摸按键时触点闭合):
数字键――按键闭合时能向微机输入数字(0~9或0~F)的键。
功能键或命令键――按键闭合时能向微机输入命令以实现某项功能的键。
(2)键盘――是一组按键的集合。
2、键盘的类型
编码键盘
非编码键盘
键盘扫描
硬件实现
软件实现
键盘扫描硬件电路
带有
不带
独立式键盘
行列式键盘
每个按键的测试端
各接一根输入口线
接一根行线(或列线)输入线
每个按键的接零端
均接地
接一根列线(或行线)输出线
按键个数
每个按键占用一根输入口线
m根行线和n根列线就可组成m×
n个按键的键盘
适用场合
按键较少或操作速度较高场合
按键数量较多的场合
键盘采用的接口
(1)8031的P1口。
(2)8255、8155扩展I/O口。
(3)三态缓冲器扩展I/O口。
(3)串行I/O扩展口。
(4)专用芯片8279
3、非编码键盘的工作方式
工作方式
CPU要不间断地对键盘进行扫描工作,直到有键按下为止,其间CPU不能干任何其它工作。
利用定时器产生定时中断,CPU响应中断后对键盘进行扫描,
当有键按下时,向CPU发出中断申请,CPU响应中断后对键盘进行扫描
各条键的输入线
仅与CPU的输入口相连
不同CPU的中断口相接
与CPU的输入口相连
且同CPU的中断口相接
4、键输入中存在的问题及解决办法
(1)键抖动
图3-3-11按键时的抖动
解决办法:
硬件方法――采用RS触发器图2-3-2(b)
软件方法――软件延时。
(2)重键(两个或多个键同时按下)
处理办法:
当只有一个键按下时才读取键盘的输出,并且认为最后仍被按下的键是有效的正确按键。
二、独立式键盘接口及程序
1、键盘接口电路――图3-3-8
图3-3-8独立式键盘接口电路
2、接口程序――以查询方式为例(程序清单详见教材)
三、行列式(矩阵式)键盘接口及程序
1、矩阵式非编码键盘按键的识别方法
扫描法――图3-3-9(a)
反转法――图3-3-9(b)
每条作为键输入线的行线(或列线)
通过一个上拉电阻接到+5V上,并与该行(或列)各按键的测试端相连
行线和列线都要通过上拉电阻接+5V
每条作为键扫描输出的列线(或行线)
都不接上拉电阻和+5V,只与该列(或行)各键的接零端相连。
第一步
让所有键扫描输出列线(或行线)均置0电平,检查各键输入线电平是否有变化。
将行线编程为输入线、列线编程为输出线,并使输出线输出全“0”,则行线中电平由高变到低所在行为按键所在行。
第二步
键扫描输出线逐线置“0”电平,其余各输出线均置高电平,检查各条键输入线电平的变化,如果某输入线由高电平变为零电平,则可确定此输入线与此输出线交叉点处的按键被按下。
同第一步完全相反,将行线编程为输出线,列线编程为输入线,并使输出线输出全“0”,则列线中电平由高到低所在列为按键所在列。
确定按键所处的行列值
需多部操作
只需两步操作
图3-3-9矩阵式键盘接口电路
2、8155扩展I/O口组成的行列式键盘
(1)接口电路
图3-3-128155扩展I/O口组成的行列式键盘
8条键扫描输出列线接到PA口,
4条键输入行线接PC口。
(2)键盘扫描子程序的功能:
①判断键盘上有无键按下――PA口输出全扫描字00H,读PC口状态:
若PC0~PC3为全“1”则键盘无键按下,若不全为“1”则有键按下。
②去键的机械抖动影响――在判断有键按下后,软件延时一段时间(5~10ms)后再判断键盘状态,如果仍为有键按下状态,则认为有一个稳定的键按下,否则按键抖动处理。
③判别闭合键的键号――对键盘的列线进行扫描,即逐列置“0”电平。
PA口依次输出列扫描字:
FEH、FDH、FBH……7FH。
每输出一个扫描字,紧接着读PC口状态:
若PC0~PC3为全“1”,则列线输出为“0”的这一列上没有键闭合,否则这一列上有键闭合。
④确定闭合键的键号――等于为低电平的列号加上为低电平的行的首键号。
CPU对键的一次闭合仅作一次处理,采用的方法为等待键释放以后再将键号送入累加器A中。
(3)键盘扫描子程序清单(详见教材)
3.3.3键盘/显示器接口及程序
在微机化测控系统中,同时需要使用键盘与显示器接口时,为了节省I/O口线,常常把键盘与显示电路做在一起,构成实用的键盘、显示电路。
一、键盘/显示器的接口类型:
1、8155并行扩展口
2、串行扩展口
3、专用键盘/显示器接口芯片8279等。
二、8155扩展I/O口的键盘/显示器接口及程序
1、接口电路
(1)LED显示器(共阴极)采用动态显示和软件译码
(2)键盘采用逐列扫描查询工作方式
(3)8155设定PA口、PB口为输出口,PC口为输入口:
PA口提供LED显示器的位控信号和键盘列扫描输出
PB口提供LED显示器的段选码
PC口提供查询键盘行输入的输入口
图3-3-138155扩展I/O口的键盘/显示器接口
2、键盘扫描子程序(程序清单详见教材)
3、显示子程序(程序清单详见教材)
图3-3-14DIS显示子程序流程图
三、采用8279接口芯片的键盘/显示器接口
1、键盘/显示器接口芯片8279
(1)8279的内部结构和外部引脚
扫描汁数器输出SL0~SL3用于对键盘及显示器扫描。
它有两种输出形式:
①外译码方式(也称编码扫描方式),计数器以二进制方式计数,经外部译码后,译出
16种状态作为键盘显示器的扫描信号。
最多可外接16位显示器和
键盘。
②内部译码方式(也称译码扫描方式),SL0~SL3直接输出4位扫描信号。
最多只能
外接4位显示器和
因此显示器位数和按键个数较多时不能采用。
(2)8279外部的一般连接(外译码方式)
(3)CPU对8279的基本操作
(4)8279的操作命令
2、键盘及显示器与8279的接口及程序
(1)键盘及显示器与8279的接口电路实例
图3-3-16键盘及显示器与8279的接口电路
(2)键盘及显示器与8279的接口程序(程序清单见教材)
3.3.4打印机接口及程序
一、GP16微型打印机结构及接口信号
图3-3-17GP16微型打印机结构框图
GP16微型打印机接口信号――图3-3-17左侧与单