单片机与微机原理及应用课后答案电子工业出社.docx

上传人:牧羊曲112 文档编号:3346582 上传时间:2023-03-12 格式:DOCX 页数:12 大小:44.75KB
返回 下载 相关 举报
单片机与微机原理及应用课后答案电子工业出社.docx_第1页
第1页 / 共12页
单片机与微机原理及应用课后答案电子工业出社.docx_第2页
第2页 / 共12页
单片机与微机原理及应用课后答案电子工业出社.docx_第3页
第3页 / 共12页
单片机与微机原理及应用课后答案电子工业出社.docx_第4页
第4页 / 共12页
单片机与微机原理及应用课后答案电子工业出社.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机与微机原理及应用课后答案电子工业出社.docx》由会员分享,可在线阅读,更多相关《单片机与微机原理及应用课后答案电子工业出社.docx(12页珍藏版)》请在三一办公上搜索。

1、单片机与微机原理及应用课后答案电子工业出社第二章 单片机结构及原理 1、MCS-51 单片机内部包含哪些主要功能部件?它们的作用是什么? 答:一个8bit CPU 是微处理器的核心,是运算和逻辑计算的中心。 片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。 4K ROM程序存贮器:存贮程序及常用表格。 128B RAM 数据存贮器:存贮一些中间变量和常数等。 两个16bit 定时器/计数器:完全硬件定时器 32 根可编程I/O 口线:标准8 位双向I/O 接口,每一条I/O 线都能独立地作输入或输出。 一个可编程全双工串行口。 五个中断源。 2、什么是指令?什么是程序? 答:指令

2、是规定计算机执行某种操作的命令。 程序是根据任务要求有序编排指令的集合。 3、如何认识 89S51/52 存储器空间在物理结构上可以划分为 4 个空间,而在逻辑上又可以划 分为3 个空间? 答:89S51/52 存储器空间在物理结构上设有个存储器空间:片内程序存储器、片外程序存储器、片内数 据存储器、片外数据存储器。在逻辑上有个存储器地址空间:片内、片外统一的64KB 程序存储器地址 空间,片内256数据存储器地址空间,片外64的数据存储器地址空间。 4、开机复位后,CPU 使用的是哪组工作寄存器?他们的地址是多少?CPU 如何确定和改变 当前工作寄存器组? 答:开机复位后,CPU 使用的是第

3、0 组工作寄存器,地址为00H07H,CPU 通过改变状态字寄存器PSW中的RS0 和RS1 来确定工作寄存器组。 5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP 重新赋值?如 果CPU 在操作中要使用两组工作寄存器,SP 应该多大? 答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈指针SP复位后指向07H 单元,00H1FH 为工作寄存器区,20H2FH 为位寻址区,这些单元有其他功能,因此 在程序设计时,需要对SP 重新赋值。如果CPU 在操作中要使用两组工作寄存器,SP 应该至少设置为0FH。 6、89S51/52 的时钟周期

4、、机器周期、指令周期是如何分配的?当振荡频率为 8MHz 时,一 个单片机周期为多少微秒? 答:时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位。机器周期是指完成一个 基本操作所需要的时间,一个机器周期由 12 个时钟周期组成。指令周期是执行一条指令所需要的时间, 由若干个机器周期组成。若fosc=8MHz,则一个机器周期=1/812 s=1.5 s 7、89S51/52 扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会 发生总线冲突? 答:访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。 8、程序状态字寄存器PSW的作用是什么?常用

5、状态标志有哪些位?作用是什么? 答:程序状态字PSW是8 位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行 的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下: PSW.7:进位标志位。 PSW.6:辅助进位标志位,又称为半进位标志位。 PSW.5:用户标志位。 PSW.4、PSW.3:寄存器组选择位。 PSW.2:溢出标志位。 PSW.1:此位未定义。 PSW.0:奇偶校验位。 9、位地址7CH 和字节地址7CH 有何区别?位地址7CH 具体在内存中什么位置? 答:字节地址 7CH 是片内数据存储器中的一个地址单元,该地址单元中可以存放

6、 8 位二进制数,位地址7CH 是内部数据存储器中位寻址区中的一位,该地址单元中可以存放 1 位二进制数。位地址 7CH 具体在 片内数据存储器字节地址为2FH 中的第4 位。 10、89S51/52 中4 个I/O 端口的作用是什么?89S51/52 的片外三总线是如何分配的? 答:I/O 端口是单片机与外界联系的重要通道,实现与外部设备的信息的传输。总线分配:片外数据总通过P0 口输出,片外地址总线通过P0 口和P2 口输出,片外控制总 线主要通过P3 口。 11、89S51/52 中4 个I/O 端口在结构上有何异同? 89S51/52 单片机的个I/O 口在结构上是基本相同的,但又各具

7、特点。这四个端口都是位双向口,每个 端口都包括一个锁存器、一个输出驱动器和输入缓冲器。在无片外扩展存储器的系统中,这四个端口的每 一位都可以作为双向通用I/O 端口使用。在作为一般的通用I/O 输入时,都必须先向锁存器写入“”,使 输出驱动场效应管FET 截止,以免误读数据。各自特点如下: P0 口为双向8 位三态I/O 口,它既可作为通用I/O 口,又可作为外部扩展时的数据总线及低 8 位地 址总线的分时复用口。作为通用I/O 口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以 得到缓冲,增加了数据输入的可靠性。每个引脚可驱动8 个TTL 负载。 P1 口为 8 位准双向 I/O

8、口,内部具有上拉电阻,一般作通用 I/O 口使用,它的每一位都可以分别定 义为输入线或输出线,作为输入时,锁存器必须置1。每个引脚可驱动4 个TTL 负载。 P2 口为8 位准双向I/O 口,内部具有上拉电阻,可直接连接外部 I/O 设备。它与地址总线高 8 位复 用,可驱动4 个TTL 负载。一般作为外部扩展时的高8 位地址总线使用。 P3 口为8 位准双向I/O 口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4 个TTL 负载。 作为通用I/O 口时,功能与P1 口相同,常用第二功能。 12、复位的作用是什么?有几种复位方法?复位后单片机的状态如何? 答:复位是单片机的初始化操作。

9、单片机在RST 引脚产生两个机器周期以上的高电 平即可实现复位。主要的复位方法有上电自动复位和按键手动复位两种。按键手动复位又分:按键电平复 位和按键脉冲复位。 第三章 第三章 指令系统 1、简述下列名词术语的基本概念:指令、指令系统、程序、汇编语言指令 答:指令:规定单片机进行某种操作的命令称为指令。 指令系统:单片机能够执行的各种指令的集合。 程序:一系列指令的有序集合称为程序。 汇编语言指令:用助记符形式来表示机器指令。 2、 2、80C51 单片机有哪几种寻址方式?这几种寻址方式是如何寻址的? 答:共7 种寻址方式,分别为:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,变址寻址,位寻

10、址 和相对寻址。 寄存器寻址方式:由指令指出某一寄存器的内容做为操作数。 直接寻址方式:指令中操作数直接以单元地址的形式给出。 寄存器间接寻址方式 :寄存器中存放的是操作数,而寄存器间接寻址方式,寄存器中存放的则是操作数 的地址,即操作数是通过寄存器间接得到的。 立即寻址方式:操作数在指令中直接给出。 变址寻址方式:变址寻址是为了访问程序存储器中的数据和表格。MCS51 的变址寻址是以DPTR 或PC作基址寄存器,以累加器A 作变址寄存器,并以两者内容相加形成的16 位地址做为操作数地址,以达到 访问数据和表格的目的。 位寻址方式:指对片内RAM的位寻址区和某些可寻址的特殊功能寄存器进行位操作

11、的寻址方式。 相对寻址方式:相对寻址方式是为解决程序转移而专门设置的,为转移指令所采用。 3、要访问特殊功能寄存器和片外数据寄存器,应采用哪些寻址方式? 答:访问特殊功能寄存器可以采用直接寻址、立即寻址、寄存器寻址和位寻址方式。访问片外数据存储器可采用寄存器间接寻址方式。 4、80C51 单片机的指令系统可以分为哪几类?说明各指令的功能。 答:51 单片机指令系统按功能可分为5 类: 数据传送指令 主要进行数据的传送、交换等; 算术运算指令 主要进行基本的加减乘除运算; 逻辑运算指令 主要实现逻辑运算与移位运算; 控制转移指令 主要是实现对程序流程的控制; 位操作指令 5、外部数据传送指令有哪

12、几条?有和区别? 答:外部数据传送指令有读指令和写指令两类,每类指令的寻址范围不同,分别为: 读外部存储器指令: MOVX A,Ri ;寻址范围为256 字节 MOVX A,DPTR ;寻址范围为64K 字节 写外部存储器指令: MOVX Ri,A ;寻址范围为256 字节 MOVX DPTR,A ;寻址范围为64K 字节 6、在89S51 片内RAM中,已知=38H,=40H,=48H,=90H, 请分别分析下段程序按序执行后的结果。 MOV A,40H ;A=48H MOV R0,A ;R0=48H MOV P1,#0FFH ;P1=FFH MOV R0,30H ;(48H)=38H MO

13、V DPTR,#1246H ;DPTR=1246H MOV 40H,38H ;(40H)=40H MOV R0,30H ;R0=38H MOV 90H,R0 ;(90H)=38H MOV 48H,#30H ;(48H)=30H MOV A,R0 ;A=40H MOV P2,P1 ;P2=38H 7、略 8、DA A 指令的作用是什么?怎样使用? 答:对十进制BCD 数作加法时进行调整,当结果的低4 位A0A39,或半进位AC=1,则A0A36, 否则不加;当结果的高4 位A4A79,或进位CY=1,则A4A76,否则不加;这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后

14、,用来对 BCD 码的加法运算结果自动进行修正,使 其仍为BCD 码表示形式。 9、试编程将片外数据存储器60H 中的内容传送到片内RAM54H 单元中。 答: MOV R0,#60H MOVX A,R0 MOV 54H,A 10、试编程将寄存器R7 的内容传送到R1 中去。 答: MOV A,R7 MOV R1,A 11、已知当前PC 值为210H,请用两种方法将程序存储器2F0H 中的常数送入累加器A 中。 答:以程序计数器PC 作为基址寄存器 MOV A,#0E0H MOVC A,A+PC 以数据指针DPTR 作为基址寄存器 MOV DPTR,#02F0H MOV A,#00H MOVC

15、 A,A+DPTR 12、试说明下段程序中每条指令的作用,并分析当指令执行完后,R0 中的内容是什么? MOV R0,#0A7H ;R0=A7H,立即数送寄存器R0 XCH A,R0 ;A=A7H,累加器A 中的数据与R0 中的数据进行交换 SWAP A ;A=7AH,累加器A 中的高低四位进行交换 XCH A,R0 ;R0=7AH,数据交换回R0 13、请用两种方法实现累加器A 与寄存器B 的内容交换。 答:MOV R0,A MOV A,B MOV B,R0 MOV R0,B XCH A,R0 14、试编程将片外RAM中40H 单元的内容与R1 的内容交换。 答: MOV R0,#40H M

16、OVX A,R0 XCH A,R1 MOVX R0,A 15、已知:A=0C9H,B=8DH,CY=1。 执行指令 ADDC A,B 结果如何? A=57H,CY=1,OV=1,AC=1,P=1 执行指令 SUBB A,B 结果如何? A=3BH,CY=0,AC=1,OV=1 16、试编程将片外RAM中30H 和31H 单元中的内容相乘,结果存放在32H和33H单元中。 答: MOV R0,#30H MOVX A,R0 MOV B,A INC R0 MOVX A,R0 MUL AB INC R0 MOVX R0,A MOV A,B INC R0 MOVX R0,A 17、17、试用3 种方法将

17、累加器A 中的无符号数乘2. 答:MOV R0,A ADD A,R0 MOV B,#2 MUL AB RL A 18、18、分析依次执行下列指令的结果: MOV 30H,#0A4H ;(30H)=A4H MOV A,#0D6H ;A=D6H MOV R0,#30H ;R0=30H MOV R2,#47H ;R2=47H ANL A,R2 ;A=46H ORL A,R0 ;A=E6H SWAP A ;A=6EH CPL A ;A=91H XRL A,#0FFH ;A=6EH ORL 30H,A ;(30H)=EEH 19、19、求下列指令执行后,累加器A 及PSW中进位CY、奇偶位P 和溢出位O

18、V 的值。 当A=5BH 时 ;ADD A,#8CH 当A=5BH 时 ;ANL A,#7AH 当A=5BH 时 ;XRL A,#7FH 当A=5BH,CY=1 时 ;SUBB A,#0E8H 答:A=E7H,CY=1,P=0,OV=0 A=5AH ,P=0 A=24H ,P=0 A=72H,CY=1,P=0,OV=0 20、把累加器A 中的低4 位数据送到外部数据存储器的2000H 单元。 答: ANL A,#OFH MOV DPTR,#2000H MOVX DPTR,A 21、试说明指令CJNE R1,#7AH,10H 的作用,若本指令地址为250H,其转移地址是多 少? 答:指令作用:如

19、果以R1 内容为地址的单元中的数据等于7AH,则程序顺序执行,否则转移后继续执行。 若本指令地址为250H,则转移地址为250H03H10H= 263H。 22、将累加器A 中的数据由0 递增,加到50,结果在累加器A 中。 答: CLR A MOV R0,#50 L1: INC A DJNZ R0,L1 23、试说明压栈指令和弹栈指令的作用及执行过程。 答:压栈指令的作用是将数据存入堆栈中,其执行过程是先将堆栈指针SP 的内容加1,然 后将直接地址单元中的数据压入SP 指向的单元中。若数据已推入堆栈,则SP 指向最后推入数据所在的存 储单元。 弹栈指令的作用是将数据从堆栈中取出,其执行过程为

20、先将堆栈指针 SP 所指出单元的内容送入 直接寻址单元中,然后将SP 的内容减1,此时SP 指向新的栈顶。 24、下述程序执行后,SP=?,A=?,B=?。 ORG 201H MOV SP,#40H MOV A,#30H LCALL 250H ;下条指令地址208H 送41H、42H,SP=42H ADD A,#10H MOV B,A ;地址为20AH L1: SJMP L1 ORG 250H MOV DPTR,#20AH PUSH DPL ;SP+1=43H,DPL(43H) PUSH DPH ;SP+1=44H,DPH(44H) RET ;20AHPC 答:上述程序执行后,SP=42H,A

21、=30H,B=30H。 25、发光二极管点亮规律:先是第1 和第8 个亮,延时一段时间后,第2 和第7 个亮,延时 后,再是第3 和第6 个亮,延时后,最后是第4 和第5 个点亮,延时后循环。 26、若系统晶振频率为 6MHz,求子程序 DELAY 的延时时间,若想加长或缩短时间,应该 怎样修改? 答: DELAY: MOV R2,#0FAH L1: MOV R3,#0FAH L2: DJNZ R3,L2 DJNZ R2,L1 RET 总时间计算:T=4 s2504 s=251.008ms 估算:T=2504 s250=250ms 若想加长延时时间,可以增加循环次数或再加一重循环; 若想减小延

22、时时间,可以减少循环次数或较少一重循环。 27、P1 口连接8 个共阳极连接的发光二极管,是编制灯亮移位程序。 答: MOV A,#0FEH L1: MOV P1,A RL A LCALL DELAY ;DELAY 子程序同上题 SJMP L1 28、试编一程序,将外部数据存储器2100H 单元中的高4 位置“1”,其余位清“0”。 答: MOV DPTR,#2100H MOVX A,DPTR ORL A,#0F0H ANL A,#0F0H MOVX DPTR,A 29、试编程将片内数据存储器40H 单元的第0 为和第7 位置1,其余取反。 答: MOV A,40H CPL A SETB AC

23、C.0 SETB ACC.7 MOV 40H,A 30、将A.5 与80H 位相与的结果,通过P1.4 输出。 MOV C,80H ANL C,ACC.5 MOV P1.4,C 31、请用位操作指令,求下列逻辑方程。 MOV C,B.0 ORL C,P2.1 ANL C,ACC.0 ORL C,/P3.2 MOV P1.7,C MOV C,P1.3 ANL C,ACC.2 MOV 20H,C MOV C,B.5 ANL C,/P1.1 ORL C,20H MOV PSW.5,C MOV C,B.4 ANL C,/P1.5 MOV 20H,C MOV C,P1.0 ANL C,/ACC.7 OR

24、L C,20H MOV P2.3,C 第四章 汇编语言程序设计 1、编程将片内40H60H 单元中的内容送到以3000H 为首的存储区内。 答: MOV R1,#40H MOV R2,#21H MOV DPTR,#3000H L1: MOV A,R1 MOVX DPTR,A INC R1 INC DPTR DJNZ R2,L1 2、编程计算下列算式的程序 23H+45H+ABH+03H= MOV A,#23H ADD A,#45H ADD A,#0ABH XCH A,B ;溢出处理 ADDC A,#00H XCH A,B ADD A,#03H ;A 中为结果低位,B 中为高位 CDH+15H-

25、38H-46H= MOV A,#0CDH ADD A,#15H SUBB A,#38H SUBB A,#46H 1234H+8347H= MOV A,#34H ADD A,#47H MOV 30H,A MOV A,#12H ADDC A,#83H MOV 31,A ;30H 存结果低位,31H 存结果高位 AB123H-43ADCH= CLR C MOV A,#23H SUBB A,DCH MOV 30H,A MOV A,#0B1H SUBB A,#3AH MOV 31H,A MOV A,#0AH SUBB A,#04H MOV 32H,A ;30H 为低位,32H 为高位 3、设有两个4 位

26、BCD 码,分别存放在23H、22H 单元和33H、32H 单元中,求他们的和, 并送入43H、42H 单元中。 答: MOV A,22H ADD A,32H DA A MOV 42H,A MOV A,23H ADDC A,33H DA A MOV 43H,A 4、略 5、编程计算片内RAM区50H59H 单元中数的平均值,结果存放在5AH 中。 答: MOV R0,#8 MOV R1,#50H MOV A,#00H L1: ADD A,R1 INC R1 DJNZ R0,L1 MOV B,#8 DIV AB MOV 5AH,A 6、编写计算下式的程序。设乘积和平方结果均小于 255。a 、b

27、 值分别存在片外 3001H 和3002H 单元中,结果存于片外3000H 单元中。 MOV DPTR,#3001H MOVX A,DPTR MOV 30H,A ;a 暂存30H 单元 INC DPL MOVX A,DPTR CJNE A,30H,L1 ;是否a=b MOV A,#25 SJMP SAVE L1: JNC L2 MOV B,30H MUL AB SJMP SAVE L2: MOV B,A MOV A,30H DIV AB SAVE: MOV DPTR,#3000H MOVX DPRT,A MOV DPTR,#3001H MOVX A,DPTR MOV 30H,A INC DPT

28、R MOVX A,DPTR ADD A,30H MOV B,A MUL AB ; (ab)2 MOV 31H,A CJNE A,#10,L1 SJMP SAVE L1: JC L2 CLR C SUBB A,#10 SJMP SAVE L2: ADD A,#10 SAVE: MOV DPTR,#3000H MOVC DPTR,A 7、设有两个长度均为 15 的数组,分别存放在以 200H 和 210H 为首地址的存储区中,试编 程求其对应项之和,结果存放到以220H 为首地址的存储区中。 答: MOV DPH,#02H MOV R1,#15 MOV R2,#00H ; 数组1 首地址低位 MO

29、V R3,#10H ; 数组2 首地址低位 MOV R4,#20H ; 和首地址低位 L1: MOV DPL,R2 MOVX A,DPTR MOV R1,A MOV DPL,R3 MOVX A,DPTR ADD A,R1 MOV DPL,R4 MOVX DTPR,A INC R2 INC R3 INC R4 DJNZ R1,L1 SJMP $ 8、设有 100 个无符号数,连续存放在以 2000H 为首地址的存储区中,试编程统计正数、负 数和零的个数。 答: MOV 30H,#00H ;正数计数器 MOV 31H,#00H ;负数计数器 MOV 32H,#00H ;零计数器 MOV DPTR,

30、#2000H MOV R1,#100 L4: MOVX A,DPTR INC DPTR CJNE A,#0,L1 INC 32H SJMP L2 L1: JC L3 INC 30H SJMP L2 L3: INC 31H L2: DJNZ R1,L4 SJMP $ 9、将片外数据存储器地址为1000H1030H 的数据块,全部搬迁到片内RAM 30H60H 中, 并将原数据块区域全部清零。 答: MOV R0,#30H MOV R2,#31H MOV DPTR ,#1000H LP: MOVX A,DPTR MOV R0,A AND A,#00H MOVX DPTR,A INC R0 INC

31、DPTR DJNZ R2,LP SJMP $ 10、试编写一子程序,是 R1、R0 指向的两个片外 RAM连续单元中的高 4 位二进制数,合 并成一个字节,装入累加器A 中。已知R0 指向低地址,并要求该单元高四位放在A 中高四 位。 答: MOVX A,R1 ANL A,#0F0H SWAP A MOV R2,A MOVX A,R0 ANL A,#0F0H ORL A,R2 11、试编程把以 2040H 为首地址的连续 50 个单元的无符号数按降序排列,存放到以 3000H为首地址的存储区中。 答: MOV R2,#50 MOV R3,#20H MOV R4,#40H ;源地址 MOV R5

32、,#30H MOV R6,#00H ;目的地址 SEND: MOV DPH,R3 ;SEND 将2040H 数据块移入3000H 存储区 MOV DPL,R4 MOVX A,DPTR INC DPTR MOV R3,DPH MOV R4,DPL MOV DPH,R5 MOV DPL,R6 MOVX DPTR,A INC DPTR MOV R5,DPH MOV R6,DPL DJNZ R2,SEND MOV R2,#49 ;重复次数 CMP1: MOV DPTR,#3000H MOV R3,#49 ;比较次数 CMP2: MOVX A,DPTR MOV B,A INC DPTR MOVX A,D

33、PTR CJNE A,B,L1 L1: JC NOMOVE MOV 30H,A CLR C MOV A,DPL SUBB A,#01H MOV DPL,A MOV A,30H MOVX DPTR,A INC DPTR MOV A,B MOVX DPTR,A NOMOVE: DJNZ R3,CMP2 ;50 个数重复一遍? DJNZ R2,CMP1 ;排序结束? LJMP $ 12、试编一查表程序,从首地址为2000H,长度为100 的数据块中找出ASCII 码为A,将其 地址送到20A0H 和20A1H 单元中。 答: MOV DPTR,#2000H MOV R2,#100 GO_ON: CL

34、R A MOVC A,A+DPTR CJNE A,#41H,IFEND MOV A,DPH MOV B,DPL MOV DPTR,#20A0H MOVX DPTR,A INC DPTR XCH A,B MOVX DPTR,A SJMP OVER IFEND: INC DPTR DJNZ R2,GO_ON OVER: SJMP OVER 13、设在200H204H 单元中,存放5 个压缩BCD 码,编程将他们转换成ASCII 码,存放 到以205H 单元为首地址的存储区。 答: MOV R2,#05H MOV R3,#02H MOV R4,#00H MOV R5,#02H MOV R6,#05H

35、 CHLP: MOV DPH,R3 MOV DPL,R4 MOVX A,DPTR INC DPTR MOV R3,DPH MOV R4,DPL MOV B,A SWAP A ANL A,#0FH ORL A,#30H MOV DPH,R5 MOV DPL,R6 MOVX DPTR,A INC DPTR MOV A,B ANL A,#0FH ORL A,#30H MOVX DPTR,A MOV R5,DPH MOV R6,DPL DJNZ R2,CHLP 14、有一无符号数据块长度在 30H 单元中,其首地址为 31H 单元,求出数据块中最大值, 并存入40H 中。 答: MOV R0,#31H

36、 MOV R1,30H MOV 40H,#00H LOOP: MOV A,R0 CJNE A,40H,L1 SJMP AGAIN L1: JNC L2 SJMP AGAIN L2: MOV 40H,A AGAIN: INC R0 DJNZ R1,LOOP SJMP $ 15、略 16、在以 2000H 为首地址的存储区内,存放 20 个用 ASCII 码表示的 09 之间的数,试编 程,将它们转换成BCD 码,并以压缩BCD 码的形式存在3000H3009H 单元中。 答: MOV R2,#10 MOV R3,#20H MOV R4,#00H MOV R5,#30H MOV R6,#00H L

37、P: MOV DPH,R3 MOV DPL,R4 MOVX A,DPTR ANL A,#0FH SWAP A XCH A,B INC DPTR MOVX A,DPTR ANL A,#0FH ORL A,B INC DPTR MOV R3,DPH MOV R4,DPL MOV DPH,R5 MOV DPL,R6 MOVX DPTR,A INC DPTR MOV R5,DPH MOV R6,DPL DJNZ R2,LP SJMP $ 17、试编程实现下列逻辑表达式功能。设 P1.7P1.0 为 8 个变量的输入端,而其中 P1.7 又 作为变量的输出端。 ;输入端定义 X0 EQU P1.0 X1

38、 EQU P1.1 X2 EQU P1.2 X3 EQU P1.3 X4 EQU P1.4 X5 EQU P1.5 X6 EQU P1.6 X7 EQU P1.7 MOV C,X0 ANL C,X1 ANL C,/X2 ORL C,X3 MOV 00H,C MOV C,X4 ANL C,X5 ANL C,X6 ORL C,/X7 ORL C,00H MOV P1.7,C MOV C,X0 ANL C,X1 CPL C MOV 00H,C MOV C,X2 ANL C,X3 ANL C,X4 CPL C MOV 01H,C MOV C,X5 ANL C,X6 ANL C,X7 CPL C ORL

39、 C,O1H CPL C ORL C,00H MOV P1.7,C 18、略 19、略 20、试编写延时1s、1min、1h 子程序。 ;单片机时钟fosc=12MHz,计算为近似值 ;1s 延时子程序 DLY_1S: MOV R0,#10 L3: MOV R1,#200 L2: MOV R2,#250 L1: DJNZ R2,L1 DJNZ R1,L2 DJNZ R0,L3 RET ;延时1min DLY_1M:MOV R3,#60 L4: LCALL DLY_1S DJNZ R3,L4 RET ;延时1h DLY_1H: MOV R4,#60 L5: LCALL DLY_1M DJNZ R

40、4,L5 RET 21、用程序实现 c=a2+b2。设 a、b 均小于 10,a 存在 31H 单元中,b 存在 32H 单元中,c存33H 单元。 答: ORG 1000H SR: MOV A,31H ACALL SQR MOV R1,A MOV A,32H ACALL SQR ADD A,R1 MOV 33H,A SJMP $ ;求平方子程序如下 SQR: INC A MOVC A, A+PC RET TABLE: DB 0, 1, 4, 9, 16 DB 25,36,49,64,81 END 22、如何实现将内存单元40H60H 的数逐个对应传到片外2540H2560H 单元中? 答:

41、MOV R0,#40H MOV DPTR,#2540H MOV R2,#21H L1: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,L1 SJMP $ 23、参考21 题 24、参考21 题 25、参考实验程序 26、参考实验程序 第五章 定时/计数器 1、89S51 单片机内部有几个定时/计数器,他们有哪些专用寄存器组成? 答:89S51 单片机内部有两个16 位定时/计数器,为定时器0和定时器1。在定时器/计数器的16 位的计数器是由两个8 位的专用寄存器TH0、TL0,TH1、TL1 组成。 2、89S51 单片机的定时/计数器有哪几种工作方式,各有什么特点? 答:定时器/计数器有四种工作方式:方式0,方式1,方式2,方式3。其中,方式3 只适用于T0。 以T0 为例:方式0,16 位寄存器只用了13 位,TL0 的高三位未用。由TH0 的8 位和TL0 的低5 位组

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号