MOV R3, #01H ;置位选码初值 MOV A, R3
LOOP3: MOV DPTR, #7F01H ;A口地址送DPTR MOVX @DPTR, A ;输出位选码,一个LED显示 INC DPTR ;DPTR指向B口
MOV A, @R0 ;取被显示的数据 ADD A, #14 ;形成查表的偏移地址
MOVC A, @A+PC ;求出该键值显示的字型码 MOVX @DPTR, A ;输出显示代码 ACALL TIM ;延时
INC R0 ;指向下一个显示缓冲区单元 MOV A, R3
JB ACC.5, LOOP4 ;6位显示完毕则转LOOP4 RL A ;显示位左移 MOV R3, A AJMP LOOP3 LOOP4: RET
第三节 增选习题及解答
一、填空题
1.8155内部计数器有( )种脉冲输出方式,具体输出方式由( )决定。
2.写8255A控制字的时候,需将A1、A0置为( )。 3.8255A有两个控制字:( )和( )。
4.设将8155置为基本输入/输出方式:A口、B口输出,C口输入,启动计数,A口B口禁止中断,则应向8155工作方式控制字寄存器写入( )。 5.非编码键盘可分为两种结构形式:( )和( )。 填空题参考答案:
1.四种、计数器高字节中M1,M2两位(最高两位)的状态 2.1,1
3.工作方式控制字、C口按位操作控制字 4.C3H
5.独立式按键、行列式按键 二、选择题
1. 使用8255A可以扩展出( )根I/O口线?
(A)16根(B)24根 (C)22根 (D)32根
2. 8255A端口A、B均工作在方式0的输入方式时,端口C可作为( )。
(A)两个4位I/O端口或一个8位I/O端口(B)状态端口(C)部分引脚作端口A、端口B的联络信号(D)全部做联络信号
3. 8255A端口B设置为方式1且为输出,其收到一个负脉冲说明( )。 ACKB
(A)CPU已将一个数据写到端口B;(B)请求CPU送下
一个数据
(C)外设已经将数据由端口B取走;(D)INTRB中断请求被CPU响应
4.若要求8155计数器输出连续方波,则须将计数器中的M2,M1置为( )。
(A)0,0 (B)0,1 (C)1,0 (D)1,1 5.8155的控制命令寄存器( ) (A) 只能写入,不能读出;(B)只能读出,不能写入 (C) 既能读出,也能写入;(D) 不能读出,写不能写入
选择题参考答案:
1.B 2.A 3.C 4.B 5.A 三、简答题
1. 8255A由哪几部分组成?有哪几种工作方式?
答:8255A有以下四部分组成:数据端口A、B、C;A组控制和B组控制;读/写控制逻辑;数据总线缓冲器;
8255A有三种工作方式:(1)工作方式0:基本输入输出工作方式;(2)工作方式1:选通式输入输出工作方式;(3)工作方式2:双向传送方式,仅适用于端口A。
2. 8255A的B口可以设定为方式2吗?为什么?
答:8255A的B口不可以设定为方式2。
只有A口可以方式2工作,为双向口,其输入或输出都有独立的状态信息,占用C口的5根联络线(PC3,---,PC7)。这时,C口就不能为B口提供足够的联络线,从而B口不能工作在方式2和方式1,只能工作在方式0。
3.8155有哪几种工作方式?怎样进行选择? 答:8155有三种工作方式,即通用I/O口、CPU片外256字节RAM存取以及定时器/计数器方式。 引脚置为高电平时: MIO/
①作为通用I/O口。I/O工作方式选择是通过对8155内部命令寄存器送命令字来实现的。
②作为定时器/计数器使用。分别选择定时器/计数器的高、低8位寄存器地址,通过对高8位的高2位的设置可定义4种输出波形。高8位中的低6位和低8位寄存器共14位,用于存放14位计数器初值。
引脚置为低电平时:作为CPU片外256B的RAM使用,其寻址范围由片选线(高位地址译码)和AD0—AD7决定,应与应用系统中其他数据存储器统一编址。
MIO/CE
四、8255A接口芯片应用
用单片机完成某生产过程控制。该过程有六个工序,循环进行,每个工序时间相等,均为10秒。单片机通
过8255A的A口进行控制。A口中的一位控制一个工序的启停。设8255A的A口地址为90H,B口地址为91H,C口地址为92H,控制口地址为93H。试编写有关程序。设时钟为6MHz。
解:设利用8255A中A口PA0~PA5的6位完成控制。规定某一位为1时启动一道工序,为0时则停止该工序。8255A初始化只需规定A口为输出方式即可,控制字为80H。利用软件延时实现时间控制,程序如下: MOV A, #80H ;8255A控制字
MOV R0, #93H ;控制字寄存器地址 MOVX @R0, A ;输出控制字 MOV R0, #90H ;A口地址
LOOP: MOV A, #01H ;从第一道工序起 LOOP1: MOVX @R0, A ;输出控制信号 ACALL DELAY ;延时10秒 RL A ;下一道工序
JNB ACC.6, LOOP1 ;6道工序未完,继续 SJMP LOOP ;6道工序完成,重新开始
DELAY: MOV 22H, #50 ;延时子程序,10s L1: MOV 21H, #100 L2: MOV 20H , #250 L3: NOP NOP
DJNZ 20H, L3 DJNZ 21H, L2 DJNZ 22H, L1 RET
2. 对如图8-5所示的接口电路,要求编写有关程序段,使当波段开关接至位置1到7时数码管显示相应的数字1到7,当开关接至位置8时,则退出程序。 解:由图知端口地址:
A口:7FFCH;B口:7FFDH;C口:7FFEH;控制口:7FFFH
1. 8255A设定为基本I/O工作于方式,A口为输出口,输出数字:1、2、?、7的共阴极显示字型码,B口为输入口,读入开关的状态,当开关拨至1、2、?、8那个位置时该引脚变为低电平。
二、一般计算机原理与结构学习内容概要
一个完整的计算机系统由计算机软件和计算机硬件两大部分组成。软件主要包括系统软件和应用软件。硬件主要包括:运算器、存储器、控制器和输入/输出设备。 三、单片机基本概念学习概要
单片机是在一块芯片上集成了中央处理器(CPU)、随机存储器(RAM)、程序存储器(ROM)、中断系统、定时器/计数器、以及I/O口等的微型计算机。国际上通常称其为微控制器MCU,又称为嵌入式微控制器EMCU。
MCS-51单片机是8位单片机的主流机型,分为三个基本
产品:8051,8751和8031。其他8位计算机主要有ATMEL公司的AT89系列Flash单片机;Microchip公司的PIC单片机以及TI公司的MSP430单片机等。 单片机的应用领域:日常的电器产品;工业控制领域;网络以及通讯领域。 四、数制学习内容概要 1、进位计数制
一个数的数值可以用不同的进制来表示。十进制(Decimal)用到的数码为0、1、2、3、4、5、6、7、8、9,运算规则:逢十进一,借一当十;二进制(Binary)用到
第三节 增选习题及解答
一、基本概念填空
1.请写出与下列英文所对应的计算机部件中文名称,ALU:( );Trigger( );Register( );Memory( );ROM( );RAM( );Count( );Accumulator( )。2.设(AL)=45H,若是无符号数,它代表( ),若是带符号数,它代表( ),若是BCD数,它代表( ),若是ASCII码,它代表( )。
3.16位无符号定点整数的数值表示范围是( );16位整数(含一位符号位)的补码表示范围是( );8位无符号整数的数值表示范围是( );8位整数(含一位符号位)的补码表示范围是( )。 4.异或门的运算规则是相异为( ),相同为( )。 5.两个稳定状态并能接收、保持和输送信号的电路叫( )。
6.TTL、CMOS与非门、与门的多余的输入端的处理方法是( )。
7.TTL、CMOS或非门、或门的多余的输入端的处理方法是( )。
填空题参考答案:
1.算术逻辑运算单元、触发器、寄存器、存储器、只读存储器、随机存储器、计数器、累加器
2.69D、+69D、45D、‘E’ 3.0~65535、-32768~+32767、0~255、-128~+127 4.1、0 5.触发器6.接高电平7.接地 二、基本概念简答
1.简述一下今后单片机的发展方向。
答:目前的单片机已经超过500多个品种,在各个方面都有了很大的提高。目前单片机正向着大容量、高性能,以及小容量、低价格,外围电路内装化的方向发展,而且应用领域也正在不断扩大。
2.什么叫溢出?两个补码进行加法或减法运算时,什么情况下会产生溢出?举例说明。
答:两个带符号数进行运算,运算结果超出了数据的表示范围,则为溢出。两个同号数相加,当结果的符
号位与参加运算的数的符号不同时,则为溢出;两个异号数相减,当结果的符号位与被减数的符号位不同时,则为溢出。
3.三态输出电路有什么意义?
答:三态输出电路的意义在于能使电路和总线脱离,使总线具有公共通道的作用。 三、基本概念选择
1.完整的计算机系统包括( )。
(A)硬件系统和软件系统(B)主机和外部设备 (C)主机和应用程序 (D)运算器存储器和控制器 2.在计算机中,表示地址通常使用( )。
(A) 无符号数 (B) 原码 (C) 反码 (D) 补码 3.若某机器数为10000000B,它代表0,则它是( )码形式,它代表-128,则它是( )形式。
(A)补码(B) 原码 (C) 反码 (D) 原码或反码 4.8位二进制补码表示的整数数据范围为( )。
(A)-128~127 (B) -127~127 (C)-128~128 (D) -127~128
5.用8位二进制数表示-0的补码为( )
(A)10000000 (B)11111111 (C)00000000 (D)00000001
6.[x1]原=10111101B,[x2]反=10111101B,[x3]补=10111101B三个数中( )。
(A) x1最小(B) x2最小(C)x3最小(D)x2=x1=x3
7.“与非门”中的某一个输入值为“0”,那么它的输出值为( )。
(A)为“0” (B)为“1”
(C) 要取决于其他输入端的值 (D) 取决于正逻辑还是负逻辑
8.若门电路的两个输入量为1、1,输出量为0,不可能完成此功能的是( )。 (A)“异或”门(B)“与非”门(C)“或非”门(D)“与”门
9.下列不正确的逻辑表达式是( )。 (A)A+B=A+B (B)AB=ABA+
(C)A(A+B)=A (D)(A+B)(A+)=BA 选择题参考答案:
1.A 2.A 3.B、A 4.A 5. C 6.C 7.B 8.D 9.B 四、计算题
1.将下列二进制数转换成十进制数:(1)101101.10B(2)111.111B
解:把二进制数位中的数值是1的那些位的权值相加,其和就是等效的十进制数,由转换规则得: (1)101001.11B=1*25+0*24+1*23+0*22+0*21+1*20+1*2-1+1*2-2=41.75D (2)
111.111B=1*22+1*21+1*20+1*2-1+1*2-2+1*2-3=7.875D
2.已知x及y,试分别计算[x+y]补、、[x-y]补,并指出是否产生溢出(设补码均用8位表示)。 (1)x=+1001110,y=+0010110
解:[x]补=01001110, [y]补=00010110
[-y]补= [-0010110]补= [00010110]发+1=11101001+1=11101010
[x+y]补= [x]补+ [y]补=01001110+00010110=01100100B (无溢出,结果正确) [x-y]补= [x]补+ [-y]补=01001110+11101010=100111000B=00111000 B (溢出,自动丢,结果正确) (2)x=+0101101,y=-1100100
解:[x]补=00101101,[y]补= [-1100100]补= [01100100]反+1=10011011+1=10011100
[-y]补= [(+1100100)]补=01100100
[x+y]补= [x]补+ [y]补=00101101+10011100=11001001B (无溢出,结果正确)
[x-y]补= [x]补+ [-y]补=00101101+01100100=10010001B (两个正数相加,结果为负,溢出,结果错) 3.一个16位二进制整数,若采用补码表示,由5个“1”和11个“0”组成,则十进制表示的最小值是多少?最大值是多少?
解:根据补码的定义,最小数应为[x]补=1000000000001111,它是一个负数,十进制大小为:x=-[(10000000000001111)+1]=-[01111111111100001-=-32753
最大数变为[x]补=0111110000000000,它是一个正数,十进制大小为:x=+31744
4.完成下列BCD码运算58+39,58-39。 解:进行BCD码加法:
(1)将十进制数用BCD码表示:58D=0101 1000BCD 39D=0011 1001 BCD
(2)进行BCD码加法:0101 1000 BCD+0011 1001 BCD=1001 0001 BCD
(3)调整:运算后低4位=0001,AF=1,低4位加6;运算后高4位=1001,CF=0,高4位加0。于是:1001 0001BCD+0000 0110 BCD=1001 0111 BCD 所以:58+39=97 进行BCD码减法:
(1)将十进制数用BCD码表示:58D=0101 1000 BCD 39D=0011 1001 BCD
(2)进行BCD码减法:0101 1000 BCD-0011 1001 BCD=0001 1111 BCD
(3)调整:运算后低4位=1111,AF=1,低4位减6;运算后高4位=0001,CF=0,高4位减0。于是:0001 1111BCD-0000 0110 BCD=0001 1001 BCD 所以:58-39=19