📄 file14.lst
字号:
PAGE 1
1: ;下载程序以后,关闭电源,按照光盘袋子里面说明书的要求,联接好串口线
2: ;然后打开串口调试软件,按照您连接的串口,设置好串口特性(注意波特率)
3: ;然后发送数据给下面的机器,并接受下面发送上来的数据!
4:
5:
6: B B7 beep bit p3.7 ;蜂鸣器定义
7:
8: N 0000 org 00h
9: 0000 02 00 30 jmp main
10: N 0023 org 23h ;串行中断入口地址
11: 0023 02 00 5D jmp com_int ;串行中断服务程序
12:
13: ;*********** 主程序开始 *******************
14: N 0030 org 30h
15: 0030 75 81 30 main: mov sp,#30h ;设置堆栈
16: 0033 12 00 3B lcall rest ;初始化
17: 0036 12 00 47 lcall comm ;串口初始化
18: 0039 80 FE jmp $ ;原地等待
19:
20: ; ************* 初始化 *********************
21: 003B 75 80 00 rest: mov p0,#00h ;禁止数码管显示
22: 003E 75 A0 FF mov p2,#255
23: 0041 C2 B7 clr beep ;禁止蜂鸣器
24: 0043 75 90 FF mov p1,#255 ;禁止LED显示
25: 0046 22 RET ;返回
26:
27: ; ************** 串口初始化 *****************
28: ;设置串行口工作方式1,定时器1作为波特率发生器
29: ;波特率设置为 2400 ;
30:
31: 0047 75 89 20 comm: mov tmod,#20h ;设置定时器T1工作方式2
32: 004A 75 8B F3 mov tl1,#0f3h ;定时器计数初值,波特率 2400
33: 004D 75 8D F3 mov th1,#0f3h ;定时器重装值
34: 0050 D2 AF setb ea ;允许总的中断
35: 0052 D2 AC setb es ;允许串行中断
36: 0054 75 87 00 mov pcon,#00h ;波特率不倍增
37: 0057 75 98 50 mov scon,#50h ;设置串口工作方式1,REN = 1 允许接收
38: 005A D2 8E setb tr1 ;定时器开始工作
39: 005C 22 ret ;返回
40: ;*************** 串口中断服务程序 ***********
41: ; 如果接收 0FF 表示上位机需要联机信号,单片机发送 0FFH作为
42: ; 应答信号,如果接收到 数字 1~ n,表示相应的功能;
43: ; 这里,如果收到 1 ,则单片机向计算机发送字符 'H';
44: ; 如果收到 2 ,则单片机向计算机发送字符 'e';
45: ; 如果收到其他的数据,则发送 'J';
46: 005D C2 AC com_int: clr es ;禁止串行中断
47: 005F C2 98 clr ri ;清除接收标志位
48: 0061 E5 99 mov a,sbuf ;从缓冲区取出数据
49: 0063 F5 90 mov p1,a
50: 0065 90 00 9F mov dptr,#tab
51: 0068 B4 FF 0B cjne a,#0ffh,in_1 ;检查数据
52: 006B 75 99 FF mov sbuf,#255 ;收到联机信号,发送联机信号
53: 006E 30 99 FD jnb ti,$ ;等待发送完毕
54: 0071 C2 99 clr ti ;清除发送标志
55: 0073 D2 AC setb es ;允许串行中断
56: 0075 32 reti ;中断返回
PAGE 2
57: 0076 B4 01 0B in_1: cjne a,#1H, in_2 ;如果收到1
58: 0079 93 movc a,@a+dptr
59: 007A F5 99 mov sbuf,a ;发送 'h'
60: 007C 30 99 FD jnb ti,$ ;等待发送完毕
61: 007F C2 99 clr ti ;清除发送中断标志
62: 0081 D2 AC setb es ;允许串行中断
63: 0083 32 reti ;中断返回
64: 0084 B4 02 0B in_2: cjne a,#2,in_3 ;接收到 2
65: 0087 93 movc a,@a+dptr
66: 0088 F5 99 mov sbuf,a ;发送 'e'
67: 008A 30 99 FD jnb ti,$ ;等待发送完毕
68: 008D C2 99 clr ti ;清除发送中断
69: 008F D2 AC setb es ;允许串行中断
70: 0091 32 reti ;中断返回
71: 0092 74 03 in_3: mov a,#03h
72: 0094 93 movc a,@a+dptr
73: 0095 F5 99 mov sbuf,a ;发送 'j'
74: 0097 30 99 FD jnb ti,$ ;等待发送完毕
75: 009A C2 99 clr ti ;清除发送中断标志
76: 009C D2 AC setb es ;允许串行中断
77: 009E 32 reti ;返回
78: 009F 32 68 65 6A tab: db '2','h','e','j'
79: end
register banks used: ---
0 个错误
PAGE 3
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
AC BIT D6
ACC DATA E0
B DATA F0
BEEP BIT B7 6
COMM CODE 0047 31
COM_INT CODE 005D 46
CY BIT D7
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 0003
EXTI1 CODE 0013
F0 BIT D5
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IN_1 CODE 0076 57
IN_2 CODE 0084 64
IN_3 CODE 0092 71
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
MAIN CODE 0030 15
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
REST CODE 003B 21
RI BIT 98
RS0 BIT D3
PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
T0 BIT B4
T1 BIT B5
TAB CODE 009F 78
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -