单片机第4章作业_第1页
单片机第4章作业_第2页
单片机第4章作业_第3页
单片机第4章作业_第4页
单片机第4章作业_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 ORG 0100HMAIN: MOV R2,#10H MOV R3,#20HMOV R6,#0FH MOV R7,#0FFH MOV DPL,#00H MOV DPH,R2LOP1: MOVX A,DPTR MOV DPH,R3 MOVX DPTR, A INC DPTR MOV R3,DPH CLR C MOV A,R3 SUBB A,#10H 4.15 编程将外部编程将外部RAM的的1000H1FFFH区域的数据送到区域的数据送到2000H2FFFH区域。区域。 MOV R2,A MOV DPH,R2 MOV A, R7 JNZ LOP2 ORL A, R6 JZ ENDP DEC R6

2、LOP2: DEC R7 SJMP LOP1ENDP: SJMP $ END BLOCK1 EQU 30H BLOCK2 EQU 40H ORG 0000H LJMP STARTSTART: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 $ END4.16已知一内部已知一内部RAM以以BLOCK1和和BLOCK2为起始为起始地址的存储区中分别有地址的存储区中分别有5字节字节无符号

3、被减数和减数(低位无符号被减数和减数(低位在前,高位在后。请编写减在前,高位在后。请编写减法子程序令它们相减,并把法子程序令它们相减,并把差放入以差放入以BLOCK1为起始地为起始地址的存储单元。址的存储单元。 THREE EQU 1CH ORG 0000H LJMP STARTSTART:MOV ONE,#00H MOV TWO,#00H MOV THREE,#00H MOV R0,#20H MOV R7,1FHLOOP3: MOV A,R0 INC R0 JZ LOOP1 JB ACC.7,LOOP2 INC ONE SJMP HALTLOOP1: INC TWOLOOP2: INC TH

4、REEHALT: DJNZ R7,LOOP34.17 从内部从内部RAM20H单元开单元开始存有一组带符号数,其个始存有一组带符号数,其个数已存放在数已存放在1FH单元中。要单元中。要求统计出大于求统计出大于0、等于、等于0和小和小于于0的数的数目,并把统计结的数的数目,并把统计结果分别存放在果分别存放在ONE、TWO、THREE三个单元中。三个单元中。4.18 设内部设内部RAM30H单元有两个非零的单元有两个非零的BCD数,请编写求两个数,请编写求两个BCD数的积数的积,并将积以压缩型并将积以压缩型BCD数形式送入数形式送入31H单元的程序。单元的程序。 ORG 0000HMOV A, 3

5、0HANLA, #0F0HSWAPAMOV B, AMOV A, 30HANLA, #0FHMULA, BMOV B, #0AHDIVABSWAP AORLA, BMOV 31H, ASJMP $4.20 编制绝对值函数程序。绝对值函数方程如下:编制绝对值函数程序。绝对值函数方程如下: 假设假设X存于存于30H单元,单元,Y存于存于40H单元。单元。X 及及Y均为补码数均为补码数. X EQU 30H Y EQU 40H ORG 0000H LJMP STARTSTART: MOV A,X JZ LOOP JNB ACC.7,LOOP CPL A ADD A,#01H LOOP: MOV Y,

6、A SJMP $ END0X0X00XY当当当XX4.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 $4.23巳知巳知R7中为中为2位十六进制数,

7、试编程将其转换为位十六进制数,试编程将其转换为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 END ORG 0000H LJM

8、P STARTSTART: 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 END4.24设在设在MA和和MB单元中有两个补码单元中有两个补码形式的形式的8位二进制带符号数。请编写求位二进制带符号数。请编写求两数之和并把它放在两数之和并把它放在SUML和和SUMH单元单

9、元(低低8位在位在SUML单元单元)的子程序。的子程序。提示:在两个提示:在两个8位二进制带符号数相加位二进制带符号数相加时,其和很可能会超过时,其和很可能会超过8位数所能表示位数所能表示的范围,从而需要采用的范围,从而需要采用16位数形式来位数形式来表示。因此,在进行加法时、可以预表示。因此,在进行加法时、可以预先把这两个加数扩张成先把这两个加数扩张成16位二进制补位二进制补码形式,然后对它完成双字节相加。码形式,然后对它完成双字节相加。ORG 0000HLJMP STARTSTART:MOV A,MA JB ACC.7,LLA MOV R7,#00H SJMP LLLLLA: MOV R7

10、,#0FFHLLL: MOV A,MB JB ACC.7,LLB MOV R6,#00H SJMP LADDLLB: MOV R6,#0FFHLADD:MOV A,MA ADD A,MB MOV SUML,A MOV A,R6 ADDC A,R7 MOV SUMH,A SJMP$4.25 设外部设外部RAM1000H10FFH数据区中的数均为无符号数。数据区中的数均为无符号数。试编写程序,找出该区域中的数的最大值,并放人内部试编写程序,找出该区域中的数的最大值,并放人内部RAM30H单元中。单元中。方法方法1: ORG 0000H LJMP START START:MOV DPTR,#1000

11、H 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.25 设外部设外部RAM1000H10FFH数据区中的数均为无符号数。数据区中的数均为无符号数。试编写程序,找出该区域中的数的最大值,并放人内部试编写程序,找出该区域中的数的最大值,并放人内部RAM30H单元中。单元中。方法方法2:MOV OPTR,#1000HMOV R7,#00H;计数器计数器MOV B,#00H;放

12、中间结果放中间结果L1:MOVX A, DPTRCJNE A, B, L2L2:JCL3MOV B, A; B中放大值中放大值L3:INCDPTRDJNZ R7, L1MOV 30H, ASJMP $4.28 已知已知a、b、c均为均为09的整数,的整数,试编程求解表达式的值(要求使用子试编程求解表达式的值(要求使用子程序)。程序)。AAEQU31HBBEQU32HCCEQU33HYEQU34HORG0100HMOV SP,#60HMOVA,AACLRCSUBB A,BBACALL CHUCIMOVR6,A;.MOVA,BBCLRCSUBB A,CCACALL CHUCIADDA,R6MOVR

13、6,A;.MOVA,CCCLRCSUBB A,AAACALL CHUCIADDA,R6MOVR6,AMOVY,R6SJMP$;入口入口:项内差在项内差在A中中.;出口出口:平方值在平方值在A中中CHUCI:JNBACC.7,SQRCPLA ;差为负则先求其相反差为负则先求其相反数数ADDA,#01HSQR:ADDA,#01HMOVC A,A+PCRETSQRTAB: DB 0,1,4,9,16,25,36,49,64,81 AA EQU 31H BB EQU 32H CC EQU 33H Y EQU 34H ORG 0000H LJMP START START:MOV SP,#60H MOV

14、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 MOV A,CC CLR C SUBB A,AA ACALL CHUNCI ADD A,R6 MOV R6,A MOV Y,R6CHUNCI:JNB ACC.7,SQR MOV B,A MOV A,#00H CLR C SUBB A,B SQR: ADD A,#01H MOVC A,A+PC RETSQRTAB:DB 0,1,4,9,16,25,36,49,64,81 4.29 从内部从内部RAM的的SCORE单元开始放单元开始放有有16位同学某门课程的考试成绩,试编位同学某门课程的考试成绩,试编程求平均成绩,存入程求平均成绩,存入AVERAGE单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论