《单片机》编程题题库答案.docx
《《单片机》编程题题库答案.docx》由会员分享,可在线阅读,更多相关《《单片机》编程题题库答案.docx(47页珍藏版)》请在课桌文档上搜索。
1、单片机原理及应用编程题题库参考答案六1、内部RAM30H和31H单元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BCD码(高位在前)并存入外部RAM230OH单元中。解:ORGOHLJMPSTARTORG30HSTART:MOVA,30HANLA,#0FHSWAPAMOVR0,AMOVA,31HANLA,#0FHORL,ROMOVDPTR,#230OHMOVXDPTR,AEND评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。2、将存放在内部RAM30H-35H单元的
2、压缩型BCD码转换成相应的ASCII码,依次存放到外部RAM2100H起先的单元区中。ORGOHLJMPSTARTORG30HSTART:MOVR0,#30HMOVR2,#06HMOVDPTR,#2100HLOOP:MOVA,R0SWAPAANLA,#0FHORLA,#30HMOVXDPTR,AINCDPTRMOVA,R0ANLA,#0FHORLA,#30HMOVXDPTR,AINCDPTRINCRODJNZR2,LOOPSJMP$END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。3
3、、内部RAM20H和30H起先的单元分别存放着16个16进制数,请将对应单元的内容相加(不考虑溢出),并将和存入外部RAM2000H起先的单元中。解:ORG0LJMPSTARTORG30HSTART:MOVR0,#20HMOVRl,#30HMOVDPTR,#2000HMOVR2,#08H;每个单元存放2个16进制数,故16个16进制数占用8个单元LOOP:MOVA,R0DDA,RIMOVXWTR,INCROINCRlINCDPTRDJNZR2,LooPSJMP$END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量
4、指令写错,可酌情扣1-3分。4、请编写多字节无符号数减法程序。被减数存放在内部RAU20H起先的8个单元中,减数存放在内部RAM30H起先的8个单元,请将差存放到外部RAM2000H起先的8个单元中,借位存放到OV标记中。留意:全部数据均依据从低字节到高字节的依次存放。ORG0LJMPSTARTORG30HSTART:MOVR0,#20HMOVRl,#30HMOVDPTR,#200OHMOVR2,#08HCLRCLOOP:MOVA,ROSUBBA,RlMOVXDPTR,AINCROINCRlINCDPTRDJNZR2,LOOPMOVOV,CSJMP$END评分方法:不要求写出程序的注释。程序设
5、计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。5、内部RAM40H和41H单元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BCD码(高位在前)并存入外部RAM200OH单元中。解:ORGOH1.JMPSTARTORG30HSTART:MOVA,40HANLA,#OFHSWAPAMOVR0,AMOVA,4IHANLA,#0FHORLA,ROMOVDPTR,#200OHMOVXDPTR,AEND评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-
6、3分;若仅有少量指令写错,可酌情扣1-3分。6、将存放在内部RAM20H-2FH单元的压缩型BCD码(高位在前)转换成相应的ASCII码,依次存放到外部RAMIOoOH起先的单元区中。ORGOHLJMPSTARTORG30HSTART:MOVR0,#20HMOVR2,#10HMOVDPTR,#1000HLOOP:MOVA,RoSWAPAANLA,#0FHORLA,#30H(或MOVXDPTR,AINCDPTRMOVA,R0ADDA,#30H)ANLA,#0FHORLA,#30H(或ADDA,#30H)MOVXDPTR,AINCDPTRINCRODJNZR2,LOOPSJMP$END评分方法:不
7、要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。7、内部RAM30H和38H起先的单元分别存放着8个压缩BCD码,请将对应单元的内容相加(不考虑溢出),并将和存入外部RAM100oH起先的单元中。解:ORG0LJMPSTARTORG30HSTART:MOVR0,#30HMOVRl,ft38HMOVDPTR,#1000HMOVR2,#08LOOP:MOV,R0ADDA,R1DAAMOVXODPTR,AINCROINCRlINCDPTRDJNZR2,LOoPSJMP$END评分方法:不要求写出程序的注释
8、。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。8、请编写多字节无符号数加法程序。被加数存放在内部RAM20H起先的8个单元中,加数存放在内部RAM30H起先的8个单元,请将和存放到外部RAM2000H起先的8个单元中,进位存放到FO标记中。留意:全部数据均依据从低字节到高字节的依次存放。ORG0LJMPSTARTORG30HSTART:MOVR0,#20HMOVRl,#30HMOVDPTR,#200OHMOVR2,#08HCLRCLOOP:MOVA,RoADDCA,RlMOVXDPTR,AINCROINCRlINC
9、DPTRDJNZR2,LOOPMOVFO,CSJMP$END评分方法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。9、两个8字节压缩BCD码分别存放在内部RAM30H和40H起先的连续单元中(低位字节在前),请将二者求和(不考虑溢出状况),并将和存入外部RAM100OH起先的单元中。解:ORG0MOVR0,#3011MOVRl,#40HMOVDPTR,#1000HMOVR2,#8CLRCLOOP:MOVA,R0ADDCA,RlDAMOVXDPTR,AINCROINCRlINCDPTRDJNZR
10、2,LOOPSJMP$END10、将存放在内部RAM20H-2FH单元的十六进制数转换成ASCII码,依次存放到外部RAM2000H起先的单元中O解:MOVR0,#20HMOVR2,#16MOVDPTR,#2000HMOVR3,DPHMOVR4,DPLLOOP:MOVA,R0ANLA,#OFHMOVDPTR,#TABMOVCA,0A+DPTRMOVDPH,R3MOVDPL,R4MOVX0DPTR,AINCDPTRMOVR3,DPHMOVR4,DPLMOVA,0ROSWAPAANLA,#OFHMOVDPTR,#TABMOVCA,A+DPTRMOVDPH,R3MOVDPL,R4MOVX0DPTR,
11、AINCDPTRMOVR3,DPHMOVR4,DPLINCRODJNZR2,LoOPSJMP$TAB:DBEND0123456789ABCDEF11、内部RAM30H和外部RAM220OH起先的单元分别存放着两个8字节十六进制数(低位字节存放在前),请将二者相加(不考虑溢出状况),并将和存入内部RAM40H起先的单元中。解:ORG0MOVR0,#30HMOVRl,MOHMOVDPTR,#2200HMOVR2,#8CLRCLOOP:MOVXA,DPTRADDCA,R0MOVR1,AINGROINCRlINCDPTRDJNZR2,LOOPSJMP$END12、请编写多字节无符号数减法程序。被减数存
12、放在内部RAU30H起先的8个单元中,减数存放在内部RAM38H起先的8个单元,请将差存放到外部RAMloOOH起先的8个单元中,借位存放到FO标记中。留意:全部数据均依据从低字节到高字节的依次存放。解:ORG0LJMPSTARTORG30HSTART:MOVR0,#30HMOVR1,#38HMOVMOVCLR1.OOP:MOVSUBBMOVXINCINCINCDJNZMOVSJUPENDDPTR,#1000HR2,#8C,ROA,R1DPTR,ARORlDPTRR2,LOOPC,FO$13、请编写多字节无符号数减法程序。被减数存放在内部RAM20H起先的16个单元中,减数存放在内部RAM30
13、H起先的16个单元,请将差存放到外部RAM2000H起先的16个单元中,借位存放到OV标记中。留意:全部数据均依据从低字节到高字节的依次存放。解:ADDRlADDR21.ENADDR3EQU20HEQU30HEQU16EQU2000HORG01.JMPSTARTORG30HSTART:MOVR0,ftADDRlMOVRl,ftADDR2MOVDPTR,#ADDR3MOVR2,#LENCLRCLOOP:MOVA,R0SUBBA,R1MOVXDPTR,AINCROINCRlINCDPTRDJNZR2,LOOPMOV0V,CSJMP$END14、将存放在内部RAM20H-3FH单元的压缩BCD码转换
14、成ASCII码,依次存放到外部RAM2300H起先的单元中。(注:每个单元均先转换高四位)解:LENEQU20HADDRlEQU20HADDR2EQU2300HORG0LJMPORGSTART:MOVMOVMOV1.OOP:MOVANLSWAPORLMOVXINCMOVANLORLMOVXINCINCDJNZSJMPENDSTART30HR0,#ADDRIDPTR,SDDR2R2,#LENA,R0,#0FOHA,#30H(或ADDA,#30H)DPTR,ADPTRA,R0A,#0FH,#30H(或ADD,#30H)DPTR,ADPTRROR2,LOOP$评分方法:程序设计思路正确可得5分,指令
15、完全写对可得10分。不要求运用伪指令。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。15、将存放在内部RAM30H-35H单元的十六进制数转换成相应的ASCII码,依次存放到外部RAMIlOoH起先的单元区中。(注:每个字节转换时先转换高四位)解:ORG0MOVR0,#30HMOVDPTR,#1100HMOVR2,#6LOOP:MOVA,R0;取须要转换的数ANLA,#0FOH;屏蔽低4位SWAPAPUSHDPHPUSHDPL;爱护目的地址MOVDPTR,#TABMOVCA,A+DPTR;查表得ASCIl码POPDPLPOPDPH;复原目的地址MOVXDPTR,A;
16、存转换后的ASCIl码INCDPTR;修改目的地址指针MOVA,R0;取须要转换的数ANLA,#0FH;屏蔽高4位PUSHDPHPUSHDPL;爱护目的地址MOVDPTR,STABMOVCA,A+DPTR;查表得ASCIl码POPDPLPOPDPH;复原目的地址MOVXDPTR,AINCDPTR;修改目的地址指针INCRO;修改源地址指针DJNZR2,LOOP;未转换完则接着SJUP$TAB:DB0123456789ABCDEFEND评分方法:程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。16、内部RAM30H起先的
17、单元中存放着16个0-9的ASCH码(高位字节在前),请将其转换为压缩BCD码(高位在前)并存入外部RAM100OH起先的单元中。解:ORG0MOVR0,#30HMOVDPTR,#1000HMOVR2,#8;16个ASCH码转换为8个压缩BCD码LOOP:MOVA,R0ANLA,#0FH;屏蔽高4位得到BCD码SWAPAMOVRl,AINCRO;指向下一个ASCIl码MOVA,R0ANLA,#0FH屏蔽高4位得到BCD码ORLA,Rl合成压缩BCD码MOVXDPTR,A存压缩BCD码INCDPTRINCRODJNZR2,LOOPSJMP$END17、设有两个长度为16字节的数组,分别存放在外部
18、RAM0200H和030OH为首址的存储区域中,试编写程序求其对应项之和(不考虑溢出的状况),结果存放在以(MOOH为首址的外部RAM中。解:参考程序清单如下:ORG0MOVR2,#16;数组长度为16个字节MOVR3,#02H;数组1的首地址高8位MOVR4,#03H;数组2的首地址高8位MOVR5,#04H;和数组的首地址高8位MOVDPL,#0;数据指针低8位清零LOOP:MOVDPH,R3MOVXA,DPTR;取被加数MOVRl,A;存被加数MOVDPH,R4MOVXA,DPTR;取加数ADDA,R1;求和MOVDPH,R5MOVXDPTR,A;存和INCDPL;指向下一字节DJNZE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 编程 题库 答案
链接地址:https://www.desk33.com/p-612600.html