版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机编程题题库答案单片机原理及应用编程题题库参考答案六、编程(每题10分)内部RAM 30H口 31H单元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BCD (高位在前)并存入外部 RAM 2300H单元中。解: ORG 0HLJMP START ORG 30HSTART MOV A,30HANL A,#0FHSWAP AMOV R0,AMOV A,31HANL A,#0FHORL A,R0MOV DPTR , #2300HMOVX DPTR,AEND评分办法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给 1-3分;
2、若仅有少量指令写错,可酌情扣 1-3分。设单片机的晶体震荡频率为12MHz利用定时器T0编程由P1.2输出周期为10mS勺方波。(要求:T0工作在方式1下,采用中断方式工作)解:周期为10mS则半周期为5mS因此T0的定时初值为65536 5000/1=60536=0EC78H ORG 0LJMP START仅供学习与交流,如有侵权请联系网站删除谢谢1ORG 000BH LJMP TS ORG 30HSTART : MOV TMOD,#01HMOV TH0,#0ECH MOV TL0,#78H SETB ET0 SETB TR0 SETB EA CLR P1.2 SJMP $TS : CLR
3、TR0MOV TH0,#0ECH MOV TL0,#78H SETB TR0 CPL P1.2 RETI END评分办法:不要求写出程序的注释。T0的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可 酌情扣1-2分;若仅写出少量指令可酌情给1-2分。3、将存放在内部RAM 30H-35H单元的压缩型BCDH转换成相应的ASCII码,依次存放到外部RAM 2100HF始的单元区中。ORG 0H LJMP STARTORG 30HSTART: MOV R0,#30HMOV R2,#06HMOV DPTR,#2100HLOOP :
4、 MOV A,R0SWAP AANL 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评分办法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给 1-3分;若仅有少量指令写错,可酌情扣 1-3分。SETB ET0SETB TR0SETB EA CLR P1.2 SJMP $ TS : CLR TR0MOV TH0,#3CHMOV TL0,#0B0HSET
5、B TR0CPL P1.2 RETI END评分办法:不要求写出程序的注释。T0的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可 酌情扣1-2分;若仅写出少量指令可酌情给1-2分。4、已知8051单片机应用系统的晶体振荡频率为 12MHz请利用定时器T0实现在P1.0引脚上输出周期为100ms的方波。(要求:采用中断方式,T0工作在方式1下)解:输出方波周期为100ms故半周期为50mS因此T0的定时初值是65536-50000/1= 15536= 3CB0HORG 0HLJMP STARTORG 000BHLJMP TS
6、ORG 30HSTART : MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0H仅供学习与交流,如有侵权请联系网站删除谢谢25、设8031单片机应用系统的晶振频率为12MHz请利用T0在P1.0和P1.1引脚上输出频率为20Hz、互补(两个波形互为反相)的方波。要求:采用中断方式,T0工作在方式1。解:输出频率为20Hz,则周期为1/20 =50mS半周期为50/2 =25mT0 的定时初值为:65536-25000/1 = 40536= 9E58HORG 0HLJMP STARTORG 000BHLJMP TSORG 30HSTART : MOV TMOD,#01H
7、 ; T0设定为定时器,工作方式 1MOV TH0,#9EHMOV TL0,#58HSETB ET0SETB EASETB TR0 CLR P1.0SETB P1.1 SJMP $TS : CLR TR0MOV TH0,#9EHMOV TL0,#58HSETB TR0 CPL P1.0 CPL P1.1 RETI END评分办法:不要求写出程序的注释。T0的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可 酌情扣1-2分;若仅写出少量指令可酌情给1-2分。6、内部RAM 20H和30H开始的单元分别存放着16个16进制数,请
8、将对应单元的内容相加(不考虑溢出),并将和存入外部RAM 2000H开始的单元中。解:ORG 0LJMP START ORG 30HSTART : MOV R0,#20HMOV R1,#30HMOV DPTR,#2000HMOV R2,#08H ;每个单元存放2个16进制数,故16个16进制数占用8个单元LOOP : MOV A,R0ADD A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $ END评分办法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指
9、令写错,可酌情扣1-3分。7、8031单片机应用系统的晶体振荡器频率为 12MHz请利用定时器T0编程实现在P1.7引脚输出频率为20Hz的方波。要求:采用中断方式,T0工作在方式1下。20Hz方波的周期是1/20 = 50m则其半周期为50/2=25mST0 的定时初值为:65536-25000*12/12 =40536= 9E58HORG 0HLJMP STARTORG 000BHLJMP TSORG 30HSTART : MOV TMOD,#01H ; T0设定为定时器,工作方式 1MOV TH0,#9EHMOV TL0,#58HSETB ET0仅供学习与交流,如有侵权请联系网站删除谢谢
10、3SETB EASETB TR0SJMP $TS : CLR TR0MOV TH0,#9EHMOV TL0,#58HSETB TR0RETIEND评分办法:不要求写出程序的注释。T0的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可 酌情扣1-2分;若仅写出少量指令可酌情给1-2分。8 、请编写多字节无符号数减法程序。被减数存放在内部RAM 20HFF始的8个单元中,减数存放在内部RAM 30HFF始的8个单元,请将差存放到外部 RAM 2000HF始的8个单元中,借位存放到OVfe志中。注意:所有数据均按照从低字节到高字节
11、的顺序存放。ORG 0 LJMP START ORG 30HSTART : MOV R0,#20HMOV R1,#30HMOV DPTR,#2000HMOV R2,#08H CLR CLOOP : MOV A,R0SUBB A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR 仅供学习与交流,如有侵权请联系网站删除谢谢4DJNZ R2,LOOPMOV OV,C SJMP $ END评分办法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。9、内部RAM 40HK 41H单
12、元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BC则(高位在前)并存入外部 RAM 2000Hm元中。解: ORG 0HLJMP START ORG 30HSTART MOV A,40HANL A,#0FHSWAP AMOV R0,AMOV A,41HANL A,#0FHORL A,R0MOV DPTR , #2000HMOVX DPTR,AEND评分办法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。10、设单片机的晶体振荡频率为12MHz利用定时器T0编程由P1.0和P
13、1.1输出周期为10mS互补(互为反相)的方波。(要求:T0工作在方式1下,采用中断方式工 作)解:周期为10mS则半周期为5mS因此T0的定时初值为65536 5000*12/12=60536= 0EC78HORG 0 LJMP START ORG 000BH LJMP TS ORG 30HSTART : MOV TMOD,#01HMOV TH0,#0ECH MOV TL0,#78H SETB ET0 SETB TR0 SETB EA CLR P1.0 SETB P1.1 SJMP $TS : CLR TR0MOV TH0,#0ECH MOV TL0,#78H SETB TR0 CPL P1
14、.0 CPL P1.1 RETI END评分办法:不要求写出程序的注释。T0的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可 酌情扣1-2分;若仅写出少量指令可酌情给1-2分。11、将存放在内部RAM 20H-2FHII元的压缩型BC则(高位在前)转换成相应的ASCII码,依次存放到外部 RAM 1000HF始的单元区中。ORG 0H LJMP START ORG 30HSTART: MOV R0,#20HMOV R2,#10HMOV DPTR,#1000HLOOP : MOV A,R0SWAP AANL A,#0FHOR
15、L A,#30H(或 ADD A,#30H )MOVX DPTR,A INC DPTR MOV A,R0 ANL A,#0FHORL A,#30H(或 ADD A,#30H )仅供学习与交流,如有侵权请联系网站删除谢谢5MOVX DPTR,A INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END评分办法:不要求写出程序的注释。程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给 1-3分;若仅有少量指令写错,可酌情扣 1-3分。12、已知8051单片机应用系统的晶体振荡频率为 12MHz请利用定时器T1实现在P1.0和P1.1引脚上输出互补(互
16、为反相)的周期为 100ms勺方波。(要求:采用中断方式,T1工作在方式1下)解:输出方波周期为100ms故半周期为50mS因此T1的定时初值是65536-50000*12/12 =15536= 3CB0HORG 0H LJMP START ORG 001BH LJMP TS ORG 30HSTART : MOV TMOD,#10H(或 #1XHMOV TH1,#3CH MOV TL1,#0B0H SETB ET1 SETB TR1 SETB EA CLR P1.0 SETB P1.1 SJMP $ TS : CLR TR1MOV TH1,#3CH MOV TL1,#0B0H SETB TR1
17、 CPL P1.0 CPL P1.1 RETI 仅供学习与交流,如有侵权请联系网站删除谢谢6END评分办法:不要求写出程序的注释。T1的方式控制字写对和定时初值计算正确可各得 1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可 酌情扣1-2分;若仅写出少量指令可酌情给1-2分。13、设8031单片机应用系统的晶振频率为12MHz请利用T0在P1.0引脚上输出频率为20Hz的方波。要求:采用中断方式,T0工作在方式1。解:输出频率为20Hz,则周期为1/20 =50mS半周期为50/2 =25mT0 的定时初值为:65536-25000*12/12 =40536=
18、9E58HORG 0H LJMP START ORG 000BH LJMP TS ORG 30HSTART : MOV TMOD,#01H ; T0设定为定时器,工作方式 1MOV TH0,#9EH MOV TL0,#58H SETB ET0 SETB EA SETB TR0 CLR P1.0 SJMP $ TS : CLR TR0MOV TH0,#9EH MOV TL0,#58H SETB TR0 CPL P1.0 RETI END评分办法:不要求写出程序的注释。T0的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可 酌情
19、扣1-2分;若仅写出少量指令可酌情给1-2分。14、内部RAM 30H和38H开始的单元分别存放着8个压缩BCDK,请将对应单元的内容相加(不考虑溢出),并将和存入外部 RAM 1000H开始的单元中。解:ORG 0LJMP START ORG 30HSTART : MOV R0,#30HMOV R1,#38H MOV DPTR,#1000H MOV R2,#08LOOP : MOV A,R0ADD A,R1 DA A MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP SJMP $ END评分办法:不要求写出程序的注释。程序设计思路正确可得5分,指
20、令完全写对可得10分。若仅写对少量指令,可酌情给 1-3分;若仅有少量指令写错,可酌情扣 1-3分。15、8031单片机应用系统的晶体振荡器频率为12MHz请利用定时器T1编程实现在P1.6和P1.7引脚输出互补(互为反相)的、频率为 20Hz的方波。要求:采用中断方式,T1工作在方式1下。解:20Hz方波的周期是1/20 =50m则其半周期为50/2 = 25mST1 的定时初值为:65536-25000/1 =40536= 9E58HORG 0H LJMP START ORG 001BH LJMP TS ORG 30HSTART : MOV TMOD,#10H ; T1设定为定时器,工作方
21、式 1MOV TH1,#9EH MOV TL1,#58H SETB ET1 SETB EA CLR P1.6 SETB P1.7 SETB TR1 SJMP $ TS : CLR TR1仅供学习与交流,如有侵权请联系网站删除谢谢7MOV TH1,#9EH MOV TL1,#58H SETB TR1 CPL P1.6 CPL P1.7 RETI END评分办法:不要求写出程序的注释。T1的方式控制字写对和定时初值计算正确可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可 酌情扣1-2分;若仅写出少量指令可酌情给1-2分。16、请编写多字节无符号数加法程序。被加
22、数存放在内部 RAM 20HF始的8个单元中, 加数存放在内部RAM 30HFF始的8个单元,请将和存放到外部 RAM 2000HF始的8个单元 中,进位存放到F0标志中。注意:所有数据均按照从低字节到高字节的顺序存放。ORG 0 LJMP START ORG 30HSTART : MOV R0,#20HMOV R1,#30HMOV DPTR,#2000HMOV R2,#08H CLR CLOOP : MOV A,R0ADDC A,R1MOVX DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOPMOV F0,C SJMP $ END评分办法:不要求写出程序的注释。程序
23、设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给 1-3分;若仅有少量指令写错,可酌情扣 1-3分。17、两个8字节压缩BCD马分别存放在内部 RAM 30HW 40H开始的连续单元中(低位 字节在前),请将二者求和(不考虑溢出情况),并将和存入外部RAM 1000H开始的单元中。解: ORG 0MOV R0,#30HMOV R1,#40HMOV DPTR,#1000HMOV R2,#8LOOP: MOV A,R0ADD A,R1DA AMOVX DPTR,ADJNZ R2,LOOPSJMP $ END评分办法:程序设计思路正确可得5分;对于仅写出部分指令的学生可酌情给
24、 1-4分;程序编制正确可得满分,若存在少量错误,可酌情扣1-3分18、设单片机的晶体振荡频率为 6MHz利用定时器T1编程由P1.6和P1.7输出周期为500曲、互补(互为反相)的方波。(要求:T1工作在方式2下,采用中断方式工作)解:T1 定时器的初值=2566*250/12= 131=83HORG0LJMPSTARTORG1BHLJMPTSORG30HSTART: MOVTMOD,#20HMOV TH1,#131MOV TL1,#131SETB ET1SETB EA (或 MOV IE,#88H)SETB TR1仅供学习与交流,如有侵权请联系网站删除谢谢8CLR P1.6SETB P1.
25、7SJMP $TS:CPL P1.6CPL P1.7RETIEND评分办法:写对定时器方式字和初值各给1分,设计思路正确给4分,程序编制正确可得满分。若仅写出少量指令,可酌情给 1-3分。19、将存放在内部RAM 20H-2FH元的十六进制数转换成 ASCII码,依次存放到外部RAM 2000HF始的单元中。解: MOV R0,#20HMOV R2,#16MOV DPTR,#2000HMOV R3, DPHMOV R4, DPLLOOP: MOV A,R0ANL A,#0FHMOV DPTR,#TABMOVC A,A+DPTRMOV DPH,R3MOV DPL,R4MOVX DPTR,AINC
26、 DPTRMOV R3,DPHMOV R4,DPLMOV A,R0SWAP AANL A,#0FHMOV DPTR,#TABMOVC A,A+DPTRMOV DPH,R3MOV DPL,R4仅供学习与交流,如有侵权请联系网站删除谢谢9MOVX DPTR,AINC DPTRMOV R3,DPHMOV R4,DPLINC R0DJNZ R2,LOOPSJMP $TAB: DB0123456789ABCDE FEND评分办法:程序设计思路正确可得5分;对于仅写出部分指令的学生可酌情给 1-4分;程序编制正确可得满分,若存在少量错误,可酌情扣1-3分。20、已知8051单片机应用系统的晶体振荡频率为
27、12MHz请利用定时器T1实现在P1.0和P1.1引脚上输出互补(互为反相)的周期为 2ms的方波。(要求:采用中断方式, T1工作在方式2下)解:半周期=1ms o方式2定时设定为2505其初值=256-250*12/12 =6。只要T1中断4次计数即为1msORG 0 LJMP START ORG 1BH LJMP TS ORG 30H START: MOV TMOD,#20HMOV TH1,#6MOV TL1,#6 SETB ET1 SETB EA SETB TR0 CLR P1.0 SETB P1.1 MOV R2,#4SJMP $TS: DJNZ R2,TS1MOV R2,#4CPL
28、 P1.0CPL P1.1TS1: RETIEND评分办法:写对定时器方式字和初值各给 1分,设计思路正确给4分,程序编制正确可得满分。若仅写出少量指令,可酌情给1-3分。21、设8031单片机应用系统的晶振频率为12MHz请利用T1在P1.0引脚上输出频率为1Hz的方波。要求:采用中断方式,T1工作在方式1。解:1Hz方波的周期为1s,半周期为500ms可采用T1定时50ms并对中断计数10 次来实现500ms定时。50ms定时初值=65536 50000*12/12 = 15536= 3CB0HORG 0 LJMP START ORG 1BH LJMP TS ORG 30H MOVTMOD
29、,#10HMOV TH1,#3CH MOV TL1,#0B0H SETB ET1SETB EA (或 MOV IE,#88H)MOV R2,#10 CLR P1.0 SETB TR1 SJMP $ TS: CLR TR1MOV TH1,#3CHMOV TL1,#0B0HSETB TR1DJNZ R2,TS1MOV R2,#10CPL P1.0TS1: RETI评分办法:写对定时器方式字和初值各给1分,设计思路正确给4分,程序编制正确 可得满分。若仅写出少量指令,可酌情给 1-3分。22、内部RAM 30H和外部RAM 2200H开始的单元分别存放着两个 8字节十六进制数(低位字节存放在前),请
30、将二者相加(不考虑溢出情况),并将和存入内部RAM 40H开始的单元中。解: ORG 0MOV R0,#30HMOV R1,#40HMOV DPTR,#2200HMOV R2,#8CLR CLOOP: MOVX A,DPTRADDC A,R0MOV R1,AINC R0仅供学习与交流,如有侵权请联系网站删除谢谢10INC R1 INC DPTR DJNZ R2,LOOP SJMP $ 评分办法:程序设计思路正确可得5分;对于仅写出部分指令的学生可酌情给 1-4 分;程序编制正确可得满分,若存在少量错误,可酌情扣1-3分。23、8051单片机应用系统的晶体振荡器频率为 6MHz请利用定时器T1编
31、程实现在P1.0和P1.1引脚输出互补(互为反相)的、频率为 20Hz的方波。要求:采用中断方式,T1工作在方式2下。解:20Hz方波的半周期为25msT1 的 0.5ms 定时初值=256500*6/12 =6ORG 0 LJMP START ORG 1BH LJMP TS ORG 30H START: MOV TMOD,#20H MOV TH1,#6 MOV TL1,#6 MOV R2,#50 ; 50*0.5ms=25ms CLR P1.0 SETB P1.1 SETB ET1SETB EA ;(或 MOV IE,#88H)SETB TR1 SJMP $ TS: DJNZ R2,TS1M
32、OV R2,#50CPL P1.0CPL P1.1 TS1: RETI评分办法:写对定时器方式字和初值各给1分,设计思路正确给4分,程序编制正确 可得满分。若仅写出少量指令,可酌情给 1-3分。24、请编写多字节无符号数减法程序。被减数存放在内部 RAM 30HFF始的8个单元中, 减数存放在内部RAM 38HF始的8个单元,请将差存放到外部 RAM 1000HF始的8个单元 中,借位存放到F0标志中。注意:所有数据均按照从低字节到高字节的顺序存放。解: ORG 0LJMP STARTORG 30HSTART: MOV R0,#30HMOV R1,#38HMOV DPTR,#1000HMOV
33、R2,#8CLR CLOOP: MOV A,R0SUBB A,R1MOVX DPTR,AINC R0INC R1INC DPTRDJNZ R2,LOOPMOV C,F0SJMP $评分办法:程序设计思路正确可得5分;对于仅写出部分指令的学生可酌情给 1-4 分;程序编制正确可得满分,若存在少量错误,可酌情扣1-3分。25、请编写多字节无符号数减法程序。被减数存放在内部RAM 20HF始的16个单元中,减数存放在内部 RAM 30HF始的16个单元,请将差存放到外部 RAM 2000HF始的16个单元中,借位存放到 OVB志中。注意:所有数据均按照从低字节到高字节的顺序存放。解: ADDR1 E
34、QU 20H仅供学习与交流,如有侵权请联系网站删除 谢谢11ADDR2 EQU 30HLEN EQU 16ADDR3 EQU 2000HORG 0LJMP START ORG 30H START: MOV R0,#ADDR1MOV R1,#ADDR2MOV DPTR,#ADDR3MOV R2,#LEN CLR CLOOP:MOV A,R0SUBB A,R1 MOVX DPTR,A INC R0 INC R1 INC DPTR DJNZ R2,LOOP MOV OV,C SJMP $ END评分办法:程序设计思路正确可得5分,指令完全写对可得10分。不要求使用伪指LJMP TSORG 30HST
35、ART: MOV TMOD,#01H ; 设定T0为定时器,方式1MOV TH0,#9EHMOV TL0,#58HCLR P1.7SETB ET0SETB EA (或两条指令合并为 MOV IE,#82H)SETB TR0 ; 启动T0定时SJMP $TS: CLR TR0 ;停止T0定时MOV TH0,#9EHMOV TL0,#58HSETB TR0 ;启动T0定时CPL P1.7RETIEND令。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣 1-3分 评分办法:T0的方式字和定时初值写对可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。在中断服务程序
36、中可以省略 T0的停止与启动指令。若少量27、将存放在内部RAM 20$35修元的压缩BCDK转换成ASCII码,依次存放到外部26、8751单片机应用系统的晶体振荡器频率为12MHz请利用定时器T0编程实现在P1.7引脚输出频率为20Hz的方波。要求:采用中断方式,T0工作在方式1下。解:20Hz方波的周期是1/20 =0.05 (s) =50 ms ,则半周期为25ms因此只要每隔25ms将P1.7取反即可得到20Hz的方波。T0 的定时初值=65536-25000*12/12 =40536= 9E58HORG 0 LJMP START ORG 0BH仅供学习与交流,如有侵权请联系网站删除
37、谢谢12指令写错可酌情扣1-2分;若仅写出少量指令可酌情给1-2分RAM 2300HF始的单元中。(注:每个单元均先转换高四位)解: LEN EQU 20HADDR1 EQU 20HADDR2 EQU 2300HORG 0LJMP START ORG 30H START: MOV R0,#ADDR1 MOV DPTR,#ADDR2 MOV R2,#LEN LOOP: MOV A,R0 ANL A,#0F0H SWAP AORL A,#30H (或 ADD A,#30H)MOVX DPTR,A INC DPTR MOV A,R0 ANL A,#0FHORL A,#30H (或 ADD A,#30
38、H)MOVX DPTR,A INC DPTR INC R0 DJNZ R2,LOOP SJMP $ END评分办法:程序设计思路正确可得5分,指令完全写对可得10分。不要求使用伪指令。T1 的定时初值=65536-25000*12/12 =40536= 9E58HORG 0LJMP STARTORG 1BHLJMP TSORG 30HSTART: MOV TMOD,#10H ; 设定T1为定时器,方式1MOV TH1,#9EHMOV TL1,#58HCLR P1.0SETB P1.1SETB ET1SETBEA (或两条指令合并为 MOV IE,#88H)SETB TR1 ; 启动T1定时SJ
39、MP $TS: CLR TR1 ;停止T1定时MOV TH1,#9EHMOV TL1,#58HSETB TR1 ;启动T1定时若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分28、设8051单片机应用系统的晶振频率为12MHz请利用T1在P1.0和P1.1引脚上输出频率为20Hz、互补(两个波形互为反相)的方波。要求:采用中断方式,T1工作在方式1。解:20Hz方波的周期是1/20 =0.05 (s) =50 ms ,则半周期为25ms因此只要每隔25ms将P1.0和P1.1取反即可得到互补的20Hz方波。CPL P1.0CPL P1.1RETIEND评分办法:T1的方
40、式字和定时初值写对可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。在中断服务程序中可以省略 T1的停止与启动指令。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌情给1-2分。仅供学习与交流,如有侵权请联系网站删除谢谢1329、将存放在内部RAM 30H-35H单元的十六进制数转换成相应的到外部RAM 1100H开始的单元区中,解:ORG 0MOV R0,#30HMOV DPTR,#1100HMOV R2,#6LOOP: MOV A,R0;ANL A,#0F0H;SWAP A PUSH DPHPUSH DPL ;MOV DPTR,#TABMOVC A,A+DPTR ;
41、POP DPLPOP DPH;MOVX DPTR,A ;INC DPTR;MOV A,R0;ANL A,#0FH;PUSH DPHPUSH DPL;MOV DPTR,#TABMOVC A,A+DPTR ;POP DPL仅供学习与交流,如有侵权请联系网站删除谢谢14ASCII码,依次存放(注:每个字节转换时先转换高四位)取需要转换的数屏蔽低4位保护目的地址查表得ASCII码恢复目的地址存转换后的ASCII码修改目的地址指针取需要转换的数屏蔽高4位保护目的地址查表得ASCII码POP DPH ;恢复目的地址MOVX DPTR,AINC DPTR ;修改目的地址指针INC R0 ;修改源地址指针DJ
42、NZ R2,LOOP;未转换完则继续SJMP $TAB : DB0123456789ABCDE FEND评分办法:程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指 令,可酌情给1-3分;若仅有少量指令写错,可酌情扣 1-3分。30、已知8051单片机应用系统的晶体振荡频率为 12MHz请利用定时器T0实现在P1.0引脚上输出频率为2kHz的方波。(要求:采用中断方式,T0工作在方式2下)解:2kHz方波的周期是1/2000 = 0.5ms =500肉,则半周期为250肉。因此只要每隔250的将P1.0取反即可得到互补的2kHz方波。T0 的定时初值=256-250*12/12
43、=6ORG 0 LJMP START ORG 0BH LJMP TS ORG 30HSTART: MOV TMOD,#02H ;设定T0为定时器,方式 2MOV TH0,#6 MOV TL0,#6 CLR P1.0SETB ET0SETB EA (或两条指令合并为MOV IE,#82H)SETB TR0 ; 启动T0定时SJMP $TS: CPL P1.0RETIEND评分办法:T0方式字和定时初值写对可各得1分;程序设计思路正确可得4分,指令 完全写对可得满分(10分)。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌情 给1-2分。31、内部RAM 30HFF始的单元中存放着16个0-
44、9的ASCII码(高位字节在前),请将 其转换为压缩BCD (高位在前)并存入外部 RAM 1000H开始的单元中。解: ORG 0MOV R0,#30HMOV DPTR,#1000HMOV R2,#8 ; 16 个ASCII码转换为8个压缩BCMLOOP: MOV A,R0ANL A,#0FH ; 屏蔽高4位得到BCDKSWAP AMOV R1,AINC R0 ;指向下一个ASCII码MOV A,R0ANL A,#0FH ;屏敝局4位得到BCD当ORL A,R1 ;合成压缩BCD马仅供学习与交流,如有侵权请联系网站删除谢谢15MOVX DPTR,A ; 存压缩 BC则INC DPTR INC
45、 R0 DJNZ R2,LOOP SJMP $ END评分办法:程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指 令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。32、设单片机的晶体振荡频率为12MHz利用定时器T0编程由P1.0输出周期为1秒的方波。(要求:T0工作在方式1下,采用中断方式工作)解:周期为1秒的方波只需要每隔0.5秒将P1.0取反即可。将T0设定为50ms定时中断,中断10次即是0.5秒,这时将P1.0取反即可。T0 的定时初值=65536- 50000*12/12 =15536= 3CB0HORG 0 LJMP START ORG 0BH LJM
46、P TS ORG 30HSTART: MOV TMOD,#01H ;设定T0为定时器,方式1MOV TH0,#3CHMOV TL0,#0B0H ; 50ms定时初值送 T0MOV R2,#10;中断 10 次SETB ET0SETB EA ;(或两条指令合并为 MOV IE,#82H)SETB TR0 ;启动定时SJMP $;等待中断TS: CLR TR0 MOV TH0,#3CHMOV TL0,#0B0H ; 50ms定时初值送 T0SETB TR0 DJNZ R2,NEXT MOV R2,#10 CPL P1.0 NEXT: RETIEND评分办法:T0的方式字和定时初值写对可各得1分;程
47、序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌 情给1-2分33、设有两个长度为16字节的数组,分别存放在外部 RAM 0200H和0300H为首址的MOV R5,#04H;MOV DPL,#0 ;LOOP:MOV DPH,R3MOVX 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和数组的首地址高8位数据指针低8位清零取被加数存被加数取加数求和存和指向下一字节未加完则循环5分
48、,指令完全写对可得10分。若仅写对少量指评分办法:程序设计思路正确可得存储区域中,试编写程序求其对应项之和(不考虑溢出的情况),结果存放在以0400H为首址的外部RAMfr解:参考程序清单如下:ORG 0MOV R2,#16;MOV R3,#02HMOV R4,#03H数组长度为16个字节数组1的首地址高8位数组2的首地址高8位令,可酌情给1-3分;若仅有少量指令写错,可酌情扣 1-3分。34、设单片机的晶体振荡频率为6MHz利用定时器T0编程由P1.0和P1.1输出周期为1s、互补(互为反相)的方波。(要求:T0工作在方式1下,采用中断方式工作)解:周期为1s则半周期为500ms只需要每隔5
49、00ms将P1.0和P1.1的输出取反即可。可以利用T0定时100ms中断,对T0中断计5次实现500ms定时。T0 的定时初值为 65536- 100000*6/12= 15536= 03CB0H仅供学习与交流,如有侵权请联系网站删除谢谢16参考程序清单如下:ORG 0 LJMP START ORG 0BH LJMP TS ORG 30HSTART : MOV TMOD,#01HMOV TH0,#03CH MOV TL0,#0B0HMOV R2,#5;SETB ET0 SETB TR0 SETB EA CLR P1.0 SETB P1.1 SJMP $TS : CLR TR0 ;MOV TH
50、0,#03CH MOV TL0,#0B0HSETB TR0 ;DJNZ R2,TS1MOV R2,#5;CPL P1.0CPL P1.1TS1: RETIEND评分办法:T0方式字和定时初值写对可各得完全写对可得满分(10分)。若少量指令写错可酌情扣给1-2分。中断5次为500ms该指令可以省略该指令可以省略恢复中断次数初值1分;程序设计思路正确可得4分,指令1-2分;若仅写出少量指令可酌情35、8031单片机应用系统的晶体振荡器频率为 6MHz请利用定时器T0编程实现在P1.0引脚输出频率为0.1Hz的方波。要求:采用中断方式,T0工作在方式1下。解:0.1Hz方波的周期是1/0.1 =10
51、s,则其半周期为10/2= 5s,每5s将P1.0取反即 可。可以利用T0定时100ms中断,对100ms中断计50次即可实现5s定时。T0 的定时初值为:65536-100000*6/12 =15536= 3CB0H参考程序清单如下:ORG 0H LJMP START ORG 000BHLJMP TS ORG 30HSTART: MOV TMOD,#01HMOV TH0,#3CH MOV TL0,#0B0H MOV R2,#32H SETB ET0 SETB EA SETB TR0 SJMP $TS: CLR TR0 ;MOV TH0,#3CH MOV TL0,#0B0HSETB TR0 ;
52、DJNZ R2,NEXT MOV R2,#32H CPL P1.0设定为定时器,工作方式1此指令可以省略此令可以省略仅供学习与交流,如有侵权请联系网站删除 谢谢17数据区首地址送R0单元数送R2和的高8位清零和的低8位清零求和没有进位则转移和的高8位存储单元内容加1指向下一个单元没加完则循环,和在R3和A中NEXT: RETIEND评分办法:T0方式字和定时初值写对可各得1分;程序设计思路正确可得4分,指令 完全写对可得满分(10分)。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌情 给1-2分。36、编程求内部RAMfr 40H4FH共16个单元中的内容的和(结果为 2字节),并将 和
53、放入50H和51H单元中(高8位在50H)。解:参考程序清单如下:ORG 0LJMP START ORG 30HSTART : MOV R0,#40H ; TOC o 1-5 h z MOV R2,#16;MOV R3,#0;CLR A ;LOOP : CLR CADD A,R0;JNC NEXT ;INC R3 ;NEXT: INC R0 ;DJNZ R2,LOOP ;MOV 51H,A;存低8位结果MOV 50H,R3;存高8位结果SJMP $END评分办法:程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;若仅有少量指令写错,可酌情扣 1-3分37、有
54、一个长度为16字节的ASCII码字符串存放在外部 RAM 1000H为首址的存储区域中,字符串中的每一个字符均不相同,试编写程序查找字符串中是否存在ASCII码9”。如果在字符串中存在 ASCII码9,则将其存储单元的地址存放到内部RAM 30HF口 31H单元 中(高8位地址在30H单元中),同时将 OV标志位满零。否则,将30H和31H单元的内容 清零,并将OVfe志位置T。解: ORG 0MOV SP,#60HMOV DPTR,#1000HMOV R2,#16LOOP: MOVX A,DPTRCJNE A,#39H,EXITMOV 30H,DPH仅供学习与交流,如有侵权请联系网站删除谢谢
55、18MOV 31H,DPL CLR OV SJMP $ EXIT: INC DPTR DJNZ R2,LOOP MOV 30H,#0 MOV 31H,#0 SETB OV SJMP $END评分办法:程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指 令,可酌情给1-3分;若仅有少量指令写错,可酌情扣1-3分。38、设单片机的晶体振荡频率为3MHz利用定时器T0编程由P1.6和P1.7输出周期为 10s、互补(互为反相)的方波。(要求:T0工作在方式1下,采用中断方式工作)解:方波周期是10秒,只需要每隔5秒将P1.6和P1.7取反即可。用T0产生100ms定时中断,对该中断计5
56、0次即可得到5秒定时。T0的定时初值=65536- 100000X3+12 = 40536= 9E58HORG 0 LJMP START ORG 0BH LJMP TS ORG 30H START: MOV SP,#60H MOVTMOD,#01HMOV TH0,#9EH MOV TL0,#58H SETB ET0 SETB EA CLR P1.6MOVR2,#32H(或 MOV R2,#50)SETBTR0SJMP$TS: MOVTH0,#9EHMOVTL0,#58HDJNZR2,TS1MOVR2,#32H(或 MOV R2,#50)CPLP1.6仅供学习与交流,如有侵权请联系网站删除谢谢1
57、9CPL P1.7TS1: RETIEND评分办法:T0方式字和定时初值写对可各得1分;程序设计思路正确可得4分,指令完全写对可得满分(10分)。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌情 给1-2分。39、89C51单片机应用系统的晶体振荡器频率为 12MHz请利用定时器T1编程实现在P1.0引脚输出频率为2Hz的方波。要求:T1采用中断方式工作,工作在方式1下。解:2Hz方波其周期为0.5秒,只需要每隔0.25秒将P1.0取反即可。T1 在12MHzS振下定时时间最大为65.536ms,因此只需要50ms定时中断,然后对 中断计5次即可实现0.25秒定时。T1 的 50ms定时
58、初值为:65536- 50000X12+12= 15536= 3CB0H程序清单如下:ORG 0LJMP STARTORG 1BHLJMP TSORG 30HSTART: MOV SP,#60HMOV TMOD,#10HMOV TH1,#3CHMOV TL1,#0B0HSETB ET1SETB EAMOV R2,#5SETB TR1SJMP $TS: MOV TH1,#3CHMOV TL1,#0B0HDJNZ R2,TS1MOV R2,#5CPL P1.0TS1: RETIENDSJMP $ END评分办法:程序设计思路正确可得5分,指令完全写对可得10分。若仅写对少量指令,可酌情给1-3分;
59、若仅有少量指令写错,可酌情扣 1-3分(3001H)=丫,编程实现Z=X*X+2Y并将结果存到片变量X的地址送DPTR取变量X变量X的值送给B寄存器求X*X,根据题意知积为1字节的结果存入R0中指向变量丫取变量丫求2*Y,根据题意知积为1字节评分办法:T1的方式字和定时初值写对可各得1分;程序设计思路正确可得4分,指 令完全写对可得满分(10分)。若少量指令写错可酌情扣1-2分;若仅写出少量指令可酌 情给1-2分40、有两个8字节的16进制数a和b,它们分别存放在内部 RAMfr 30H37H和40H-47H的单元中(高位字节在前)。请编程求 a-b,并将差存入30H开始的内部RAMI元中(高
60、位字节在前)。若差小于零则将 F0标志位置r ,否则清零。解:设计思路:从16进制数的最低位字节(37H和47H)开始相应字节带借位相减,然后修改地址指针在对次低位字节进行相减,一共循环8次完成两个8字节16进制数的相减。最后将Cy标志的内容传送给F0标志位即可ORG 0MOV R0,#37HMOV R1,#47HMOV R2,#8CLR CLOOP: MOV A,R0SUBB A,R1MOV R0,ADEC R0DEC R1DJNZ R2,LOOPMOV F0,C仅供学习与交流,如有侵权请联系网站删除谢谢2041、若外部 RAM勺(3000H) =X,内RAM勺40H单元(设Z 256 。解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿故事会春节的快乐传统
- 2025年中职汽车修理(变速箱维修)试题及答案
- 2025年高职国际贸易实务(进出口业务操作)试题及答案
- 2025年大学大三(新能源科学与工程)新能源利用技术开发阶段测试题及答案
- 2025年大学护理学(妇产科用药护理)试题及答案
- 2025年大学第三学年(食品添加剂)应用技术阶段测试题及答案
- 2025年大学三年级(食品科学与工程)食品质量安全检测试题及答案
- 2025年高职(旅游资源开发)资源评估单元测试试题及答案
- 2025年大学医学(临床护理)试题及答案
- 2025年大学第三学年(历史学)世界古代史中世纪时期试题及答案
- 2026年乡村医生传染病考试题含答案
- 新零售模式下人才培养方案
- 上海市徐汇区2026届初三一模化学试题(含答案)
- 2025年辽铁单招考试题目及答案
- 医疗行业数据安全事件典型案例分析
- 2026年生物医药创新金融项目商业计划书
- 湖南名校联考联合体2026届高三年级1月联考化学试卷+答案
- 龟的解剖课件
- 山东省潍坊市2024-2025学年二年级上学期期末数学试题
- 空气源热泵供热工程施工方案
- 工业管道施工与验收规范
评论
0/150
提交评论