📄 uart0_isr.lst
字号:
C51 COMPILER V7.06 UART0_ISR 01/02/2008 09:19:10 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE UART0_ISR
OBJECT MODULE PLACED IN UART0_ISR.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE UART0_ISR.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //串口发送数据
2 #include "c8051.h"
3
4 extern bit chuankou_bz;
5 extern bit jieshu_bz;
6 //extern bit error_bz=0;
7 //bit jieshu_bz=0;
8 extern bit error_bz;
9 extern uchar pointer;
10 extern uchar receive[COUNT1];
11 uchar txsjjs;
12
13 void UART0_ISR (void) interrupt 4
14 {
15 1 unsigned char astring;
16 1 while(RI0==0);//串口接收标志位的软件清零//
17 1 RI0=0;
18 1 astring=SBUF0;
19 1 // ES0=0;
20 1 if(pointer==0)
21 1 {if( astring==0x68&&chuankou_bz==0)
22 2 {chuankou_bz=1;
23 3 receive[pointer++]=astring;
24 3 txsjjs=100;
25 3 }
26 2 else error_bz=1;
27 2 }
28 1 else
29 1 {if(chuankou_bz==1)
30 2 {if(pointer>9)
31 3 {if(pointer==9+2+receive[9])
32 4 { if(astring==0x16)
33 5 { receive[pointer++]=astring;
34 6 jieshu_bz=1;
35 6 pointer=0; //jieshu通讯
36 6 }
37 5 else error_bz=1;
38 5 }
39 4 else
40 4 {if(pointer>COUNT1)
41 5 {error_bz=1;
42 6 }
43 5 else receive[pointer++]=astring;
44 5 }
45 4 }
46 3 else
47 3 { if(pointer==7)
48 4 {if(astring==0x68)
49 5 {receive[pointer++]=astring;
50 6 }
51 5 else
52 5 {error_bz=1;
53 6 }
54 5 }
55 4 else
C51 COMPILER V7.06 UART0_ISR 01/02/2008 09:19:10 PAGE 2
56 4 {receive[pointer++]=astring;
57 5 }
58 4 }
59 3 }
60 2 else error_bz=1;
61 2 }
62 1
63 1
64 1 if(error_bz==1)
65 1 { uchar j;
66 2 error_bz=0;
67 2 pointer=0;
68 2 chuankou_bz=0;
69 2 for(j=0;j<COUNT1;j++)
70 2 {
71 3 receive[j]=0;
72 3 }
73 2
74 2 }
75 1
76 1
77 1
78 1 //if((astring==0x68)&&(chuankou_bz==0))
79 1 // {
80 1
81 1 // chuankou_bz=1;//开始接收数据标志
82 1 // }
83 1 // receive[pointer++]=astring;
84 1 // if(pointer==COUNT1)
85 1 // {
86 1 // ES0=0; //数据长度到了,表示可以结束了!
87 1 // }
88 1 // ES0=1;
89 1 }
90
91
92 void RS485(void)
93 { uchar j;
94 1 uchar i;
95 1 uchar r[18]={0x68,0x90,0x78,0x56,0x00,0x00,0x00,0x68,0x81,0x06,0x43,0xc3,0x11,0x11,0x11,0x11,0xff,0x16};
96 1 // TXC=0;
97 1 for(i=100;i>0;i--);
98 1 // while(pointer==COUNT1)
99 1 // {
100 1
101 1 //pointer=0;
102 1 //chuankou_bz=0;
103 1 TXC=1;
104 1 ES0=0;
105 1 for(i=100;i>0;i--);
106 1 for(j=0;j<18;j++)
107 1 {
108 2 SBUF0=r[j];
109 2 while(TI0==0);
110 2 TI0=0;
111 2 }
112 1 ES0=1;
113 1 TXC=0; //485通讯向外发送数据
114 1 // }
115 1 }
C51 COMPILER V7.06 UART0_ISR 01/02/2008 09:19:10 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 242 ----
CONSTANT SIZE = 18 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 19
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -