《单片机》扩展题题库答案_第1页
《单片机》扩展题题库答案_第2页
《单片机》扩展题题库答案_第3页
《单片机》扩展题题库答案_第4页
《单片机》扩展题题库答案_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用系统扩展题题库参考答案七、单片机系统扩展与编程(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/12155363CB0H ORG 0 LJMP START ORG 000BH LJMP TS ORG 0030H START: MOV SP,#50H MOV 08H,#14H ;1区R0送20,表示中断20次为1秒 MOV TMOD,#01H ;T0为方式1定时器工作 MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 ;允许T0中断 SETB EA ;开中断 SETB TR0 ;启动计数 SJMP $ TS:PUSH PSW ;保护现场 CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 SETB RS0 ;使用1区工作寄存器 CLR RS1 DJNZ R0,NEXT MOV R0,#14H ;恢复中断20次计数值(1秒) MOV DPTR,#0000H MOVX A,DPTR ;读入开关状态 MOV DPTR,#2000H MOVX DPTR,A ;将开关状态送LED显示 NEXT: POP PSW ;恢复现场 RETI END编程部分评分办法:不要求使用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得8分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。2、由8751组成的单片机应用系统如图所示:(1) 请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;(2) 请编程实现每20mS从输入口(74LS244)读入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)。要求:利用定时器T0实现20mS定时,并且T0工作在方式1和中断方式下。解:(1) 输入口74LS244的地址范围是:4000H5FFFH (写对得1分) 输出口74LS273的地址是:0E000H0FFFFH (写对得1分) (2) 20mS定时初值为:65536-20000*12/12455360B1E0H (20ms=20000us) ORG 0H LJMP START ORG 000BH LJMP TS ORG 30H START: MOV TMOD,#01H MOV TH0,#0B1H MOV TL0,#0E0H SETB ET0 SETB TR0 SETB EA SJMP $ TS: CLR TR0 MOV TH0,#0B1H MOV TL0,#0E0H SETB TR0 MOV DPTR,#4000H MOVX A,DPTR CPL A MOV DPTR,#0E000H MOVX DPTR,A RETI END编程部分评分办法:不要求使用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得8分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。3、由8751组成的单片机应用系统如图所示:(1)请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;(2)请编程实现每50mS从输入口(74LS244)读入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。要求:利用定时器T0实现50mS定时,并且T0工作在方式1和中断方式下。解:(1) 输入口74LS244的地址范围是:8000H8FFFH (写对得1分) 输出口74LS273的地址范围是:9000H9FFFH (写对得1分)(2) T0的50mS定时初值为:65536-50000*12/12155363CB0H ORG 0 LJMP START ORG 000BH LJMP TS ORG 30H START:MOV TMOD,#01H ;设定T0为定时器,方式1 MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA SETB TR0 SJMP $ TS:CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 MOV DPTR,#8000H MOVX A,DPTR MOV DPTR,#9000H MOVX DPTR,A RETI END编程部分评分办法:不要求使用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得8分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。 4、由8751组成的单片机应用系统如图所示:(1) 请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;(2)请编程实现每0.5秒从输入口(74LS244)读入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)。要求:利用定时器T0实现50mS定时,并对中断次数进行计数的办法实现0.5秒定时。T0工作在方式1下。解:(1) 输入口74LS244的地址范围是:0C000H0CFFFH (写对得1分) 输出口74LS273的地址范围是:0E000H0EFFFH (写对得1分) (2) 50mS定时初值为:65536-50000*1212155363CB0H ORG 0 LJMP START ORG 000BH LJMP TS ORG 30H START:MOV TMOD,#01H ;T0设定为定时器,方式1 MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA SETB TR0 MOV R0,#0AH ;中断计次单元内容送10,即中断10次(50mS*10=0.5S) SJMP $ TS: CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 DJNZ R0,NEXT ;0.5秒没到则中断返回 MOV R0,#0AH ;中断计次单元内容恢复为10次 MOV DPTR,#0C00H MOVX A,DPTR CPL A MOV DPTR,#0E00H MOVX DPTR,A NEXT: RETI END编程部分评分办法:不要求使用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得8分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。5、由8751组成的单片机应用系统如图所示:(1)请写出8155内部RAM的地址范围以及命令寄存器、PA、PB、PC寄存器的地址;(2)请编程实现每秒钟从8155 PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。要求:利用定时器T0实现50mS定时,并对中断次数进行计数的办法实现1秒定时。T0工作在方式1下。8155的控制字为02H。解:(1)8155内部RAM地址为:E000HE0FFH,E200HE2FFH, (写对最小地址段即得1分) 8155命令寄存器地址为:E100H,E108H, (写对最小地址即得0.5分)8155 PA寄存器地址为:E101H,E109H, (写对最小地址即得0.5分)8155 PB寄存器地址为:E102H,E10AH, (写对最小地址即得0.5分)8155 PC寄存器地址为:E103H,E10BH, (写对最小地址即得0.5分)(2) T0定时初值为:65536-50000*12/12155363CB0H ORG 0 LJMP START ORG 000BH LJMP TS ORG 0030H START:MOV DPTR,#0E100H MOV A,#02H MOVX DPTR,A MOV R0,#14H ;R0送20,表示中断20次为1秒 MOV TMOD,#01H ;T0为方式1定时器工作 MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 ;允许T0中断 SETB EA ;开中断 SETB TR0 ;启动计数 SJMP $ TS:CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 DJNZ R0,NEXT MOV R0,#14H ;恢复中断20次计数值(1秒) MOV DPTR,#0E101H MOVX A,DPTR ;读入开关状态 INC DPTR (或MOV DPTR,#0E102H) MOVX DPTR,A ;将开关状态送LED显示 NEXT: RETI END编程部分评分办法:不要求使用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得7分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。6、由8751组成的单片机应用系统如图所示:(1)请写出8155内部RAM的地址范围以及命令寄存器、PA、PB、PC寄存器的地址;(2)请编程实现每20mS从8155 PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)。要求:利用定时器T0实现20mS定时,并且T0工作在方式1和中断方式下。8155的控制字为02H。 解:(1) 8155内部RAM地址为:C000HC0FFH,C200HC2FFH, (写对最小地址段即得1分) 8155命令寄存器地址为:C100H,C108H, (写对最小地址即得0.5分)8155 PA寄存器地址为:C101H,C109H, (写对最小地址即得0.5分)8155 PB寄存器地址为:C102H,C10AH, (写对最小地址即得0.5分)8155 PC寄存器地址为:C103H,C10BH, (写对最小地址即得0.5分)(2) 20mS定时初值为:65536-20000*12/12455360B1E0H ORG 0H LJMP START ORG 000BH LJMP TS ORG 30H START: MOV DPTR,#0C100H MOV A,#02H MOVX DPTR,AMOV TMOD,#01H MOV TH0,#0B1H MOV TL0,#0E0H SETB ET0 SETB TR0 SETB EA SJMP $ TS: CLR TR0 MOV TH0,#0B1H MOV TL0,#0E0H SETB TR0 MOV DPTR,#0C101H MOVX A,DPTR CPL A INC DPTR (或 MOV DPTR,#0C102H) MOVX DPTR,A RETI END编程部分评分办法:不要求使用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得7分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。7、由8751组成的单片机应用系统如图所示:(1)请写出8155内部RAM的地址范围以及命令寄存器、PA、PB、PC寄存器的地址;(2)请编程实现每50mS从8155 PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。要求:利用定时器T0实现50mS定时,并且T0工作在方式1和中断方式下。8155的控制字为02H。解:(1)8155内部RAM地址为:8C00H8CFFH,8E00H8EFFH, (写对最小地址段即得1分) 8155命令寄存器地址为:8D00H,8D08H, (写对最小地址即得0.5分)8155 PA寄存器地址为:8D01H,8D09H, (写对最小地址即得0.5分)8155 PB寄存器地址为:8D02H,8D0AH, (写对最小地址即得0.5分)8155 PC寄存器地址为:8D03H,8D0BH, (写对最小地址即得0.5分)(2)T0的50mS定时初值为:65536-50000*12/12155363CB0H ORG 0 LJMP START ORG 000BH LJMP TS ORG 30H START: MOV DPTR,#8D00H MOV A,#02H MOVX DPTR,AMOV TMOD,#01H ;设定T0为定时器,方式1 MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA SETB TR0 SJMP $ TS:CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 MOV DPTR,#8D01H MOVX A,DPTR INC DPTR (或 MOV DPTR,#8D02H) MOVX DPTR,A RETI END编程部分评分办法:不要求使用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得7分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。8、由8751组成的单片机应用系统如图所示:(1)请写出8155内部RAM的地址范围以及命令寄存器、PA、PB、PC寄存器的地址;(2)请编程实现每0.5秒从8155 PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)。要求:利用定时器T0实现50mS定时,并对中断次数进行计数的办法实现0.5秒定时。T0工作在方式1下。8155的控制字为02H。解:(1)8155内部RAM地址为: 8800H88FFH,8A00H8AFFH, (写对最小地址段即得1分) 8155命令寄存器地址为:8900H,8908H, (写对最小地址即得0.5分)8155 PA寄存器地址为:8901H,8909H, (写对最小地址即得0.5分)8155 PB寄存器地址为:8902H,890AH, (写对最小地址即得0.5分)8155 PC寄存器地址为:8903H,890BH, (写对最小地址即得0.5分) (2)50mS定时初值为:65536-50000*1212155363CB0H ORG 0 LJMP START ORG 000BH LJMP TS ORG 30H START: MOV DPTR,#8900H MOV A,#02H MOVX DPTR,AMOV TMOD,#01H ;T0设定为定时器,方式1 MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA SETB TR0 MOV R0,#0AH ;中断计次单元内容送10,即中断10次(50mS*10=0.5S) SJMP $ TS: CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 DJNZ R0,NEXT ;0.5秒没到则中断返回 MOV R0,#0AH ;中断计次单元内容恢复为10次 MOV DPTR,#8901H MOVX A,DPTR CPL A INC DPTR (或 MOV DPTR,#8902H) MOVX DPTR,A NEXT: RETI END编程部分评分办法:不要求使用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得7分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。9、由89C51组成的单片机应用系统如图所示:(1)请写出DAC0832的地址范围;(2)请编程实现从Vout输出0-2.5V的方波,方波频率1Hz,占空比1:4。要求:利用定时器T0实现50mS定时中断,并对中断次数进行计数的办法来保证输出信号频率的准确。T0工作在方式1下。解:(1)DAC0832的地址范围 2000H3FFFH。 (写对得2分,部分对可得1分)(2)DAC0832输出0V对应的数字量是00H,输出2.5V对应的数字量是80H。 (电压对应的数字量写对可得1分)T0的50ms定时初值为:65536-12*5000012155363CB0H (定时初值写对得1分)1Hz方波,占空比1:4,则:高电平时间为:200ms,低电平时间为:800ms。 程序清单如下:HIGH BIT 00H ORG 0 LJMP START ORG 0BH LJMP TS ORG 30H START: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA SETB TR0 MOV DPTR,#2000H MOV A,#80H ;输出2.5V SETB HIGH MOVX DPTR,A ;输出 MOV R2,#4 ;50*4=200ms MOV R3,#16 ;50*16=800ms SJMP $TS: CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 JNB HIGH,TS1 DJNZ R2,TS2 MOV R2,#4 CPL HIGH MOV A,#0 ;输出0V MOVX DPTR,A SJMP TS2TS1: DJNZ R3,TS2 MOV R3,#16 CPL HIGH MOV A,#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的地址范围 A000HBFFFH。 (写对得2分,部分对可得1分)(2)DAC0832输出1.25V对应的数字量是40H,输出2.50V对应的数字量是80H。 (电压对应的数字量写对可得1分)T0的25ms定时初值为:65536-12*2500012405369E58H (定时初值写对得1分)2Hz方波,占空比1:3,则:高电平时间为:125ms,低电平时间为:375ms。程序清单如下:HIGH BIT 00H ORG 0 LJMP START ORG 0BH LJMP TS ORG 30H START: MOV TMOD,#01H MOV TH0,#9EH MOV TL0,#58H SETB ET0 SETB EA SETB TR0 MOV DPTR,#0A000H MOV A,#80H ;输出2.5V SETB HIGH MOVX DPTR,A ;输出 MOV R2,#5 ;25*5=125ms MOV R3,#15 ;25*15=375ms SJMP $TS: CLR TR0 MOV TH0,#9EH MOV TL0,#58H SETB TR0 JNB HIGH,TS1 DJNZ R2,TS2 MOV R2,#5 CPL HIGH MOV A,#40H ;输出1.25V MOVX DPTR,A SJMP TS2TS1: DJNZ R3,TS2 MOV R3,#15 CPL HIGH MOV A,#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实现250S定时中断,并对中断次数进行计数的办法来保证输出信号频率的准确。T0工作在方式2下。解:(1)DAC0832的地址范围 9000H93FFH (地址范围得2分,部分对可得1分)(2)DAC0832输出2.50V对应的数字量是80H,输出3.75V对应的数字量是0C0H。(写对电压对应的数字量可得1分)T0的250S定时初值为:256-12*25012606H (写对定时初值写对得1分)100Hz方波,占空比1:4,则:高电平时间为:2ms=8*250S,低电平时间为:8ms=32*250S。程序清单如下:HIGH BIT 00H ORG 0 LJMP START ORG 0BH LJMP TS ORG 30H START: MOV TMOD,#02H MOV TH0,#06H MOV TL0,#06H SETB ET0 SETB EA SETB TR0 MOV DPTR,#9000H MOV A,#0C0H ;输出3.75V SETB HIGH MOVX DPTR,A ;输出 MOV R2,#8 ;8*250S=2ms MOV R3,#32 ;32*250S=8ms SJMP $TS: CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 JNB HIGH,TS1 DJNZ R2,TS2 MOV R2,#8 ; 2ms到输出低电平 CPL HIGH MOV A,#80H ;输出2.50V MOVX DPTR,A SJMP TS2TS1: DJNZ R3,TS2 MOV R3,#32 ; 8ms到输出高电平 CPL HIGH MOV A,#0C0H ;输出3.75V MOVX DPTR,A TS2: RETI END程序编制部分评分办法:思路正确可得3分,程序编制正确可得6分。若仅写出部分指令可得1-2分;若程序编制思路正确,仅有少量指令书写错误可酌情扣1-2分。12、由89C51组成的单片机应用系统如图所示:(1)请写出DAC0832的地址范围;(2)请编程实现从Vout输出1.25V-3.75V的方波,方波频率2Hz,占空比1:3。要求:利用定时器T0实现25mS定时中断,并对中断次数进行计数的办法来保证输出信号频率的准确。T0工作在方式1下。解:(1)DAC0832的地址范围 7000H73FFH。 (写对得2分,部分对可得1分)(2)DAC0832输出1.25V对应的数字量是40H,输出3.75V对应的数字量是0C0H。 (电压对应的数字量写对可得1分)T0的25ms定时初值为:65536-12*250001240536=9E58H (定时初值写对得1分)2Hz方波,占空比1:3,则:高电平时间为:125ms=5*25ms,低电平时间为:375ms=15*25ms。程序清单如下:HIGH BIT 00H ORG 0 LJMP START ORG 0BH LJMP TS ORG 30H START: MOV TMOD,#01H MOV TH0,#9EH MOV TL0,#58H SETB ET0 SETB EA SETB TR0 MOV DPTR,#7000H MOV A,#0C0H ;输出3.75V SETB HIGH MOVX DPTR,A ;输出 MOV R2,#5 ;5*25ms=125ms MOV R3,#15 ;15*25ms=375ms SJMP $TS: CLR TR0 MOV TH0,#9EH MOV TL0,#58H SETB TR0 JNB HIGH,TS1 DJNZ R2,TS2 MOV R2,#5 ; 125ms到输出低电平 CPL HIGH MOV A,#40H ;输出1.25V MOVX DPTR,A SJMP TS2TS1: DJNZ R3,TS2 MOV R3,#15 ; 375ms到输出高电平 CPL HIGH MOV A,#0C0H ;输出3.75V MOVX DPTR,A TS2: RETI END程序编制部分评分办法:思路正确可得3分,程序编制正确可得6分。若仅写出部分指令可得1-2分;若程序编制思路正确,仅有少量指令书写错误可酌情扣1-2分。13、由89C51组成的单片机应用系统如图所示:(1)请写出DAC0832的地址范围;(2)请写出ADC0809通道0(IN0)的地址; (注:写出1个即可)(3)请编程实现每秒钟将ADC0809通道0(IN0)输入的模拟电压采样值取反后从Vout端输出。要求:利用定时器T1实现50mS定时中断,并对中断次数进行计数的办法来实现1秒定时,同时在定时中断中实现对A/D和D/A的操作。T1工作在方式1下。解: 1、DAC0832的地址范围是:0000H-1FFFH (写对得1分) 2、ADC0809通道0的地址是:4000H、4008H、4010H、4018H5FF0H、5FF8H。 (写出1个即可,写对得1分) 3、T1的定时初值65536-50000*1212155363CB0H (写对得1分) 设计思路:当T1的50ms中断进行了20次时即为1秒钟,这时启动A/D转换,将转换得到的Vin模拟电压的数字量取

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论