单片机原理与应用-----四川省第一批省级精品课程(选修部分和课后习题及模拟试题)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选修部分包括第10章测控接口、第11章C51入门和第12章串行总线扩展技术
第12章IIC、SPI
单片机原理与应用习题第1章思考题及习题
1. 什么是单片机,它与一般计算机有何区别?
2. 单片机内部采用的是什么数制?为什么在计算机编程中常用十六进制?
3. 单片机主要应用与哪些方面?请举一些你所知道的例子。
4. 16位),用十六进制表达。
第2章思考题及习题
1.MCS-51单片机中的51子系列单片机内部包含哪些主要功能器件?
2.51子系列单片机存储器空间从逻辑上可分为哪几部分,各部分作用是什么?
3.简述51子系列单片机片内RAM的空间分配?各部分功能?
4.51单片机EA引脚有何功能?在使用89c51时EA引脚因如何处理?
5.特殊型MCS-51单片机对基本型的功能进行了那些方面的扩展?
6.使单片机系统复位常见有哪几种方法?绘出其原理图,复位后特殊功能寄存器的初始值如何?
7.开机复位后,CPU使用哪组工作寄存器?它们的地址是多少?
8.内部RAM中,什么是字节地址?什么是位地址?
第3章思考题与习题
1问答题
1.1 什么是寻址方式?51单片机有几种寻址方式?举例说明。
1.2 51单片机无条件转移指令有几种?如何选用?
1.3 51单片机条件转移指令有几种?如何求rel?
1.4 ACALL、LCAll有何区别?AJMP、SJMP、LJMP有何区别?
2 读程序题
2.1 设(A)=0FH ,(R0)=30H
内部RAM (30H)=0AH,(31H)=0BH,(32H)=0CH请写出在执行各条列指令后,所示单元的内容。
MOV A,@R0 ;(A)=
MOV @R0,32H ;(30H)=
MOV 32H, A ;(32H)=
MOV R0,#31H ;(R0)=
MOV A, @R0 ;(A)=
2.2分析下面个程序段中指令的执行结果
(1) MOV SP,#50H
MOV A,#0F0H
MOV B,#0FH
PUSH ACC ;(SP)= ;(51H)=
PUSH B ;(SP)= ;(52H)=
POP B ;(SP)= ;(B)=
POP ACC ;(SP)= ;(A)=
(2) ORG 0100H
CLR C
MOV R0, #0FFH
INC R0
INC R0
END
运行后:(Cy)=________; (R0)=________
(3) MOV A,#30H
MOV B,#0AFH
MOV R0,#31H
MOV 30H,#87H
XCH A,R0 ;(A)= ;(R0)=
SWAP A ;(A)=
(4) MOV A, #83H
MOV R0H, #47H
MOV 47H, #34H
ANL A, #47H ;(A)=
ORL 47H, A ;(A)= ;(47H)=
XRL A, @R0 ;(A)=
(5)若内部RAM的(30H)=33H (31H)=32H (32H)=31H (33H)=30H
外部RAM的(0030H)=33H (0031H)=31H (0032H)=32H (0033H)=30H
ROM的(0030H)=78H (0031H)=32H (0032H)=E6H (0033H)=F9H
(DPTR)=0
执行下列程序后(A)= H
ORG 0030H
MOV R0, #32H
MOV A, @R0
MOV R1, A
MOVX A, @R1
MOVC A, @A+DPTR
2.3 试对下列程序进行人工汇编并说明此程序的功能,其中25H、24H、23H;2BH、2AH、29H中的内容小于55H。
ORG 1000H
ACDL: MOV R0, #25H
MOV R1, #2BH
MOV R2, #03H
CLR C
CLR A
LOOP: MOV A, @R0
ADDC A, @R1
DEC R0
DEC R1 DJNZ R2, LOOP SJMP $
END
第4章 思考题及习题
1. 什么是伪指令?伪指令与指令有何区别? 2. 循环程序由哪几部分组成?
3. 编写一循环程序,将内部RAM 的20H~2FH 共16个连续单元清零。
4. 编写一循环程序,查找内部RAM 30H~50H 单元中出现FFH 个数,并将查找搭结果存入51H 单元。
5. 编写循环程序,计算
∑=10
1
2i i
,将结果存内部RAM 30H (低8位)、31H (高8位)单元(i <256)。
6. 试用循环转移指令编写延时20ms 子程序(晶振12MHz)。
7. 编写程序,把外部RAM 1000H~10FFH 区域内的数据逐个搬到从2000H 开始的区域。
8. 从内部RAM 的30H 单元开始存放着一组无符号数,其数目存放在21H 单元中.试编写程序,求出这组无符号数中的最小的数,并将其存入20H 单元
9. 设计一个循环灯程序,如下图所示,使这些发光二极管每次只点亮一个,依次一个一个地点亮,循环不止。
10.
利用查表技术将累加器A 中的一位BCD 码转换为相应的十进制数的7段码,结果仍放在A 中(设显示0~9的7段码为:40H,79H,24H,30H,19H,12H,02H,78H,00H,1BH )。
11. 按下面公式编写程序,x 为无符号数(x<128),存在内部30H 单元,y 存放在31H 单元。
第5章 思考题及习题
1.为什么读取引脚时要先向该引脚送“1”?
2.用Proteus 设计一个动态显示4位7段LED 数码管的电路,并编写程序,显示“1234”。
3.如何在本章键盘扫描法中增加防止键抖动功能?
4.用Proteus 设计一个4x4的键盘,一位7段LED 数码管显示,将按键的编码显示出来(0~F )。