📄 8583.lst
字号:
C51 COMPILER V8.08 8583 09/08/2008 10:51:48 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 8583
OBJECT MODULE PLACED IN 8583.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE 8583.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<intrins.h>
3 #define nop4() _nop_();_nop_();_nop_();_nop_();
4 #define nop5() _nop_();_nop_();_nop_();_nop_();_nop_();
5 #define rAdd 0xa1
6 #define wAdd 0xa0
7
8 typedef unsigned char uchar;
9 sbit VSCL = P3^6;
10 sbit VSDA = P3^7;
11 uchar bdata rechar;
12 sbit one = rechar^0;
13
14 void AckIIC()
15 {
16 1 VSDA = 0;
17 1 VSCL = 1;
18 1 nop4();
19 1 VSCL = 0;
20 1 VSDA = 1;
21 1 }
22
23 void StartIIC()
24 {
25 1 VSDA = 1;//hi
26 1 VSCL = 1;
27 1 nop4();
28 1 VSDA = 0;//low
29 1 nop4();
30 1 VSCL = 0;
31 1 }
32
33 void StopIIC()
34 {
35 1 VSDA = 0;
36 1 VSCL = 1;
37 1 nop4();
38 1 VSDA = 1;
39 1 nop5();
40 1 VSDA = 0;
41 1 VSCL = 0;
42 1 }
43
44 bit CheckAckIIC()
45 {
46 1 bit flag;//有效为真
47 1 VSDA = 1;//prepare to read
48 1 VSCL = 1;//
49 1 flag = ~VSDA;//low ia avalible
50 1 VSCL = 0;
51 1 return flag;
52 1
53 1 }
54
55 void SendByteIIC(char schar)
C51 COMPILER V8.08 8583 09/08/2008 10:51:48 PAGE 2
56 {
57 1 unsigned char data i;
58 1 for(i = 8;i!=0;--i)
59 1 {
60 2 schar = schar<<1;
61 2 VSDA = CY;
62 2 VSCL = 1;
63 2 nop4();
64 2 VSCL = 0;
65 2 VSDA = 0;
66 2 }
67 1 }
68
69 void WriteByteEE(uchar addr,uchar wChar)
70 {
71 1 StartIIC();
72 1 SendByteIIC(wAdd);
73 1 CheckAckIIC();
74 1 SendByteIIC(addr);
75 1 CheckAckIIC();
76 1 SendByteIIC(wChar);
77 1 CheckAckIIC();
78 1 StopIIC();
79 1 }
80
81 void ReadByteIIC(uchar data * rchar)
82 {
83 1 uchar i;
84 1 for(i = 8; i ;i --)
85 1 {
86 2 rechar = rechar<<1;
87 2 VSDA = 1;
88 2 VSCL = 1; //make the data useful
89 2 _nop_();
90 2 _nop_();
91 2 one = VSDA;
92 2 VSCL = 0;
93 2 }
94 1 *rchar = rechar;
95 1 }
96
97 void ReadByteEE(uchar addr,uchar data * rchar)
98 {
99 1 StartIIC();
100 1 SendByteIIC(wAdd);
101 1 CheckAckIIC();
102 1 SendByteIIC(addr);
103 1 CheckAckIIC();
104 1 StartIIC();
105 1 SendByteIIC(rAdd);
106 1 CheckAckIIC();
107 1 ReadByteIIC(rchar);
108 1 StopIIC();
109 1 }
110
111 void int1() interrupt 2
112 {
113 1 P1 = 0;
114 1 }
115
116 void main(){
117 1
C51 COMPILER V8.08 8583 09/08/2008 10:51:48 PAGE 3
118 1 IT1 = 0;
119 1 EA = 1;
120 1 EX1 = 1;
121 1 INT1 = 1;
122 1 WriteByteEE(0,0x80);
123 1 WriteByteEE(4,0x00);
124 1 WriteByteEE(3,0x00);
125 1 WriteByteEE(2,0x00);
126 1 WriteByteEE(1,0x00);
127 1
128 1 WriteByteEE(5,0x00);
129 1 WriteByteEE(6,0x00);
130 1
131 1 WriteByteEE(8,0xB0);//每日闹钟
132 1 WriteByteEE(9,0x00);
133 1 WriteByteEE(0x0A,9);
134 1 WriteByteEE(0x0B,0);
135 1 WriteByteEE(0x0C,0);
136 1 WriteByteEE(0x0D,0);
137 1 WriteByteEE(0x0E,0);
138 1 WriteByteEE(0,0x0C);
139 1 while(1);
140 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 277 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -