《单片机》扩展题题库答案.docx
- 文档编号:13612646
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:28
- 大小:485.71KB
《单片机》扩展题题库答案.docx
《《单片机》扩展题题库答案.docx》由会员分享,可在线阅读,更多相关《《单片机》扩展题题库答案.docx(28页珍藏版)》请在冰点文库上搜索。
《单片机》扩展题题库答案
《单片机原理及应用》系统扩展题题库参考答案
七、单片机系统扩展与编程(10分)
1、由8751组成的单片机应用系统如图所示:
(1)请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;
(2)请编程实现每秒钟从输入口(74LS244)读入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。
要求:
利用定时器T0实现50mS定时,并对中断次数进行计数的办法实现1秒定时。
T0工作在方式1下。
解:
(1)74LS244的地址范围为:
0-1FFFH(写对得1分)
74LS273的地址范围为:
2000H-3FFFH(写对得1分)
(2)T0定时初值为:
65536-50000*12/12=15536=3CB0H
ORG0
LJMPSTART
ORG000BH
LJMPTS
ORG0030H
START:
MOVSP,#50H
MOV08H,#14H;1区R0送20,表示中断20次为1秒
MOVTMOD,#01H;T0为方式1定时器工作
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0;允许T0中断
SETBEA;开中断
SETBTR0;启动计数
SJMP$
TS:
PUSHPSW;保护现场
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
SETBRS0;使用1区工作寄存器
CLRRS1
DJNZR0,NEXT
MOVR0,#14H;恢复中断20次计数值(1秒)
MOVDPTR,#0000H
MOVXA,@DPTR;读入开关状态
MOVDPTR,#2000H
MOVX@DPTR,A;将开关状态送LED显示
NEXT:
POPPSW;恢复现场
RETI
END
编程部分评分办法:
不要求使用伪指令和对程序进行注释。
编程思路正确可得3分,编程正确可得8分。
仅写出少量指令可酌情给1-2分;编程思路正确,有少量指令写错可酌情扣1-2分。
2、由8751组成的单片机应用系统如图所示:
(1)请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;
(2)请编程实现每20mS从输入口(74LS244)读入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)。
要求:
利用定时器T0实现20mS定时,并且T0工作在方式1和中断方式下。
解:
(1)输入口74LS244的地址范围是:
4000H-5FFFH(写对得1分)
输出口74LS273的地址是:
0E000H-0FFFFH(写对得1分)
(2)20mS定时初值为:
65536-20000*12/12=45536=0B1E0H(20ms=20000us)
ORG0H
LJMPSTART
ORG000BH
LJMPTS
ORG30H
START:
MOVTMOD,#01H
MOVTH0,#0B1H
MOVTL0,#0E0H
SETBET0
SETBTR0
SETBEA
SJMP$
TS:
CLRTR0
MOVTH0,#0B1H
MOVTL0,#0E0H
SETBTR0
MOVDPTR,#4000H
MOVXA,@DPTR
CPLA
MOVDPTR,#0E000H
MOVX@DPTR,A
RETI
END
编程部分评分办法:
不要求使用伪指令和对程序进行注释。
编程思路正确可得3分,编程正确可得8分。
仅写出少量指令可酌情给1-2分;编程思路正确,有少量指令写错可酌情扣1-2分。
3、由8751组成的单片机应用系统如图所示:
(1)请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;
(2)请编程实现每50mS从输入口(74LS244)读入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。
要求:
利用定时器T0实现50mS定时,并且T0工作在方式1和中断方式下。
解:
(1)输入口74LS244的地址范围是:
8000H-8FFFH(写对得1分)
输出口74LS273的地址范围是:
9000H-9FFFH(写对得1分)
(2)T0的50mS定时初值为:
65536-50000*12/12=15536=3CB0H
ORG0
LJMPSTART
ORG000BH
LJMPTS
ORG30H
START:
MOVTMOD,#01H;设定T0为定时器,方式1
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0
SETBEA
SETBTR0
SJMP$
TS:
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
MOVDPTR,#8000H
MOVXA,@DPTR
MOVDPTR,#9000H
MOVX@DPTR,A
RETI
END
编程部分评分办法:
不要求使用伪指令和对程序进行注释。
编程思路正确可得3分,编程正确可得8分。
仅写出少量指令可酌情给1-2分;编程思路正确,有少量指令写错可酌情扣1-2分。
4、由8751组成的单片机应用系统如图所示:
(1)请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;
(2)请编程实现每0.5秒从输入口(74LS244)读入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)。
要求:
利用定时器T0实现50mS定时,并对中断次数进行计数的办法实现0.5秒定时。
T0工作在方式1下。
解:
(1)输入口74LS244的地址范围是:
0C000H-0CFFFH(写对得1分)
输出口74LS273的地址范围是:
0E000H-0EFFFH(写对得1分)
(2)50mS定时初值为:
65536-50000*12/12=15536=3CB0H
ORG0
LJMPSTART
ORG000BH
LJMPTS
ORG30H
START:
MOVTMOD,#01H;T0设定为定时器,方式1
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0
SETBEA
SETBTR0
MOVR0,#0AH;中断计次单元内容送10,即中断10次(50mS*10=0.5S)
SJMP$
TS:
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
DJNZR0,NEXT;0.5秒没到则中断返回
MOVR0,#0AH;中断计次单元内容恢复为10次
MOVDPTR,#0C00H
MOVXA,@DPTR
CPLA
MOVDPTR,#0E00H
MOVX@DPTR,A
NEXT:
RETI
END
编程部分评分办法:
不要求使用伪指令和对程序进行注释。
编程思路正确可得3分,编程正确可得8分。
仅写出少量指令可酌情给1-2分;编程思路正确,有少量指令写错可酌情扣1-2分。
5、由8751组成的单片机应用系统如图所示:
(1)请写出8155内部RAM的地址范围以及命令寄存器、PA、PB、PC寄存器的地址;
(2)请编程实现每秒钟从8155PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。
要求:
利用定时器T0实现50mS定时,并对中断次数进行计数的办法实现1秒定时。
T0工作在方式1下。
8155的控制字为02H。
解:
(1)8155内部RAM地址为:
E000H~E0FFH,E200H~E2FFH,……(写对最小地址段即得1分)
8155命令寄存器地址为:
E100H,E108H,…(写对最小地址即得0.5分)
8155PA寄存器地址为:
E101H,E109H,…(写对最小地址即得0.5分)
8155PB寄存器地址为:
E102H,E10AH,…(写对最小地址即得0.5分)
8155PC寄存器地址为:
E103H,E10BH,…(写对最小地址即得0.5分)
(2)T0定时初值为:
65536-50000*12/12=15536=3CB0H
ORG0
LJMPSTART
ORG000BH
LJMPTS
ORG0030H
START:
MOVDPTR,#0E100H
MOVA,#02H
MOVX@DPTR,A
MOVR0,#14H;R0送20,表示中断20次为1秒
MOVTMOD,#01H;T0为方式1定时器工作
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0;允许T0中断
SETBEA;开中断
SETBTR0;启动计数
SJMP$
TS:
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
DJNZR0,NEXT
MOVR0,#14H;恢复中断20次计数值(1秒)
MOVDPTR,#0E101H
MOVXA,@DPTR;读入开关状态
INCDPTR(或MOVDPTR,#0E102H)
MOVX@DPTR,A;将开关状态送LED显示
NEXT:
RETI
END
编程部分评分办法:
不要求使用伪指令和对程序进行注释。
编程思路正确可得3分,编程正确可得7分。
仅写出少量指令可酌情给1-2分;编程思路正确,有少量指令写错可酌情扣1-2分。
6、由8751组成的单片机应用系统如图所示:
(1)请写出8155内部RAM的地址范围以及命令寄存器、PA、PB、PC寄存器的地址;
(2)请编程实现每20mS从8155PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)。
要求:
利用定时器T0实现20mS定时,并且T0工作在方式1和中断方式下。
8155的控制字为02H。
解:
(1)8155内部RAM地址为:
C000H~C0FFH,C200H~C2FFH,……(写对最小地址段即得1分)
8155命令寄存器地址为:
C100H,C108H,…(写对最小地址即得0.5分)
8155PA寄存器地址为:
C101H,C109H,…(写对最小地址即得0.5分)
8155PB寄存器地址为:
C102H,C10AH,…(写对最小地址即得0.5分)
8155PC寄存器地址为:
C103H,C10BH,…(写对最小地址即得0.5分)
(2)20mS定时初值为:
65536-20000*12/12=45536=0B1E0H
ORG0H
LJMPSTART
ORG000BH
LJMPTS
ORG30H
START:
MOVDPTR,#0C100H
MOVA,#02H
MOVX@DPTR,A
MOVTMOD,#01H
MOVTH0,#0B1H
MOVTL0,#0E0H
SETBET0
SETBTR0
SETBEA
SJMP$
TS:
CLRTR0
MOVTH0,#0B1H
MOVTL0,#0E0H
SETBTR0
MOVDPTR,#0C101H
MOVXA,@DPTR
CPLA
INCDPTR(或MOVDPTR,#0C102H)
MOVX@DPTR,A
RETI
END
编程部分评分办法:
不要求使用伪指令和对程序进行注释。
编程思路正确可得3分,编程正确可得7分。
仅写出少量指令可酌情给1-2分;编程思路正确,有少量指令写错可酌情扣1-2分。
7、由8751组成的单片机应用系统如图所示:
(1)请写出8155内部RAM的地址范围以及命令寄存器、PA、PB、PC寄存器的地址;
(2)请编程实现每50mS从8155PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。
要求:
利用定时器T0实现50mS定时,并且T0工作在方式1和中断方式下。
8155的控制字为02H。
解:
(1)8155内部RAM地址为:
8C00H~8CFFH,8E00H~8EFFH,……(写对最小地址段即得1分)
8155命令寄存器地址为:
8D00H,8D08H,…(写对最小地址即得0.5分)
8155PA寄存器地址为:
8D01H,8D09H,…(写对最小地址即得0.5分)
8155PB寄存器地址为:
8D02H,8D0AH,…(写对最小地址即得0.5分)
8155PC寄存器地址为:
8D03H,8D0BH,…(写对最小地址即得0.5分)
(2)T0的50mS定时初值为:
65536-50000*12/12=15536=3CB0H
ORG0
LJMPSTART
ORG000BH
LJMPTS
ORG30H
START:
MOVDPTR,#8D00H
MOVA,#02H
MOVX@DPTR,A
MOVTMOD,#01H;设定T0为定时器,方式1
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0
SETBEA
SETBTR0
SJMP$
TS:
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
MOVDPTR,#8D01H
MOVXA,@DPTR
INCDPTR(或MOVDPTR,#8D02H)
MOVX@DPTR,A
RETI
END
编程部分评分办法:
不要求使用伪指令和对程序进行注释。
编程思路正确可得3分,编程正确可得7分。
仅写出少量指令可酌情给1-2分;编程思路正确,有少量指令写错可酌情扣1-2分。
8、由8751组成的单片机应用系统如图所示:
(1)请写出8155内部RAM的地址范围以及命令寄存器、PA、PB、PC寄存器的地址;
(2)请编程实现每0.5秒从8155PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)。
要求:
利用定时器T0实现50mS定时,并对中断次数进行计数的办法实现0.5秒定时。
T0工作在方式1下。
8155的控制字为02H。
解:
(1)8155内部RAM地址为:
8800H~88FFH,8A00H~8AFFH,……(写对最小地址段即得1分)
8155命令寄存器地址为:
8900H,8908H,…(写对最小地址即得0.5分)
8155PA寄存器地址为:
8901H,8909H,…(写对最小地址即得0.5分)
8155PB寄存器地址为:
8902H,890AH,…(写对最小地址即得0.5分)
8155PC寄存器地址为:
8903H,890BH,…(写对最小地址即得0.5分)
(2)50mS定时初值为:
65536-50000*12/12=15536=3CB0H
ORG0
LJMPSTART
ORG000BH
LJMPTS
ORG30H
START:
MOVDPTR,#8900H
MOVA,#02H
MOVX@DPTR,A
MOVTMOD,#01H;T0设定为定时器,方式1
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0
SETBEA
SETBTR0
MOVR0,#0AH;中断计次单元内容送10,即中断10次(50mS*10=0.5S)
SJMP$
TS:
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
DJNZR0,NEXT;0.5秒没到则中断返回
MOVR0,#0AH;中断计次单元内容恢复为10次
MOVDPTR,#8901H
MOVXA,@DPTR
CPLA
INCDPTR(或MOVDPTR,#8902H)
MOVX@DPTR,A
NEXT:
RETI
END
编程部分评分办法:
不要求使用伪指令和对程序进行注释。
编程思路正确可得3分,编程正确可得7分。
仅写出少量指令可酌情给1-2分;编程思路正确,有少量指令写错可酌情扣1-2分。
9、由89C51组成的单片机应用系统如图所示:
(1)请写出DAC0832的地址范围;
(2)请编程实现从Vout输出0-2.5V的方波,方波频率1Hz,占空比1:
4。
要求:
利用定时器T0实现50mS定时中断,并对中断次数进行计数的办法来保证输出信号频率的准确。
T0工作在方式1下。
解:
(1)DAC0832的地址范围2000H~3FFFH。
(写对得2分,部分对可得1分)
(2)DAC0832输出0V对应的数字量是00H,输出2.5V对应的数字量是80H。
(电压对应的数字量写对可得1分)
T0的50ms定时初值为:
65536-12*50000/12=15536=3CB0H(定时初值写对得1分)
1Hz方波,占空比1:
4,则:
高电平时间为:
200ms,低电平时间为:
800ms。
程序清单如下:
HIGHBIT00H
ORG0
LJMPSTART
ORG0BH
LJMPTS
ORG30H
START:
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0
SETBEA
SETBTR0
MOVDPTR,#2000H
MOVA,#80H;输出2.5V
SETBHIGH
MOVX@DPTR,A;输出
MOVR2,#4;50*4=200ms
MOVR3,#16;50*16=800ms
SJMP$
TS:
CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
JNBHIGH,TS1
DJNZR2,TS2
MOVR2,#4
CPLHIGH
MOVA,#0;输出0V
MOVX@DPTR,A
SJMPTS2
TS1:
DJNZR3,TS2
MOVR3,#16
CPLHIGH
MOVA,#80H;输出2.5V
MOVX@DPTR,A
TS2:
RETI
END
程序编制部分评分办法:
思路正确可得3分,程序编制正确可得6分。
若仅写出部分指令可得1-2分;若程序编制思路正确,仅有少量指令书写错误可酌情扣1-2分。
10、由89C51组成的单片机应用系统如图所示:
(1)请写出DAC0832的地址范围;
(2)请编程实现从Vout输出1.25V-2.50V的方波,方波频率2Hz,占空比1:
3。
要求:
利用定时器T0实现25mS定时中断,并对中断次数进行计数的办法来保证输出信号频率的准确。
T0工作在方式1下。
解:
(1)DAC0832的地址范围A000H~BFFFH。
(写对得2分,部分对可得1分)
(2)DAC0832输出1.25V对应的数字量是40H,输出2.50V对应的数字量是80H。
(电压对应的数字量写对可得1分)
T0的25ms定时初值为:
65536-12*25000/12=40536=9E58H(定时初值写对得1分)
2Hz方波,占空比1:
3,则:
高电平时间为:
125ms,低电平时间为:
375ms。
程序清单如下:
HIGHBIT00H
ORG0
LJMPSTART
ORG0BH
LJMPTS
ORG30H
START:
MOVTMOD,#01H
MOVTH0,#9EH
MOVTL0,#58H
SETBET0
SETBEA
SETBTR0
MOVDPTR,#0A000H
MOVA,#80H;输出2.5V
SETBHIGH
MOVX@DPTR,A;输出
MOVR2,#5;25*5=125ms
MOVR3,#15;25*15=375ms
SJMP$
TS:
CLRTR0
MOVTH0,#9EH
MOVTL0,#58H
SETBTR0
JNBHIGH,TS1
DJNZR2,TS2
MOVR2,#5
CPLHIGH
MOVA,#40H;输出1.25V
MOVX@DPTR,A
SJMPTS2
TS1:
DJNZR3,TS2
MOVR3,#15
CPLHIGH
MOVA,#80H;输出2.5V
MOVX@DPTR,A
TS2:
RETI
END
程序编制部分评分办法:
思路正确可得3分,程序编制正确可得6分。
若仅写出部分指令可得1-2分;若程序编制思路正确,仅有少量指令书写错误可酌情扣1-2分。
11、由89C51组成的单片机应用系统如图所示:
(1)请写出DAC0832的地址范围;
(2)实现从Vout输出2.50V-3.75V的方波,方波频率100Hz,占空比1:
4。
要求:
利用定时器T0实现250μS定时中断,并对中断次数进行计数的办法来保证输出信号频率的准确。
T0工作在方式2下。
解:
(1)DAC0832的地址范围9000H~93FFH(地址范围得2分,部分对可得1分)
(2)DAC0832输出2.50V对应的数字量是80H,输出3.75V对应的数字量是0C0H。
(写对电压对应的数字量可得1分)
T0的250μS定时初值为:
256-12*250/12=6=06H(写对定时初值写对得1分)
100Hz方波,占空比1:
4,则:
高电平时间为:
2ms=8*250μS,低电平时间为:
8ms=32*250μS。
程序清单如下:
HIGHBIT00H
ORG0
LJMPSTART
ORG0BH
LJMPTS
ORG30H
START:
MOVTMOD,#02H
MOVTH0,#06H
MOVTL0,#06H
SETBET0
SETBEA
SETBTR0
MOVDPTR,#9000H
MOVA,#0C0H;输出3.75V
SETBHIGH
MOVX@DPTR,A;输出
MOVR2,#8;8*250μS=2ms
MOVR3,#32;32*250μS=8ms
SJMP$
TS:
CLR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 扩展 题库 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)