📄 wr24c64.lst
字号:
C51 COMPILER V6.02 WR24C64 03/10/2006 14:34:55 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE WR24C64
OBJECT MODULE PLACED IN WR24C64.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE WR24C64.C DB OE SMALL ROM(LARGE)
stmt level source
1 /*
2 串口通讯程序,分与分机通讯程序和与管理机通讯程序,其中:发送数据用同一个串口,接收分机数据由FPGA完成
3 接收管理机数据由51完成
4 mainFcommon(uchar txcommand)为发数据到分机,只要填好数据调用此函数即可
5 Doorcommon(void)为发数据到主机,填好数据调此函数,返回YES表示数据通讯正常
6 */
7
8
9 #include "defineh.h"
10
11 extern void nop(void);
12 extern void delays10ms();
13 extern void watchdog();
14
15 sbit mSDA=P3^4;
16 sbit mSCL=P3^5;
17
18 //*******************************************
19 void delay(uchar n)
20 {
21 1 while (n-->0);
22 1 }
23
24 /******************************************************/
25 void start(void)
26 {
27 1 mSCL=1;
28 1 mSDA=1;
29 1 nop();
30 1 mSDA=0;
31 1 nop();
32 1 }
33 /******************************************************/
34 void stop(void)
35 {
36 1 mSCL=0;
37 1 mSDA=0;
38 1 nop();
39 1 mSCL=1;
40 1 nop();
41 1 mSDA=1;
42 1 nop();
43 1 }
44 /******************************************************/
45 void send(uchar i)
46 {
47 1 uchar j;
48 1 for(j=0;j<8;j++)
49 1 {
50 2 mSCL=0;
51 2 nop();
52 2 if((i&0x80)==0x80)
53 2 mSDA=1;
54 2 else
55 2 mSDA=0;
C51 COMPILER V6.02 WR24C64 03/10/2006 14:34:55 PAGE 2
56 2 i<<=1;
57 2 mSCL=1;
58 2 nop();
59 2 watchdog();
60 2 }
61 1 mSCL=0;
62 1 nop();
63 1 mSCL=1;
64 1 mSDA=1;
65 1 for(j=0;j<100;j++)
66 1 {
67 2 delay(2);
68 2 if(!mSDA)
69 2 j=101;
70 2 }
71 1 nop();
72 1 nop();
73 1 watchdog();
74 1 /*for(j=0;j<=250;j++)
75 1 {
76 1 if(!mSDA)
77 1 j=251;
78 1 nop();
79 1 } */
80 1 }
81 /*******************************************************/
82 uchar ssnd(void)
83 {
84 1 uchar readdata,i;
85 1 readdata=0;
86 1 for(i=0;i<8;i++)
87 1 {
88 2 mSCL=0;
89 2 readdata<<=1;
90 2 nop();
91 2 if(mSDA)
92 2 readdata|=0x01;
93 2 mSCL=1;
94 2 nop();
95 2 watchdog();
96 2 }
97 1 mSCL=0;
98 1 mSDA=0;
99 1 nop();
100 1 mSCL=1;
101 1 nop();
102 1 mSDA=1;
103 1 return readdata;
104 1 }
105 /********************************************************/
106 void Write24(uint wdaddr,uchar wrdata)
107 {
108 1 uchar addh,addl;
109 1 addl=(uchar) wdaddr;
110 1 addh=(uchar) (wdaddr>>=8);
111 1 EA=0;
112 1 start();
113 1 send(0xa0);
114 1 send(addh);
115 1 send(addl);
116 1 send(wrdata);
117 1 stop();
C51 COMPILER V6.02 WR24C64 03/10/2006 14:34:55 PAGE 3
118 1 EA=1;
119 1 delays10ms();
120 1 }
121 /********************************************************/
122 uchar Read24(uint rdaddr)
123 {
124 1 uchar addh,addl;
125 1 uchar readda;
126 1 addl=(uchar) rdaddr;
127 1 addh=(uchar) (rdaddr>>=8);
128 1 EA=0;
129 1 start();
130 1 send(0xa0);
131 1 send(addh);
132 1 send(addl);
133 1 mSCL=0;
134 1 start();
135 1 send(0xa1);
136 1 readda=ssnd();
137 1 stop();
138 1 EA=1;
139 1 return readda;
140 1 }
141 /********************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 306 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 10
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 + -