单片机复习20150605

2019-01-26 14:52

《单片机原理及应用》例题与课后习题

(1)将R0的内容送入R6中,

(2)将片内RAM 30H单元的内容送入片外 60H单元中; (3)将片外RAM 2000H单元的内容送入片内 20H单元中; (4)将ROM的 2000H单元的内容送入片内 RAM 30H单元中; P36 例2.2 将R0的内容和R1的内容相互交换。

MOV A , R0 XCH A , R1 MOV R0 , A

P38 例2.3试把存放在R1-R2和R3-R4中的两个16位数相加,结果存于R5-R6中。 MOV A , R2 ADD A , R4 MOV R6, A MOV A , R1 ADDC A, R3 MOV R5 , A

P39 例2.4试求(R3)←(R2)-(R1)。

MOV A , R2 CLR C SUBB A , R1 MOV R3 , A

P40 例2.5在R3中数为67H,在R2中数为85H,用十进制运算,运算的结果放于R5。MOV A , R3 ADD A , R2 DA A MOV R5 , A

P41 例2.6试写出完成下列功能的指令段:

(1)对累加器A中b1、b3和b5位清0,其余位不变,程序为 ANL A , #11010101B

(2)对累加器A中b2、b4和b6位置1,其余位不变,程序为 ORL A , #01010100B

(3)对累加器A中b0和b1位取反,其余位不变,程序为 XRL A , #00000011B

P41 例2.7试写出对R0寄存器内容求反的程序段。

MOV A , R0

1

CPL A MOV R0 , A

P43 例 2.8把片内RAM中位寻址区的20H位的内容传送到30H位。

MOV C ,20H MOV 30H , C

P44 例2.9试利用位逻辑运算指令编程实现两个位的异或操作。 位变量X和Y的异或结果=XY+XY

假定X和Y的位地址为20H.0和20H.1,结果存储到位累加器C中。

MOV C , 20H.1 ANL C , /20H.0 MOV F0 , C MOV C , 20H.0 ANL C , /20H.1 ORL C , F0

P46 例2.12 将片外RAM 30H单元开始的数据块传送到片内RAM的40H开始的位置,直到出现零为止。

MOV R0 , #30H MOV R1 , #40H

LOOP: MOVX A , @R0

MOV @R1 , A INC R1 INC R0 JNZ LOOP

P46 例2.13利用“逻辑与”和“JZ、JNZ”指令实现位测试。

要实现以下功能:若30H地址单元的b3位为0则B=5,否则B=8。

MOV A , #08H ANL A , 30H JNZ N1 MOV B , #5 LJMP N2 N1: MOV B , #8 N2:

P48 例2.14统计片内RAM中30H单元开始的20个数据中0的个数,放于R7中。 MOV R0 , #30H MOV R2 , #20 MOV R7 , #0

LOOP: MOV A , @R0

2

JNZ NEXT INC R7

NEXT: INC R0

DJNZ R2 , LOOP

P48 例2.15从片外RAM中30H单元开始有100个数据,统计当中正数、0和负数的个数,分别放于R5、R6、R7中。

MOV R2 , #100 MOV R0 , #30H MOV R5 , #0 MOV R6 , #0 MOV R7 , #0

LOOP: MOVX A , @R0

CJNE A , #0 , NEXT1 INC R6 SJMP NEXT3

NEXT1: JB ACC.7 , NEXT2

INC R5 SJMP NEXT3

NEXT2: INC R7 NEXT3: INC R0

DJNZ R2 , LOOP

P52 例

ORG 3000H

TAB1: DB 12H, 34H DS 4H DB ?5? P53 2.5.1 延时程序设计

延时程序与MCS-51指令执行时间有很大的关系。在使用12MHz晶振时,一个机器周期为1μs,执行一条DJNZ指令的时间为2μs。这时,可用多重循环方法写出下面如下的延时1s的程序:

DEL: MOV R5,#20 ; 1μs DEL0: MOV R6,#200 ; 1μs DEL1: MOV R7,#123 ; 1μs DEL2: DJNZ R7,DEL2 ;123*2μs

DJNZ R6,DEL1 ;(1+123*2+2)*200=49800μs DJNZ R5,DEL0 ;(1+49800+2)*20=996060μs

RET

P54 【例2.16】将内部RAM中以40H为起始地址的8个单元中的内容传到外部存储器以2000H为起

3

始地址的8个单元中。

MOV R0 . #40H MOV DPTR , #2000H MOV R7 , #08

LOOP: MOV A , @R0

MOVX , @DPTR , A INC R0 INC DPTR DJNZ R7 , LOOP

P59【例2.20】设在30H和31H单元中各有一个8位数据:

(30H)=X7X6X5X4X3X2X1X0 (31H)=Y7Y6Y5Y4Y3Y2Y1Y0

现要从30H单元中取出低5位,并从31H单元中取出低3位完成拼装,拼装结果送到40H单元保存,并且规定:(40H)=Y2Y1Y0X4X3X2X1X0

MOV A , 30H ANL A , #00011111B MOV 30H, A MOV A , 31H ANL A , #00000111B SWAP A RL A ORL A , 30H MOV 40H , A

P60 【例2.22】8位二进制无符号数转换为3位BCD码。8位二进制无符号数存放在35H单元,要求个位、十位、百分位分别存放在40H、41H和42H单元。

MOV A , 35H MOV B , #10 DIV AB MOV 40H , B MOV B , #10 DIV AB MOV 41H , B MOV 42H , A P27 习题与思考题

1.1、1.2、1.5、1.8、1.9、1.10 P64-68 习题与思考题

2.5、2.6、2.7、2.8、2.9、2.10、2.11、2.12、2.13、2.14、2.18、2.19、2.20、2.27、2.32

4

练习题

1.单片机与普通计算机的不同之处在于其将( )、( )、和( )三部分集成于一块芯片上。

2.8051与8751的区别是:

(A)内部数据存储单元数目的不同 (B)内部数据存储器的类型不同 (C)内部程序存储器的类型不同 (D)内部的寄存器的数目不同

3.说明MCS-51单片机的引脚EA的作用, 该引脚接高电平和接低电平时各有何种功能? 4.什么是机器周期? MCS-51的时钟振荡周期和机器周期之间有何关系? 5. 在MCS-51单片机中,如果采用6MHz晶振,一个机器周期为( )。 7.若A中的内容为63H,那么P标志位的值为( )。 8.判断下列说法是否正确:

(A)在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1 (B)在MCS-51单片机中,一个机器周期等于1μS。 (C)特殊功能寄存器SP内装的是栈顶首地址单元的内容。

(D)内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用。

(E)8031共有21个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的。 (F)区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。 (G)PC可以看成是程序存储器的地址指针。 (H) DPTR可以分为2个8位的寄存器使用。

9. 8031 单片机复位后,R4所对应的存储单元的地址为( ),因上电时PSW=( )。这时当前的工作寄存器区是( )组工作寄存器区。

10.判断下面有关PC和DPTR的结论是否正确? (A) 它们都是16位的寄存器。

11.使用8031单片机时,需将EA引脚接( )电平,因为其片内无( )存储器。 12.片内RAM低128个单元划分为哪三个主要部分?各部分的主要功能是什么? 13.PC的值是:

(A) 当前正在执行指令的前一条指令的地址 (B) 当前正在执行指令的地址

(C) 当前正在执行指令的下一条指令的地址 (D) 控制器中指令寄存器的地址 14.判断下列指令各操作数的寻址方式

目的操作数 源操作数 (1)MOV A , #65H 寄存器寻址 立即数寻址 (2)MOV @R1,65H 寄存器间接寻址 直接寻址 (3)MOV 30H,R2 直接寻址 寄存器寻址 (4)MOV C ,20H 位寻址 位寻址 (5)SJMP LOOP 相对寻址 (6)MOV 60H,@R1 直接寻址 寄存器间接寻址 (7)MOVC A, @A+PC 寄存器寻址 变址寻址

5


单片机复习20150605.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高考数学《数列》分类汇编及解析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: