《《单片机》扩展题题库答案.docx》由会员分享,可在线阅读,更多相关《《单片机》扩展题题库答案.docx(66页珍藏版)》请在课桌文档上搜索。
1、单片机原理及应用系统扩展题题库参考答案七、单片机系统扩展与编程(10分)1、由8751组成的单片机应用系统如图所示:(D请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;(2)请编程实现每秒钟从输入口(74LS244)读入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭要求:利用定时器TO实现50mS定时,并对中断次数进行计数的方法实现1秒定时。TO工作在方式1下。Irnio解:(1)74LS244的地址范围为:O-IFFFH(写对得1分)74LS273的地址范围为:2000H-3FF
2、FH(写对得1分)(2)TO定时初值为:65536-50000*12/12=15536=3CB0HORG01.JMPSTARTORGOOOBH1.JMPTSORG0030HSTART:MOVSP,#50HMOV08H,#14H;1区Ro送20,表示中断20次为1秒MOVTMOD,#01H;TO为方式1定时器工作MOVTHO,#3CHMOVTLO,#OBOHSETBETO;允许TO中断SETBEA;开中断SETBTRO;启动计数SJMP$TS:PUSHPSW;爱护现场MOVTHO,#3CHMOVTLO,#OBOHSETBTROSETBRSO;运用1区工作寄存器CLRRSlDJNZRO,NEXTM
3、OVR0,#14H;复原中断20次计数值(1秒)MOVDPTR,#000OHMOVXA,DPTR;读入开关状态MOVDPTR,#2000HMOVX如PTR,A;将开关状态送LED显示NEXT:POPPSW;复原现场RETIEND编程部分评分方法:不要求运用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得8分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。2、由8751组成的单片机应用系统如图所示:(1)请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;(2)请编程实现每20mS从输入口(74LS244)读入一次8个开关的状态
4、,并将其输出到输出口(74LS273)在发光二级管DbD8显示出来(某一路开关闭合,则相应路的发光二极管点亮).要求:利用定时器TO实现20S定时,并且TO工作在方式1和中断方式下。(写对得1分)(写对得1分)解:(1)输入口74LS244的地址范围是:4000H-5FFFH输出口74LS273的地址是:OEOOOH-OFFFFn(2)20mS定时初值为:65536-20000*12/12=45536=OB1EOH(20ms=20000us)ORGOHLJMPSTARTORGOOOBHLJMPTSORG30HSTART:MOVTMOD,#01HMOVTHO,#OB1HMOVTLO,#OEOHS
5、ETBETOSETBTROSETBEASJMP$TS:CLRTROMOVTHO,#OB1HMOVTLO,#OEOHSETBTROMOVDPTR,#400OHMOVXA,DPTRCPLAMOVDPTR,#0EOooHMOVXDPTR,ARETIEND编程部分评分方法:不要求运用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得8分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。3、由8751组成的单片机应用系统如图所示:(1)请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;(2)请编程实现每50mS从输入口(74LS244)读
6、入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。要求:利用定时器TO实现50mS定时,并且TO工作在方式1和中断方式下。,.解:(D输入口 74LS244的地址范围是:8000H-8FFFH 输出口 74LS273的地址范围是:9000H-9FFFHIi(写对得I分)(写对得I分)(2)To的50mS定时初值为:65536-50000*12/12=15536=3CB0HORG01.JMPSTARTORGOOOBH1.JMPTSORG30HSTART:MOVTMOD,#OIH;设定TO为定时器,方式1MOVTH
7、O,#3CHMOVTLO,#0BoHSETBETOSETBEASETBTROSJMP$TS:CLRTROMOVTHO,#3CHMOVTLO,#0BOHSETBTROMOVDPTR,#800OHMOVXA,DPTRMOVDPTR,#900OHMOVXDPTR,ARETIEND编程部分评分方法:不要求运用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得8分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。4、由8751组成的单片机应用系统如图所示:(1)请写出由74LS244组成的输入口和74LS273组成的输出口所占据的地址范围;(2)请编程实现每0.5秒从
8、输入口(74LS244)读入一次8个开关的状态,并将其输出到输出口(74LS273)在发光二级管DI-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)”要求:利用定时器TO实现50mS定时,并对中断次数进行计数的方法实现0.5秒定时。TO工作在方式1下。 .解:(1)输入口 74LS244的地址范围是:OCOOOH-OCFFFH输出口 74LS273的地址范围是:OEOOOH-OEFFFH(2) 50mS 定时初值为:65536-50000*12 / 12=15536=3CB0H(写对得1分)(写对得1分)ORG0LJMPSTARTORGOOOBHLJMPTSORG30HMOVTMOD
9、, #01HMOVTHO,#3CHMOVTLO, SOBOHSETBETOSETBEASETBTROMOVR0, #0AHSJMP$CLRTROMOVTHO, #3CH;TO设定为定时器,方式1START:TS:;中断计次单元内容送10,即中断10次(50mS*10=0.5S)MOVTLO,#0BOHSETBTRODJNZRO,NEXT;O.5秒没到则中断返回MOVRO,#OAH;中断计次单元内容复原为10次MOVDPTR,ttOCOOHMOVXA,DPTRCPLAMOVDPTR,#OEOOHMOVXDPTR,ANEXT:RETIEND编程部分评分方法:不要求运用伪指令和对程序进行注释。编程思
10、路正确可得3分,编程正确可得8分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。5、由8751组成的单片机应用系统如图所示:(D请写出8155内部RAM的地址范围以及吩咐寄存器、PA、PB、PC寄存器的地址;(2)请编程实现每秒钟从8155PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。要求:利用定时器TO实现50mS定时,并对中断次数进行计数的方法实现1秒定时。TO工作在方式1下。8155的限制字为02HoXjRESETPOO POI P0.2 POJ pa4 pn5 6 Pa 了AD
11、O ad TdF TdT D4 ad D6 AP7ADO ADI AD2 AD3 AD4 AD5 AD6 AD7I1BI4KI 2 3-4-5-6-7-s-74LS138INTO INTI TOTliRD 而PMSALEP TXD RXDPlO m P2.2 P2.3 P14 PlS P16 P1721 M 22A9CE RD WR_ WM ALOTMROirT1MRINRESETPAO PAI PA2PA3PA4 PA5 PA6PA7PBOl PBbPRjI u PB5i l*B6j Pf330OhmX8(写对最小地址段即得1分) (写对最小地址即得0.5分) (写对最小地址即得0.5分)解
12、:(1)8155内部RAM地址为:EOOOH-EOFFH,E200HE2FFH,8155吩咐寄存器地址为:ElOOH,E108H,-8155PA寄存器地址为:ElOlH,E109H,-8155PB寄存器地址为:E102H,ElOAH,-(写对最小地址即得0.5分)8155PC寄存器地址为:E103H,ElOBH,-(写对最小地址即得0.5分)(2)TO定时初值为:65536-50000*12/12=15536=3CB0HORG0LJMPSTARTORGOOOBHLJMPTSORG0030HSTART:MOVDPTR,#0E100HMOVA,#02HMOVX如PTR,AMOVR0,#14H;RO
13、送20,表示中断20次为1秒MOVTMOD5#01H;T0为方式1定时器工作MOVTHO,#3CHMOVTLO,#OBOHSETBETO;允许TO中断SETBEA;开中断SETBTRO;启动计数SJMP$TS:CLRTROMOVTHO,#3CHMOVTLO,#OBOHSETBTRODJNZR0,NEXTMOVR0,#14H;复原中断20次计数值(1秒)MOVDPTR5#0E101HMOVXA,DPTR;读入开关状态INCDPTR(或MoVDPTR,#0E102H)MOVXODPTR,A;将开关状态送LED显示NEXT:RETIEND编程部分评分方法:不要求运用伪指令和对程序进行注释。编程思路正
14、确可得3分,编程正确可得7分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。6、由8751组成的单片机应用系统如图所示:(1)请写出8155内部RAM的地址范围以及吩咐寄存器、PA、PB、PC寄存器的地址;(2)请编程实现每20mS从8155PA读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮).要求:利用定时器To实现20mS定时,并且TO工作在方式1和中断方式下。8155的限制字为02HoTmTii解:(写对最小地址段即得1(写对最小地址即得0.5分)(写对最小地址即得0.5分)(写对最小地址
15、即得0.5分)(写对最小地址即得0.5(1) 8155内部RAM地址为:CoOoHCoFFH,C200HC2FFH,分)8155吩咐寄存器地址为:C100H,C108H,8155PA寄存器地址为:ClOlH,C109H,8155PB寄存器地址为:C102H,ClOAH,8155PC寄存器地址为:C103H,ClOBH,分)(2) 20mS定时初值为:65536-20000*12/12=45536=0BIEoHORGOHLJMPSTARTORGOOOBHLJMPTSORG30HSTART:MOVDPTR,#0CloOHMOVA,#02HMOVXDPTR,AMOVTMOD,#01HMOVTHO,#
16、0BIHMOVTLO,#0EoHSETBETOSETBTROSETBEASJMP$TS:CLRTROMOVTH0,#OBlHMOVTLO,#OEOHSETBTROMOVDPTR,#0ClOlHMOVXA,DPTRCPLAINCDPTR(或MOVDPTR,ft0C102H)MOVXDPTR,ARETIEND编程部分评分方法:不要求运用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得7分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。7、由8751组成的单片机应用系统如图所示:(D请写出8155内部RAM的地址范围以及吩咐寄存器、PA、PB、PC寄存器的地址
17、;(2)请编程实现每50mS从8155PA读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管熄灭)。要求:利用定时器TO实现50mS定时,并且TO工作在方式1和中断方式下。8155的限制字为02Ho=队IxlWnnTO l4567 “Illlpllpllpl.lpl.lpllpllpl,lpl.QJj J,4J,6J QJJJ4561 一 DkaCR-P D D FfwporoproB)P2KP2P2F2KKP2FTPSEUETXRXAIAIRl* :/1716肝llO I I. 4 S lllllIIEIIE2心WYIY2YJY4
18、Y5Y6DWHl(写对最小地址段即得1(写对最小地址即得0.5分)(写对最小地址即得0.5分)(写对最小地址即得0.5分)(写对最小地址即得0.5分)解:(1)8155内部RAM地址为:8C00H8CFFH,8E00H8EFFH,分)8155吩咐寄存器地址为:8D00H,8D08H,8155PA寄存器地址为:8D01H,8D09H,8155PB寄存器地址为:8D02H,8D0AH,8155PC寄存器地址为:8DO3H,8D0BH,(2)TO的50mS定时初值为:65536-50000*12/12=15536=3CB0HORG0LJMPSTARTORGOOOBHLJMPTSORG30HSTART
19、:MOVDPTR,#8DOoHMOVA,#02HMOVXDPTR,AMOVTMOD,#01H;设定TO为定时器,方式1MOVTHO,#3CHMOVTLO,#0BoHSETBETOSETBEASETBTROSJMP$TS:CLRTROMOVTHO,#3CHMOVTLO,#0BOHSETBTROMOVDPTR,#8DoIHMOVXA,DPTRINCDPTR(或MOVDPTR,#8D02H)MOVXDPTR,ARETIEND编程部分评分方法:不要求运用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得7分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。8、由87
20、51组成的单片机应用系统如图所示:(1)请写出8155内部RAM的地址范围以及吩咐寄存器、PA.PB、PC寄存器的地址;(2)请编程实现每0.5秒从8155PA口读入一次8个开关的状态,并将其输出到PB口,在发光二级管D1-D8显示出来(某一路开关闭合,则相应路的发光二极管点亮)。要求:利用定时器TO实现50mS定时,并对中断次数进行计数的方法实现0.5秒定时。TO工作在方式1下。8155的限制字为02H。,t分)分)分)TMR1RESETPAO PAI PA2PA3 PiM PA5 PMPMID8IS5TMROlTPBi) PBI P设 PM PW PB5 PBft PB?解:(1)8155
21、 内部 RAM 地址为:880OH88FFH, 8A00H8AFFH,8155吩咐寄存器地址为:8900H, 8908H,-8155 PA 寄存器地址为:8901H, 8909H, 8155 PB 寄存器地址为1 8902H, 890AH,8155 PC 寄存器地址为:8903H, 890BH,il(写对最小地址段即得1(写对最小地址即得0. 5(写对最小地址即得0.5(写对最小地址即得0.5分)(写对最小地址即得0.5分)(2)50mS定时初值为:65536-50000*12/12=15536=3CB0HORG0LJMPSTARTORGOOOBHLJMPTSORG30HMOVDPTR,#89
22、0OHMOVA,#02HMOVXODPTR,AMOVTMOD,#01HMOVTHO,#3CHMOVTLO,#OBOHSETBETOSETBEASETBTRO;To设定为定时器,方式1START:MOVRO,#0AH;中断计次单元内容送10,即中断10次(50mS*10=0.5S)TS:NEXT:SJMPCLRMOVMOVSETBDJNZMOVMOVMOVXCPLINCMOVXRETIEND$TROTHO,#3CHTLO,#0BoHTRORO,NEXTRO,#0AHDPTR,#890IHA,DPTRADPTRODPTR,;05秒没到则中断返回;中断计次单元内容复原为10次(或MOVDPTR,#8
23、902H)编程部分评分方法::不要求运用伪指令和对程序进行注释。编程思路正确可得3分,编程正确可得7分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。9、由89C51组成的单片机应用系统如图所示:(D请写出DAC0832的地址范围;(2)请编程实现从VOUt输出0-2.5V的方波,方波频率1Hz,占空比1:4。要求:利用定时器TO实现50mS定时中断,并对中断次数进行计数的方法来保证输出信号频率的精确。TO工作在方式1下。凸T-T-T ? X解:(I)DACo832 的地址范围 200OH3FFFH。(2)DAC0832输出OV对应的数字量是OOH ,(写对得2分
24、,部分对可得1分)输出2.5V对应的数字量是80Ho(电压对应的数字量写对可得1分)TO的50ms定时初值为:65536-12*50000/12=15536=3CB0H(定时初值写对得1分)IHZ方波,占空比1:4,则:高电平常间为:200ms,低电平常间为:800mso程序清单如下:HIGHBIT00HORG0LJMPSTARTORGOBHLJMPTSORG30HSTART:MOVTMOD,#01HMOVTHO,tt3CHMOVTLO,#0BoHSETBETOSETBEASETBTROMOVDPTR,#200OHMOVA,#80H;输出2.5VSETBHIGHMOVXDPTR,A;输出MOV
25、R2,#4;50*4=200msMOVR3,#16;50*16=800msSJMP$TS:CLRTROMOVTHO,#3CHMOVTLO,ItOBOHSETBTROJNBHIGH,TSlDJNZR2,TS2MOVR2,#4CPLHIGHMOVA,#0;输出OVMOVXDPTR,ASJMPTS2TSI:DJNZR3,TS2MOVR3,ftl6CPLHIGHMOVA,#80H;输出2.5VMOVXDPTR,ATS2:RETIEND程序编制部分评分方法:思路正确可得3分,程序编制正确可得6分。若仅写出部分指令可得1-2分;若程序编制思路正确,仅有少量指令书写错误可酌情扣12分。10、由89C51组成
26、的单片机应用系统如图所示:(1)请写出DAC0832的地址范围;(2)请编程实现从VoUt输出1.25V-2.5OY的方波,方波频率2Hz,占空比1:3。要求:利用定时器TO实现25mS定时中断,并对中断次数进行计数的方法来保证输出信号频率的精确。TO工作在方式1下。I-EVPIkIVOVIP11.0I.II.2I3I.4I.5I.6I,7 Bb PPPPPPPP 5 I i 3 4 5 6 1 8 =f n三7心俣YOY1Y2Y3Y4Y5Y6Y7ABC 日IE2IEJ2Hz方波,占空比1:3,则:程序清单如下:HIGHBIT00HORG0LJMPSTARTORGOBHLJMPTSORG30H
27、START:MOVTMOD, #01HMOVTHO, #9EHMOVTLO, #58HSETBETOSETBEASETBTROMOVDPTR5#0AOoOHMOVA, #80H;输出2 5V(写对得2分,部分对可得1分)解:(I)DACO832的地址范围AOOOHBFFFH。(2)DAC0832输出1.25V对应的数字量是40H,输出2.50V对应的数字量是80H。(电压对应的数字量写对可得1分)TO的25ms定时初值为:65536-12*25000/12=40536=9E58H(定时初值写对得1分)高电平常间为:125ms,低电平常间为:375msoSETBHIGHMOVXDPTR,A;输出
28、MOVR2,#5;25*5=125msMOVR3,#15;25*15=375msSJMP$TS:CLRTROMOVTH0,#9EHMOVTL0,#58HSETBTROJNBHIGH,TSlDJNZR2,TS2MOVR2,#5CPLHIGHMOVA,MOH;输出1.25VMOVXODPTR,ASJMPTS2TSl:DJNZR3,TS2MOVR3,#15CPLHIGHMOVA,#80H;输出2.5VMOVXDPTR,ATS2:RETIEND程序编制部分评分方法:思路正确可得3分,程序编制正确可得6分。若仅写出部分指令可得1-2分;若程序编制思路正确,仅有少量指令书写错误可酌情扣1-2分。11、由8
29、9C51组成的单片机应用系统如图所示:(D请写出DAC0832的地址范围;(2)实现从VoUt输出2.5Ov-3.75V的方波,方波频率100Hz,占空比1:4。要求:利用定时器TO实现250IIS定时中断,并对中断次数进行计数的方法来保证输出信号频率的精确。TO工作在方式2下。YOYIY2YJY5Y6Y7FQO Kll 股2 PQ3 KL4 KH5 PQ6 TCL?PI.0F17PLIPl ,2鹿PUPl .4PSENPl .5ALEPPl .6TXDPl.?RXD解:(l)DC0832的地址范围900OH93FFH(地址范围得2分,部分对可得1分)(2)DAC0832输出2.50V对应的数
30、字量是80H,输出3.75V对应的数字量是OCOHo(写对电压对应的数字量可得1分)TO的250LlS定时初值为:256-12*250/12=6=06H(写对定时初值写对得1分)IooHZ方波,占空比1:4,则:高电平常间为:2ms=8*250S,低电平常间为:8ms=32*250So程序清单如下HIGHBIT00HORG0LJMPSTARTORGOBHLJMPTSORG30HSTART:MOVTMOD,#02HMOVTHO,#06HMOVTLO,#06HSETBETOSETBEASETBTROMOVDPTR,#900OHMOVA,#OCOH;输出3.75VSETBHIGHMOVXDPTR,A
31、;输出MOVR2,#8;8*250S=2msMOVR3,#32;32*250S=8msSJMP$TS:CLRTROMOVTHO,#3CHMOVTLO,#0BoHSETBTROJNBHIGH,TSlDJNZR2,TS2MOVR2,#8;2ms到输出彳氐电平CPLHIGHMOVA,#80H;输出2.50VMOVXDPTR,ASJMPTS2TSl:DJNZR3,TS2MOVR3,#32;8ms到输出高电平CPLHIGHMOVA,#0C0H;输出3.75VMOVXDPTR,ATS2:RETIEND程序编制部分评分方法:思路正确可得3分,程序编制正确可得6分。若仅写出部分指令可得1-2分:若程序编制思路
32、正确,仅有少量指令书写错误可酌情扣1-2分。12、由89C51组成的单片机应用系统如图所示:(D请写出DAC0832的地址范围;(2)请编程实现从VOUt输出1.25V-3.75V的方波,方波频率2Hz,占空比1:3。要求:利用定时器TO实现25mS定时中断,并对中断次数进行计数的方法来保证输出信号频率的精确。TO工作在方式1下。R3lk解:(l)DC0832的地址范围700OH73FFH。(写对得2分,部分对可得1分)(2)DAC0832输出1.25V对应的数字量是40H,输出3.75V对应的数字量是OCOHo(电压对应的数字量写对可得1分)TO的25ms定时初值为:65536-12*250
33、00/12=40536=9E58H(定时初值写对得1分)2Hz方波,占空比1:3,则:高电平常间为:125ms=5*25ms,低电平常间为:375ms=15*25mso程序清单如下:HIGHBIT00HORG0LJMPSTARTORGOBHLJMPTSORG30HSTART:MOVTMOD,#01HMOVTHO,#9EHMOVTLO,#58HSETBETOSETBEASETBTROMOVDPTR,#700OHMOVA,#OCOH;输出3.75VSETBHIGHMOVXDPTR,A;输出MOVR2,#5;5*25ms=125msMOVR3,#15;15*25ms=375msSJMP$TS:CLR
34、TROMOVTHO,#9EHMOVTLO,#58HSETBTROJNBHIGH,TSlDJNZR2,TS2MOVR2,#5;125ms到输出低电平CPLHIGHMOVA,#40H;输出1.25VMOVXDPTR,ASJMPTS2TSl:DJNZR3,TS2MOVR3,#15;375ms到输出高电平CPLHIGHMOVA,#0CoH;输出3.75VMOVXDPTR,ATS2:RETIEND程序编制部分评分方法:思路正确可得3分,程序编制正确可得6分。若仅写出部分指令可得1-2分;若程序编制思路正确,仅有少量指令书写错误可酌情扣1-2分。13、由89C51组成的单片机应用系统如图所示:(1)请写出
35、DAC0832的地址范围;(2)请写出ADCO809通道O(INO)的地址;(注:写出1个即可)(3)请编程实现每秒钟将ADC0809通道0(NO)输入的模拟电压采样值取反后从Vout端输出。要求:利用定时器Tl实现50mS定时中断,并对中断次数进行计数的方法来实现1秒定时,同时在定时中断中实现对A/D和D/A的操作。Tl工作在方式1下。 I1VJRESET- PID 7 Pl.l 7 PS PIJ i * i PM p, -S- PI.7YnYlINTO NTI )WA LM38Ul 89C51LT4LSUSAB ahS=ADP-A ADD-B ADIXALEENABLEie4START C
36、IoCKreft*B i7PXl P2.I P2? P23 n.4 PIS P2.6 K.?S AI5U6 74Lr工:U2.7M2EocUe 74LS)2解:1、DACo832的地址范围是:OOoOHTFFFH(写对得1分)2、ADC0809通道0的地址是:4000H4008H、40IOH、4018H5FF0H、5FF8H。(写出1个即可,写对得1分)3、Tl的定时初值=65536-50000*12/12=15536=3CBoH(写对得1分)设计思路:当Tl的50ms中断进行了20次时即为1秒钟,这时启动A/D转换,将转换得到的Vin模拟电压的数字量取反然后由D/A输出即可。程序清单如下:C
37、OUNTEQU20;中断次数INOEQU4000H;ADCO809通道0的地址VOUTEQU0000H;DACO832的地址EOCEQUPLO;A/D转换好信号ORG0LJMPSTARTORGIBHLJMPTSORG30HSTART:MOVSP,#60H;此条指令可省略MOVTMOD,#10H;设定Tl为定时器,方式1MOVTH1,#3CHMOVTL1,#OBoH;50ms定时初值送TlMOVR2,#COUNT;初始化中断次数SETBETlSETBEA(或省略上一条指令将本条换为MOVIE,#88H)SETBTRl:启动Tl定时SJMP$;等待中断TS:CLRTRlMOVTHl,tt3CHMO
38、VTLl,#0BOH;50ms定时初值送TlSETBTRlDJNZR2,NEXTMOVR2,#C0UNT;中断次数重新赋值MOVDPTR,#IN0MOVXDPTR,A;启动A/D转换TSl:SETBEOCJNBEOC,TSlMOVXA,DPTR;转换好,取转换值CPLAMOVDPTR,#VOUTMOVX如PTR,A;输出变换后的模拟量NEXT:RETIEND编程部分评分方法:可以不运用伪指令,编程思路正确可得3分,编程正确可得7分。仅写出少量指令可酌情给12分;编程思路正确,有少量指令写错可酌情扣1-2分。14、由89C51组成的单片机应用系统如图所示:(1)请写出DAC0832的地址范围;(
39、2)请写出ADCO809通道O(INO)的地址;(注:写出1个即可)(3)请编程实现每500ms将ADC0809通道0(INO)输入的模拟电压采样值取反后从Vout端输出。要求:利用定时器TO实现50mS定时中断,并对中断次数进行计数的方法来实现500ms定时,同时在定时中断中实现对A/D和D/A的操作。TO工作在方式1下。222J2-42.52.ft2.7w解:(DDACo832的地址范围是:8000H-9FFFH(写对得1分)(2) ADeO809通道。的地址是:COOOHsC008FUC010H.C018HDFFOH.DFF8H。(写出1个即可,写对得1分)(3) TO的定时初值=65536-50000*12/12=15536=3CB0H(写对得1分)设计思路:当To的50ms中断进行了10次时即为500ms,这时启动A/D转换,将转换得到的Vin模拟电压的数字量取反然后由D/A输出即可。