单片机第4章作业

合集下载

完整word版第4章单片机原理课后答案

完整word版第4章单片机原理课后答案

习题1. C51特有的数据类型有哪些?答:C51特有的数据类型有位型bit、特殊位型sbit、8位特殊功能寄存器型sfr和16位特殊功能。

sfr16寄存器型2. C51中的存储器类型有几种,它们分别表示的存储器区域是什么?答:C51中的存储器类型有6种,分别表示的存储器区域是:data:直接寻址的片内RAM低128B,访问速度快bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问idata:间接寻址访问的片内RAM,允许访问全部片内RAMpdata:用Ri间接访问的片外RAM低256Bxdata:用DPTR间接访问的片外RAM,允许访问全部64KB片外RAMcode:程序存储器ROM 64KB空间3. 在C51中,bit位与sbit位有什么区别?答:bit位类型符用于定义一般的位变量,定义的位变量位于片内数据存储器的位寻址区。

定义时不能指定地址,只能由编译器自动分配。

sbit位类型符用于定义位地址确定的位变量,定义的位变量可以在片内数据存储器位寻址区,也可为特殊功能寄存器中的可位寻址位。

定义时必须指明其位地址,可以是位直接地址,也可以是可位寻址的变量带位号,还可以是可位寻址的特殊功能寄存器变量带位号。

4. 在C51中,通过绝对地址来访问的存储器有几种?答:绝对地址访问形式有三种:宏定义、指针和关键字“_at_”。

5. 在C51中,中断函数与一般函数有什么不同?答:中断函数是C51的一个重要特点,C51允许用户创建中断函数。

中断函数用interruptm修饰符,m的取值为0~31,对应的中断情况如下:0——外部中断01——定时/计数器T02——外部中断13——定时/计数器T14——串行口中断5——定时/计数器T2中断函数需要注意如下几点。

(1) 中断函数不能进行参数传递(2) 中断函数没有返回值(3) 在任何情况下都不能直接调用中断函数(4) 如果在中断函数中调用了其他函数,则被调用函数所使用的寄存器必须与中断函数相同(5) C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容(6) C51编译器从绝对地址8m+3处产生一个中断向量(7) 中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明6. 按给定的存储类型和数据类型,写出下列变量的说明形式。

单片机原理及应用第四章课后题答案

单片机原理及应用第四章课后题答案

第四章作业答案16.MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?解:数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突;程序存储器访问指令为MOVC,数据存储器访问指令为MOVX。

程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于二者访问指令不同,控制信号不同,所以两者虽然共处于同一地址空间,不会发生总线冲突。

18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。

解:硬件连接电路图如图4.18所示。

各芯片的地址范围为:2764(1#):0000H~1FFFH 2764(2#):2000H~3FFFH6264(1#):4000H~5FFFH 6264(2#):6000H~7FFFH图4.18 4.18题硬件连接电路图21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B口按方式1输出。

解:程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR,#7F03HMOV A,#10010100BMOVX @DPTR,ASJMP $END25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。

解:使用8255A,电路连接图如图4.25所示。

图4.25 4.25题硬件连接电路图其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。

设MCS-51单片机主频为12MHz。

程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR, #7FFFH ; 数据指针指向8255A控制口MOV A, #80HMOVX @DPTR, A ; 工作方式字送8255A控制口MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口MOV A, #0FH ; 置红色发光二极管亮LP1:MOVX @DPTR, A ; 置红色发光二极管亮LCALL DELAY ; 调用1S延时子程序CPL A ; 置发光二极管亮反色SJMP LP1 ; 循环执行DELAY:MOV R7,#10 ; 1s延时子程序D1:MOV R6,#200D2:MOV R5,#248D3:NOPDJNZ R5,D3DJNZ R6,D2DJNZ R7,D1RETEND采用定时器T0方式1中断实现1s定时。

单片机原理与应用第四章作业答案

单片机原理与应用第四章作业答案

4-9 试计算片内RAM区40H~47H单元中8个数据的平均值,结果存放在4Ah中;说明:先对8个数求和,结果放在30h,31h;然后用右移3次求平均。

ORG 0000HSJMP MAINORG 0030HMIAN: MOV R0,#40HMOV R1,#30HMOV 30H,#00HMOV 31H,#00HMOV R2,#8CLR CL1: MOV A,@R1ADDC A,@R0MOV @R1,AINC R0INC R1MOV A,@R1ADDC A,#00HMOV @R1,ADEC R1DJNZ R2,L1INC R1L2: MOV R2,#03HMOV A,@R1RRC AMOV @R1,AINC R1MOV A,@R1RRC AMOV @R1,ADEC R1DJNZ R2,L2DEC R1MOV 4AH,@R1SJMP $4-10 在起始地址为2100H,长度为64H的数表中查找ASCII码’F’,如果有,将其值送到1000H单元,如果没有,将0FFH送1000H单元.ORG 0000HSJMP MAINORG 0030HMAIN: MOV R2,#64MOV DPTR,#2100HL2: MOVX A,@DPTRCJNE A,#’F’,L1MOV DPTR,#1000HMOV A,#00HMOVX @DPTR,ASJMP LASTL1: INC DPTRDJNZ R2,L2MOV A,#0FFHMOVX @DPTR,ALAST: SJMP $4-11 试编写将片内40H~60H 单元中的内容传送到外部RAM以2000h为首地址的存放区域中,并将原数据全部清零。

ORG 0000HSJMP MAINORG 0030HMIAN: MOV R0,#40HMOV DPTR,#2000HMOV R1,#20HL1: MOV A,@R0MOVX @DPTR,AMOV @R0,#00HINC R0INC DPTRDJNZ R1,L1SJMP $4-12 编写,内部RAM50H‐59H 10个单元内容的平均值,并存放在5AH单元。

单片机原理及其接口技术王敏课后作业答案

单片机原理及其接口技术王敏课后作业答案

第二章作业(P40)2-4 MCS-51单片机中执行程序的地址放在哪由几个位组成最大寻址范围是多少答:放在程序计数器PC中,16位,64KB。

2-5 在程序存储器中,0000H、0003H、000BH、0013H、001BH、0023H这6个单元有什么特定的含义答: 0000H 复位后,PC=0000H,开始执行程序的地址0003H 外部中断0 (INT0)入口地址000BH 定时器0中断(TF0)入口地址0013H 外部中断1(INT1)入口地址001BH 定时器1中断( TF1)入口地址0023H 串行口中断TI/RI入口地址2-10 开机复位以后,CPU使用哪一组工作寄存器它们的地址是什么如何改变当前工作寄存器答:使用第0组工作寄存器,00H-07H,通过修改PSW中的RS1和RS0两位来改变当前的工作寄存器。

第三章作业(P75)3-7 指出指令中的50H或66H个代表什么解:① MOV A, #50H 立即数MOV A, 50H 直接地址MOV 50H, #20H 直接地址MOV C, 50H 位地址MOV 50H, 20H 直接地址② MOV @R0, #66H 立即数MOV R6, #66H 立即数MOV 66H, #45H 直接地址MOV 66H, C 位地址MOV 66H, R1 直接地址3-9 写出能完成下列数据传送的指令:解:① R1中内容传送到R0;MOV A, R1MOV R0,A②内部RAM 20H单元中的内容送到30H单元;MOV 30H, 20H③外部RAM 20H单元中的内容送到内部RAM 20H单元;MOV R0, #20HMOVX A, @R0MOV 20H, A④外部RAM 2000H单元中的内容送到内部RAM 20H单元;MOV DPTR, #2000HMOVX A, @DPTRMOV 20H, A⑤外部ROM 2000H单元中的内容送到内部RAM 20H单元;MOV DPTR, #2000HMOV A, #00HMOVC A, @A+DPTRMOV 20H, A⑥外部2000H单元中的内容送到外部RAM 3000H单元;MOV DPTR, #2000HMOVX A, @DPTRMOV DPTR, #3000HMOVX @DPTR, A3-11 已知:(20H)=X;(21H)=Y;(22H)=Z,请用图示说明下列程序执行后堆栈的内容是多少① MOV SP, #70H ② MOV SP, #60HPUSH 20H PUSH 22HPUSH 21H PUSH 21HPUSH 22H PUSH 20H解:(73H)=Z;(72H)=Y;(71H)=X;(63H)=X;(62H)=Y;(61H)=Z;3-20 试编出能完成如下操作的程序:解:①使20H单元中数的高两位变“0”,其余位不变;ANL 20H, #3FH②使20H单元中数的高两位变“1”,其余位不变;0RL 20H, #0C0H③使20H单元中数的高两位变反,其余位不变;XRL 20H, #0C0H④使20H单元中数的高四位变“1”,低四位变“0”;MOV 20H, #0F0H⑤使20H单元中数的所有位变反。

单机片作业及其答案

单机片作业及其答案

第二章作业2-1填空1.微处器由寄存器,控制器,和运算器三部分组成..2. 当MCS-51引脚ALE信号有效时,表示从Po口稳定地送出了低8位地址.3 .MCS-51的堆栈是软件填写堆栈指针临时在_ 片内数据存储器内开辟的区域.4 .MCS-51中凡字节地址能被_8 整除的特殊功能寄存器均能寻址.5 .MCS-51有4组工作寄存器,它们的地址范围是00H~1FH .6 .MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址.7. 计算机的系统总线有地址总线、控制总线和数据总线8. 80C51含4KB 掩膜ROM。

9. 80C51在物理有4个独立的存储空间。

10. 一个机器周期等于6个状态周期,振荡脉冲2分频后产生的时训信号的周期定义为状态周期。

2-2判断1.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称。

(对)2.MCS-51的程序存储器只是用来存放程序的。

(错)3.当MCS-51上电复位时,堆栈指针SP=00H。

(错)4.MCS-51是微处理器。

(错)5.MCS-51的串行接口是全双工的。

(对)6.PC存放的是当前执行的指令。

(错)7.MCS-51的特殊功能寄存器分布在60H~80H地址范围内。

(错)8.MCS-51系统可以没有复位电路。

(错)9.要MCS-51系统中,一个机器周期等于1.5μs。

(错)2-3问答题1. 8051单片机存储器的组织结构是怎样的?答:8051存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间:(1)64KB的程序存储器地址空间:0000H~FFFFH,其中0000H~0FFFH为片内4KB的ROM 地址空间,1000H~FFFFH为外部ROM地址空间;(2)256B的内部数据存储器地址空间,00H~FFH,分为两大部分,其中00H~7FH(共128B 单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;(3)64KB的外部数据存储器地址空间:0000H~FFFFH,包括扩展I/O地址空间。

单片机原理及应用作业答案

单片机原理及应用作业答案

作业答案0-1绪论1.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。

2.什么叫单片机其主要特点有哪些解:将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。

单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。

第1章 MCS-51单片机的结构与原理15. MCS-51系列单片机的引脚中有多少根I/O线它们与单片机对外的地址总线和数据总线之间有什么关系其地址总线和数据总线各有多少位对外可寻址的地址空间有多大解:MCS-51系列单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。

每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。

通常把4个端口称为P0~P3。

在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。

在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。

MCS-51系列单片机数据总线为8位,地址总线为18位,对外可寻址空间为64KB。

25. 开机复位后,CPU使用的是哪组工作寄存器(R0-R n)它们的地址是什么CPU如何确定和改变当前工作寄存器组(R0-R n)解:开机复位后,CPU使用的是第0组工作寄存器。

它们的地址是00H-07H。

CPU通过对程序状态字PSW中RS1和RS0的设置来确定和改变当前工作寄存器组。

27. MCS-51单片机的时钟周期、机器周期、指令周期是如何定义的当主频为12MHz的时候,一个机器周期是多长时间执行一条最长的指令需要多长时间解:时钟周期又称为振荡周期,由单片机内部振荡电路OSC产生,定义为OSC时钟频率的倒数。

单片机微型计算机原理及接口技术课后习题答案第4章

单片机微型计算机原理及接口技术课后习题答案第4章4-2 试述指令MOV A,R0和MOV A,@R0的区别两条指令的目的操作数相同,两条指令的区别在于源操作数来源不同:MOV A,R0 指令的源操作数就是R0寄存器的内容;而MOV A,@R0 指令的源操作数是位于存储器单元内,且存储器单元的地址是R0寄存器的内容。

4-3 试述指令MOV A,20H和MOV A,#20H的区别MOV A,20H 源操作数是直接寻址,20H表示源操作数所在存储器单元的地址。

MOV A,#20H 源操作数是立即数寻址,#20H是立即数,也就是源操作数。

4-4 说明一下指令中源操作数所在的存储器类型。

(1)MOV A,#30H; 立即数#30H,就是源操作数,存在于指令中,所以位于程序存储器。

(2)MOV A,30H; 30H是源操作数所在数据存储单元的地址,所以源操作数位于数据存储器。

(3)MOVC A,@A+DPTR;源操作数是变址寻址, 助记符MOVC表示源操作数位于程序存储器。

(4)MOVX A,@DPTR; 源操作数是寄存器间接寻址, 助记符MOVX表示源操作数位于外部数据存储器。

4-5 判断下列指令书写是否正确:(1)MOV A,B; ✔(2)MOV A,#3000H ; ✘,因为A是8位寄存器,而#3000H是16位数值,没法全部存到A里(3)INC,#20H ; ✘只能INC A/direct/Rn/@Ri/DPTR(4)MOV 5,A ; ✔,注意目的操作数是直接寻址方式,不是立即寻址(5)MOV 30H,40H; ✔(6)MOV B,@DPTR ; ✘,@DPTR寻址用于MOVX指令,不能用于MOV指R(7)CJNE 30H,#80H,NEXT ; ✘,CJNE指令格式只能是CJNE A/Rn/@Ri,#data,rel或CJNE A,direct,rel(8)POP A ; ✘只能是直接寻址方式POP direct,正确的是POP ACC(9)PUSH ACC; ✔(10)SJMP 2000H ; ✘rel的范围是-128~127(用补码表示其值)共256B范围4-6 设ACC=12H,B=64H,SP=60H,30H中存放的是78H,试分析下列程序执行后,ACC、B、30H、SP中的内容分别为多少,并画出堆栈示意图。

单片机课后答案及实验


INTS2: MOV @R0 , A
INC R0
RETI
ERROR: SETB 00H
RETI
END
;启动T1 ;设数据指针
;奇校验
;保存一个字符 ;报错程序
3. 以中断方式设计单片微机的秒、分发生 器。假定P1.0每秒产生一个机器周期的正脉 冲,P1.1实现每分钟产生一个机器周期的正 脉冲。加上必要的伪指令和注释。假定晶 振频率为12MHZ。
(1)若不能正常通讯,可能原因是:右下方的串行通讯波特率 (9600)开关选择错误;或串口连接导线松动。
(2)若程序确定无误,而发光二极管显示不正常,可能是导线短 路,请更换或叠加导线(个别不亮不影响观察结果,则无需更 换);若8个发光管全都不受控制,则可能是芯片损坏,请联 系老师更换。
(3)在输入指令过程中,要注意指令的完整性,不要遗漏“#”、 “END”,区别数字“0”与字母“o”、“O”,
DEL: JBC TF0,REP AJMP DEL
REP: CLR P1.2 DJNZ R0,DEL AJMP L1 END
3. 设MCS-51单片机的晶振频率为6MHZ,以计数器 T0进行外部事件计数,每计数1000个外部事件输 入脉冲后,计数器T1开始2ms定时,定时时间到后, T0又开始计数,如此周而复始地工作。
2. 像仿真器一样,我们可以在实验装置上进行软、 硬件调试,观察控制硬件的执行结果或每条指令 的执行结果;
3. 应该养成自己动手的习惯,只有多动手才有可能 深入掌握软、硬件知识;
4. 刚开始接触肯定会有很多问题,应该学会自己分 析问题,解决问题,不要急于问老师;
5. 做实验前要认真准备,编好源程序,有效利用紧 张的实验时间。
习题讲解

单片机第4章8051单片机指令系统

单片机第4章8051单片机指令系统在单片机的世界里,指令系统就如同指挥官手中的指令手册,指引着单片机完成各种复杂的任务。

8051 单片机的指令系统更是其中的重要组成部分,它为我们提供了丰富多样的指令,让我们能够灵活地控制单片机的运行。

8051 单片机的指令系统可以分为五大类,分别是数据传送指令、算术运算指令、逻辑运算指令、控制转移指令和位操作指令。

数据传送指令是指令系统中的基础,就像是在战场上调配物资一样。

它能够实现寄存器之间、寄存器与存储器之间、立即数与寄存器或存储器之间的数据传递。

比如 MOV 指令,它可以将一个数据从源地址传送到目的地址。

假设我们要将立即数 50H 传送到累加器 A 中,就可以使用指令“MOV A, 50H”。

这样,累加器 A 就存储了 50H 这个数值。

算术运算指令则像是在进行战斗中的兵力计算。

它包括加法、减法、乘法和除法等运算。

ADD 指令用于加法运算,SUBB 指令用于带借位的减法运算。

例如,我们要将累加器 A 中的值与寄存器 B 中的值相加,并将结果存放在累加器 A 中,就可以使用指令“ADD A, B”。

如果要进行带借位的减法运算,比如从累加器 A 中减去寄存器 B 中的值以及借位标志位 CY 的值,可以使用指令“SUBB A, B”。

逻辑运算指令就像是在制定战略时的思考逻辑。

AND 指令用于逻辑与操作,ORL 指令用于逻辑或操作,XRL 指令用于逻辑异或操作。

以 AND 指令为例,如果我们要将累加器 A 中的值与立即数 80H 进行逻辑与操作,并将结果存放在累加器 A 中,就可以使用指令“AND A, 80H”。

控制转移指令则是指挥战斗中的战略部署调整。

它可以改变程序的执行顺序,使单片机能够根据不同的条件执行不同的程序段。

比如 JZ 指令,如果累加器 A 的值为 0,则程序跳转到指定的地址;JC 指令,如果进位标志位 CY 为 1,则程序跳转到指定的地址。

位操作指令则专注于对单个位的操作,就像是在精细地调整战斗中的某个关键环节。

西单电子科技大学出版社单片机原理及应用第4章习题

西单电⼦科技⼤学出版社单⽚机原理及应⽤第4章习题第4章习题⼀、填空题1、AT89C51单⽚机(内部有4K字节Flash程序存储器)再加上外接的电路和电路即可构成最⼩系统。

2、8031单⽚机加上外接的时钟电路、电路和存储器才可构成最⼩系统。

3、8051单⽚机以总线的⽅式进⾏系统扩展时,⽤于⽚外程序存储器的取指控制信号;⽤于⽚外数据存储器的写控制信号。

4、8051以总线的⽅式扩展并⾏I/O⼝(16位地址)时,⽤于向扩展出的并⾏I/O ⼝写数据的指令是;⽤于从扩展出的I/O⼝读数据的指令是。

⼆、单项选择题1、2764是⼀种EPROM芯⽚,容量为8K个字,每个字8bit,则()A、该芯⽚有8根数据线B、该芯⽚有13根地址线C、该芯⽚有16根地址线D、该芯⽚有12根地址线2、某常⽤EPROM芯⽚,有11根地址线,有8根数据线,则其容量为()A、16K位B、2K位C、256*11位D、219位3、2114是⼀种1K×4位RAM芯⽚,如果⽤它扩展4K×8位RAM,则需要( )⽚2114芯⽚A、4B、8C、16D、324、2732是⼀种4K×8位EPROM芯⽚,如果⽤它扩展16K×8位ROM,则需要( )⽚2732芯⽚A、4B、8C、16D、25、2864是⼀种8K×8位E2PROM芯⽚,如果⽤它扩展32K×16位ROM,则需要( )⽚2864芯⽚A、4B、8C、16D、26、6116是⼀种2K×8位静态RAM芯⽚,如果⽤它扩展4K×32位ROM,则需要( )⽚6116芯⽚A、4B、8C、16D、27、2817A是⼀种2K×8位EEPROM芯⽚,如果⽤它扩展4K×16位EEPROM,则需要( )⽚2817A芯⽚A、4B、8C、16D、28、6264是⼀种8K×8位静态RAM芯⽚,则其地址线和数据线分别为()A、12根、8根B、13根、8根C、16根、4根D、8根、16根三、简答题1、51单⽚机扩展外部ROM如右图所⽰,则:2764(1)的基本地址范围为2764(2)的基本地址范围为2、8051单⽚机在系统扩展时,会涉及到存储器芯⽚地址线和8051地址总线连接问题,对多于地址线的处理有哪两种⽅式?如果只扩展了1⽚RAM芯⽚HY6264(8K×8位),要使其地址范围唯⼀,应该采⽤哪种处理⽅式?3、下图8051单⽚机扩展并⾏输⼊⼝电路,写出接⼝芯⽚的地址范围,⽤汇编语⾔实现:读取数据到寄存器R2中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ቤተ መጻሕፍቲ ባይዱ
;……..除16…………… MOV R4,#04H LL1: CLR C MOV A,R6 RRC A MOV R6,A MOV A,R5 RRC A MOV R5,A DJNZ R4,LL1 MOV AVERAGE,R5 SJMP $
4.28 已知a、b、c均为0~9的整数, 试编程求解表达式的值(要求使用子 程序)。 AA EQU 31H BB EQU 32H CC EQU 33H Y EQU 34H ORG 0100H MOV SP,#60H MOV A,AA CLR C SUBB A,BB ACALL CHUCI MOV R6,A ;……………………………. MOV A,BB CLR C SUBB A,CC ACALL CHUCI ADD A,R6 MOV R6,A ;……………………………….
4.29 从内部RAM的SCORE单元开始放 有16位同学某门课程的考试成绩,试编 程求平均成绩,存入AVERAGE单元。
ORG 0100H MOV R5,#00H MOV R6,#00H MOV R0,#SCORE MOV R7,#16 LL: MOV A,@R0 ADD A,R5 MOV R5,A MOV A,R6 ADDC A,#00H MOV R6,A INC R0 DJNZ R7,LL ;………………………..
4.21 试编写统计数据区长度的程序,设数据区从内 RAM30H开始,该数据区以0结束,统计结果送人 2FH中。且数据区结束字符,也计入统计数据区的 长度中去.
ORG 0000H LJMP START START:MOV R0,#30H MOV R7,#00H LOOP:MOV A,@R0 INC R0 INC R7 CJNE A,#00H,LOOP MOV 2FH, R7 SJMP $
CHUCI:JNB ACC.7,SQR CPL A ;差为负则先求其相反 数 ADD A,#01H SQR: ADD A,#01H MOVC A,@A+PC RET SQRTAB: DB 0,1,4,9,16,25,36,49,64,81
• • • • • • • • • • • • • • • • • •
MOV R2,A MOV DPH,R2 MOV A, R7 JNZ LOP2 ORL A, R6 JZ ENDP DEC R6 LOP2: DEC R7 SJMP LOP1 ENDP: SJMP $ END
BLOCK1 EQU 30H BLOCK2 EQU 40H ORG 0000H LJMP START START:MOV R0,#BLOCK1 MOV R1,#BLOCK2 MOV R7,#1 LP:MOV R6,#5 CLR C LP1:MOV A,@R0 SUBB A,@R1 MOV @R0,A INC R0 INC R1 DJNZ R6,LP1 DJNZ R7,LP SJMP $ END
4.20 编制绝对值函数程序。绝对值函数方程如下:
X Y 0 -X
当X 0 当X=0 当X 0
假设X存于30H单元,Y存于40H单元。 X 及Y均为补码数. X EQU 30H Y EQU 40H ORG 0000H LJMP START START: MOV A,X JZ LOOP JNB ACC.7,LOOP CPL A ADD A,#01H LOOP: MOV Y,A SJMP $
4.16已知一内部RAM以 BLOCK1和BLOCK2为起始 地址的存储区中分别有5字节 无符号被减数和减数(低位 在前,高位在后。请编写减 法子程序令它们相减,并把 差放入以BLOCK1为起始地 址的存储单元。
THREE EQU 1CH ORG 0000H LJMP START START:MOV ONE,#00H MOV TWO,#00H MOV THREE,#00H MOV R0,#20H MOV R7,1FH LOOP3: MOV A,@R0 INC R0 JZ LOOP1 JB ACC.7,LOOP2 INC ONE SJMP HALT LOOP1: INC TWO LOOP2: INC THREE HALT: DJNZ R7,LOOP3
MOV A,CC CLR C SUBB A,AA ACALL CHUNCI ADD A,R6 MOV R6,A MOV Y,R6 CHUNCI:JNB ACC.7,SQR MOV B,A MOV A,#00H CLR C SUBB A,B SQR: ADD A,#01H MOVC A,@A+PC RET SQRTAB:DB 0,1,4,9,16,25,36,49,64,81
4.25 设外部RAM1000H~10FFH数据区中的数均为无符号数。 试编写程序,找出该区域中的数的最大值,并放人内部 RAM30H单元中。 方法1: ORG 0000H LJMP START START:MOV DPTR,#1000H MOV R7,#0FFH MOVX A,@DPTR MOV B,A LOOP: INC DPTR MOVX A,@DPTR CJNE A,B,LOOP1 LOOP1:JNC LOOP2 MOV A,B LOOP2:DJNZ R7,LOOP MOV 30H,A SJMP $
4.15 编程将外部RAM的1000H~1FFFH区域的数据送到2000H~ 2FFFH区域。
ORG 0100H MAIN: MOV R2,#10H MOV R3,#20H MOV R6,#0FH MOV R7,#0FFH MOV DPL,#00H MOV DPH,R2 LOP1: MOVX A,@DPTR MOV DPH,R3 MOVX @DPTR, A INC DPTR MOV R3,DPH CLR C MOV A,R3 SUBB A,#10H
ORG 0000H LJMP START START:MOV A,MA JB ACC.7,LLA MOV R7,#00H SJMP LLL LLA: MOV R7,#0FFH LLL: MOV A,MB JB ACC.7,LLB MOV R6,#00H SJMP LADD LLB: MOV R6,#0FFH LADD:MOV A,MA ADD A,MB MOV SUML,A MOV A,R6 ADDC A,R7 MOV SUMH,A
MOV A,CC CLR C SUBB A,AA ACALL CHUCI ADD A,R6 MOV R6,A MOV Y,R6 SJMP $ ;’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ ;入口:项内差在A中. ;出口:平方值在A中
4.23巳知R7中为2位十六进制数,试编程将其转换为ASCII码,存 人内部RAM 31H、32H中(低字节在前)。英文字母为大写. ORG 0000H LJMP START START:MOV SP,#60H MOV A,R7 LCALL BCDASCII MOV 31H,A MOV A,R7 SWAP A LCALL BCDASCII MOV 32H,A BCDASCII:ANL A,#0FH CJNE A,#10H,LOOP LOOP: JC AD30H ADD A,#07H AD30H:ADD A,#30H RET
ORG 0000H LJMP START START: MOV DPTR,#TAB MOV A,R7 ANL A,#0FH MOVC A,@A+DPTR MOV 31H,A MOV A,R7 ANL A,#0F0H SWAP A MOVC A,@A+DPTR MOV 32H,A SJMP $ TAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H ,44H,45H,46H END
AA EQU 31H BB EQU 32H CC EQU 33H Y EQU 34H ORG 0000H LJMP START START:MOV SP,#60H MOV A,AA CLR C SUBB A,BB ACALL CHUNCI MOV R6,A MOV A,BB CLR C SUBB A,CC ACALL CHUNCI ADD A,R6 MOV R6,A
4.24设在MA和MB单元中有两个补码 形式的8位二进制带符号数。请编写求 两数之和并把它放在SUML和SUMH 单元(低8位在SUML单元)的子程序。 提示:在两个8位二进制带符号数相加 时,其和很可能会超过8位数所能表示 的范围,从而需要采用16位数形式来 表示。因此,在进行加法时、可以预 先把这两个加数扩张成16位二进制补 码形式,然后对它完成双字节相加。
4.25 设外部RAM1000H~10FFH数据区中的数均为无符号数。 试编写程序,找出该区域中的数的最大值,并放人内部 RAM30H单元中。 方法2: MOV OPTR,#1000H MOV R7,#00H ;计数器 MOV B,#00H ;放中间结果 L1: MOVX A, @DPTR CJNE A, B, L2 L2: JC L3 MOV B, A ; B中放大值 L3: INC DPTR DJNZ R7, L1 MOV 30H, A SJMP $
4.17 从内部RAM20H单元开 始存有一组带符号数,其个 数已存放在1FH单元中。要 求统计出大于0、等于0和小 于0的数的数目,并把统计结 果分别存放在ONE、TWO、 THREE三个单元中。
4.18 设内部RAM30H单元有两个非零的BCD数,请编写求两个 BCD数的积,并将积以压缩型BCD数形式送入31H单元的程序。 ORG 0000H MOV A, 30H ANL A, #0F0H SWAPA MOV B, A MOV A, 30H ANL A, #0FH MUL A, B MOV B, #0AH DIV AB SWAP A ORL A, B MOV 31H, A SJMP $
相关文档
最新文档