串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

2024-04-25

串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用(精选8篇)

篇1:串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

串行接口键盘控制器SK5278及其在单片机系统中的应用

摘要:SK5278是一种可管理16个按键的键盘控制器,该器件内部具有去抖动处理电路,可直接输出按键的键值编码,并采用串行方式与单片机或微处理器进行接口,使用该器件可简化单片机系统软硬件的键盘接口。文中给出了该器件的特点、管脚说明和使用方法,并以AT89C2051单片机为例给出了相应的接口电路及相应程序。

关键词:键盘控制 串行接口 单片机 SK5278

对于以单片机为核心构成的智能仪器、仪表、工控设备及家用电器而言,构成人机交互的键盘接口电路是必不可少的,而相应的键盘管理软硬件设计却比较麻烦。简单的矩阵键盘存在着占用CPU软硬件资源多、响应速度慢、监控软件编制复杂等问题,专用的键盘接口器件如INTE8279、HD7219又往往具有LED数码管显示电路,如果仅使用其键盘管理功能,则存在硬件资源浪费,接口电路复杂,造价较高等问题,SK5278即是为解决上述键盘管理问题而推出的一款键盘控制芯片。

1 特点及引脚功能

SK5278是福州贝能科技有限公司推出的采用PIC内核的键盘控制器。该芯片采用4线串行接口,可与任何种类的单片机接口;它具有按键有效指示输出,可用中断方式管理键盘;其行线X0~X3与列线Y0~Y3可构成4×4键盘矩阵;SK5278的16键键盘控制器内含去抖动处理电路,因而可直接输出键值;此外,该器件的工作电源电压范围宽达4~6V;SK5278采用18脚双列直插DIP封装形式。其管脚排列如图1所示,管脚说明如表1所列。

表1 SK5278管脚说明

管脚号管脚名称管脚类型

功 能

1DIOO数据输出端,读取键盘数据时,此脚在CLK上升沿输出数据2KEYO按键有效输出端,平时为低电平,当检测到有效按键时,此引脚变为高电平。读取键盘后,此引脚重新变为低电平3,14VDD 正电源4RST 复位端5VSS 电源地6~9X0~X3I矩阵键盘行线输入端10~13Y0~Y3O矩阵键盘列线输出端15OSCOO振荡输出脚,输出频率为RC振荡频率四分之一16RC 外接振荡器连接端,R=3.3kΩ,C=20pF时,振荡频率为4MHz17CSI片选端,该脚为低时,可芯片读取键盘数据18CLKI时钟输入端,读取键盘数据时,此脚电平的上升沿表示数据有效

2 工作原理

SK5278可用行线X0~X3和列线Y0~Y3构成4×4矩阵键盘。同时在芯片内部可自动完成扫描、译码、去抖动处理等任务。当SK5278检测到有效的按键时,按键有效指示“KEY”引脚将从低电平变为高电平,并一直保持到按键代码被读取为止。在“KEY”为高电平期间,如果SK5278接收到“读键盘数据”命令,(即“CS”管脚变低),则输出当前按键的键盘代码,SK5278键盘代码的范围为00H-0FH。如果在接收到“读键盘数据”时没有按键按下,SK5278将输出FFH。在一次读键盘过程完成后,按键有效指示“KEY”将变为低电平。利用按键有效指示“KEY”与单片机的外部中断端相连,可完成具有中断的键盘监控功能,从而提高CPU的工作效率,(本网网收集整理)减少按键响应时间。

SK5278工作时需要外接RC振荡电路以供系统工作,RC元件的典型值为R=3.3kΩ,C=20pF,此时的.振荡频率约为4MHz,由于此振荡频率较高,故在印制电路板布线时,所有元件尤其是振荡电路的元件应尽量靠近芯片,并尽量使电路连线最短。

SK5278的RESET复位端在一般应用情况下,可以直接与正电源连接,在需要较高可靠性的情况下,可以连接外部RC复位电路,在上电或接收到RESET端的复位信号后,SK5278大约需要经过25ms的复位时间才会进入到正常工作状态。程序中应尽可能地减少CPU对SK5278的访问次数,以提高程序的效率。

值得注意的是,如果有2个键同时被按下,则SK5278只能给出其中一个按键的代码,因此SK5278不适合应用于需要2个或2个以上按键同时被按下的应用场合。如确实需要双键组合使用或组合增加键盘数量,可在单片机的某I/O脚接入一键与SK5278共同组双键键盘监控电路。

3 串行接口及时序

SK5278采用串行方式与单片机或微处理器接口,串行数据从“DIO”引脚输出,并由“CLK”端发出同步时钟脉冲。当SK5278检测到有键按下时,按键有效指示“KEY”变高,单片机检测到“KEY”信号变高后,便将片选端“CS”拉低,从而使得SK5278将取得的键盘数据在“CLK”引脚的上升沿从“DIO”脚依次送出。在单片机发出8个时钟脉冲后,即可从“DIO”端读取8位键值编码,该编码值的D7为最高位,D0为最低位,然后单片机再使片选“CS”变高,并使“KEY”端重新输出低电平,至此,读键值过程结束。SK5278的串行接口时序如图2所示。图中,T1表示从“CS”下降沿至第一个CLK上升沿的延时,典型值为15μs;T2为CLK脉冲宽度,典型值为10μs;T3为CLK脉冲时间间隔,典型值为10μs。

4 应用电路

利用SK5278串行接口占用单片机口线少及无键按下时无须CPU干预的特点,可以很容易地构成单片机的键盘接口电路,图3所示是AT89C2051单片机与SK5278构成的键盘及接口电路。图中,AT89C2051的P1.2、P1.3、P1.4口线分别与SK5278的“CS”、“CLK”、“DIO”端相连。为了提高按键的响应速度并减少单片机的干预。本方案将SK5278的按键有效指示端“KEY”与AT89C2051的外中断端INT0相连,由于INT0为低电平中断,故而加入了一级非门以使“KEY”反相后与其相连。与图3电路对应的键盘处理程序如下:

;位定义

COUNT DATA 70H

RXBUF DATA 20H

;I/O定义

DIO BIT P1.4

CS BIT P1.2

CLK BIT P1.3

;主程序

MAIN:MOV SP,#50H

MOV P1,#0FFH ;将P1口置为输入

SETB IT0 ;INT0为边沿触发

SETB PX0 ;INT0为高优先级中断

SETB EX0 ;开INT0中断

SETB EA ;CPU开中断

LCALL DL25ms ;延时25ms等待SK5278复位

;INT0键盘中断程序

INT0:LCALL RECEIVE ;读键值

MOV A,RXBUF ;键值送A

CJNE A,#00H,KEY-1 ;K0键未按下转下键

LJMP KEY0 ;K0键按下,转入相应键值处理子程序

KEY1:CJNE A,#01H,KEY-2;

LJMP KEY1 ;K1键按下,转入相应键值处理子程序

KEY2:…

……

KEY15:CJNE A,#0FH,KEYFH ;K15键未按下,中断返回

LJMP KEY15 ;KEY15键按下,转入相应键值处理程序

KEYFH:RET; 无键按下时中断返回读键盘值程序

RECEIVE:CLR CS ;读键盘数据有效

SETB DIO ;将DIO置为高电平输入状态

ACALL DL 15μs ;T1延时

MOV COUNT,#08H ;共八位数据

LOOP:SETB CLK

ACALL DL 15μs ;T2延时

MOV A,RXBUF

RL A ;数据左移一位

MOV RXBUF,A

MOV C,DIO ;读取一位数据

MOV RXBUF.0,C

CLR CLK

ACALL DL 15μs ;T3延时

DJNZ COUNT,LOOP

SETB DIO ;将DIO重置为高电平输入

ACALL DL 15μs

SETB CS ;读键盘数据无效

RET

5 结束语

应用SK5278键盘控制器可使单片机系统的人机交互键盘接口电路及监控程序变得简单容易,同时减少了对单片机软硬件资源的占用,因而该器件是构成少数单片机键盘接口电路的一种较好的选择方案。

篇2:串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

摘要:介绍一种新型的键盘显示驱动芯片CH451的性能特点和工作原理,给出了CH451键盘显示驱动芯片与MCS-51单片机的接口方法与相应的软件驱动程序。

