单片机综合实验总复习题———(yuanchuang:mei、fang)1(a)、程序文件名有什么规定?答:文件名不能用中文,只能用英文字符、下划线及数字作为文件名,其字符总数不能大于8。
将试验箱与计算机联通有哪些操作步骤?连接失败如何处理答:复位、编译、调试、运行;重新复位。
1、(b)程序在运行时出现下面提示,要消除提示框应如何操作?2、IN6接模拟量,Y4接地址线,写出启动0809进行A/D转换及读入数据的指令MOV A,#6MOV DPTR,#0C000HMOVX @DPTR,AMOVX A,@DPTR(注:8个地址线:Y0——8000HY7——F000H)3、欲将8255PA、PB口设为输入(方式0),PC口设为输出,写出相关指令。
MOV DPTR ,#0FF2BHMOV A,,#92HMOVX @DPTR,A4、已知0809参考电压为5V,输入的模拟电压为3.5V,经A/D转换后,对应的数字量是多少?B3H5、已知00H~FFH对应的0832输出模拟量是-5V~+5V,若要输出2.5V,写出相应指令。
(0832片选端接Y4)。
MOV DPTR ,#0C000HMOV A,#0C0HMOVX @DPTR,A6、用定时/计数器1延时277.1ms,写出其初始化程序。
MOV TMOD ,#10HMOV TH1,#0C9HMOV TL1,#0E1HMOV R0,#10SETB EASETA ET1SETB TR17、编写出软件延时270ms的延时子程序(6mhz晶振)DELAY:MOV R6,#27DELAY1:MOV R6,#10DELAY2:MOV R7,#250DJNZ R7,$DJNZ R6,DELAY2DYNZ R5,DELAY1RET8、a、计算下列延时子程序的延时时间。
DELAY: MOV R0, #0 1DEL: NOP 1NOP 1DJNZ R0, DEL 2RET 2(1+256*4+2)*2us=2.05ms9、欲在数码管上显示“-5”,写出相应程序指令。
ORG 0000HAJMP STARTORG 0030HSTART:MOV SCON,#00HMOV SBUF,#0B6HMOV R6,#5DJNZ R6,$MOV SBUF,#02HEND10、每0.331s读一次开关,当开关K=0时在数码管上显示片外7003H单元的数据,K=1时显示片内10H单元的数据。
用定时器定时。
ORG 0000HAJMP MAINORG 001BHAJMP IN_T0ORG 0030HMAIN:MOV TMOD,#10HMOV TH1,#0BFHMOV TL1,#5AHMOV R6,#10SETB EASETB TR1SETB ET1LOP: MOV R0,#10HMOV R1,#1HMOV R2,#2HACALL DISPAJMP LOPSJMP $DISP: MOV DPTR,#DISPCMOV A,@R0MOVC A,@A+DPTRMOV DPTR,#0FF22HMOVX @DPTR,AMOV DPTR,#0FF21HMOV A,R1MOVX @DPTR,ARL AMOV R1,AMOV R7,#2ACALL DELAYINC R0DJNZ R2,DISPRETDELAY:MOV R6,#249DJNZ R6,$DJNZ R7,DELAYRETDISPC:DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8HDB 80H,90H,88H,83HDB 0C6H,0A1H,86H,8EH IN_T0: PUSH ACCPUSH DPHPUSH DPLMOV TH1,#0BFHMOV TL1,#5AHDJNZ R1,EXITMOV R1,#10JB P3.2,LOPMOV DPTR,#7003HMOVX A,@DPTRAJMP LOOPLOP:MOV R0,#10MOV A,@R0LOOP: MOV B,AANL A,#0FHMOV 10H,AMOV A,BSWAP AANL A,#0FHMOV 11H,AEXIT:POP DPLPOP DPHPOP ACCRETIEND11、在数码管上显示片内10H、11H、12H这三个单元中最大的数。
ORG 0000HORG MAINORG OO30HMAIN::MOV SCON,#00HMOV A,10HSUBB A,11HJC BIG1MOV R1,10HAJMP MAXBIG1:MOV R1,11HMAX:MOV A,R1SUBB A,12HJC BIG2ACALL XIANBIG2:MOV A,12HXIAN: MOV B,AANL A,#0FHMOV DPTR,#TABMOVC A,@A+DPTRMOV SBUF,AMOV R5,#5DJNZ R5,$MOV A,BSW AP AANL A,#0FHMOV DPTR,#TABMOVC A,@A+DPTRMOV SBUF,ATAB:DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0HDB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EHEND12 每147ms检测一次片内30H、31H单元中的数,将这两个单元中较大的值在数码管上显示出来(定时器定时)。
13、在数码管上按下列规律循环显示H,A,2,B,3,C,L每个字符显示770.3mS,用定时器定时。
14、8255PC口接8个开关,每0.3秒读一次开关状态,并将其显示在数码管上。
(用定时器定时)ORG 0000HAJMP STARTORG 000BHAJMP IN_T0ORG 0030HSTART:MOV DPTR,#0FF2BHMOV A,#89HMOVX @DPTR,AMOV TMOD,#01HMOV TH0,#9EHMOV TL0,#58HMOV R1,6MOV SCON,#00HSETB TR0SETB ET0SETB EASJMP $IN_T0: MOV TH0,#9EHMOV TL0,#58HDJNZ R1,EXITMOV R1,#6MOV DPTR,#0FF2AHMOVX A,@DPTRMOV B,#10HDIV ABMOV 10H,BMOV 11H,AMOV DPTR,#TABMOV A,10HMOVC A,@A+DPTRMOV SBUF,AMOV R2,#5DJNZ R2,$MOV A,11HMOVC A,@A+DPTRMOV SBUF,AEXIT:RETITAB:DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0HDB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EHEND15、测T5端7ms的脉冲数,并将其显示在数码管上(4位)。
ORG 0000HAJMP MAINORG 001BHAJMP IN_T0ORG 0030HMAIN:MOV SP,#60HMOV TMOD,#15HMOV TH1 ,#0F2HMOV TL1 ,#54HMOV TL0,#0MOV TH0,#0SETB ET1SETB EASETB TR0SETB TR1LOOP: MOV R0,#10HMOV R1,#1HMOV R2,#4HACALL DISPAJMP LOOPDISP: MOV DPTR,#DISPCMOV A,@R0MOVC A,@A+DPTRMOV DPTR,#0FF22HMOVX @DPTR,AMOV DPTR,#0FF21HMOV A,R1MOVX @DPTR,ARL AMOV R1,AMOV R7,#2ACALL DELAYINC R0DJNZ R2,DISPRETDELAY:MOV R6,#249DJNZ R6,$DJNZ R7,DELAYRETDISPC:DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8HDB 80H,90H,88H,83HDB 0C6H,0A1H,86H,8EH IN_T0: MOV TH1 ,#0F2HMOV TL1 ,#54HMOV A,TL0MOV TL0,#0MOV B,AANL A,#0FHMOV 10H,AMOV A,BSWAP AANL A,#0FHMOV 11H,AMOV A,TH0MOV TH0,#0MOV B,AANL A,#0FHMOV 12H,AMOV A,BSWAP AANL A,#0FHMOV 13H,AEXIT:RETIEND16、P1.0接K1,试编程实现将按键次数显示在数码管上(试验指导书P82)17、试编程使开关K为0时使8个发光二极管按规律1循环发光;开关为1时按规律2循环发光,每个状态显示880MS(定时器定时)。
1、L1--L2--L3--L4--L5--L6--L7--L82、L1L8—L2L7—L3L6—L4L5ORG 0000HAJMP MAINORG 000BHAJMP IN_T0ORG 0030HMAIN:MOV TMOD,#01HMOV TH0,#54HMOV TL0,#20HMOV R5,#10MOV R1,#0MOV R2,#0SETB EASETB TR0SETB ET0AJMP $IN_T0:MOV TH0,#54HMOV TL0,#20HDJNZ R5,EXITMOV R5,#10JB P3.3 ,LOOPMOV DPTR, #TAB1MOV A,R1MOVC A,@A+DPTRMOV P1,AINC R1CJNE R1,#8, EXITLOOP: MOV DPTR, #TAB2MOV A,R2MOVC A,@A+DPTRMOV P1,AINC R2CJNE R2,#4, EXITEIXT:RETITAB1:DB 80H,40H,20H,10H,08H,04H,02H,01H TAB2:DB 81H,42H,24H,18HEND18、8255PC口接4个开关和4个LED发光二极管, 试编程实现每0.5秒读一次开关值,并将开关状态显示到发光二极管LED上,用定时器定时。
ORG 0000HAJMP STARTORG 000BHAJMP IN_T0ORG 0030HSTART:MOV DPTR,#0FF2BHMOV A,#88HMOVX @DPTR,AMOV TMOD,#01HMOV TH0,#9EHMOV TL0,#58HMOV R1,#10SETB TR0SETB ET0SETB EASJMP $IN_T0: MOV TH0,#9EHMOV TL0,#58HDJNZ R1,EXITMOV R1,#10MOV DPTR,#0FF2AHMOVX A,@DPTRSWAP AMOV @DPTR,AEXIT:RETIEND19、P1.7~P1.4接开关,每0.5秒读一次开关,并将开关值显示在数码管上。