版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、?单片机原理及应用?编程题题库参考答案六1、 内部RAM 30H与31H单元中存放着2个0-9的ASCII码高位字节在前,请将其转换为压缩BCD码高位在前并存入外部RAM 2300H单元中。解: ORG 0H LJMP START ORG 30HSTART: MOV A,30H ANL A,#0FH SWAP A MOV R0,A MOV A,31H ANL A,#0FH ORL A,R0 MOV DPTR,#2300H MOVX DPTR,A END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-3分;假设仅有少量指令写错,可
2、酌情扣1-3分。2、将存放在内部RAM 30H-35H单元的压缩型BCD码转换成相应的ASCII码,依次存放到外部RAM 2100H开场的单元区中。 ORG 0H LJMP START ORG 30H START:MOV R0,#30H MOV R2,#06H MOV DPTR,#2100H LOOP:MOV A,R0 SWAP A ANL A,#0FH ORL A,#30H MOVX DPTR,A INC DPTR MOV A,R0 ANL A,#0FH ORL A,#30H MOVX DPTR,A INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END评分方法:不要
3、求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。3、内部RAM 20H与30H开场的单元分别存放着16个16进制数,请将对应单元的内容相加不考虑溢出,并将与存入外部RAM 2000H开场的单元中。解: ORG 0 LJMP START ORG 30H START: MOV R0,#20H MOV R1,#30H MOV DPTR,#2000H MOV R2,#08H ;每个单元存放2个16进制数,故16个16进制数占用8个单元 LOOP: MOV A,R0 ADD A,R1 MOVX DPTR,A
4、 INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $ END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。 4、请编写多字节无符号数减法程序。被减数存放在内部RAM 20H开场的8个单元中,减数存放在内部RAM 30H开场的8个单元,请将差存放到外部RAM 2000H开场的8个单元中,借位存放到OV标志中。注意:所有数据均按照从低字节到高字节的顺序存放。 ORG 0 LJMP START ORG 30H START: MOV R0,#20H MOV
5、 R1,#30H MOV DPTR,#2000H MOV R2,#08HCLR C LOOP: MOV A,R0 SUBB A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP MOV OV,C SJMP $ END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。5、内部RAM 40H与41H单元中存放着2个0-9的ASCII码高位字节在前,请将其转换为压缩BCD码高位在前并存入外部RAM 2000H单元中。解: ORG 0H LJ
6、MP START ORG 30HSTART: MOV A,40H ANL A,#0FH SWAP A MOV R0,A MOV A,41H ANL A,#0FH ORL A,R0 MOV DPTR,#2000H MOVX DPTR,A END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。6、将存放在内部RAM 20H-2FH单元的压缩型BCD码(高位在前)转换成相应的ASCII码,依次存放到外部RAM 1000H开场的单元区中。 ORG 0H LJMP START ORG 30H
7、START: MOV R0,#20H MOV R2,#10H MOV DPTR,#1000H LOOP: MOV A,R0 SWAP A ANL A,#0FH ORL A,#30H 或 ADD A,#30H MOVX DPTR,A INC DPTR MOV A,R0 ANL A,#0FH ORL A,#30H 或 ADD A,#30H MOVX DPTR,A INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。
8、7、内部RAM 30H与38H开场的单元分别存放着8个压缩BCD码,请将对应单元的内容相加不考虑溢出,并将与存入外部RAM 1000H开场的单元中。解: ORG 0 LJMP START ORG 30H START: MOV R0,#30H MOV R1,#38H MOV DPTR,#1000H MOV R2,#08 LOOP: MOV A,R0 ADD A,R1 DA A MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $ END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌
9、情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。8、请编写多字节无符号数加法程序。被加数存放在内部RAM 20H开场的8个单元中,加数存放在内部RAM 30H开场的8个单元,请将与存放到外部RAM 2000H开场的8个单元中,进位存放到F0标志中。注意:所有数据均按照从低字节到高字节的顺序存放。 ORG 0 LJMP START ORG 30H START: MOV R0,#20H MOV R1,#30H MOV DPTR,#2000H MOV R2,#08HCLR C LOOP: MOV A,R0 ADDC A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR
10、 DJNZ R2,LOOP MOV F0,C SJMP $ END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。9、两个8字节压缩BCD码分别存放在内部RAM 30H与40H开场的连续单元中低位字节在前,请将二者求与不考虑溢出情况,并将与存入外部RAM 1000H开场的单元中。 解: ORG 0MOV R0,#30H MOV R1,#40H MOV DPTR,#1000H MOV R2,#8 CLR C LOOP: MOV A,R0 ADDC A,R1 DA A MOVX DPTR
11、,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $ END10、将存放在内部RAM 20H-2FH单元的十六进制数转换成ASCII码,依次存放到外部RAM 2000H开场的单元中。解: MOV R0,#20H MOV R2,#16 MOV DPTR,#2000H MOV R3, DPH MOV R4, DPL LOOP: MOV A,R0 ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR MOV DPH,R3 MOV DPL,R4 MOVX DPTR,A INC DPTR MOV R3,DPH MOV R4,DPL MOV A
12、,R0 SWAP A ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR MOV DPH,R3 MOV DPL,R4 MOVX DPTR,A INC DPTR MOV R3,DPH MOV R4,DPL INC R0 DJNZ R2,LOOP SJMP $ TAB: DB 0123456789ABCDEF END11、内部RAM 30H与外部RAM 2200H开场的单元分别存放着两个8字节十六进制数低位字节存放在前,请将二者相加不考虑溢出情况,并将与存入内部RAM 40H开场的单元中。解: ORG 0MOV R0,#30H MOV R1,#40H MOV DPTR,#
13、2200H MOV R2,#8 CLR C LOOP: MOVX A,DPTR ADDC A,R0 MOV R1,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $ END12、请编写多字节无符号数减法程序。被减数存放在内部RAM 30H开场的8个单元中,减数存放在内部RAM 38H开场的8个单元,请将差存放到外部RAM 1000H开场的8个单元中,借位存放到F0标志中。注意:所有数据均按照从低字节到高字节的顺序存放。解: ORG 0 LJMP START ORG 30HSTART: MOV R0,#30H MOV R1,#38H MOV DPTR,#10
14、00H MOV R2,#8 CLR CLOOP: MOV A,R0 SUBB A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP MOV C,F0 SJMP $ END13、请编写多字节无符号数减法程序。被减数存放在内部RAM 20H开场的16个单元中,减数存放在内部RAM 30H开场的16个单元,请将差存放到外部RAM 2000H开场的16个单元中,借位存放到OV标志中。注意:所有数据均按照从低字节到高字节的顺序存放。解: ADDR1 EQU 20H ADDR2 EQU 30H LEN EQU 16 ADDR3 EQU 2000H ORG
15、 0 LJMP START ORG 30H START: MOV R0,#ADDR1 MOV R1,#ADDR2 MOV DPTR,#ADDR3 MOV R2,#LEN CLR C LOOP: MOV A,R0 SUBB A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP MOV OV,C SJMP $ END 14、将存放在内部RAM 20H-3FH单元的压缩BCD码转换成ASCII码,依次存放到外部RAM 2300H开场的单元中。注:每个单元均先转换高四位解: LEN EQU 20H ADDR1 EQU 20H ADDR2 EQU 23
16、00H ORG 0 LJMP START ORG 30H START: MOV R0,#ADDR1 MOV DPTR,#ADDR2 MOV R2,#LEN LOOP: MOV A,R0 ANL A,#0F0H SWAP A ORL A,#30H (或 ADD A,#30H) MOVX DPTR,A INC DPTR MOV A,R0 ANL A,#0FH ORL A,#30H (或 ADD A,#30H) MOVX DPTR,A INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END评分方法:程序设计思路正确可得5分,指令完全写对可得10分。不要求使用伪指令。假设仅写对
17、少量指令,可酌情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。15、将存放在内部RAM 30H-35H单元的十六进制数转换成相应的ASCII码,依次存放到外部RAM 1100H开场的单元区中。注:每个字节转换时先转换高四位解: ORG 0 MOV R0,#30H MOV DPTR,#1100H MOV R2,#6LOOP: MOV A,R0 ; 取需要转换的数 ANL A,#0F0H ; 屏蔽低4位 SWAP A PUSH DPH PUSH DPL ; 保护目的地址 MOV DPTR,#TAB MOVC A,A+DPTR ; 查表得ASCII码 POP DPL POP DPH ; 恢复目
18、的地址 MOVX DPTR,A ; 存转换后的ASCII码 INC DPTR ; 修改目的地址指针 MOV A,R0 ; 取需要转换的数 ANL A,#0FH ; 屏蔽高4位 PUSH DPH PUSH DPL ; 保护目的地址 MOV DPTR,#TAB MOVC A,A+DPTR ; 查表得ASCII码 POP DPL POP DPH ; 恢复目的地址 MOVX DPTR,A INC DPTR ; 修改目的地址指针 INC R0 ; 修改源地址指针 DJNZ R2,LOOP ; 未转换完那么继续 SJMP $TAB: DB 0123456789ABCDEF END评分方法:程序设计思路正确
19、可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。 16、内部RAM 30H开场的单元中存放着16个0-9的ASCII码高位字节在前,请将其转换为压缩BCD码高位在前并存入外部RAM 1000H开场的单元中。解: ORG 0 MOV R0,#30H MOV DPTR,#1000H MOV R2,#8 ; 16个ASCII码转换为8个压缩BCD码LOOP: MOV A,R0 ANL A,#0FH ; 屏蔽高4位得到BCD码 SWAP A MOV R1,A INC R0 ; 指向下一个ASCII码 MOV A,R0 ANL A,#0FH
20、 ; 屏蔽高4位得到BCD码 ORL A,R1 ; 合成压缩BCD码 MOVX DPTR,A ; 存压缩BCD码 INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END17、设有两个长度为16字节的数组,分别存放在外部RAM 0200H与0300H为首址的存储区域中,试编写程序求其对应项之与不考虑溢出的情况,结果存放在以0400H为首址的外部RAM中。解: 参考程序清单如下: ORG 0 MOV R2,#16 ; 数组长度为16个字节 MOV R3,#02H ; 数组1的首地址高8位 MOV R4,#03H ; 数组2的首地址高8位 MOV R5,#04H ; 与数组的
21、首地址高8位 MOV DPL,#0 ; 数据指针低8位清零LOOP: MOV DPH,R3 MOVX A,DPTR ; 取被加数 MOV R1,A ; 存被加数 MOV DPH,R4 MOVX A,DPTR ; 取加数 ADD A,R1 ; 求与 MOV DPH,R5 MOVX DPTR,A ; 存与 INC DPL ; 指向下一字节 DJNZ R2,LOOP ; 未加完那么循环 END评分方法:程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-3分;假设仅有少量指令写错,可酌情扣1-3分。 18、编程求内部RAM中40H4FH共16个单元中的内容的与结果为2字
22、节,并将与放入50H与51H单元中高8位在50H。解: 参考程序清单如下:ORG 0 LJMP START ORG 30H START: MOV R0,#40H ; 数据区首地址送R0 MOV R2,#16 ; 单元数送R2 MOV R3,#0 ; 与的高8位清零CLR A ; 与的低8位清零 LOOP: CLR CADD A,R0 ; 求与 JNC NEXT ; 没有进位那么转移 INC R3 ; 与的高8位存储单元内容加1 NEXT: INC R0 ; 指向下一个单元 DJNZ R2,LOOP ; 没加完那么循环,与在R3与A中 MOV 51H,A ; 存低8位结果 MOV 50H,R3
23、; 存高8位结果 SJMP $ END 19、有一个长度为16字节的ASCII码字符串存放在外部RAM 1000H为首址的存储区域中,字符串中的每一个字符均不一样,试编写程序查找字符串中是否存在ASCII码“9。如果在字符串中存在ASCII码“9,那么将其存储单元的地址存放到内部RAM 30H与31H单元中高8位地址在30H单元中,同时将OV标志位清零。否那么,将30H与31H单元的内容清零,并将OV标志位置“1。 解: ORG 0 MOV SP,#60H MOV DPTR,#1000H MOV R2,#16 LOOP: MOVX A,DPTR CJNE A,#39H,EXIT MOV 30H
24、,DPH MOV 31H,DPL CLR OV SJMP $ EXIT: INC DPTR DJNZ R2,LOOP MOV 30H,#0 MOV 31H,#0 SETB OV SJMP $ END 20、有两个8字节的16进制数a与b,它们分别存放在内部RAM中30H37H与40H47H的单元中高位字节在前。请编程求a-b,并将差存入30H开场的内部RAM单元中高位字节在前。假设差小于零那么将F0标志位置“1,否那么清零。 解:设计思路:从16进制数的最低位字节37H与47H开场相应字节带借位相减,然后修改地址指针在对次低位字节进展相减,一共循环8次完成两个8字节16进制数的相减。最后将Cy
25、标志的内容传送给F0标志位即可。 ORG 0 MOV R0,#37H MOV R1,#47H MOV R2,#8 CLR C LOOP: MOV A,R0 SUBB A,R1 MOV R0,A DEC R0 DEC R1 DJNZ R2,LOOP MOV F0,C SJMP $ END 21、假设外部RAM的3000H=X,3001H=Y,编程实现Z=X*X+2Y,并将结果存到片内RAM的40H单元设Z256 )。解: X EQU 3000H Y EQU 3001H Z EQU 40H ORG 0 MOV DPTR,#X ; 变量X的地址送DPTR MOVX A,DPTR ; 取变量X MOV B,A ; 变量X的值送给B存放器 MUL AB ; 求X*X,根据题意知积为1字节在A中 MOV R0,A ; X*X的结果存入R0中 INC DPTR ; 指向变量Y MOVX A,DPTR ; 取变量Y MOV B,#2 MUL AB ; 求2*Y,根据题意知积为1字节在A中 ADD A,R0 ; 求X*X+2*Y MOV Z,A ; 与存入40H单元 SJMP $ ; 停机 END评分方法:不要求写出程序的注释与使用伪指令。程序设计思路正确可得5分,指令完全写对可得10分。假设仅写对少量指令,可酌情给1-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 患者临终关怀与安宁疗护
- 2025 八年级地理下册北京文化产业的数字化内容创作课件
- 跨平台数据分析报告生成工具模板
- 绿色能源光伏发电系统安装与运维解决方案
- 提升产品质量品质全面达标承诺书3篇范文
- 独有专利技术开发保证承诺书(5篇)
- 风景如画的乡村写景周记(10篇)
- 协作项目实施效率承诺函(9篇)
- 资金筹措透明度承诺书6篇范文
- 费用报销事宜确认函(6篇)
- 常见的发电方式
- 华能电力定员标准
- 《诊断学基础 十三五高职 》读书笔记思维导图PPT模板下载
- GB/T 7926-2015数控往复走丝电火花线切割机床精度检验
- GB/T 16983-2021化学试剂二氯甲烷
- GA/T 1433-2017法庭科学语音同一认定技术规范
- 新版人教版小学美术四年级美术下册全册教案
- GB∕T 8050-2017 纤维绳索 聚丙烯裂膜、单丝、复丝(PP2)和高强度复丝(PP3)3、4、8、12股绳索
- DB62∕T 2992-2019 黄土地区高速公路路基施工技术规范
- 《愿望的实现》原文大全
- 线束加工基础知识
评论
0/150
提交评论