关键词:键盘显示控制;单片机;CH451

单片机在开发过程中,常常会因为资源不足而不得不大量扩展接口芯片以满足应用系统的需要,其中原因之一是人机界面中的键盘显示占用了系统太多资源,从而造成系统庞大,同时降低了系统的可靠性。在单片机应用系统中,键盘显示通常可采用以下几种方式:

(1)采用并行接口的键盘显示专用芯片8279。但8279所需外围元件多(显示驱动、译码等)、占用电路板面积大、综合成本高,在中小系统中常常大材小用;

(2)采用通用并行I/O芯片扩展(如用8155等),但此方案同样需要驱动显示,同时键盘显示扫描还需占用CPU大量时间;

(3)采用专用显示控制器,并用CPU的I/O引脚完成键盘输入(如MC14499、PS7219、MAX7219、ICM7218、TLC5921等,大多是串行接口并有显示驱动能力,I/O占用少)。这种接口方式省去了显示的扫描,而且电路大多也很简单,通常在系统需要的按键较少时比较适用;

(4)采用带I2C总线的键盘显示芯片(如显示用SAA1064,键盘用PCF8574),不过这种方式对于无I2C总线接口的CPU来说,编程显得有些不便;

(5)采用串行接口的键盘显示专用芯片,如BC7280/81、HD7279、CH451等。这类芯片占用CPU的资源少,传输速度较快,外围器件要求也较少,在中小系统中都可得到广泛的应用。BC7280/81与HD7279中已有介绍,本文着重介绍CH451的主要特性及接口应用方法。

1 CH451的功能与引脚介绍

CH451是一个整合了数码管显示驱动和键盘扫描控制以及μP监控的多功能外围芯片。CH451内置RC振荡电路,可以直接动态驱动8位数码管或者64位LED,具有BCD译码或不译码功能,可实现数据的左移、右移、左循环、右循环、各数字独立闪烁等控制功能。CH451内置大电流驱动级,段电流不小于30mA,字电流不小于160mA,并有16 级亮度控制功能;在键盘控制方面,该器件内置64键键盘控制器,可实现8×8矩阵键盘扫描,并内置去抖动电路,可提供按键中断与按键释放标志位等功能;在外部接口方面,CH451可选择简洁的1线串行接口或高速4线串行接口,且内置上电复位,可提供高电平有效复位和低电平有效复位两种输出,同时内置看门狗电路Watch-Dog。CH451提供有28引脚的DIP28与SOP28封装以及DIP24S封装形式,28脚与24脚在功能上稍有差别,它们的引脚定义见表1所列。

表1 CH451的引脚说明

28脚引脚号24脚引脚号引脚名称类  型

引  脚  说  明

232VCC电源正电源,持续电流不小于200mA915GND电源接地,持续电流不小于200mA254LOAD输入4线串行接口的数据加协,带上拉265DIN输入4线串行接口的数据输入,带上拉276DCLK输入串行接口听数据时钟,带上拉,可同时用于看门狗的清除输入243DOUT输出串行接口的数据输出键盘中断22~151、24~18DIG7~SEG0三态输出及输入数码管的段驱动,高电平有效,键盘扫描输入,高电平有效,带下拉1~87~14DIG7~DIG0输出数码管的字驱动,低电平有效,键盘扫描输入,高电平有效,带下拉12不支持RST输出上电复位和看门狗复位,高电平有效13不支持RST输出上电复位和看门狗复位,低电平有效28不支持RSTI输入上电复位门限调整或手工复位输入14不支持ADJ输入段电流上限调整,带强下拉10不支持CLK输入外接阻容振荡11不支持CLKO输出CLK引脚时钟信号的二分频输出 17NC 不连接,禁止使用

2 CH451的操作命令

CH451的操作命令均为12位,其中高4位为标识码,低8位为参数,各操作命令如下:

●空操作:0000xxxxxxxxB(x可为任意值,下同)

空操作命令对CH451不产生任何影响。该命令可以在多个CH451级联的应用中透过前级CH451向后级CH451发送操作命令而不影响前级CH451的状态。例如,要将操作命令001000000001B发送给两级级联电路中的.后级CH451(后级CH451的DIN引脚连接到前级CH451的DOUT引脚),只要在该操作命令后添加空操作命令000000000000B再发送,那么,该操作命令将经过前级CH451到达后级CH451,而空操作命令留给了前级CH451。另外,为了在不影响CH451的前提下变化DCLK以清除看门狗计时器,也可以发送空操作命令。在非级联的应用中,空操作命令可只发送高4位。

● 芯片内部复位:001000000001B

内部复位命令可将CH451的各个寄存器和各种参数复位到默认的状态。芯片上电时,CH451均被复位,此时各个寄存器均复位为0,各种参数均恢复为默认值。

● 字数据移位:0011000000[D1][D0]B

字数据移位命令共有4个:开环左移、右移,闭环左移、右移。D0为0时为开环,为1时为闭环,D1为0时左移,为1时为右移。开环左移时?DIG0引脚对应的单元补00H,此时不译码方式显示为空格,BCD译码方式时显示为0;开环右移时,DIG7引脚对应的单元补00H;而在闭环时?DIG0与DIG7头尾相接,闭环移位。

● 设定系统参数:010000000[WDOG][KEYB][DISP]B

该命令用于设定CH451的系统级参数?如看门狗使能WDOG、键盘扫描使能KEYB、显示驱动使能DISP等。各个参数均可通过1位数据来进行控制,将相应的数据位置为1可启用该功能,否则关闭该功能(默认值)。

● 设定显示参数:0101[MODE][LIMIT][INTENSITY]B

此命令用于设定CH451的显示参数,如译码方式MODE(1位)、扫描极限LIMIT(3位)、显示亮度INTENSITY(4位)等。译码方式MODE为1时选择BCD译码方式,为0时选择不译码方式。CH451默认工作于不译码方式,此时8个数据寄存器中字节数据的位7~位0分别对应8个数码管的小数点和段G~段A,当数据位为1时,对应的数据段(或发光管)点亮;数据位为0时熄灭。CH451工作于BCD译码方式主要应用于数码管驱动,单片机只要给出二进制数的BCD码,便可由CH451将其译码并直接驱动数码管以显示对应的字符。BCD译码方式是对数据寄存器中字节数据的位4~位0进行兼容BCD的译码,可用于控制段驱动引脚SEG6~SEG0的输出,它们对应于数码管的段G~段A,同时可用字节数据的位7控制段来驱动引脚SEG7的输出以对应数码管的小数点,字节数据的位6和位5不影响BCD译码的输出,它们可以是任意值。将位4~位0进行BCD译码可显示以下28个字符,其中00000B~01111B分别对应于“0~F”、10000B~11010B分别对应于“ ”?空格? 、“+”?+或加号? 、“-”?负号或减号? 、“=”?等于号? 、“?"?左方括号? 、“?”?右方括号? 、“_”?下划线? 、“H” 、“L” 、“P” 、“.”?小数点? 、其余值为空格。

扫描极限LIMIT控制位001B~111B和000B(默认值)可分别设定扫描极限1~7和8。显示亮度INTENSITY控制位的0001B~1111B和0000B(默认值)则用于分别设定显示驱动占空比1/16~15/16 和16/16,以实现16级显示亮度控制。

●设定闪烁控制:0110[D7S][D6S][D5S][D4S][D3S][D2S][D1S][D0S]B

设定闪烁控制命令用于设定CH451的闪烁显示属性,其中D7S~D0S 分别对应于8个字驱动DIG7~DIG0。闪烁属性D7S~D0S分别通过1位数据控制,将相应的数据位置为1可使能闪烁显示,否则为正常显示,不闪烁(默认值)。

●加载字数据:1[DIG_ADDR][DIG_DATA]B

加载字数据命令用于将字节数据DIG_DATA(8位)写入DIG_ADDR(3位)指定的数据寄存器中。DIG_ADDR的000B~111B分别用于指定数据寄存器的地址0~7,并分别对应于DIG0~DIG7引脚驱动的8个数码管。DIG_DATA为待写入的字节数据。

●读取按键代码:0111xxxxxxxxB

读取按键代码命令用于获得CH451最近检测到的有效按键的按键代码。该命令是唯一的具有数据返回的命令,CH451通常从DOUT引脚输出按键代码,按键代码总是7位数据,最高位是状态码,位5~位0是扫描码。读取按键代码命令的位数据B7~B0可以是任意值,所以控制器可以将该操作命令缩短为4位数据B11~B8。例如,CH451检测到有效按键并中断时,如按键代码是5EH,则先向CH451发出读取按键代码命令0111B,然后再从DOUT获得按键代码5EH。

CH451所提供的按键代码为7位,位2~位0是列扫描码,位5~位3是行扫描码,位6是状态码(键按下为1,键释放为0)。例如,连接DIG3与SEG4的键被按下时,按键代码为63H,键被释放后,按键代码是23H。单片机可以在任何时候读取按键代码,但一般在CH451检测到有效按键而产生键盘中断时读取按键代码,此时按键代码的位6总是1。另外,如果需要了解按键何时释放,单片机可以通过查询方式定期读取按键代码,直到按键代码的位6为0。表2是连接在DIG7~DIG0与SEG7~SEG0之间的键被按下时,CH451所提供的按键代码。这些按键代码具有一定的规律,如果需要键被释放时的按键代码,可将表2中的按键代码的位6 置0,也可将表中的按键代码减去40H。应注意的是:CH451不支持组合键,也就是说,同一时刻,不能有两个或者更多的键被按下。

表2 CH451的键盘编码表

3 串行接口应用电路

CH451与MCS-51单片机的连接如图1所示,其中DOUT引脚最好连接到单片机的中断输入引脚,这样可用中断方式响应按键。如果连接到非中断输入引脚,则应该使用查询方式确定CH451是否检测到有效按键,同时还可向单片机提供复位信号RESET并带Watch-Dog功能。CH451的段驱动引脚串接的电阻R1(200Ω)用于限制和均衡段驱动电流。在5V电源电压下,串接200Ω电阻通常对应13mA段电流。CH451具有64键的键盘扫描功能,为了防止键被按下后在SEG信号线与DIG信号线之间形成短路而影响数码管显示,一般应在CH451的DIG0~DIG7引脚与键盘矩阵之间串接限流电阻R2,其阻值可以从1kΩ至10kΩ。

将P1.0与DIN连接可用于输入串行数据,串行数据输入的顺序是低位在前,高位在后。另外,在上电复位后,CH451 默认选择1线串行接口,如需选择4线串行接口,则应在DCLK输出串行时钟之前,先在DIN上输出一个低电平脉冲,以通知CH451为4线串行接口。将P1.1与DCLK连接可提供串行时钟,以使CH451在其上升沿从DIN输入数据,并在其下降沿从DOUT输出数据。LOAD用于加载串行数据,CH451一般在其上升沿加载移位寄存器中的12位数据以作为操作命令进行分析并处理。也就是说,LOAD的上升沿是串行数据帧的帧完成标志,此时无论移位寄存器中的12位数据是否有效,CH451都会将其当作操作命令来处理。应注意的是,在级联电路中,单片机每次输出的串行数据必须是单个CH451的串行数据的位数乘以级联的级数。

下面是该电路的驱动程序:

;主程序需要定义的参数

DCLK BIT P1.1 ;串行数据时钟,上升沿激活

DIN BIT P1.0 ;串行数据输入

LOAD BIT P1.2 ;串行命令加载,上升沿激活

DOUT BIT P3.2 ;接INT0,键盘中断和键值数据输出

KEY DATA 7FH ;存放键盘中断时读取的键值

;******* 初始化子程序 *******

INIT? CLR DIN ;先低后高,输出上升沿通知

CH451选择4线串行接口

SETB DCLK ;置为默认的高电平

SETB DIN

SETB LOAD

SETB DOUT ;置为输入

MOV B?#04H ;设置系统参数命令

MOV A?#07H ; Watch-Dog使能,开键盘、显示功能

LCALL WRITE

MOV B?#03H ;设置移位命令

MOV A?#00H ;开环左移

LCALL WRITE

MOV B?#05H ;设置显示参数

MOV A?#00H ;不译码,8位显示,最亮

LCALL WRITE

MOV B?#06H ;设置闪烁控制

MOV A?#00H ;不闪烁

LCALL WRITE

CLR IT0 ;置外部信号为低电平触发

CLR IE0 ;清中断标志

SETB EX0 ;允许键盘中断

SETB EA

RET

;******* 输出命令子程序 ******

;入参:B、ACC待写的12位数据? 低8位在ACC中? 高4位在B的低4位中

WRITE? CLR EX0 ;禁止键盘中断

CLR LOAD ;命令开始,此命令可以放在后面

MOV R7?#08H ;将ACC中8位送出

WRITE_8?RRC A ;低位在前,高位在后

CLR DCLK

MOV DIN?C ;送出一位数据

SETB DCLK ;产生时钟上升沿通知

CH451输入位数据

DJNZ R7? WRITE 8 ;位数据未完,继续

MOV A?B

MOV R7?#04H ;将B中4位送出

WRITE 4?RRC A ;低位在前?高位在后

CLR DCLK

MOV DIN?C

SETB DCLK

DJNZ R7? WRITE 4

SETB LOAD ;产生加载上升沿通知

CH451处理命令数据

SETB EX0 ;允许键盘中断

RET

?******* 输入键值子程序 ******

? 出参? ACC键值数据

READ? CLR EX0 ;禁止键盘中断

CLR LOAD ;命令开始

MOV A?#07H ;读取键值命令的高4

位0111B

MOV R7?#04H ;忽略12位命令的低

8位

READ 4? RRC A ;低位在前,高位在后

CLR DCLK

MOV DIN?C

SETB DCLK

DJNZ R7? READ 4

SETB LOAD ;产生加载上升沿通知

CH451处理命令数据

CLR A ;先清除键值单元以便移位

MOV R7?#07H ;读入7位键值

READ_7? MOV C?DOUT ;读入一位数据

CLR DCLK ;产生时钟下降沿通知

CH451输出下一位

RLC A ;数据移入ACC,高位

在前,低位在后

SETB DCLK

DJNZ R7? READ_7 ;位数据未完继续

CLR IE0 ;清中断标志,读操作

过程中有低电平脉冲

SETB EX0 ;允许键盘中断

RET

4 结束语

篇3:串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

摘要:提供一种简便、经济的方法,通过TINI平台实现串行接口设备与以太网的连接。一旦设备连接到以太网,就能提供TINI Web服务。

关键词:以太网 串行接口 TINI

很多电子设备利用串行接口与其它设备进行通信,其中有温度调节器、POS机、远程监控仪、条码扫描仪、票据打印机、射频标签收发器、血压计及其它现场使用的测试设备和新型自动化设备。大多数设备与外部的通信是通过串口进行的,不能直接连接到大型计算机网络,无法满足TCP/IP连接和以太网通信的需求。由于成本和时间问题,很少有人选择对系统进行重新设备的途径。利用本文介绍的基于DS80C390或DS80C400微控制器的`TINI平台,可以将孤立的串行设备连接到以太网。

1 TINI和网络

TINI(微网接口)是Dallas Semiconductor开发的一种技术平台,目的是协助用户快速整合DS80C390/DS80C400网络微控制器的研发,TINI定义了一个芯片组,包含一个嵌入式操作系统,其中整合了经过高度优化的Java运行环境。Java编程者可从其中获得一般的嵌入式开发中不多见的强大功能:多线程、无和单元收集、继承性、虚拟化、跨平台能力 、强大的网络支持,以及―最后但很重要―大量免费的开发工具。TINI使用乾通常不直接面对汇编代码。不过,为了优化严格要求速度的通道或者访问底层硬件,同时也支持并鼓励本地语言子程序(TINI操作系统用本地代码写成,因此,串行I/O的吞吐率和现代PC没有明显差异)。除完全支持java.net包外,TINI Java运行环境还包含一个完整实现的javax.com子系统。通过Java可毫不费力地访问TCP/IP和串行口,因此,TINI系统可非常容易地用来实现串行口-以太网桥。

下面的例子中,TINIm390验证模块(放置在E10插槽)是DS80C390 TINI开发平台的硬件部分(TINIm400是配合DS80C400制作的)。除了SRAM、Flash、以太网、CAN总线、1-Wire等,系统还有四个串口,其中DS80C390内部包括两个UART,另外两个是扩充的(采用一片16550选配件)。需要注意的是,E10插座上的两个串行连接器都被接到了serial0,它们只是在DTE/DCE引脚安排上有所差异。详细资料请参阅《TINI特性和开发指南》,PDF文件可以从www.ibutton.com/TINI/book.html下载。

2 范例

下面介绍两具具体应用,并从一个普通的串行口-以太网程序中摘录片段出来。经过修改,它几乎可适应于各种应用。这些范例利用TINIm390/400验证模块搭建而成,如图1所示。

可以把TINI验证模块看成“黑盒子”,将多个串行设备挂接到以太网。根据最终设备的需要,TINI可以让数据流直通,也以对数据进行解析、翻译或修改。尽管设计人员可以在TINIm390/400的开发器外壳上运行这些范例,但更合理的做法将其驻留于内存之中,掉电之后还能够自启动,并利用其它一些TINI构造技术使最终产品更加牢靠。如果想修改这些范例,需要具备一些基本的网络知识和编程经验。样例工作代码也可以Dallas公司ftp站点(ftp

篇4:串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

DataFlash系列存储器几乎可以和任何类型的单片机接口,无论单片机是否有SPI接口。当然,如果单片机有SPI接口,那么存储器读/写程序就相对简单些;如果单片机没有SPI接口,则可以用软件仿真SPI接口与存储器通信。

图5为微型压力测量系统的一部分。存储器采用AT45DB161B-TC,TSOD封装;单片机为美国Microchip公司的PIC16LC73B-04/SS,SSOP封装。单片机采用软件仿真SPI接口的方式与存储器通信,存储器工作于SPI模式0。

4.2AT45DB161B存储器读/写子程序

DataFlash系列存储器可以按地址从低到高顺序读写,也可以随机读写任一字节的数据。对于顺序读数据,可以使用连续读主存页阵列命令(操作码68H或E8H)从给定的起始地址开始连续读出,中间不需用户干预,也可使用读单页主存命令(操作码52H或D2H),自行提供页地址读取数据。对于顺序写数据,可以使用通过缓存写主存页命令(操作码82H或85H),直接将数据写入主存;也可以先使用写缓存命令(操作码84H或87H),将数据写入缓存,在适当的时刻再使用缓存写主存页命令(操作码83H或86H),将缓存中的数据写入主存,如图6所示。使用何种方式读写取决于特定的应用场合与要求。

下面的子程序为顺序读/写存储器的例子。子程序spiwt采用了通过缓存写主存页的方法,向存储器写入1字节数据。顺序读存储器子程序spicrd采用了边疆读主存页阵列命令。从给定地址处连续读出数据,用图5所示的PIC16LC73B单片机汇编语言编写,使用MPLAB5.4.00编译器编译通过并烧写入单片机,按图5所示系统实测通过。

;顺序写子程序,用spiwt名称调用

spiwtbcfSTATUS,RP0

bcfPORTB,SCK;模式0

bcfPORTB,cs;片选

movlw82H;加载操作码

movwfspi_out;置入寄存器

callspiout;调用子程序输出操作码

movfPA1,w;加载第一字节地址

movwfspi_out;置入寄存器

callspiout;调用子程序输出

movfBA1,w

xorwfPA2,w;获得第二字节地址

movwfspi_out;置入寄存器

callspiout;调用子程序输出

movfBA2,w;加载第三字节地址

movwfspi_out;置入寄存器

callspiout;调用子程序输出

movfspi_wt,w;加载待写数据

movwfspi_out;置入寄存器

callspiout;调用子程序输出

bsfPORTB,cs;触发写入操作

nop;延时

retlw0;从子程序返回

;输出子程序,用spiout名称调用

spioutmovlw0x08;加载输出位数

movwfspi_cnt;置入寄存器

nspioutrlfspi_out;先输出最高位

btfscSTATUS,C;是否为1

bsfPORTB,SDO;输出1

btfssSTATUS,C;是否为0

bcfPORTB,SDO;输出0

nop;延时

bsfPORTB,SCK;时钟信号上升沿

nop;延时

bcfPORTB,SCK;时钟信号下降沿

decfszspi_cnt;检查输出位数

gotonspiout;输出下一位

retlw0;从子程序返回

;顺序读子程序,用名称spicrd调用

spicrdbcfSTATUS,RP0

bcfPORTB,cs;片选

bcfPORTB,SCK;模式0

movlwE8H;加载操作码

movwfspi_out;置入寄存器

callspiout;调用子程序输出

movfPA1,w;加载第一字节地址

movwfspi_out;置入寄存器

callspiout;调用子程序输出

movfBA1,w

xorwfPA2,w;获得第二字节地址

movwfspi_out;置入寄存器

callspiout;调用子程序输出

movfBA2,w;加载第三字节地址

movwfspi_out;置入寄存器

callspiout;调用子程序输出

movfDCRE,w;加载任意位字节

movwfspi_out;置入寄存器

callspiout;调用子程序输出

movfDCRE,w;共需4个任意位字节

movwfspi_out

callspiout

movfDCRE,w

a

movwfspi_out

callspiout

movfDCRE,w

movwfspi_out

callspiout

篇5:主板故障 主板元器件及接口损坏

主板的平面是一块PCB印刷电路板,上面布满了插槽、芯片、电阻、电容等,其中任何元器件的损坏都会导致主板不能正常工作。比如主板上的芯片,一般的非整合主板都有两个芯片,一个是南桥芯片,一个是北桥芯片。如果北桥芯片坏了,CPU与系统的主界面交换就会出现问题。南桥芯片一旦出现问题,电脑就会失去磁盘控制器功能,这和没有了硬盘是没什么两样的。可见这两个芯片有多重要!如果这两个芯片烧掉了,那可是个致命伤,除非送回原厂去修。如果是整合主板就更麻烦了,因为它只有一个芯片,要是坏了可比一般的主板的问题还要严重。再比如主板上的铝电解电容(一般在CPU插槽周围),其内部采用了电解液由于时间、温度、质量等方面的原因,会使它发生“老化”现象,这会导致主板抗干扰指标的下降影响机子正常工作,

我们可以购买与“老化”容量相同的电容,准备好电烙铁、焊锡丝、松香后,将“老化”的替换即可。如果包换期还没过,最好找商家换块新主板,因为问题虽小,解决起来还是比较麻烦的。还有如果电源质量不好,或其他配件短路往往会造成电阻的烧毁。这种故障的判断,当然要反复的检查,看各插头、插座是否歪斜,电阻、电容引脚是否相碰,表面是否烧焦,芯片表面是否开裂,主板上的铜箔是否烧断。还要查看是否有异物掉进主板的元器件之间。遇到有疑问的地方,可以借助万用表量一下。触摸一些芯片的表面,如果异常发烫,可换一块芯片试试。

再有就是由于不恰当的带电热拔插,往往会造成主板接口的损坏。比如因热拔插打印机造成的并口损坏故障就很多,在不准备换主板的前提下,解决的办法:一是找一家具备芯片级维修能力的厂家维修;二是添加一块多功能卡。

篇6:串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

摘要:SP3223E/3243E是SIPEX公司生产的RS-232收发器接口芯片。该器件内部含有一个高效电荷泵,可在单+3.0V~+5.5V电源下产生±5.5V的RS-232电平,并支持EIA/TIA-232和ITU-TV.28/V.24通信协议,因而可用于笔记本电脑等便携式设备。文章分析了SP3223E/3243E的结构原理和主要特点,给出了它的典型应用电路。

关键词:电荷泵;自动上线;驱动器;收发器

1 概述

SP3223E/3243E是SIPEX公司生产的RS-232收发器,它支持EIA/TIA-232和ITU-T V.28/V.24通信协议,适用于便携式设备使用(如笔记本电脑及PDA)。SP3223E/3243E内有一个高效电荷泵,可在单+3.0V~+5.5V电源下产生±5.5V的RS-232电平,该技术已申请了美国专利(专利号为U.S.--5?306?954)。满负载时,SP3223E/3243E器件可工作于235kbps的数据传输率。3.3V时仅需0.1μF的电容。SP3223E是一个双驱动器/双接收器芯片,SP3243E则是一个三驱动器/五接收器芯片,是笔记本电脑或PDA的理想器件。SP3243E 包含一个总是处于激活状态的补充接收器,可在关断状态下监控外设(如调制解调器)。由于具有自动上线特性,因此,当其与一个相关外设之间接上RS-232电缆并处于工作状态下时,设备会自动醒来。否则,如果电流不足1mA,设备会自动关断。

SP3243E包含一个补充接收器,当电源断开时,该接收器可保护UART或串行控制器芯片。SP3223E和SP3243E是敏感电源设计的理想选择。SP3223E和SP3243E的自动上线电路减少了电源电流降到1mA以下的可能性。在大多数便携式应用场合,RS-232电缆可被断开或是将外设关闭。在上述情况下,其内部的电荷泵和驱动器也会被关闭。否则系统会自动上线工作。这样,设计人员就可在不改变主要设计的情况下节省电源损耗。

SP3223E/3243E的主要特点如下:

●在+3.5V~+5.5V单电源下符合EIA/TIA-232-F标准。

●可十分方便地在EIA/TIA-232标准下使用,而且在EIA/TIA-562标准下使用时,其电源可降至+2.7V。

●在睡眠状态下,当关断电流达到1μA时,自动上线电路会被唤醒。

●有负载时的最小数据传输率为120kB/s。

●尽管电源范围波动,由于电荷泵可调,RS-232输出仍较稳定。

●带有以下ESD防护功能:

+15kV人体模式;

+15kV IEC1000-4-2 空间放电;

+8kV IEC1000-4-2 接触放电。

(本网网收集整理)

2 SP3223E/3243E的引脚说明

SP3223E/3243E有DIP、SSOP、SOIC、TSSOP等几种不同的封装形式,图1为DIP封装的管脚排列。

3 结构原理

SP3223E和SP3243E系列器件内部由驱动器、收发器、SIPEX专有电荷泵、自动上线电路四个基本电路块组成。

3.1 驱动器

驱动器实际上是一个反转电平发送器,可用于把TTL或CMOS逻辑电平转换成5.0V EIA/TIA-232电平,以使其与输入的逻辑电平正好相反。该驱动器遵从EIA-TIA-232F 和所有以前版本的RS-232协议。

驱动器可工作在数据传输率为235kbps的情况下。在3kΩ负载与1000pF电容并联的满负荷情况下,其数据传输率为120kbps,并可保证PC―PC之间通信软件的协调性。驱动器的输出变化率被内部限制为最大不超过30V/ms,以符合EIA标准(EIA RS-232D 2.1.7?第5段)。实际上,负载输出从高电平变为低电平也符合此标准。

3.2 接收器

接收器可将±5.0V的EIA/TIA-232电平转换为TTL或CMOS逻辑输出电平。所有接收器的反转输出都可通过EN引脚被禁止。当自动上线电路有效或系统为关闭状态时,接收器处于激活状态。当系统关闭时,接收器始终处于激活状态。如果接收器在超过100μs的时间里没有参与任何活动或是SHUTDOWN为低电平,芯片会进入待命状态,此时电流会降到1μ

A以下。驱动EN上的逻辑高电平可使接收器输出端进入高阻状态。

由于经过了电缆线和系统接口的衰减,接收器输入的信号有一个典型值为300mV的滞后区域。这一特性可确保接收器免于噪声干扰。设计时,一个输入端应悬空,内置的限流电阻应接地,接收器的输出端应为高电平。

3.3 电荷泵

电荷泵是SIPEX公司的专利技术(专利号U.S.5,306,954) ,与过去不成熟的设计相比,它采用了独一无二的新技术,该电荷泵需要四只外接电容,它使用四相电压变换技术来获取对称5.5V电源。内部电源由可调电荷泵组成,可提供5.5V输出电压。

电荷泵使用的一只内部振荡器通常工作在离散方式下。输出电压不足5.5V时将启动电荷泵。如果输出电压超过5.5V, 电荷泵将停止工作。其内部的振荡器主要用于控制四相电压的`变化。

3.4 自动上线电路

SP3223E/3243E器件可在关闭期间通过板上自动上线电路节约能量,可应用在笔记本电脑、掌上电脑?PDA?和其他便携式系统中。通过SP3223E/3243E器件内置的自动上线电路,器件可在外部发送器打开和接上电缆后自动处于工作状态。另一方面,当器件未被使用并进入待机状态,且电流降至1μA以下时,自动上线电路会使大多数内部电路处于无效状态。这项功能也可通过ONLINE引脚为逻辑低电平时激活自动上线功能来控制。一旦该功能被激活,器件将处于有效状态直至接收器输入端无任何活动。接收器输入端至少有±3V的电压可由电缆另一端的至少为±5V的发送器产生。当外部发送器为无效或电缆断开后,接收器输入将被内部5kΩ电阻下拉接地。而当超过一定时期后,内部发送器将无效,器件进入关闭或待机状态。当ONLINE为高电平时,自动上线方式无效。

4 典型应用电路

图2所示是由微处理器监控电路控制的接口电路。该电路主要通过SP3243E来实现,它既可以将接收到的RS-232电平转换为TTL/CMOS电平,也可以将准备发送的TTL/CMOS电平转换为RS-232电平。需要说明的是:当SP3223E和SP3243E器件被关闭后,器件中的电荷泵也会被关闭。此时,电荷泵的输出V+会被衰减为VCC?而输出V-则衰减为GND。衰减时间可根据电荷泵使用的电容器的大小来决定。电路关闭时,退出关闭状态并拥有有效的V+和V-所需的时间大约为20μs。

篇7:串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

一、单项选择(在备选答案中选出一个正确答案,并将其号码填在题干后的括号内。每题2分,共30分).某微机最大可寻址的内存空间为16MB,其CPU地址总线至少应有(D)条。

A.32 B.16 C.20 D.24 2.用8088CPU组成的PC机数据线是(C)。

A.8条单向线 B.16条单向线 C.8条双向线 D.16条双向线.微处理器系统采用存储器映像方式编址时存储单元与I/O端口是通过(B)来区分的。

A.不同的地址编码 B.不同的读控制逻辑 C.不同的写控制逻辑D.专用I/O指令.要禁止8259A的IR0的中断请求,则其中断屏蔽操作指令字OCW1应为(D)。

A.80H B.28H C.E8H D.01H 5.在8086环境下,对单片方式使用的8259A进行初始化时,必须放置的初始化命令字为(B)。

A.ICW1,ICW2,ICW3 B.ICW1,ICW2,ICW4 C.ICW1,ICW3,ICW4 D.ICW2,ICW3,ICW4 6.6166为2Kx8位的SRAM芯片,它的地址线条数为(A)。

A.11 B.12 C.13 D.14 7.在计算机系统中,可用于传送中断请求和中断相应信号的是(C)。

A.地址总线 B.数据总线 C.控制总线 D.都不对.段寄存器装入2300H,该段的最大结束地址是(A)。

1. D 2. C 3. B 4. D 5. B 6. A 7. C 8. A 9. A 10. B 11. A 12. D 13. B 14. C 15. D

A.32FFFH B.23000H C.33FFFH D.33000H 9.在进入DMA工作方式之前,DMA控制器当作CPU总线上的一个(A)。

A.I/O设备 B.I/O接口 C.主处理器 D.逻辑高.在8086宏汇编过程中不产生指令码,只用来指示汇编程序如何汇编的指令是(B)。

A.汇编指令 B.宏指令 C.机器指令 D.伪指令 11.中断向量表占用内存地址空间为(A)。

A.00000H~003FFH B.00000H~000FFH C.00000H~00100H D.FFF00H~FFFFFH 12.实现CPU与8259A之间信息交换是(D)。A.数据总线缓冲器 B.级联缓冲/比较器

C.读写控制电路 D.数据总线缓冲器与读写控制电路 13.Intel 8253的最大输入时钟频率是(B)。A.5MHz B.2MHz C.1MHz D.4MHz.完成两数相加后是否溢出的运算,用(C)标志位判别。

A.ZF B.IF C.OF D.SF 15.8255A的方式选择控制字应写入(D)。A.A口 B.B口 C.C口 D.控制口

二、填空题(把答案填写在题中横线上,每空1分,共20分)1.8086/8088CPU的数据线和地址线是以_分时复用 方式轮流使用的。.CPU中的总线接口部件BIU,根据执行部件EU的要求,完成_____________与 _____________或____________的数据传送。.8086中的BIU由______4_______个____16_________位段寄存器、一个______16_______位指令指针、______6_______字节指令队列、_____________位地址加法器和控制电路组成。

1._分时复用____ 2._CPU____;_存储器____;_I/O设备____ 3._4__;___16____;____16____;____6_____;____20____ 4._段地址___;__偏移地址___.8086/8088构成的微机中,每个主存单元对应两种地址:_________和__________。.对于8259A的中断请求寄存器IRR,当某一个IRi端呈现_____________时,则表示该端有中断请求。6.若8259A中ICW2的初始值为40H,则在中断响应周期数据总线上出现的与IR5对应的中断类型码为_____________。7.在存储器的层次结构中,越远离CPU的存储器,其存取速度_____________,存储容量_____________,价格_____________。

5._ 1___ 6._45H___ 7._越慢___;_越大___;_越低___ 8._存取时间___;_存取周期___ 9._最后___ 10._2FAH,2FCH,2FEH___ 8.存储器的存取速度可用_____________和_____________两个时间参数来衡量,其中后者比前者大。.中断返回指令IRET总是排在_____________。.若8255A的系统基地址为2F9H,且各端口都是奇地址,则8255A的三个端口地址为_____________。

三、综合题(第1、3题各10分,第2、4题各15分,共50分)1.存储器系统连接如下图,请分别写出图中第一组(1#、2#)、第二组(3#、4#)的地址分配范围。(写出具体步骤)

A19 A18 A17 A16 A15 A14 A13 A12 – A0 0 …… 0 第一组范围: 0 0 1 1 1 1 0 1 …… 1 2分 即为:3C000H—3EFFFH 3分

A19 A18 A17 A16 A15 A14 A13 A12 – A0 0 …… 0 第二组范围: 0 0 1 1 0 0 1 1 …… 1 2分 即为:32000H—33FFFH 3分.计数器/定时器8253,振荡器(频率为1MHZ)连线如下图所示,其中振荡器的脉冲输出端接通道0的计数输入端CLK0,设8253的端口地址为180H~186H。请完成以下任务:

(1)该电路中通道0的OUT0输出2KHZ连续方波,通道0的计数初值为多少(写出计算式)?GATE0应接何电位?在图上画出。(2)若要8253的OUT1端,能产生周期为1秒的连续方波,该如何解决?在图上画出。

(3)写出实现上述功能的8253初始化程序。

2.(1)N0=1MHZ/2KHZ=500,GATE0接高电平,+5V; 2分

(2)可将OUT0与CLK1相连,作为输入时钟脉冲; 3分(3)N1=2KHZ/2HZ=1000 2分 计数器0:MOV DX,186H MOV AL,00110111B 2 OUT DX,AL MOV DX,180H MOV AL,00H 1 OUT DX,AL MOV AL,05H OUT DX,AL 1计数器1:MOV DX,186H MOV AL,01110111B 2OUT DX,AL MOV DX,182H MOV AL,00H 1OUT DX,AL MOV AL,10H OUT DX,AL 1分 分 分 分 分 分.设8255A的4个端口地址为90H~93H,将A口置成方式0输出,B口置成方式1输入,C作为输入口。要求编制8255A初始化程序并设计译码电路(可选用任意芯片),只用8位地址线(A0~A7)。

3.MOV AL,10001111B OUT 93H,AL 2分 IN AL,91H 1分 OUT 90H,AL 1分

译码电路连接如下: 6分

4.通过8259A产生中断使8255A的端口A经过反相驱动器连接一共阴极七段发光二极管显示器;端口B是中断方式的输入口。设8259A的中断类型码基值是32H。8255A口地址为60H-63H,8259A端口地址为20H、21H。试完成以下任务:

(1)设系统中只有一片8259A,中断请求信号为边沿触发方式,采用中断自动结束方式、全嵌套且工作在非缓冲方式,试完成8259A的初始化编程。

(2)若使LED上显示E,端口A送出的数据应为多少?如显示O端口A送出的数据又为多少?编写程序实现在LED上先显示E,再显示O的程序。

附8259A初始化命令字和操作命令字格式:

《微机原理与接口技术》期末考试参考答案及评分标准

(A卷,考试)

一、单项选择(在备选答案中选出一个正确答案,并将其号码填在题干后的括号内。每题2分,共30分)

1. D 2. C 3. B 4. D 5. B 6. A 7. C 8. A 9. A 10. B 11. A 12. D 13. B 14. C 15. D

二、填空题(把答案填写在题中横线上,每空1分,共20分)

1._分时复用____ 2._CPU____;_存储器____;_I/O设备____ 3._4__;___16____;____16____;____6_____;____20____ 4._段地址___;__偏移地址___ 5._ 1___ 6._45H___ 7._越慢___;_越大___;_越低___ 8._存取时间___;_存取周期___ 9._最后___ 10._2FAH,2FCH,2FEH___

三、综合题(第1、3题10分,第2、4题15分,共50分)

1.A19 A18 A17 A16 A15 A14 A13 A12 – A0 0 …… 0 第一组范围: 0 0 1 1 1 1 0 1 …… 1 2分 即为:3C000H—3EFFFH 3分

A19 A18 A17 A16 A15 A14 A13 A12 – A0 0 …… 0 第二组范围: 0 0 1 1 0 0 1 1 …… 1 2分 即为:32000H—33FFFH 3分

2.(1)N0=1MHZ/2KHZ=500,GATE0接高电平,+5V; 2分(2)可将OUT0与CLK1相连,作为输入时钟脉冲; 3分(3)N1=2KHZ/2HZ=1000 2计数器0:MOV DX,186H MOV AL,00110111B 2 OUT DX,AL MOV DX,180H MOV AL,00H 1 OUT DX,AL MOV AL,05H OUT DX,AL 1计数器1:MOV DX,186H MOV AL,01110111B 2OUT DX,AL

分 分 分 分 分 MOV DX,182H MOV AL,00H 1分 OUT DX,AL MOV AL,10H OUT DX,AL 13.MOV AL,10001111B OUT 93H,AL 2 IN AL,91H 1 OUT 90H,AL 1译码电路连接如下:分

分 分 分

64.(1)MOV AL,0001011B OUT 20H,AL 1分

MOV AL,00110010B OUT 21H,AL 2分

MOV AL,00010011B OUT 21H,AL 2(2)如果显示E,则端口A送出的数据是30H;如果显示O,则端口A送出的数据是01H;程序如下:MOV AL,10000000B OUT 63H,AL 2分 分

篇8:串行接口LED数码管及键盘管理器件ZLG7289A的原理与应用

2013年12月

第一章习题

1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?

【解】 把CPU(运算器和控制器)集成在一个芯片上,即为微处理器。微处理器加上部分存储器和外设(或外设接口)就构成了微型计算机。微型计算机与管理、维护计算机硬件以及支持应用的软件相结合就形成微型计算机系统。1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?

【解】CPU主要由算术逻辑单元、指令寄存器、指令译码器、可编程逻辑阵列、寄存器组、标志寄存器等组成。CPU主要功能是进行算术逻辑运算,以及控制计算机按照程序的规定自动运行。

1.3 微型计算机采用总线结构有什么优点?

【解】采用总线结构,扩大了数据传送的灵活性,减少了连线;而且总线可以标准化,易于兼容和工业化生产。

1.4 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一组总线或者合用部分总线,那么要靠什么来区分地址和数据?

【解】数据总线是双向的,地址总线是单向的。采用数据和地址线复用,主要靠信号的时序来区分。通常在读写数据时,在复用的总线上先输出地址信息,然后再传送数据。

第二章习题

2.9 8086的基本程序执行寄存器是由哪些寄存器组成的? 【解】8086的基本程序执行寄存器组成如下: ⑴ 8个通用寄存器:可用于存放操作数和指针。⑵ 4个段寄存器:保存段基值(或段选择子)。⑶ 1个标志寄存器:保存状态位和控制标志位。

⑷ 1个指令指针寄存器:存放下一条要执行的指令的指针。2.13 如何形成指令中的各种条件码?

【解】指令中的条件码,即标志寄存器中的状态标志。它们主要由算术和逻辑运算指令设置或清除。也有设置和清除某些状态标志位的专用指令。

2.16 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?

【解】指令的物理地址 = 1200H×16 + FF00H = 21F00H 2.17 8086微处理器的执行部件有什么功能?由哪几部分组成?

【解】8086微处理器的执行部件负责指令的执行。它主要由算术逻辑单元、标志寄存器和通用寄存器等部分组成。

第三章习题1 3.11 8086汇编语言指令的寻址方式有哪几类?哪一种寻址方式的指令执行速度最快?

【解】寻址方式分为:立即数寻址、寄存器寻址和存储器寻址方式。其中,寄存器寻址方式的指令执行速度最快。

3.12 在直接寻址方式中,一般只指出操作数的偏移地址,那么段地址如何确定?如果要用某个段寄存器指出段地址,在指令中应该如何表示?

【解】默认的数据访问,操作数在DS段;堆栈操作数在SS段;串操作的源操作数(SI)在DS段,目的操作数(DI)在ES段。如果要显式地指定段地址,则在操作数中规定段寄存器(段超越)。例如:MOV AX,ES:[1000H]

3.13在寄存器间接寻址方式中,如果指令中没有具体指明段寄存器,那么如何确定段地址?

【解】根据所使用的寄存器,隐含地规定了默认的段寄存器。IP:默认CS段;SP、BP:默认SS段;AX、BX、CX、DX、SI、DI:默认DS段。

允许段超越,例如:MOV ES:[BX],AX

第三章习题2 3.1 分别指出下列指令中的源操作数和目的操作数的寻址方式。

(1)MOV SI,300(3)ADD AX,[BX][SI] 【解】(1)SOPD是立即数寻址,DOPD是寄存器寻址。

(3)SOPD是基址加变址寻址,DOPD是寄存器寻址。

3.2 试述指令 MOV AX,2000H 和 MOV AX,DS:[2000H] 的区别。

【解】前一条指令是立即数寻址,即将立即数2000H送至AX;后一条指令是存储器直接寻址,是将存储器DS:[2000H]单元中的内容送至AX。3.4 判断下列指令书写是否正确。

(1)MOV AL,BX(4)MOV 5,AL 【解】(1)不正确,AL与BX数据宽度不同

(4)不正确,立即数不能作为目的操作数。

3.5 设堆栈指针SP的初值为1000H,AX=2000H,BX=3000H,试问:

(1)执行指令 PUSH AX 后,SP的值是多少?

(2)再执行 PUSH BX 及 POP AX 后,SP、AX和BX的值是多少? 【解】(1)SP=0FFEH(2)SP=0FFEH,AX=3000H,BX=3000H 3.8 用两种方法写出从80H端口读入信息的指令,再用两种方法写出从40H端口输出100H的指令。

【解】从80H端口读入信息的两种分法:

(1)IN AL,80H(2)MOV DX,80H IN AL,DX 从40H端口输出100H的两种分法:

(1)MOV AX,100H(2)MOV AX,100H OUT 40H,AX MOV DX,40H OUT DX,AX

第三章习题3 3.23 两种循环移位指令(带CF的和不带CF的)在执行操作时,有什么区别?在编制乘、除法程序时,为什么常用移位指令来代替乘、除法指令?试编写一个程序段,实现将BX中的数乘以10,结果仍放在BX中的操作。【解】两种指令的区别在于是否把标志位的值放入循环中。左移1位相当于乘2,右移1位除2。故左移和右移可实现乘2和除2的幂,且移位指令比乘除指令快得多。BX×10=BX×2+BX×8=BX×2+BX×23 SHL BX,1 MOV AX,BX ;AX=BX×2 SHL BX,1 ;BX×4 SHL BX,1 ;BX×8 ADD BX,AX ;BX=BX×8+BX×2=BX×10

3.25 用串操作指令设计实现如下功能的程序段:首先将100H个数从2170H处转移到1000H处;然后,从中搜索出与AL中字符相等的单元,并将此单元的值换成空格符。【解】

MOV SI,2170H MOV DI,1000H MOV CX,100H CLD REP MOVSB MOV DI,1000H MOV CX,100H

MOV AL,‘*’

NEXT:SCASB JZ N1 LOOP NEXT HLT N1: MOV [DI-1],20H JMP NEXT HLT

3.26 在使用条件转移指令时,特别要注意它们均为相对转移指令,请解释“相对转移”的含义。如果要向较远的地方进行条件转移,那么程序中应该怎样设置? 【解】相对转移即为相对于指令指针的转移。通常,偏移量是8位数,是短转移;要向较远的地方进行条件转移,可以先转到附近,再无条件转向目的地。

3.29 在执行中断返回指令IRET和普通子程序返回指令RET时,具体操作内容有什么不同?

【解】IRET除了弹出中断要返回的地址(CS和IP)外,还要恢复中断前的标志寄存器。

第四章习题1 4.1 在下列程序运行后,给相应的寄存器及存储单元填入运行的结果: MOV AL,10H ;AL=10H MOV CX,1000H ;CX=1000H MOV BX,2000H ;BX=2000H MOV [CX],AL ;(1000H)=10H XCHG CX,BX ;BX=1000H, CX=2000H MOV DH,[BX] ;DH=10H MOV DL,01H ;DL=01H XCHG CX,BX ;BX=2000H, CX=1000H MOV [BX],DL ;(2000H)=01H HLT 【解】AL=10H;BX=2000H;CX=1000H;DX=1001H;

(1000H)=10H;(2000H)=01H

4.4 利用变址寄存器,编写一段程序,把自1000H单元开始的100个数传送到自1070H开始的存储区中。【解】

MOV SI, 1000H MOV DI, 1070H MOV CX, 100 CLD REP MOVSB HLT

4.10 把在题4.7中指定的数据块中的正数传送到自1000H开始的存储区;而把其中的负数传送到自1100H开始的存储区。分别统计正数和负数的个数,分别存入1200H和1201H单元中。【解】

MOV SI, 0500H MOV DI, 1000H MOV BX, 1070H MOV CX, 100 MOV DX, 0 N1: MOV AL, [SI] TEST AL, 8000H ;测试符号位

JNZ N2 MOV [DI], AL INC DL ;正数的个数计数 INC SI INC DI JMP N3 N2:MOV [BX], AL INC DH ;负数的个数计数 INC SI INC BX N3:LOOP N1 MOV [1200H], DX HLT

4.11 自0500H单元开始,有10个无符号数,编写一个程序,求这10个数的和(用8位数运算指令),把和放到050AH及050BH单元中(和用两个字节表示),且高位在050B单元。【解】

MOV BX, 0500H MOV AX, 0 MOV CL, 10 N1: MOV DL, [BX] ADD AL, DL ADC AH, 0 INC BX DEC CL JNZ N1 MOV [050AH], AX HLT

第四章习题2 4.18 在0100H单元和010AH单元开始,存放两个各为10个字节的BCD数(地址最低处放的是最低字节),求它们的和,且把和存入0114H开始的存储单元中。【解】

LEA SI,[0100H] LEA DI, [0114H] CLC MOV CL, 10 N1: MOV AL, [SI] MOV BL, [SI+10] ADC AL, BL DAA MOV [DI], AL INC SI INC DI DEC CL JNZ N1

4.28 若从0200H单元开始有100个数,编写一个程序检查这些数,正数保持不变,负数都取补后送回。【解】

LEA BX, [0200H] MOV CX, 100 CHE: MOV AL, [BX] AND AL,AL JS MINUS INC BX JMP L1 MINUS:NEG AL MOV [BX], AL

INC BX L1: LOOP CHE HLT

4.37 若自0500H单元开始有1000个带符号数,把它们的最小值找出来,并且放在1000H单元中。【解】

LEA BX, [0500H]

MOV AX, [BX] INC BX INC BX MOV CX, 999 AGAIN: CMP AX, [BX] JL NEXT MOV AX, [BX] NEXT: INC BX INC BX

LOOP AGAIN

MOV [1000H], AX

HLT

第五章习题

5.1 总线周期的含义是什么?8086/8088CPU的基本总线周期由几个时钟周期组成?如果一个CPU的时钟频率为8MHz,那么,它的时钟周期是多少?一个基本总线周期是多少?如果主频为5MHz呢?

【解】CPU访问总线(对内存单元或I/O端口读/写一个字节或字)所需的时间称为总线周期。8086/8088CPU的基本总线周期由4个时钟周期组成。

主频为8MHz时,时钟周期为1/8MHz=125ns,一个基本总线周期为500ns; 主频为5MHz时,时钟周期为1/8MHz=200ns,一个基本总线周期为800ns。5.2 在总线周期的T1、T2、T3、T4状态,CPU分别执行什么动作?什么情况下需要插入等待状态Tw?Tw在哪儿插入?怎样插入? 【解】以存储器读为例说明:

T1状态:输出地址、地址锁存、内存和I/O端口访问控制信号等;

T2状态:CPU开始数据传送操作,将地址/数据复用线切换为传输数据状态,由总线控制器发出相应的读写控制信号及数据使能信号;同时将高端地址/状态复用线切换为状态线,输出状态信息,指示具体操作; T3状态:其时钟下降沿采样READY信号,若READY有效,则进入T4状态;若READY无效,则插入等待状态Tw,并在Tw的下降沿继续采样READY信号直到READY有效,转入T4状态;

T4状态:CPU完成数据传输,状态信号变为无操作的过渡状态,结束总线周期。CPU访问慢速的内存或I/O端口时,不能在基本总线周期内完成数据传输,需要插入等待状态Tw,在T3状态对READY信号采样,READY无效时插入Tw。

5.3 8086CPU和8088CPU是怎样解决地址线和数据线的复用问题的?ALE#信号何时处于有效电平

【解】8086/8088CPU利用分时时序信号解决地址线和数据线的复用问题。在总线周期的T1状态在复用线上输出地址信号及地址锁存信号ALE#,供外部电路锁存地址信息;从T2状态开始将复用线切换为数据状态,用于传送数据。

6.4 若要扩充1KB RAM(用2114芯片),规定地址为8000H~83FFH,地址线应该如何连接? 【解】扩充1KB RAM至规定的地址8000H~83FFH,其地址线的低10位地址A9~A0直接连接2114芯片,高6位地址A15~A10置为100000B。

第七章习题

7.1 外部设备为什么要通过接口电路和主机系统连接?

【解】外设这类多,传输信息可能是数字量或模拟量,且传输速度、时序、电平、功率等与CPU不兼容,通常需要接口电路完成两者之间的转换与匹配。

7.5 什么叫端口?通常有哪几类端口?计算机对I/O端口编址时通常采用哪两种方法?在8086/8088系统中,用哪种方法对I/O端口进行编址? 【解】端口是信息输入或输出的通路;通常有数据端口、状态端口和控制端口等。在计算机中用地址来区分不同的端口,采用两种编址方法:存储器对应的(存储器映像方式)和端口寻址的输入输出方式(隔离I/O方式)。8086/8088系统中,采用隔离I/O方式。7.7 CPU和外设之间的数据传输方式有哪几种?实际选择某种传输方式时,主要依据是什么?

【解】CPU与外设之间的数据传送方式主要有三种:查询传送方式、中断传送方式和直接数据通道(DMA)传送方式。具体采用哪种传送方式,主要依据数据传送的速度和数量。外设速度较慢或要求实时处理时,可采用中断传送方式;外设速度与CPU相当时,可采用查询传送方式;要求传送速度块且是批量传送时,采用DMA传送方式。

7.10 查询方式有什么优缺点?中断传送方式为什么能弥补查询传送方式的缺点?

【解】采用查询传送方式,CPU在外设有无数据时都要不断查询状态信息,判断是否可以传送数据,优点是简单、可靠;缺点是效率低、速度慢。中断传送方式只有在外设准备就绪后,需要传送数据时,才发出中断申请,CPU转入中断服务程序实现数据传送,CPU的工作效率高。

7.17 试说明在DMA方式时由内存向外设传输数据的过程。

【解】当CPU响应DMA请求发出HLDA信号后,DMA控制器获得总线控制权,向地址线发内存地址,同时发读写控制信号,把内存读出的数据输出至外设。然后判断是否已经传送完毕。若未完,修改内存地址,重复输出过程,直至输出完成,撤销DMA请求,交还总线控制权给CPU。

第八章习题

8.4 什么叫中断向量?它如何产生?如果1CH的中断处理子程序从5110H:2030H开始,则中断向量表应如何存放?

【解】中断向量就是中断服务程序的入口地址,所有的中断向量存放在内存空间的最低1KB区域(中断向量表);通过CPU执行指令时(软件中断)和响应外部中断时获得的中断类型号,寻址中断向量表获得中断向量。中断类型号为1CH的中断向量表地址=1CH×4=70H,低字存放IP值,高字存放CS值,即:(0070H)=30H,(0071H)=20H,(0072H)=10H,(0073H)=51H。

8.21 8086 CPU有哪几种中断?哪些是硬件中断?哪些是软件中断? 【解】8086 CPU有两类中断:

1、软件中断(内部中断),由指令的执行所引起的(如:除法错、INT指令、INTO指令和单步执行等);

2、硬件中断(外部中断),由外部的事件所引起的(如:非屏蔽中断NMI、可屏蔽中断INTR)。

第九章习题

9.2 计数器/定时器8253有哪几种工作方式?各有何特点?其用途如何? 【解】计数器/定时器8253有以下6种工作方式:

方式0:计数结束中断方式,计数结束时产生一个正跳变的中断请求信号,常用于事件计数功能,且只计数一次;

方式1:硬件可重触发单脉冲方式,触发后可产生一个宽度为n个时钟周期的负脉冲,常用作门控信号;

方式2:速率波发生器方式,产生n次分频的周期信号,且低电平时只有一个时钟周期宽度,可用作一般分频功能;

方式3:方波速率发生器方式,产生n次分频的方波或近似方波的周期信号,可用作一般分频功能,常用于产生波特率时钟信号;

方式4:软件触发选通方式,在门控信号有效时,写入一次计数初值,延迟n个时钟周期产生一个单周期负脉冲,仅一次有效; 方式5:硬件件触发选通方式,在写入计数初值后,门控信号每产生一个上跳沿,延迟n个时钟周期产生一个单周期负脉冲,仅一次有效。

9.4 若已有一频率发生器,其频率为1MHz,若要求通过计数器/定时器8253,产生每秒一次的信号,8253应如何连接?编写出初始化程序。

【解】1MHz信号分频1000000次产生1Hz信号,一个计数通道最大的分频系数为65536,需采用两个通道级联进行分频,每个通道各分频1000次(计数初值1000=03E8H)。采用通道0和通道1级联,均工作在方式2,二进制计数,初始化程序段如下: MOV AL,34H OUT PORT3,AL ;PORT3为控制口地址 MOV AL,0E8H OUT PORT0,AL ;PORT0为通道0端口地址 MOV AL,03H OUT PORT0,AL MOV AL,74H OUT PORT3,AL ;PORT3为控制口地址 MOV AL,0E8H OUT PORT1,AL ;PORT1为通道1端口地址 MOV AL,03H OUT PORT1,AL

第十章习题

10.3 在输入过程和输出过程中,并行接口分别起什么作用?

【解】在输入过程中:并行接口主要起输入数据的缓冲或锁存作用,并产生相应的应答控制信号;在输出过程中:并行接口主要起输出数据的锁存作用,并产生相应的应答控制信号

第十一章习题

11.1为什么串行接口部件中的4个寄存器可以1位地址进行区分?

【解】串行接口部件中有两类端口:控制端口(控制字和状态字)和数据端口,可用1位地址加以区分,而控制端口的控制字输出和状态字输入以及数据端口的发送和接收可用读或写操作控制。

11.6 设异步传输时,每个字符对应1位起始位、7位信息位、1位奇/偶校验位和1位停止位,如果波特率为9600,则每秒钟能传输的最大字符数是多少? 【解】因为每个字符帧的总位数=1+7+1+1=10位,波特率为:9600(位/秒),则最大可传输的字符数为:9600÷10=960(个)

第十二章习题

12.6 A/D转换器接口电路一般完成哪些任务?

上一篇:浙江诸暨市建造师资质挂靠协议下一篇:西城幼儿园园本培训计划