📄 uart.lst
字号:
C51 COMPILER V7.20 UART 08/19/2007 15:13:45 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN .\uart.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ..\下位机\uart.c BROWSE DEBUG OBJECTEXTEND PRINT(.\uart.lst) OBJECT(.\uart.
-obj)
line level source
1 #include <reg51.h>
2 #include "MAX485.h"
3
4
5 extern uchar sec;
6 uchar temp[8];
7 data uchar Tbuffer[TCOUNT]; //定义发送缓冲区
8 data uchar Rbuffer[RCOUNT];//定义接受缓冲器
9 data unsigned char Tpointer; //定义当前位子指针
10 data unsigned char Rpointer;
11 void serial_init(void);
12 uchar t;
13 bit L;
14 RS485() {
15 1 RE = 1; /* 设置MAX485的接收状态*/
16 1 while(Tpointer<TCOUNT) { /* 发送缓冲区初始化 */
17 2 Tbuffer[Tpointer] = 'T';
18 2 Tpointer++;
19 2 }
20 1 send();
21 1 // if(L == 1){
22 1 // L = 0;
23 1 // send();
24 1 // }
25 1 receive();
26 1 // if(Rbuffer[1] == 'A'){
27 1 temp[2] = Rbuffer[2];
28 1 // }
29 1 }
30
31 void send(void){
32 1 RE = 1;
33 1 Tpointer=0x00;
34 1 TI = 1;
35 1 while(Tpointer <= TCOUNT); /* 等待全部数据帧发送完毕 */
36 1 }
37
38 void receive(void){
39 1 RE = 0;
40 1 Rpointer=0;
41 1 while(Rpointer+1 == RCOUNT);
42 1 }
43
44 /* 发送中断服务函数 */
45 void serial (void) interrupt 4 using 3 {
46 1 if (RI){
47 2 RI=0; /* 清接收中断标志 */
48 2 Rbuffer[Rpointer++]=SBUF;
49 2 if(Rpointer+1 == RCOUNT) return; /* 如果已接收完全部数据帧, 则此次通信结束, 置SM2=1准备下一
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -