单片机实验答案汇编6-10 - 图文 联系客服

发布时间 : 星期三 文章单片机实验答案汇编6-10 - 图文更新完毕开始阅读fc06179ff8c75fbfc77db289

六 ORG 0 AJMP MAIN ORG 0003H AJMP INTOFW MAIN:SETB EA SETB EX0; SETB IT0; SETB P1.2 CLR P1.1 SJMP $ INTOFW:CLR P1.2 SETB P1.1 JNB P3.2,$ SETB P1.2 CLR P1.1 RETI END 七1.(1)ORG 0 LJMP MAIN ORG 000BH LJMP T0_INT org 0100h MAIN:mov tmod,#01h mov th0,#0B1h mov tl0,#0E0h SETB ET0 SETB EA SETB TR0 SJMP $ T0_INT: mov th0,#0B1h mov tl0,#0E0h CPL P1.1 RETI END 1.(2)org 0000h ajmp main org 000bh ajmp t0_int org 0030h main:mov tmod,#01h ;T0定时器方 式1 mov th0,#03CH ;50ms=50000个MC mov tl0,#0B0H ;65536-50000= 15536=3cb0H setb ea setb et0 setb tr0 ;启动定时器 mov r7,#02h ;50ms*2=100ms=2/T end sjmp $ t0_int:mov th0,#3CH mov tl0,#0B0H djnz r7,do mov r7,#02h cpl p1.1 do: reti 2 org 0h Ljmp main org 0030h main:mov tmod,#00010001b mov th1,#0fdh mov tl1,#044h setb ea setb tr1 setb et1 cpl P1.0 fen:jbc tf1,fen2 ljmp fen fen2:mov tmod,#00010001b mov th0,#0fah mov tl0,#0ech setb ea setb tr0 setb et0 cpl P1.0 fen3:jbc tf0,main ljmp fen3 end 3. org 0000h ajmp main org 001bh ajmp led org 0030h main:mov tmod,#11100000b mov th1,#0F6H mov tl1,#0F6H setb ea setb et1 setb tr1 sjmp $ led:clr p1.6 acall dy1s setb p1.6 reti dy1s:mov r6,#5h do:mov r1,#200 fen:mov r0,#0fah loop:mov r7,#70h djnz r0,loop djnz r1,fen djnz r6,do ret end 九.发送 TR_BUF EQU 20h ORG 0 mov 20h,#1 mov 21h,#2 mov TMOD,#20H mov th1,#0fdh mov tl1,#0fdh setb tr1 mov scon,#40h mov r0,#tr_buf mov r7,#10 acall dy1s lp: mov sbuf,@r0 jnb ti,$ clr ti inc r0 djnz r7,lp sjmp $ dy1s: mov r6,#200 m1: mov r5,#0fah djnz r5,$ djnz R6,m1 ret end 九.接受 rc_BUF EQU 20H ORG 0h ajmp main org 0023h ajmp lp org 0030h main: mov TMOD,#20H mov th1,#0fdh mov tl1,#0fdh setb tr1 setb es setb ea mov scon,#50h mov r0,#rc_buf sjmp $ lp: clr ri mov @r0,sbuf inc r0 reti end 8 ORG 0 mov 30h,#01h ;显示缓冲单元 mov 31h,#02h mov 32h,#03h mov 33h,#04h mov 34h,#05h mov 35h,#06h LP8:ACALL KINP ;键盘扫描程序 JB PSW.5,LP7 ;无键不处理键值 MOV B,#0AH ;有键,分离键码 DIV AB MOV 34H,B ;送显示缓冲 MOV 35H,A LP7:ACALL DISP ;调显示程序 SJMP LP8 DISP:MOV R0,#30H ;显示缓冲首址 MOV R2,#01H ;位控初始码(先亮最低位) LOOP:MOV A,#0FFH ;共阳 灭码 MOV P1,A MOV A,R2 ;送位控信号 MOV P0,A MOV A,@R0 ;从显示缓冲中取数 MOV DPTR,#TAB MOVC A,@A+DPTR ;查出字形代码 MOV P1,A ;送显示字符段代码 ACALL DY1MS ;稳定显示信息 INC R0 ;取下一个数 MOV A,R2 JB ACC.5,EXIT ;判断是否送到最高位? RL A MOV R2,A ;得到下一个位控信号 AJMP LOOP EXIT:RET DY1MS:MOV R7,#0FFH DJNZ R7,$ RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH ;0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F KINP:LCALL KAP ;扫描键子程序 JNZ KP1 SETB PSW.5 ;置无键标志 RET KP1:LCALL DELY ;去抖 LCALL KAP ;再次扫描键盘 JNZ KP2 ;转识键码程序 SETB PSW.5 ;置无键标志 RET KP2:CLR PSW.5 ;置有键操作标志 MOV R2,#0FEH ;逐列扫描初始值 MOV R4,#00H ;0列加数 KP4: MOV A,R2 MOV P0,A ;送列扫描信号 MOV A,P3 ;回读行信号 JB ACC.0,L1 ;不是第一行,转第二行 MOV A,#00H ;是第一行,行吗=0