📄 full3.sdi
字号:
,,, ORG 00H
0000,02 00 26,, JMP START
,,, ORG 23H ;
0023,02 00 4A,, JMP UART ;串口中断服务程序
,,,;--------------------------------
0026,75 81 60,START,START: MOV SP,#60H ;设定堆栈
0029,75 98 50,, MOV SCON,#50H ;设置串口工作在模式1
002C,75 89 20,, MOV TMOD,#20H ;定时器1工作在模式2
002F,75 8D E6,, MOV TH1,#0E6H ;设定波特率1200波特
0032,D2 8E,, SETB TR1 ;启动定时器1
0034,75 A8 90,, MOV IE,#10010000B ;中断使能
0037,75 30 FF,, MOV 30H,#0FFH ;设定拨码开关的初值
003A,E5 90,SCAN0,SCAN0: MOV A,P1 ;读入P1口的值
003C,B5 30 02,, CJNE A,30H,KEYIN ;判断值是否有变化,有变化则跳转至KEYIN
003F,80 F9,, JMP SCAN0 ;重新扫描
0041,F5 30,KEYIN,KEYIN: MOV 30H,A ;保存新值
0043,F5 99,, MOV SBUF,A ;串口输出
0045,10 99 F2,WAIT,WAIT: JBC TI,SCAN0 ;判断是否发送完毕?发送完毕则跳转至SCAN0
0048,80 FB,, JMP WAIT ;
004A,C0 E0,UART,UART: PUSH ACC ;压栈
004C,C0 D0,, PUSH PSW ;
004E,10 98 03,, JBC RI,L2 ;是否接收中断?
0051,02 00 58,, JMP RETURN ;
0054,E5 99,L2,L2: MOV A,SBUF ;将SBUF的值输入
0056,F5 A0,, MOV P2,A ;输出到P2口
0058,D0 D0,RETURN,RETURN: POP PSW ;出栈
005A,D0 E0,, POP ACC ;
005C,32,, RETI
000E,,, END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -