《单片机》编程题题目整合答案解析文档格式.docx

上传人:b****4 文档编号:17736504 上传时间:2022-12-09 格式:DOCX 页数:67 大小:31.87KB
下载 相关 举报
《单片机》编程题题目整合答案解析文档格式.docx_第1页
第1页 / 共67页
《单片机》编程题题目整合答案解析文档格式.docx_第2页
第2页 / 共67页
《单片机》编程题题目整合答案解析文档格式.docx_第3页
第3页 / 共67页
《单片机》编程题题目整合答案解析文档格式.docx_第4页
第4页 / 共67页
《单片机》编程题题目整合答案解析文档格式.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

《单片机》编程题题目整合答案解析文档格式.docx

《《单片机》编程题题目整合答案解析文档格式.docx》由会员分享,可在线阅读,更多相关《《单片机》编程题题目整合答案解析文档格式.docx(67页珍藏版)》请在冰豆网上搜索。

《单片机》编程题题目整合答案解析文档格式.docx

程序设计思路正确可得5分,指令完全写对可得10分。

若仅写对少量指令,可酌情给1-3分;

若仅有少量指令写错,可酌情扣1-3分。

2、设单片机的晶体震荡频率为12MHz,利用定时器T0编程由P1.2输出周期为10mS的方波。

(要求:

T0工作在方式1下,采用中断方式工作)

解:

周期为10mS则半周期为5mS,因此T0的定时初值为65536-5000/1=60536=0EC78H

ORG0

ORG000BH

LJMPTS

START:

MOVTMOD,#01H

MOVTH0,#0ECH

MOVTL0,#78H

SETBET0

SETBTR0

SETBEA

CLRP1.2

SJMP$

TS:

CLRTR0

CPLP1.2

RETI

T0的方式控制字写对和定时初值计算正确可各得1分;

程序设计思路正确可得4分,指令完全写对可得满分(10分)。

若少量指令写错可酌情扣1-2分;

若仅写出少量指令可酌情给1-2分。

3、将存放在内部RAM30H-35H单元的压缩型BCD码转换成相应的ASCII码,依次存放到外部RAM2100H开始的单元区中。

MOVR0,#30H

MOVR2,#06H

MOVDPTR,#2100H

LOOP:

MOVA,@R0

ORLA,#30H

INCDPTR

MOVA,@R0

INCR0

DJNZR2,LOOP

4、已知8051单片机应用系统的晶体振荡频率为12MHz,请利用定时器T0实现在P1.0引脚上输出周期为100mS的方波。

采用中断方式,T0工作在方式1下)

输出方波周期为100mS,故半周期为50mS,因此T0的定时初值是65536-50000/1=15536=3CB0H

MOVTH0,#3CH

MOVTL0,#0B0H

5、设8031单片机应用系统的晶振频率为12MHz,请利用T0在P1.0和P1.1引脚上输出频率为20Hz、互补(两个波形互为反相)的方波。

要求:

采用中断方式,T0工作在方式1。

输出频率为20Hz,则周期为1/20=50mS,半周期为50/2=25mS,

T0的定时初值为:

65536-25000/1=40536=9E58H

MOVTMOD,#01H;

T0设定为定时器,工作方式1

MOVTH0,#9EH

MOVTL0,#58H

CLRP1.0

SETBP1.1

CPLP1.0

CPLP1.1

6、内部RAM20H和30H开始的单元分别存放着16个16进制数,请将对应单元的内容相加(不考虑溢出),并将和存入外部RAM2000H开始的单元中。

MOVR0,#20H

MOVR1,#30H

MOVDPTR,#2000H

MOVR2,#08H;

每个单元存放2个16进制数,故16个16进制数占用8个单元

ADDA,@R1

INCR1

7、8031单片机应用系统的晶体振荡器频率为12MHz,请利用定时器T0编程实现在P1.7引脚输出频率为20Hz的方波。

采用中断方式,T0工作在方式1下。

20Hz方波的周期是1/20=50mS,则其半周期为50/2=25mS

65536-25000*12/12=40536=9E58H

MOVTMOD,#01H;

8、请编写多字节无符号数减法程序。

被减数存放在内部RAM20H开始的8个单元中,减数存放在内部RAM30H开始的8个单元,请将差存放到外部RAM2000H开始的8个单元中,借位存放到OV标志中。

注意:

所有数据均按照从低字节到高字节的顺序存放。

MOVR2,#08H

CLRC

SUBBA,@R1

MOVOV,C

9、内部RAM40H和41H单元中存放着2个0-9的ASCII码(高位字节在前),请将其转换为压缩BCD码(高位在前)并存入外部RAM2000H单元中。

MOVA,40H

MOVA,41H

MOVDPTR,#2000H

10、设单片机的晶体振荡频率为12MHz,利用定时器T0编程由P1.0和P1.1输出周期为10mS、互补(互为反相)的方波。

周期为10mS则半周期为5mS,因此T0的定时初值为65536-5000*12/12=60536=0EC78H

11、将存放在内部RAM20H-2FH单元的压缩型BCD码(高位在前)转换成相应的ASCII码,依次存放到外部RAM1000H开始的单元区中。

MOVR2,#10H

MOVDPTR,#1000H

ORLA,#30H(或ADDA,#30H)

12、已知8051单片机应用系统的晶体振荡频率为12MHz,请利用定时器T1实现在P1.0和P1.1引脚上输出互补(互为反相)的周期为100mS的方波。

采用中断方式,T1工作在方式1下)

输出方波周期为100mS,故半周期为50mS,因此T1的定时初值是65536-50000*12/12=15536=3CB0H

ORG001BH

MOVTMOD,#10H(或#1XH)

MOVTH1,#3CH

MOVTL1,#0B0H

SETBET1

SETBTR1

CLRTR1

T1的方式控制字写对和定时初值计算正确可各得1分;

13、设8031单片机应用系统的晶振频率为12MHz,请利用T0在P1.0引脚上输出频率为20Hz的方波。

14、内部RAM30H和38H开始的单元分别存放着8个压缩BCD码,请将对应单元的内容相加(不考虑溢出),并将和存入外部RAM1000H开始的单元中。

MOVR0,#30H

MOVR1,#38H

MOVR2,#08

DAA

15、8031单片机应用系统的晶体振荡器频率为12MHz,请利用定时器T1编程实现在P1.6和P1.7引脚输出互补(互为反相)的、频率为20Hz的方波。

采用中断方式,T1工作在方式1下。

T1的定时初值为:

MOVTMOD,#10H;

T1设定为定时器,工作方式1

MOVTH1,#9EH

MOVTL1,#58H

CLRP1.6

SETBP1.7

CPLP1.6

CPLP1.7

16、请编写多字节无符号数加法程序。

被加数存放在内部RAM20H开始的8个单元中,加数存放在内部RAM30H开始的8个单元,请将和存放到外部RAM2000H开始的8个单元中,进位存放到F0标志中。

ADDCA,@R1

MOVF0,C

17、两个8字节压缩BCD码分别存放在内部RAM30H和40H开始的连续单元中(低位字节在前),请将二者求和(不考虑溢出情况),并将和存入外部RAM1000H开始的单元中。

MOVR1,#40H

MOVR2,#8

LOOP:

MOVA,R0

程序设计思路正确可得5分;

对于仅写出部分指令的学生可酌情给1-4分;

程序编制正确可得满分,若存在少量错误,可酌情扣1-3分。

18、设单片机的晶体振荡频率为6MHz,利用定时器T1编程由P1.6和P1.7输出周期为500μS、互补(互为反相)的方波。

T1工作在方式2下,采用中断方式工作)

T1定时器的初值=256-6*250/12=131=83H

ORG1BH

START:

MOVTMOD,#20H

MOVTH1,#131

MOVTL1,#131

SETBEA(或MOVIE,#88H)

TS:

写对定时器方式字和初值各给1分,设计思路正确给4分,程序编制正确可得满分。

若仅写出少量指令,可酌情给1-3分。

19、将存放在内部RAM20H-2FH单元的十六进制数转换成ASCII码,依次存放到外部RAM2000H开始的单元中。

MOVR2,#16

MOVR3,DPH

MOVR4,DPL

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPH,R3

MOVDPL,R4

MOVR3,DPH

MOVR4,DPL

INCR0

TAB:

DB‘0123456789ABCDEF’

20、已知8051单片机应用系统的晶体振荡频率为12MHz,请利用定时器T1实现在P1.0和P1.1引脚上输出互补(互为反相)的周期为2ms的方波。

采用中断方式,T1工作在方式2下)

半周期=1ms。

方式2定时设定为250μS,

其初值=256-250*12/12=6。

只要T1中断4次计数即为1ms。

MOVTH1,#6

MOVTL1,#6

MOVR2,#4

TS:

DJNZR2,TS1

TS1:

21、设8031单片机应用系统的晶振频率为12MHz,请利用T1在P1.0引脚上输出频率为1Hz的方波。

采用中断方式,T1工作在方式1。

1Hz方波的周期为1s,半周期为500ms。

可采用T1定时50ms,并对中断计数10次来实现500ms定时。

50ms定时初值=65536-50000*12/12=15536=3CB0H

ORG0

MOVTMOD,#10H

MOVR2,#10

TS1:

22、内部RAM30H和外部RAM2200H开始的单元分别存放着两个8字节十六进制数(低位字节存放在前),请将二者相加(不考虑溢出情况),并将和存入内部RAM40H开始的单元中。

MOVDPTR,#2200H

CLRC

MOVXA,@DPTR

ADDCA,@R0

MOV@R1,A

23、8051单片机应用系统的晶体振荡器频率为6MHz,请利用定时器T1编程实现在P1.0和P1.1引脚输出互补(互为反相)的、频率为20Hz的方波。

采用中断

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1