📄 uart.lst
字号:
C51 COMPILER V7.50 UART 04/03/2007 10:38:52 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN UART.obj
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE IIC[Ultral]\UART.c BROWSE DEBUG OBJECTEXTEND PRINT(.\UART.lst) OBJECT(UART.
-obj)
line level source
1 #include "iic.h"
2
3 ///////////发送部分////////////
4 void putchar(unsigned char ch)
5 {
6 1 // ES=0;
7 1 TI=0;
8 1 SBUF=ch;
9 1 while(!TI);
10 1 TI=0;
11 1 // ES=1;
12 1 }
13
14 void UART_PrintStr(const char Head[])
15 {
16 1 unsigned char *ptr;
17 1 TxEN=1;
18 1 ptr=Head;
19 1 while(*ptr)
20 1 {
21 2 putchar(*ptr);
22 2 ptr+=1;
23 2 }
24 1 TxEN=0;
25 1 }
26
27 void UART_PrintNum(unsigned int dat)
28 {
29 1 unsigned char xdata i;
30 1 TxEN=1;
31 1 while(dat>=1000)
32 1 dat-=1000;
33 1
34 1 i=0;
35 1 while(dat>=100)
36 1 {
37 2 i++;
38 2 dat-=100;
39 2 }
40 1 i+='0';
41 1 putchar(i);
42 1 i=0;
43 1 while(dat>=10)
44 1 {
45 2 i++;
46 2 dat-=10;
47 2 }
48 1 i+='0';
49 1 putchar(i);
50 1 dat+='0';
51 1 putchar(dat);
52 1 putchar('\n');
53 1 TxEN=0;
54 1 }
C51 COMPILER V7.50 UART 04/03/2007 10:38:52 PAGE 2
55
56 ////////////协议部分//////////
57 unsigned char xdata SendBuf[10];
58
59 void UART_Ack(unsigned char dat)
60 {
61 1 //对广播地址的不发响应
62 1 if(RecBuf[0]==0x00)
63 1 return;
64 1 TxEN=1;
65 1 putchar(0xff);
66 1 putchar(0x7f);//head
67 1 putchar(0x01);//destination id:主站地址0x01
68 1 putchar(MacAddr);//Source id
69 1 if(dat==0xff)
70 1 putchar(0xff);
71 1 putchar(dat);
72 1 putchar(0xff);
73 1 putchar(0x01);
74 1 TxEN=0;
75 1 }
76
77 unsigned char LastData=0;
78 unsigned char xdata RecBuf[128];
*** ERROR C231 IN LINE 78 OF IIC[ULTRAL]\UART.C: 'RecBuf': redefinition
79 unsigned char RecCnt=0;
*** ERROR C231 IN LINE 79 OF IIC[ULTRAL]\UART.C: 'RecCnt': redefinition
*** ERROR C231 IN LINE 79 OF IIC[ULTRAL]\UART.C: 'RecCnt': redefinition
80 unsigned char RecTemp;//=0;//
81
82 void UART_ISR() interrupt INT_SOURCE_SERIAL using 2
83 {
84 1 if(RI)
85 1 {
86 2 RecTemp=SBUF;
87 2 if(LastData!=0xff)
88 2 {
89 3 RecBuf[RecCnt]=RecTemp;
90 3 LastData=RecTemp;
91 3 RecCnt++;
92 3 }
93 2 else if(LastData==0xff)
94 2 {
95 3 LastData=RecTemp;
96 3 if(RecTemp==0x7f)
97 3 RecCnt=0;//清空队列
98 3 else if(RecTemp==0x01)
99 3 NewPackage=1;
100 3 else if(RecTemp==0xff)
101 3 LastData=0x7f;
102 3 else
103 3 {
104 4 RecBuf[RecCnt]=RecTemp;
105 4 RecCnt++;
106 4 }
107 3 }
108 2 RI=0;
109 2 }
110 1 }
C51 COMPILATION COMPLETE. 0 WARNING(S), 3 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -