当前位置:文档之家› 第七章习题单片机原理与应用第二版习题答

第七章习题单片机原理与应用第二版习题答

习题1.什么是 MCS-51 单片机的最小系统?答:所谓最小系统,是指一个真正可用的单片机的最小配置系统。

对于单片机内部资源已能够满足系统需要的,可直接采用最小系统。

2.简述存储器扩展的一般方法。

答:存储器芯片与单片机扩展连接具有共同的规律。

即不论何种存储器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。

另外,电源线接电源线,地线接地线。

3.什么是部分译码法?什么是全译码法?它们各有什么特点?用于形成什么信号?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。

部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间的浪费。

全译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线全部参加译码。

这种译码方法中存储器芯片的地址空间是唯一确定的,但译码电路要相对复杂。

译码形成存储器芯片的片选信号线CE 。

4.采用部分译码为什么会出现地址重叠情况,它对存储器容量有何影响?答:部分译码就是存储器芯片的地址线与单片机系统的地址线顺次相接后,剩余的高位地址线仅用一部分参加译码。

参加译码的地址线对于选中某一存储器芯片有一个确定的状态,而与不参加译码的地址线无关。

也可以说,只要参加译码的地址线处于对某一存储器芯片的选中状态,不参加译码的地址线的任意状态都可以选中该芯片。

正因为如此,部分译码使存储器芯片的地址空间有重叠,造成系统存储器空间减少。

5.存储器芯片的地址引脚与容量有什么关系?答:容量 ( Q) 与地址线数目 (N) 满足关系式:Q=2N。

6.MCS-51 单片机的外部设备是通过什么方式访问的?答: MCS-51 单片机扩展的外部设备与片外数据存储器统一编址,即外部设备占用片外数据存储器的地址空间。

按片外数据存储器的访问方式访问。

7.何为键抖动?键抖动对键位识别有什么影响?怎样消除键抖动?答:按键时,无论按下键位还是放开键位都会产生抖动,如果对抖动不作处理,必然会出现按一次键而输入多次,为确保按一次键只确认一次,必须消除按键抖动。

消除按键抖动通常有硬件消抖和软件消抖两种方法。

(2)8.矩阵键盘有几种编码方式?怎样编码?答:通常有以下两种方法进行编码;(1)用连接键盘的顺序排列编码。

9.简述对矩阵键盘的扫描过程。

I/O线的二进制组合进行编码。

答:矩阵式键盘的工作过程可分为两步:第一步是CPU 首先检测键盘上是否有键按下;第二步是识别哪一个键按下。

(1)检测键盘上是否有键按下的处理方法是:将列线送入全扫描字,读入行线的状态来判别。

(2)识别键盘中哪一个键按下的处理方法是:将列线逐列置成低电平,检查行输入状态,称为逐列扫描。

10.共阴极数码管与共阳极数码管有何区别?答:共阴极结构, 8 段发光二极管的阴极端连接在一起,阳极端分开控制,使用时公共端接地,要使哪根发光二极管亮,则对应的阳极端接高电平;共阳极结构,8 段发光二极管的阳极端连接在一起,阴极端分开控制,使用时公共端接电源,要使哪根发光二极管亮,则对应的阴极端接地。

11.简述 LED 数码管显示的译码方式。

答:所谓译码方式是指由显示字符转换得到对应的字段码的方式。

对于示器,通常的译码方式有硬件译码方式和软件译码方式两种。

12.简述LED动态显示过程。

LED数码管显答: LED 动态显示是将所有的数码管的段选线并接在一起,用一个 I/O 接口控制,公共端不是直接接地 ( 共阴极 )或电源 ( 共阳极 ) ,而是通过相应的 I/O 接口线控制,工作过程为:第一步使右边第一个数码管的公共端 D0 为 1,其余的数码管的公共端为 0,同时在 I/O(1) 上发送右边第一个数码管的字段码,这时,只有右边第一个数码管显示,其余不显示;第二步使右边第二个数码管的公共端 D1 为 1,其余的数码管的公共端为 0,同时在 I/O(1) 上发送右边第二个数码管的字段码,这时,只有右边第二个数码管显示,其余不显示,依此类推,直到最后一个,这样 4 个数码管轮流显示相应的信息,一次循环完毕后,下一次循环又这样轮流显示,从计算机的角度看是一个一个地显示,但由于人的视觉暂留效应,只要循环的周期足够快,则看起来所有的数码管就都是一起显示的了,这就是动态显示的原理。

13. 使用 2764(8KB8) 芯片通过部分译码法扩展24KB 程序存储器,画出硬件连接图,指明各芯片的地址空间范围。

答:使用 2764( 8K8)芯片通过部分译码法扩展24KB 程序存储器,须要 3 块。

采用线译码,P2.5 与第一片2764 的 CE 相连,P2.6 与第二片2764 的 CE 相连,P2.7 与第三片 2764的 CE 相连,硬件连接如下:P2.7P2.6P2.5P2.4~P2.05ALEG74LS58585 88373A0~A7A0~A78031OE A0~A7CE CE CEA8~A12A8~A12A8~A122764(1)2764(2)2764(3)D0~D7OE D0~D7OE D0~D7OE P08888EA PSEN地址空间如下:第一片:1100 0000 0000 0000~1101 1111 1111 1111 ;即 C000H~DFFFH ;第二片:1010 0000 0000 0000~1011 1111 1111 1111 ;即 A000H~BFFFH ;第三片:0110 0000 0000 0000~0111 1111 1111 1111 ;即 6000H~7FFFH ;14. 使用 6264(8KB 8) 芯片通过全译码法扩展 24KB 数据存储器,画出硬件连接图,指明各芯片的地址空间范围。

答:使用 6264( 8K 8)芯片通过全译码法扩展 24KB 程序存储器,须要 3 块。

采用 138 译码器译码,硬件连接如下:74LS138 VccG1 GG2Y3G2C Y2P2.7Y1BP2.6A Y0 P2.5P2.4~P2.05ALEG74LS5888585 373A0~A7CE A0~A7CE A0~A7CE8031OEA8~A12A8~A12A8~A126264(1)6264(2)OE6264(3)D0~D7OE D0~D7D0~D7OE P08888EA PSEN地址空间如下:第一片:0000 0000 0000 0000~0001 1111 1111 1111 ;即 0000H~1FFFH ;第二片:0010 0000 0000 0000~0011 1111 1111 1111 ;即 2000H~3FFFH ;第三片:0100 0000 0000 0000~0101 1111 1111 1111 ;即 3000H~5FFFH ;15.试用一片74LS373 扩展一个并行输入口,画出硬件连接图,指出相应的控制命令。

答 :硬件电路图如下:74LS373 的输入端为扩展的输入口,输出端接8051 的数据总路线 P0口,控制端接高电平,输出允许由片外数据存储器读信号RD 和 P2.0 控制。

当片外数据存储器读信号 RD 和 P2.0 同为低平时从74LS373 中读入输入的数据。

P0.0Q0 D 0P0.1Q174LS D 1P0.2Q2 D 2P0.3Q3373 D 3P0.4Q4 D 4P0.5Q5 D 5P0.6Q6 D 6P0.7Q7 D 78051OE G+5V+R DP2.0输入数据的命令如下:MOV DPTR, #0FE00HMOVX A ,@DPTR16.用 8255A 扩展并行 I/O ,实现把 8 个开关的状态通过 8 个二极管显示出来,画出硬件连接图,用汇编语言和 C 语言分别编写相应的程序。

答:硬件电路图如下:8051 与 8255 的连接略,设8255 的 A, B,C 和控制控口的地址为 7F00H, 7F01H, 7F02H , 7F03H 。

8255 的 A 口接 8 个开关, B 口接 8 个发光二极管。

PA 0PA 1PA 2PA 3PA 4系统总线PA5PA 6PA 780518255APB0PB1PB2PB3PB4PB5PB6PB7程序如下:汇编程序ORG 0000HLJMP MAINORG 0100HMAIN : MOV DPTR , #7F03HMOV A ,#90HMOVX@DPTR ,ALOOP : MOV DPTR , #7F00HMOVX A ,@DPTRMOV DPTR , #7F01HMOVX@DPTR, ASJMP LOOPSJMP $ENDC语言程序:#include <reg51.h>#include <absacc.h>main(){unsigned char i;XBYTE[0x7f03]=0x90;while(1){i=XBYTE[0x7f00];XBYTE[0x7f01]=i;}}+5VK 0L0K 7 L7+5V}17.用汇编语言编写出定时扫描方式下矩阵键盘的处理程序。

该程序放于定时器的中断服务程序中。

定时器每10ms 中断一次,执行一次中断服务程序。

F1和 F2 标志位用片内 RAM的 50H 和 51H 单元。

ACALL KS1JNZ LK1MOV50H,#0;无键按下, F1 的 F0 标志清0 结束MOV51H,#0SJMP OUTLK1: CJNE 50H,#1,OUT1;有键按下检查 F1标志是否为1,不为 1 置 1 结束。

CJNE 51H,#01,OUT;再检查 F2 标志是否为 1 ,为 1 说明已处理按键则结束。

LK2: MOV R2,#0FEH; 扫描查询键码MOV R4,#00HLK4: MOV DPTR,#7F00HMOV A,R2MOVX @DPTR,AINC DPTRINC DPTRMOVX A,@DPTRJB ACC.0,LONEMOV A,#00HAJMP LKPLONE: JB ACC.1,LTWOMOV A,#08HAJMP LKPLTWO:JB ACC.2,LTHRMOV A,#10HAJMP LKPLTHR: JB ACC.3,NEXTMOV A,#18HLKP: ADD A,R4; 求键码放累加大器A,MOV51H,#1;F2 标志置 1,结束SJMP OUTNEXT: INC R4MOV A,R2JNB ACC.7,KENDRL AMOV R2,ASJMP LK4KEND:SJMP OUT;扫描完结束KS1: MOV DPTR,#7F00H; 检查有无按键MOV A,#00HMOVX @DPTR,AINC DPTRINC DPTRMOVX A,@DPTRCPL AANL A,#0FHRETOUT1:MOV 50H,#1OUT:18.用 C 语言编写出定时扫描方式下矩阵键盘的处理程序。

相关主题