📄 2008_10_09.lst
字号:
A51 MACRO ASSEMBLER 2008_10_09 11/12/2008 21:05:12 PAGE 1
MACRO ASSEMBLER A51 V1.11
OBJECT MODULE PLACED IN 2008_10_09.OBJ
ASSEMBLER INVOKED BY: C:\MANLEY\PMEDWIN\A51.EXE 2008_10_09.ASM DB
LOC OBJ LINE SOURCE
1 ;******************************************************************
2 ;模块名: 通信宝开发板 硬件型号: STC89C52
3 ;创建人: 张轩伟 日期: 2008_10_09
4 ;修改人: 张轩伟 日期: 2008_10_09
5 ;功能描述: 读开发板上P1.0~p1.3键值,并返回到PC机上串口调试助手
6 ;其他说明: 暂无
7 ;版本: 1.0
8 ;******************************************************************
0000 9 ORG 0000H
0000 0130 10 AJMP MAIN ;主程序入口
0023 11 ORG 0023H
0023 01A0 12 AJMP RS232 ;串行中断程序入口
0030 13 ORG 0030H
0030 758920 14 MAIN: MOV TMOD,#20H ;初始化定时器1为方式2
0033 758700 15 MOV PCON,#00H ;SMOD=0,波特率不倍增
0036 759850 16 MOV SCON,#50H ;串行口方式一,允许接收
0039 758DFA 17 MOV TH1,#0FAH ;波特率:4800
003C 758BFA 18 MOV TL1,#0FAH
003F D28E 19 SETB TR1 ;启动定时器1
0041 D2AF 20 SETB EA ;开启总中断
0043 D2AC 21 SETB ES ;开启串行中断
0045 7590FF 22 MOV P1,#0FFH ;初始化P1口
0048 E590 23 KEY: MOV A,P1 ;读P1口
004A 540F 24 ANL A,#0FH ;屏蔽高四位
004C B40F03 25 CJNE A,#0FH,KEY1 ;判断有无按键按下
004F 020048 26 LJMP KEY
0052 120097 27 KEY1: LCALL DELAY ;10MS延时,消抖与确认按键
0055 E590 28 MOV A,P1 ;读P1口
0057 540F 29 ANL A,#0FH ;屏蔽高四位
0059 B40F03 30 CJNE A,#0FH,KEY2 ;判断有无按键
005C 020048 31 LJMP KEY
005F B40E06 32 KEY2: CJNE A,#0EH,KEY3 ;判断P1.0有无键按下
0062 75997A 33 MOV SBUF,#122 ;发送ASC||字符"z"至PC
0065 020083 34 LJMP KEY9
0068 B40D06 35 KEY3: CJNE A,#0DH,KEY4 ;判断P1.1有无键按下
006B 759978 36 MOV SBUF,#120 ;发送ASC||字符"x"至PC
006E 020083 37 LJMP KEY9
0071 B40B06 38 KEY4: CJNE A,#0BH,KEY5 ;判断P1.2有无键按下
0074 759977 39 MOV SBUF,#119 ;发送ASC||字符"w"至PC
0077 020083 40 LJMP KEY9
007A B40706 41 KEY5: CJNE A,#07H,KEY9 ;判断P1.3有无键按下
007D 759976 42 MOV SBUF,#118 ;发送ASC||字符"v"至PC
0080 020083 43 LJMP KEY9
0083 E590 44 KEY9: MOV A,P1 ;读P1口
0085 540F 45 ANL A,#0FH ;屏蔽高四位
0087 B40FF9 46 CJNE A,#0FH,KEY9 ;判断按键是否断开
008A 120097 47 LCALL DELAY ;10ms延时
008D E590 48 MOV A,P1 ;读P1口
008F 540F 49 ANL A,#0FH ;屏蔽高四位
0091 B40FEF 50 CJNE A,#0FH,KEY9 ;判断按键是否断开
0094 020048 51 LJMP KEY
0097 7E14 52 DELAY: MOV R6,#014H ;10MS延时
0099 7FFF 53 DELY1: MOV R7,#0FFH
009B DFFE 54 DJNZ R7,$
009D DEFA 55 DJNZ R6,DELY1
009F 22 56 RET
57 ;串行服务中断子程序
00A0 309808 58 RS232: JNB RI,RSI ;判断是否接收标志
A51 MACRO ASSEMBLER 2008_10_09 11/12/2008 21:05:12 PAGE 2
00A3 C298 59 CLR RI ;清接收中断标志RI
00A5 859940 60 MOV 40H,SBUF ;将接受命令存至40H
00A8 8540A0 61 MOV P2,40H
00AB 309902 62 RSI: JNB TI,RSI2 ;判断是否发送标志
00AE C299 63 CLR TI ;清发送中断标志TI
00B0 32 64 RSI2: RETI ;中断返回
65 END
A51 MACRO ASSEMBLER 2008_10_09 11/12/2008 21:05:12 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
DELAY. . . . . . . C ADDR 0097H A
DELY1. . . . . . . C ADDR 0099H A
EA . . . . . . . . B ADDR 00A8H.7 A
ES . . . . . . . . B ADDR 00A8H.4 A
KEY. . . . . . . . C ADDR 0048H A
KEY1 . . . . . . . C ADDR 0052H A
KEY2 . . . . . . . C ADDR 005FH A
KEY3 . . . . . . . C ADDR 0068H A
KEY4 . . . . . . . C ADDR 0071H A
KEY5 . . . . . . . C ADDR 007AH A
KEY9 . . . . . . . C ADDR 0083H A
MAIN . . . . . . . C ADDR 0030H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
PCON . . . . . . . D ADDR 0087H A
RI . . . . . . . . B ADDR 0098H.0 A
RS232. . . . . . . C ADDR 00A0H A
RSI. . . . . . . . C ADDR 00ABH A
RSI2 . . . . . . . C ADDR 00B0H A
SBUF . . . . . . . D ADDR 0099H A
SCON . . . . . . . D ADDR 0098H A
TH1. . . . . . . . D ADDR 008DH A
TI . . . . . . . . B ADDR 0098H.1 A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TR1. . . . . . . . B ADDR 0088H.6 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -