📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 08/27/2007 10:50:51 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3 #include <absacc.h>
4 #include "define.h"
5 #include "delay.h"
6 #include "lcd1602.h"
7 #define SNUM 8
8 #define RNUM 9
9 uchar sdbuf[SNUM]="recive?";
10 uchar rvbuf[RNUM];
11 uchar ri,si;
12 bit rcved,rcv,acked;
13 bit Send(uchar addr);//主机,从机
14 void main()
15 {
16 1 Lcd_Initial();
17 1 Lcd_Puts(2,0,"connecting...");
18 1 SCON=0x90;//串口工作方式2
19 1 PCON|=0x80;
20 1 EA=1;//开串口中断
21 1 ES=1;
22 1
23 1 rcved=0;
24 1 ri=0;si=0;
25 1 rcv=1;
26 1 //while(!Send(0xfe));
27 1 while(1)
28 1 {
29 2 if(rcved)
30 2 {
31 3 Lcd_Putint(0,1,3,rvbuf[0]);
32 3 Lcd_Puts(4,1,&(rvbuf[1]));
33 3 rcved=0;
34 3 }
35 2 }
36 1 while(1);
37 1 }
38 bit Send(uchar addr)//主机,从机
39 {
40 1 uchar temp=100;
41 1 SBUF=addr;//发送地址
42 1
43 1 while(1)//等待应答
44 1 {
45 2 if(acked)//检查应答标志
46 2 {
47 3 acked=0;
48 3 si=0;
49 3 break;//继续发送
50 3 }
51 2 temp--;
52 2 if(temp==0)return 0;//检测应答失败
53 2 }
54 1 //继续发送
55 1 while(1)
C51 COMPILER V7.50 MAIN 08/27/2007 10:50:51 PAGE 2
56 1 {
57 2 if(TI)
58 2 {
59 3 TI=0;
60 3 SBUF=sdbuf[si++];
61 3 if(si==SNUM)
62 3 {
63 4 return 1;
64 4 }
65 3 }
66 2 }
67 1 }
68 void rvchar() interrupt 4 using 1 //利用中断接受数据,主机
69 {
70 1 uchar temp;
71 1 EA=0;//关中断
72 1 if(RI)
73 1 {
74 2 temp=SBUF;
75 2 RI=0;
76 2 if(temp==0xff)//应答信号
77 2 {
78 3 acked=1;
79 3 }
80 2 else//接受到信息
81 2 {
82 3 if(rcv)
83 3 {
84 4 rvbuf[ri++]=temp;
85 4 if(ri==1)SBUF=0xff;
86 4 if(ri==RNUM)
87 4 {
88 5 rcv=0;
89 5 rcved=1;
90 5 ri=0;
91 5 }
92 4 }
93 3 }
94 2 }
95 1 EA=1;//开中断
96 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 641 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 19 32
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -