2022年单片机课后习题解答.docx

上传人:Che****ry 文档编号:12873383 上传时间:2022-04-26 格式:DOCX 页数:26 大小:164.75KB
返回 下载 相关 举报
2022年单片机课后习题解答.docx_第1页
第1页 / 共26页
2022年单片机课后习题解答.docx_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《2022年单片机课后习题解答.docx》由会员分享,可在线阅读,更多相关《2022年单片机课后习题解答.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品学习资源练习练习练习其次章单片机结构及原理1、MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么?答:1一个 8bit CPU是微处理器的核心,是运算和规律运算的中心;2片内震荡器准时钟电路:供应标准时钟信号,全部动作都依据此进行;34K ROM程序存贮器:存贮程序及常用表格;4128B RAM 数据存贮器:存贮一些中间变量和常数等;5两个 16bit定时器 / 计数器:完全硬件定时器632 根可编程 I/O 口线:标准 8 位双向 4 个 I/O 接口,每一条I/O 线都能独立地作输入或输出;7一个可编程全双工串行口;8五个中断源;2、什么是指令?什么是程序?答:指令是规定电脑

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

3、 CPU通过转变状态字寄存器PSW中的 RS0和 RS1来确定工作寄存器组;5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?假如CPU在操作中要使用两组工作寄存器,SP应当多大?答:堆栈是一个特别的储备区,主要功能是临时存放数据和地址,通常用来爱护断点和现场;堆栈指针 SP复位后指向 07H 单元, 00H 1FH 为工作寄存器区, 20H 2FH为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值;假如 CPU在操作中要使用两组工作寄存器,SP应当至少设置为 0FH;6、89S51/52 的时钟周期、机器周期、指令周期是如何安排的?当振荡频率为

4、8MHz时,一个单片机周期为多少微秒?答:时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位;机器周期是指完成一个基本操作所需要的时间,一个机器周期由12 个时钟周期组成;指令周期是执行一条指令所需要的时间,由假设干个机器周期组成;假设 fosc=8MHz,就一个机器周期=1/8 12 s7、89S51/52 扩展系统中,片外程序储备器和片外数据储备器共处同一地址空间为什么不会发生总线冲突?答:拜访片外程序储备器和拜访数据储备器使用不同的指令用来区分同一地址空间;8、程序状态字寄存器PSW的作用是什么?常用状态标志有哪些位?作用是什么?答:程序状态字 PSW是 8 位寄存器,用

5、于存放程序运行的状态信息, PSW中各位状态通常是在指令执行的过程中自动形成的, 但也可以由用户依据需要采纳传送指令加以转变; 各个标志位的意义如下:PSW.7 Cy:进位标志位;PSW.6 AC:帮助进位标志位,又称为半进位标志位;PSW.5 F0:用户标志位;欢迎下载精品学习资源PSW.4、 PSW.3RS1和 RS0:寄存器组挑选位;PSW.2 OV:溢出标志位;PSW.1空缺位:此位未定义;PSW.0 P:奇偶校验位;9、位地址 7CH和字节地址 7CH有何区分?位地址7CH详细在内存中什么位置?答:字节地址7CH是片内数据储备器中的一个地址单元,该地址单元中可以存放8 位二进制数,位

6、地址 7CH是内部数据储备器中位寻址区中的一位,该地址单元中可以存放1 位二进制数;位地址7CH详细在片内数据储备器字节地址为2FH 中的第 4 位 2FH.4 ;10、 89S51/52 中 4 个 I/O 端口的作用是什么? 89S51/52 的片外三总线是如何安排的?答: I/O 端口是单片机与外界联系的重要通道,实现与外部设备的信息的传输;总线安排:片外数据总线 8 根通过 P0 口输出,片外地址总线16 根通过 P0 口低 8 位和 P2 口高 8 位输出,片外掌握总线PSEN, ALE , RD , WR, EA主要通过 P3 口;11、 89S51/52 中 4 个 I/O 端口

7、在结构上有何异同?89S51/52单片机的个 I/O口在结构上是基本相同的,但又各具特点;这四个端口都是位双向口,每个端口都包括一个锁存器、一个输出驱动器和输入缓冲器;在无片外扩展储备器的系统中,这四个端口的每一位都可以作为双向通用I/O 端口使用;在作为一般的通用I/O 输入时,都必须先向锁存器写入“” ,使输出驱动场效应管FET截止,以免误读数据;各自特点如下:1P0 口为双向 8 位三态 I/O 口,它既可作为通用I/O 口,又可作为外部扩展时的数据总线及低 8 位地址总线的分时复用口;作为通用I/O 口时,输出数据可以得到锁存,不需外接专用锁存器;输入数据可以得到缓冲,增加了数据输入的

8、牢靠性;每个引脚可驱动8 个 TTL 负载; 数字电路按工艺有肖特基双极晶体管和CMOS工艺两种,使用双极晶体管的数字电路称 TTL数字电路,单片机输出端 带负载才能 ,意思就是单片机的 P3 端口只能并联 4 个 TTL型集成电路输入端;2P1 口为 8 位准双向 I/O 口,内部具有上拉电阻,一般作通用I/O 口使用,它的每一位都可以分别定义为输入线或输出线,作为输入时,锁存器必需置1;每个引脚可驱动4 个 TTL 负载;3P2 口为 8 位准双向 I/O 口,内部具有上拉电阻,可直接连接外部I/O 设备;它与地址总线高 8 位复用,可驱动 4 个 TTL 负载;一般作为外部扩展时的高8

9、位地址总线使用;4P3 口为 8 位准双向 I/O 口,内部具有上拉电阻, 它是双功能复用口, 每个引脚可驱动 4 个 TTL负载;作为通用I/O 口时,功能与 P1 口相同,常用其次功能;12、复位的作用是什么?有几种复位方法?复位后单片机的状态如何?答:复位是单片机的初始化操作;单片机在RST引脚产生两个机器周期即24 个时钟周期以上的高电平即可实现复位;主要的复位方法有上电自动复位和按键手动复位两种;按键手动复位又分: 按键电平复位和按键脉冲复位;第三章指令系统1、简述以下名词术语的基本概念:指令、指令系统、程序、汇编语言指令答:指令:规定单片机进行某种操作的命令称为指令;指令系统:单片

10、机能够执行的各种指令的集合;程序:一系列指令的有序集合称为程序;汇编语言指令:用助记符形式来表示机器指令;2、80C51 单片机有哪几种寻址方式?这几种寻址方式是如何寻址的?答:共 7 种寻址方式,分别为:寄存器寻址,直接寻址,寄存器间接寻址,立刻寻址,变址寻址, 位寻址和相对寻址;寄存器寻址方式:由指令指出某一寄存器的内容做为操作数;欢迎下载精品学习资源直接寻址方式:指令中操作数直接以单元地址的形式给出;寄存器间接寻址方式:寄存器间接寻址方式,寄存器中存放的就是操作数的地址,即操作数是通过寄存器间接得到的;立刻寻址方式:操作数在指令中直接给出;变址寻址方式:变址寻址是为了拜访程序储备器中的数

11、据和表格;MCS51 的变址寻址是以 DPTR或 PC作基址寄存器, 以累加器 A作变址寄存器, 并以两者内容相加形成的16. 位地址做为操作数地址,以到达拜访数据和表格的目的;位寻址方式:指对片内RAM的位寻址区和某些可寻址的特别功能寄存器进行位操作的寻址方式;相对寻址方式:相对寻址方式是为解决程序转移而特地设置的,为转移指令所采纳;3、要拜访特别功能寄存器和片外数据寄存器,应采纳哪些寻址方式?答:拜访特别功能寄存器可以采纳直接寻址、寄存器寻址和位寻址针对可以进行位寻址的特别功能寄存器方式;拜访片外数据储备器可采纳寄存器间接寻址方式;4、80C51 单片机的指令系统可以分为哪几类?说明各指令

12、的功能;答: 51 单片机指令系统按功能可分为5 类:1数据传送指令主要进行数据的传送、交换等;2算术运算指令主要进行基本的加减乘除运算;3规律运算指令主要实现规律运算与移位运算;4掌握转移指令主要是实现对程序流程的掌握;5位操作指令5、外部数据传送指令有哪几条?有和区分?答:外部数据传送指令有读指令和写指令两类,每类指令的寻址范畴不同,分别为:读外部储备器指令:MOVXA, Ri;寻址范畴为256 字节MOVXA, DPTR;寻址范畴为64K 字节写外部储备器指令:MOVXR,iA;寻址范畴为256 字节MOVXDPT,R A;寻址范畴为64K 字节6、在 89S51 片内 RAM中,已知

13、30H=38H,38H=40H,40H=48H,48H=90H,请分别分析下段程序按序执行后的结果;MOVA, 40H; A=48HMOVR0, A; R0=48HMOVP1, #0FFH; P1=FFHMOVR,0 30H; 48H=38HMOVDPTR,#1246H; DPTR=1246HMOV40H,38H; 40H=40HMOVR0, 30H; R0=38HMOV90H,R0; 90H=38HMOV48H,#30H; 48H=30HMOVA, R0; A=40HMOVP2, P1; P2=38H7、略8、DAA 指令的作用是什么?怎样使用?答:对十进制 BCD数作加法时进行调整,当结果

14、的低4 位 A0 A39,或半进位 AC=1,就 A0 A3 6,否就不加;当结果的高4 位 A4A79,或进位 CY=1,就 A4A7 6,否就不加;这条指令是在进行 BCD码加法运算时,跟在“ADD”和“ ADDC”指令之后,用来对BCD码的加法运算结果自动进 行修正,使其仍为BCD码表示形式;9、试编程将片外数据储备器60H 中的内容传送到片内RAM54H单元中;欢迎下载精品学习资源答:MOVR0, #60HMOVXA, R0MOV54H, A10、试编程将寄存器R7 的内容传送到 R1中去;答:MOVA, R7MOVR1, A11、已知当前 PC值为 210H,请用两种方法将程序储备器

15、2F0H 中的常数送入累加器A 中;答: 1以程序计数器 PC作为基址寄存器MOVA, #0E0H MOVCA, A+PC2以数据指针DPTR作为基址寄存器MOVDPTR, #02F0HMOVA, #00HMOVCA, A+DPTR12、试说明下段程序中每条指令的作用,并分析当指令执行完后,R0 中的内容是什么? MOVR0, #0A7H; R0=A7H,立刻数送寄存器R0XCHA, R0; A=A7H,累加器 A中的数据与 R0 中的数据进行交换SWAPA; A=7AH,累加器 A中的高低四位进行交换XCHA, R0; R0=7AH,数据交换回R0 13、请用两种方法实现累加器A 与寄存器

16、B 的内容交换;答: 1MOVR0, AMOVA, BMOVB, R02MOVR0, B XCHA, R014、试编程将片外RAM中 40H 单元的内容与 R1 的内容交换;答:MOVR0, #40HMOVXA, R0 XCHA, R1MOVXR,0 A15、已知: A=0C9H, B=8DH,CY=1;执行指令 ADDCA, B结果如何?A=57H, CY=1, OV=1, AC=1, P=1执行指令 SUBBA, B结果如何?A=3BH , CY=0, AC=1, OV=116、试编程将片外RAM中 30H 和 31H 单元中的内容相乘,结果存放在32H低位和 33H高位单元中;答:MOV

17、R0, #30HMOVXA, R0 MOVB, AINCR0 MOVXA, R0 MULABINCR0MOVXR,0 A欢迎下载精品学习资源MOVA, BINCR0 MOVXR,0 A17、试用 3 种方法将累加器 A 中的无符号数乘2.答: 1MOVR0, AADDA, R02MOVB, #2 MULAB3RLA18、分析依次执行以下指令的结果:MOV30H, #0A4H; 30H=A4HMOVA, #0D6H; A=D6HMOVR0, #30H; R0=30HMOVR2, #47H; R2=47HANLA, R2; A=46HORLA, R0; A=E6HSWAPA; A=6EHCPLA;

18、 A=91HXRLA, #0FFH; A=6EHORL30H, A; 30H=EEH19、求以下指令执行后,累加器A 及 PSW中进位 CY、奇偶位 P 和溢出位 OV的值;1当 A=5BH时; ADDA, #8CH2当 A=5BH时; ANLA, #7AH3当 A=5BH时; XRLA, #7FH4当 A=5BH, CY=1时; SUBB A, #0E8H答: 1A=E7H, CY=1, P=0, OV=02A=5AH ,P=03A=24H ,P=04A=72H, CY=1, P=0, OV=020、把累加器 A 中的低 4 位数据送到外部数据储备器的2000H 单元;答:ANLA, #OF

19、HMOVDPTR, #2000HMOVXDPT,R A21、试说明指令 CJNE R,1 #7AH, 10H 的作用,假设本指令地址为250H,其转移地址是多少?答:指令作用:假如以R1内容为地址的单元中的数据等于7AH,就程序次序执行,否就转移后连续执行;假设本指令地址为250H,就转移地址为 250H 03H 10H= 263H;22、将累加器 A 中的数据由 0 递增,加到 50,结果在累加器A 中;答:CLRAMOVR0, #50L1:INCADJNZR0, L123、试说明压栈指令和弹栈指令的作用及执行过程;欢迎下载精品学习资源答:压栈入栈或进栈指令的作用是将数据存入堆栈中,其执行过

20、程是先将堆栈指针 SP 的内容加 1,然后将直接地址单元中的数据压入 SP指向的单元中;假设数据已推入堆栈,就 SP指向最终推入数据所在的储备单元即指向栈顶;弹栈出栈指令的作用是将数据从堆栈中取出,其执行过程为先将堆栈指针 SP所指出单元的内容送入直接寻址单元中,然后将 SP的内容减 1,此时 SP指向新的栈顶;24、下述程序执行后, SP=?, A=?, B=?;ORG2000HMOVSP, #40HMOVA, #30HLCALL250H;下条指令地址 2021H 送 41H、42H,SP=42HADDA, #10HMOVB, A;地址为 200AHL1:SJMPL1ORG250HMOVDP

21、TR, #200AHPUSHDPL; SP+1=43H,DPL 43HPUSHDPH; SP+1=44H,DPH 44HRET; 200AHPC答:上述程序执行后, SP=42H, A=30H, B=30H;25、发光二极管点亮规律:先是第1 和第 8 个亮,延时一段时间后,第2 和第 7 个亮,延时后,再是第 3 和第 6 个亮,延时后,最终是第4 和第 5 个点亮,延时后循环;26、假设系统晶振频率为6MHz,求子程序 DELAY的延时时间,假设想加长或缩短时间,应当怎样修改?答:DELAY:MOVR2, #0FAH L1:MOVR3, #0FAHL2:DJNZR3, L2DJNZR2,

22、L1 RET总时间运算: T=4s 250 4 s4 s 250 4 估算: T=2504 s 250=250ms假设想加长延时时间,可以增加循环次数或再加一重循环; 假设想减小延时时间,可以削减循环次数或较少一重循环;27、 P1 口连接 8 个共阳极连接的发光二极管,是编制灯亮移位程序;答:MOVA, #0FEHL1:MOVP1, ARLALCALLDELAY; DELAY子程序同上题SJMPL128、试编一程序,将外部数据储备器2100H 单元中的高 4 位置“ 1”,其余位清“ 0”;答:MOVDPTR, #2100HMOVXA, DPTR ORLA, #0F0HANLA, #0F0H

23、MOVXDPT,R A29、试编程将片内数据储备器40H 单元的第 0 为和第 7 位置 1,其余取反;欢迎下载精品学习资源答:MOVA, 40H CPLASETBACC.7MOV40H, A30、将 A.5 与 80H 位相与的结果,通过P1.4 输出;MOVC, 80HMOVP1.4 , C31、请用位操作指令,求以下规律方程;欢迎下载精品学习资源1 P1.7ACC.0B.0P2.1P3.2欢迎下载精品学习资源MOVP1.7 , C欢迎下载精品学习资源2 PSW.5P1.3ACC.2B.5P1.1欢迎下载精品学习资源MOV20H, CORLC, 20HMOVPSW.5, C欢迎下载精品学习

24、资源3 P2.3P1.5B.4ACC.7P1.0欢迎下载精品学习资源MOV20H, CORLC, 20H下一行 MOVP2.3 , C第四章汇编语言程序设计1、编程将片内 40H 60H 单元中的内容送到以3000H 为首的储备区内;答:MOVR1, #40HMOVR2, #21H MOVDPTR, #3000HL1:MOVA, R1MOVXDPT,R A INCR1INCDPTRDJNZR2, L12、编程运算以下算式的程序欢迎下载精品学习资源123H+45H+ABH+03H=MOVA, #23HADDA, #45HADDA, #0ABHXCHA, B;溢出处理ADDCA, #00HXCHA

25、, BADDA, #03H; A 中为结果低位, B 中为高位2CDH+15H-38H-46H=MOVA, #0CDHADDA, #15HSUBBA, #38HSUBBA, #46H31234H+8347H=MOVA, #34HADDA, #47HMOV30H, AMOVA, #12HADDCA, #83HMOV31, A; 30H 存结果低位, 31H 存结果高位4AB123H-43ADCH=CLRCMOVA, #23HSUBBA, DCHMOV30H, AMOVA, #0B1HSUBBA, #3AHMOV31H, AMOVA, #0AH SUBBA, #04HMOV32H, A; 30H

26、为低位, 32H 为高位3、设有两个 4 位 BCD码,分别存放在 23H、22H 单元和 33H、32H 单元中, 求他们的和, 并送入 43H、42H 单元中低位在低字节,高位在高字节;答:MOVA, 22HADDA, 32HMOV42H, AMOVA, 23HADDCA, 33HMOV43H, A4、略5、编程运算片内 RAM区 50H 59H 单元中数的平均值,结果存放在5AH中;答:MOVR0, #8MOVR1, #50HMOVA, #00HL1:ADDA, R1欢迎下载精品学习资源INCR1DJNZR0, L1MOVB, #8DIVABMOV5AH, A6、编写运算下式的程序;设乘

27、积和平方结果均小于255;a 、b 值分别存在片外 3001H 和 3002H单元中,结果存于片外3000H 单元中;欢迎下载精品学习资源251 Yab ab, ab, ab, ab欢迎下载精品学习资源MOVDPTR, #3001HMOVXA, DPTRMOV30H, A; a 暂存 30H 单元INCDPLMOVXA, DPTRCJNEA, 30H, L1;是否 a=bMOVA, #25SJMPSAVEL1:JNCL2MOVB, 30HMULABSJMPSAVEL2:MOVB, AMOVA, 30HDIVABSAVE:MOVDPTR, #3000HMOVXDPR,T A欢迎下载精品学习资源2

28、 Y ab 210 ab 2 ab 210, a, a, ab 210b 210b 210欢迎下载精品学习资源MOVDPTR, #3001HMOVXA, DPTRMOV30H, AINCDPTRMOVXA, DPTRADDA, 30HMOVB, AMULABMOV31H, ACJNEA, #10, L1SJMPSAVEL1:JCL2CLRC; a b 2欢迎下载精品学习资源SUBBA, #10SJMPSAVEL2:ADDA, #10SAVE:MOVDPTR, #3000HMOVCDPT,R A7、设有两个长度均为15 的数组, 分别存放在以 200H 和 210H 为首地址的储备区中, 试编程

29、求其对应项之和,结果存放到以220H 为首地址的储备区中;答:MOVDPH, #02HMOVR1, #15MOVR2, #00H; 数组 1 首地址低位MOVR3, #10H; 数组 2 首地址低位MOVR4, #20H; 和首地址低位L1:MOVDPL, R2 MOVXA, DPTR MOVR1, AMOVDPL, R3MOVXA, DPTR ADDA, R1MOVDPL, R4 MOVXDTP,R A INCR2INCR3INCR4DJNZR1, L1SJMP$8、设有 100 个无符号数,连续存放在以2000H 为首地址的储备区中,试编程统计正数、负数和零的个数;答:MOV30H, #0

30、0H;正数计数器MOV31H, #00H;负数计数器MOV32H, #00H;零计数器MOVDPTR, #2000HMOVR1, #100L4:MOVXA, DPTRINCDPTRCJNEA, #0, L1INC32HSJMPL2L1:JCL3INC30HSJMPL2L3:INC31HL2:DJNZR1, L4SJMP$9、将片外数据储备器地址为1000H1030H 的数据块,全部搬迁到片内RAM 30H 60H 中,并将原数据块区域全部清零;欢迎下载精品学习资源答:MOVR0, #30HMOVR2, #31HMOVDPTR , #1000HLP:MOVXA, DPTRMOVR,0 AANDA

31、, #00HMOVXDPT,R AINCR0INCDPTRDJNZR2, LPSJMP$10、试编写一子程序,是R1、 R0 指向的两个片外 RAM连续单元中的高4 位二进制数,合并成一个字节,装入累加器A 中;已知 R0 指向低地址,并要求该单元高四位放在A 中高四位;答:MOVXA, R1ANLA, #0F0HSWAPAMOVR2, AMOVXA, R0ANLA, #0F0HORLA, R211、试编程把以2040H 为首地址的连续50 个单元的无符号数按降序排列,存放到以3000H 为首地址的储备区中;答:MOVMOVR2, #50R3, #20HMOVR4, #40H;源地址MOVR5

32、, #30HMOVR6, #00H;目的地址SEND:MOVDPH, R3; SEND将 2040H 数据块移入 3000H 储备区MOVDPL, R4MOVXA, DPTRINCDPTRMOVR3, DPHMOVR4, DPLMOVDPH, R5MOVDPL, R6MOVXDPT,R AINCDPTRMOVR5, DPHMOVR6, DPLDJNZR2, SENDMOVR2, #49;重复次数CMP1:MOVDPTR, #3000HMOVR3, #49;比较次数欢迎下载精品学习资源CMP2:MOVXA, DPTRMOVB, AINCDPTRMOVXA, DPTRCJNEA, B, L1L1:

33、JCNOMOVEMOV30H, ACLRCMOVA, DPLSUBBA, #01HMOVDPL, AMOVA, 30HMOVXDPT,R AINCDPTRMOVA, BMOVXDPT,R ANOMOVE: DJNZR3, CMP2; 50 个数重复一遍?DJNZR2, CMP1;排序终止?LJMP$12、试编一查表程序,从首地址为2000H,长度为 100 的数据块中找出 ASCII 码为 A,将其地址送到 20A0H和 20A1H单元中;答:MOVDPTR, #2000HMOVR2, #100GO_ON:MOVXA, DPTRCJNEA, #41H,IFENDMOVA, DPHMOVB, D

34、PLMOVDPTR, #20A0HMOVXDPT,R AINCDPTRXCHA, BMOVXDPT,R ASJMPOVERIFEND:INCDPTRDJNZR2, GO_ONOVER:SJMPOVER13、设在 200H 204H 单元中,存放5 个压缩 BCD码,编程将他们转换成ASCII 码,存放到以205H单元为首地址的储备区;答:MOVR2, #05HMOVR3, #02HMOVR4, #00HMOVR5, #02HMOVR6, #05HCHLP:MOVDPH, R3MOVDPL, R4欢迎下载精品学习资源MOVXA, DPTR INCDPTRMOVR3, DPHMOVR4, DPLM

35、OVB, ASWAPAANLA, #0FHORLA, #30HMOVDPH, R5MOVDPL, R6 MOVXDPT,R A INCDPTRMOVA, BANLA, #0FHORLA, #30H MOVXDPT,R A MOVR5, DPHMOVR6, DPLDJNZR2, CHLP14、有一无符号数据块长度在30H 单元中,其首地址为31H 单元,求出数据块中最大值,并存入40H 中;答:MOVR0, #31HMOVR1, 30HMOV40H, #00HLOOP:MOVA, R0CJNEA, 40H, L1SJMPAGAINL1:JNCL2SJMPAGAINL2:MOV40H, AAGAI

36、N:INCR0DJNZR1, LOOPSJMP$15、略16、在以 2000H 为首地址的储备区内,存放20 个用 ASCII 码表示的 0 9 之间的数,试编程,将它们转换成 BCD码,并以压缩 BCD码的形式存在 3000H 3009H 单元中;答:MOVR2, #10MOVR3, #20HMOVR4, #00HMOVR5, #30HMOVR6, #00HLP:MOVDPH, R3 MOVDPL, R4 MOVXA, DPTR ANLA, #0FH欢迎下载精品学习资源SWAPAXCHA, BINCDPTR MOVXA, DPTR ANLA, #0FHORLA, BINCDPTRMOVR3,

37、 DPHMOVR4, DPLMOVDPH, R5MOVDPL, R6 MOVXDPT,R A INCDPTRMOVR5, DPHMOVR6, DPLDJNZR2, LPSJMP$17、试编程实现以下规律表达式功能;设 P1.7 P1.0 为 8 个变量的输入端, 而其中 P1.7 又作为变量的输出端;输入端定义X 0 X 1 X 2X 3X 4 X 5 X 6X 71 YMOVC, X0ANLC, X1ANLC, /X2ORLC, X3MOV00H, CMOVC, X4ANLC, X5ANLC, X6ORLC, /X7ORLC, 00HMOVP1.7 , C欢迎下载精品学习资源2 YX 0 X

38、 1X 2 X 3 X 4X 5 X 6 X 7欢迎下载精品学习资源MOVC, X0ANLC, X1欢迎下载精品学习资源CPLCMOV00H, CMOVC, X2ANLC, X3ANLC, X4CPLCMOV01H, CMOVC, X5ANLC, X6ANLC, X7CPLCORLC, O1HCPLCORLC, 00HMOVP1.7 , C18、略19、略20、试编写延时 1s、1min 、1h 子程序;单片机时钟 fosc=12MHz,运算为近似值; 1s 延时子程序DLY_1S:MOVR0, #10L3:MOVR1, #200L2:MOVR2, #250L1:DJNZR2, L1DJNZR

39、1, L2DJNZR0, L3RET;延时1minDLY_1M:MOVR3, #60L4:LCALLDLY_1SDJNZR3, L4RET;延时1hDLY_1H:MOVR4, #60L5:LCALLDLY_1MDJNZR4, L5RET21、用程序实现 c=a2+b2;设 a、b 均小于 10, a 存在 31H 单元中, b 存在 32H 单元中, c 存 33H 单元;答:ORG1000H SR:MOVA, 31HACALLSQR MOVR1, A欢迎下载精品学习资源MOVA, 32H ACALLSQR ADDA, R1MOV33H, ASJMP$;求平方子程序如下采纳查平方表的方法SQR:INCAMOVCRETA, A+PCTABLE:DB 0 ,1 , 4 , 9 , 16DB 25 , 36, 49, 64, 81 END22、如何实现将内存单元40H 60H 的数逐个对应传到片外2540H2560H 单元中? 答:MOVR0, #40HMOVDPTR, #25

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