文档库 最新最全的文档下载
当前位置:文档库 › 单片机复习资料全

单片机复习资料全

单片机复习资料全
单片机复习资料全

第一章

★1.1.18何谓奇偶校验?它有什么用途?请说明其具体方法?

答:奇偶校验是一种校验代码传输正确性的方法,它有奇校验和偶校验两种方式,奇偶校验法常用于识别数据是否发生传输错误,并且可以启动校正措施,或者舍弃传输发生错误的数据,要求重新传输有错误的数据块。这种方法是在每一个字节中加上一个奇偶校验位,并被传输,即每个字节发送九位数据,数据传输以前通常会确定是奇校验还是偶校验,以保证发送端和接收端采用相同的校验方法进行数据校验,假如校验位不符,则认为传输出错。

★1.1.22何谓堆栈?为什么要设置堆栈?栈区是怎样确定的?数据进栈、出栈按照何种规律?进栈用什么指令?进栈、出栈时栈针将怎样变化?通常栈底所指是什么容?栈顶所指又是什么容?

答:①堆栈是读写存储器RAM中的一个特殊区域,是一组按照“先进后出”的方式工作的、用于暂存信息的存储单元。②设置堆栈是为了保证断点地址和现场信息。③栈区是通过堆栈指针SP在RAM中建立堆栈后确定的,建立堆栈可用一条传送指令来实现,例如MOV SP,#60H。④数据进栈出栈按照“先进后出”的规律。⑤进栈指令:PUSH X。

⑥出栈指令:POP X。⑦建立堆栈后,当执行进栈指令时,栈针SP的容自动加1,即(SP)←(SP)+ 1,当执行出栈指令时,栈针SP的容自动减1,即(SP)←(SP)—1。⑧栈底所指的是堆栈指针SP所指的起始位置。⑨栈顶所指的是当有数据进栈后SP+1,当SP指向的地址为BEGIN+LENGTH,即栈满,此时的SP所指向的位置。

★1.1.23为什么要采用总线结构?芯片为什么要通过缓冲器才能挂在总线上?

答:①总线。即在微型计算机各芯片之间或芯片部各部件之间传输信息的一组公共通信线。采用总线结构后,芯片之间不需单独走线,这就大大减少了连接线的数量。②因为挂在总线上的芯片不能同时发送信息,否则多个信息同时出现在总线上将发生冲突而造成错误,这就是说,如果有几块芯片需要输出信息,就必须分时传送,为了实现这个要求,所以芯片要通过缓冲器才能挂在总线上。

★1.1.27CPU与外围设备间传送数据有哪几种方式?试根据每一种方式的特征,分析其适用的场合。

答:四种:无条件传送方式、查询传送方式、中断传送方式和直接数据通道传送DMA方式。①无条件传送方式:CPU 在输入信息以前不必询问输入设备是否准备好了数据,只要执行输入指令就可输入所需信息,同样输出数据前也不必询问输出设备是否已进入准备接收数据状态,只要执行输出指令,输出信息就会被外围设备所接收。适用于外围设备信息变换缓慢的场合。②查询传送方式:CPU在传送数据前要先询问外设状态,仅当外设状态准备好了才传送,否则CPU就等待。适用于外围设备与CPU的速度有差异且比CPU的速度慢的场合。③中断传送方式:采用中断方式与外设间传送数据,使CPU从反复询问外设状态中解放出来,提高了工作效率。而且,可以为多个外设服务。适用于对实时性要求较高的场合。④直接数据通道传送DMA方式:令CPU交出总线的控制权,改由DMA控制器进行控制,使外设与存利用总线直接交换数据,不经过CPU中转,也不通过中断服务程序,既不需要保存、恢复断点和现场,所以传送数据的速度比中断方式更快。适用于高速度的外围设备与计算机间传送大批量数据的场合。

★1.1.28讲清中断的概念、用途和优越性。说明CPU响应中断的条件。

答:①中断:是指当机器正在执行程序的过程中,一旦遇到异常情况或特殊请求时,就暂时停止正在执行的程序,而转入需要的处理(称为中断处理或中断服务),并且在处理完毕后,立即回到原来被停止的程序间断处(成为断点)继续执行。②中断的用途:传递数据、实时控制、故障自动处理、实现人机联系等。③中断的优越性:提高了CPU的工作效率,并且使其可以同时为多个外设服务,实现实时控制,可以处理设置故障掉电等突发事件。④CPU响应中断的条件:接口电路和CPU处在允许中断状态。

★1.1.29何谓中断优先权?它是怎样规定的?讲清中断嵌套的概念。

答:①一个计算机系统有多个中断源,同一个中断请求引脚也可以接有多个会提出中断请求的外围设备,遇到几个设备同时中断请求时,CPU对中断的响应顺序称为中断的优先权。②规定的原则有三:(1)多个中断源同时申请中断时,CPU先响应优先权高的中断请求。(2)优先权级别低的中断正在处理时,若有级别高的中断请求,则CPU暂时中断正在进行的中断服务程序,去响应优先权级别高的中断请求,在高级别中断服务程序执行完后再返回原来低级别中断服务程序继续执行。(3)同级别或低级别的中断源提出中断申请时,CPU要到正在处理的中断服务程序执行完毕返回主程序、并执行了主程序的一条指令后才接着响应。③优先权级别低的中断正在处理时,若有级别高的中断请求,则CPU暂时中断正在进行的中断服务程序,去响应优先权级别高的中断请求,在高级别中断服务程序执行完后再返回原来低级别中断服务程序继续执行,称为中断嵌套。

★1.1.37下列程序存放在64K×8位的EPROM中:

74 08 MOV A,#08H

75 F0 76 MOV B,#76H

25 E0 ADD A,A

25 F0 ADD,A,B

02 20 00 LJMP 2000H

试分析该程序并回答以下问题:

1) 如该段程序自000FH 单元开始存放,请在程序段中写明每条指令的首址。

2) 该程序段共占用存多少单元?

3) 在执行指令ADD A,A 时,程序计数器PC 的容是什么?

4) 执行完指令ADD A,B 后,累加器A 、寄存器B 及程序计数器PC 的容各是什么?

5) 在CPU 取回指令LJMP 2000H 并执行该指令时,(PC )=?;该指令执行后,(PC )=? 答:① 000F 74 08 MOV A,#08H

0011 75 F0 76 NOV B,#76H

0014 25 E0 ADD A,A

0016 25 F0 ADD A,B

0018 02 20 00 LJMP 2000H

上列程序段最左一列写的是每条指令存放的首址。因指令MOV A.#08H 的机器码为74H 与08H ,要存放两个单元,即000FH 与0010H ,故指令MOVB,#76H 存放的首址将为0011H ,后面各指令存放的首址同理一一推得。 ②12个单元。

③执行时容已更新为0016H 。

④(A )=86H ,(B )=76H ,(PC )=0018H 。

⑤CPU 取回指令LJMP 2000H 并执行该指令时,(PC )=001BH ;该指令执行后,(PC )=2000H 。

★1.1.38有程序段如下,试画出堆栈图,在图上注明各有关单元的容。

MOV SP, #0E0H MOV A ,#24H MOV B, #0F1H PUSH A PUSH B ★1.1.39某存储器芯片有12根地址线、8根数据线,请回答: 1) 该芯片有多少个存储单元?

2) 每个存储单元存放多少位二进制数?

3) 用十六进制数写出它的首地址和末地址。 答:(1)4k (2)8(3)首地址为000H,末地址为FFFH

★1.1.40某存储器芯片的存储容量为16K ×8位,它应有几根地址线?若其首址为1000H ,则末址是多少? 答:14, 4FFFH

★1.2.18用8位二进制写出下列各数的原码、反码和补码、

1)+21 2)-21 3)+120 4)-120

答: (1)原码:+21=00010101

反码:+21=00010101

E3H E2H E1H E0H

当前栈顶

栈底

补码:+21=00010101

(2)原码:-21=10010101

反码:-21=11101010

补码:-21=11101011

(3)原码:+120=01111000

反码:+120=01111000

补码:+120=01111000

(4)原码:-120=11111000

反码:-120=10000111

补码:-120=10001000

★1.2.43求出下列算式的值:

1)(100100.1)2 +(110110.1000)BCD +(36.8)16 +(36.4)8

2)(01010010)2 +(01010010)BCD + 48 +(48)16

3)00111100B +(10010110)BCD + 24 + 24H

4)111011.1B—(100010.0101)BCD—19.8H + 75.1Q

5)00100110B + 00100110BCD + 74H + 74

以上1)2)3)题答案以十进制数表示,4)题答案以二进制数表示,5)题答案以十六进制数表示。

答:(1)36.5+36.8+54.5+30.5=158.3

(2)82+52+48+72=254

(3)60+96+24+36=216

(4)

(5)38+26+116+74=254

第二章MCS一51系列单片机的硬件结构

★2.1、综述MCS-51系列单片机的大致功能。

51子系列的主要功能为:(1)8位CPU;(2)片带振荡器(振荡器和时钟电路)振荡频率fsoc的围为1.2—12MHz;可有时钟输出;(3)128字节片RAM;(4)4K字节片ROM(8031无);(5)ROM寻址围64KB字节;(6)片外RAM寻址围64KB字节。(7)21个字节专用寄存器;(8)4个8位并行I/O接口;(9)1个全双工串行I/O接口,可多机通信;(10)2个16位定时器/计数器;(11)5个中断源,可程序设计为两个优先级;(12)111条指令,含乘法指令和除法指令;(13)有强的位寻址、位处理能力;(14)片采用单总线结构;(15)用单一+5v电源。

★2.11、何谓时钟周期、机器周期、指令周期?针对MCS-51系列单片机,如采用12MHz晶振,它们的频率和周期各是什么值?

(1)时钟周期是由CPU时钟定义的定长时间间隔,是CPU工作的最小时间单位,也称状态周期。(2)机器周期:指CPU完成一个基本操作所需要的时间,1个机器周期由12个振荡周期(即6个时钟周期)组成。(3)指令周期:CPU执行一条指令的时间。(4)如采用12MHz晶振,时钟周期的频率f时=12MHz/2=6MHz,周期T时=1/6μs;机器周期的周期T机=6×1/6 us=1μs,频率f机=1/T机=2MHz;指令周期的周期:单指令T指=1μs,双指令T指=2μs,频率:单指令f指=1MHz,双指令f指=500KHz。

★2.16、EA引脚的作用是什么?在下列四种情况下,EA引脚各应接何种电平?

1)只有片ROM

2)只有片外ROM

3)有片ROM和片外ROM

4)有片ROM和片外ROM,片外ROM所存为调试程序。

1、EA引脚的作用是:片外程序存储器选用端。

2、1)高电平;2)低电平;3)高电平;4)21V电源。

★2.23、定时器/计数器0如用于下列定时,晶振为12MHz,试为定时器/计数器0编制初始化程序:1)50ms 2)25ms

1)机器周期T CY=12×(1/12MHz)=1μs,则定时时间T=(65536-x)T CY=50ms,解得x=15536=3CB0H,则初始化程序如下:

START: MOV TH0,#3CH

MOV TL0,#0B0H

MOV TMOD,01H

SETB TR0

2)同理得x=40536=9E58H,则初始化程序如下:

START: MOV TH0,#9EH

MOV TL0,#58H

MOV TMOD,01H

SETB TR0

★2.28、综述P0、Pl、P2、P3口各有哪几种功能。

1)P0口:通用I / O接口;地址/数据分时复用总线。2)P1口:通用输入输出接口。3)P2口:地址总线;通用I / O 接口。4) P3口:通用I / O接口;具有第二功能,输出时第二功能端保持高电平。

★2.39、在串行异步通信时,要传送8位数据3BH,另采用偶校验位1位,请写出该帧信息的二进制代码。

3BH=00111011B,有5(奇数)个1,采用偶校验则须D8位置1,凑成偶数个1,所以该帧信息的二进制代码是1 0011 1011B。

★2.41、如异步通信,每个字符由11位组成,串行口每秒传送250个字符,问波特率为多少?

11位/字符× 250字符/秒=2750位/秒

★2.48、某单片机系统用于定时测试压力、温度,并用定/计0实现定时。如压力超限和温度超限的报警信号分别由、输入,中断优先权排列顺序依次为压力超限→温度超限→定时检测,试确定专用寄存器IE和IP的容。

IE 1 —0 0 0 1 1 1 87H

中断屏蔽

压力超限中断允许

定时检测中断允许

温度超限中断允许

IP ——X X X 1 0 1 05H

压力超限中断高优先级

定时检测中断低优先级

温度超限中断高优先级

★2.49、上题如压力超限和温度超限的报警信号改由、分别输入,其它不作改变,问IE和IP的容将作何种改变?

IE 1 —0 0 0 1 1 1 87H

中断屏蔽

温度超限中断允许

定时检测中断允许

压力超限中断允许

IP ——X X X 1 0 0 04H

温度超限中断低优先级

定时检测中断低优先级

压力超限中断高优先级

第3章MCS一51系列单片机的指令系统和汇编语言程序

解:寄存器间接寻址、直接寻址

★3.1.5、要访问片外RAM,有哪几种寻址方式?

解:寄存器间接寻址

★3.1.6要访问ROM,又有哪几种寻址方式?

解:立即寻址、寄存器寻址、基址寄存器加变址寄存器间接寻址、相对寻址

★3.1.13、设片RAM 30H单元的容为40H;片RAM 40H单元的容为l0H;片RAM l0H单元的容为00H;

(Pl)=0CAH。

请写出下列各指令的机器码与执行下列指令后的结果(指各有关寄存器、RAM单元与端口的

容)。解:机器码执行结果

MOV R0,#30H 78 30 R0容为30H

MOV A,R0 E6 A容为40H

MOV R1,A F9 R1容为40H

MOV B,Rl 87 F0 B容为10H

MOV R0,Pl A6 90 RAM(30H)=0CAH

MOV P3,Pl 85 90 B0 (P3)=0CAH

MOV l0H,#20H 75 10 20 RAM(10H)=20H

MOV 30H,10H 85 10 30 RAM(30H)=20H

依次执行上列各指令后的结果为:

R0容为30H,R1容为40H;

A容为40H,B容为10H;

P1端口容仍为0CAH,P3端口容也为0CAH;

片RAM(30H)=20H,(40H)=10H,(10H)=20H。

★3.1.15、已知:(A)=02H,(Rl)=7FH,(DPTR)=2FFCH, 片RAM(7FH)=70H,片外RAM (FFEH)=llH,ROM (FFEH)=64H,试分别写出下列指令的机器码及执行各条指令的结果。

(l)MOV A,Rl

(2)MOVX DPTR,A

(3)MOVC A,A+DPTR

(4)XCHD A,Rl

★3.1.38、经过汇编后,下列各条语句的标号将是什么数值?

ORG 2000H

TABLE: DS l0

WORD: DS l5,20,25,30

FANG: EQU l000H

BEGIN: MOV A,R0

解:TABLE 标号的真实地址是2000H

WORD 标号的真实地址是200AH

FANG 标号的真实地址是1000H

由于EQU指令并不占用存单位,所以BEGIN标号的真实地址将依次为200EH。

★3.2.8、某压力测试的线性处理程序如下,如A/D转换器

的输出为02H,问执行程序后(A)=?

MOV P1,#0FFH

MOV A,P1

MOVC A,A+PC

TAB: DB 00H

DB 00H

DB 01H

DB 02H

DB FEH

END

解:该题程序中第一条指令在P1端口输出全1、为P1端口输入信息作准备;第二条指令在P1端口输入A/D转换器的转换结果02H;第三条是查表指令,因该指令是单字节指令,执行该指令时PC所指已是TAB标号的具体地址,再往下数2哥单元(A的容为02H),查得执行程序后A的容为01H。

★3.2.14、试编程:有两双字节压缩的BCD码数相加,设该两待加数分别按先低后高原则存放在30H、31H和40H、41H单元,和要求放回30H、31H单元。

解:MOV R0,#30H

MOV R1,#40H

MOV R2,#2

CLR C

LOOP:MOV A,R0

ADDC A,R1

DA A

MOV R0,A

INC R0

INC R1

DJNZ R2,LOOP

DONE:AJMP DONE

★3.2.16、试编程:将片RAM 50H、51H单元两个无符号数中较小的数存于60H单元。

解:ORG 00H 或ORG 00H

LJMP START LJMP START

ORG 30H ORG 30H

START:MOV A,50H START: MOV A,50H

SUBB A,51H C JNE A,51H,STOR

JC LESS S JMP ELSE

MOV 60H,51H STOR:JC LESS

SJMP ELSE MOV 60H,51H

LESS:MOV 60H,50H SJMP ELSE

ELSE:SJMP $ LESS:MOV 60H,A

END ELSE:SJMP $

END

★3.2.17、试编程:将片RAM 60H~69H单元中的l0个数相加,和的低8位存入7EH,高8位存入7FH。

解:ORG 00H

相关文档