📄 8583.lst
字号:
C51 COMPILER V8.08 8583 09/08/2008 13:11:28 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 #include"lcdapi.h"
4 #define nop4() _nop_();_nop_();_nop_();_nop_();
5 #define nop5() _nop_();_nop_();_nop_();_nop_();_nop_();
6 #define rAdd 0xa1
7 #define wAdd 0xa0
8
9 typedef unsigned char uchar;
10 sbit VSCL = P3^6;
11 sbit VSDA = P3^7;
12 uchar bdata rechar;
13 sbit one = rechar^0;
14
15 void AckIIC()
16 {
17 1 VSDA = 0;
18 1 VSCL = 1;
19 1 nop4();
20 1 VSCL = 0;
21 1 VSDA = 1;
22 1 }
23
24 void StartIIC()
25 {
26 1 VSDA = 1;//hi
27 1 VSCL = 1;
28 1 nop4();
29 1 VSDA = 0;//low
30 1 nop4();
31 1 VSCL = 0;
32 1 }
33
34 void StopIIC()
35 {
36 1 VSDA = 0;
37 1 VSCL = 1;
38 1 nop4();
39 1 VSDA = 1;
40 1 nop5();
41 1 VSDA = 0;
42 1 VSCL = 0;
43 1 }
44
45 bit CheckAckIIC()
46 {
47 1 bit flag;//有效为真
48 1 VSDA = 1;//prepare to read
49 1 VSCL = 1;//
50 1 flag = ~VSDA;//low ia avalible
51 1 VSCL = 0;
52 1 return flag;
53 1
54 1 }
55
C51 COMPILER V8.08 8583 09/08/2008 13:11:28 PAGE 2
56 void SendByteIIC(char schar)
57 {
58 1 unsigned char data i;
59 1 for(i = 8;i!=0;--i)
60 1 {
61 2 schar = schar<<1;
62 2 VSDA = CY;
63 2 VSCL = 1;
64 2 nop4();
65 2 VSCL = 0;
66 2 VSDA = 0;
67 2 }
68 1 }
69
70 void WriteByteEE(uchar addr,uchar wChar)
71 {
72 1 StartIIC();
73 1 SendByteIIC(wAdd);
74 1 CheckAckIIC();
75 1 SendByteIIC(addr);
76 1 CheckAckIIC();
77 1 SendByteIIC(wChar);
78 1 CheckAckIIC();
79 1 StopIIC();
80 1 }
81
82 void ReadByteIIC(uchar data * rchar)
83 {
84 1 uchar i;
85 1 for(i = 8; i ;i --)
86 1 {
87 2 rechar = rechar<<1;
88 2 VSDA = 1;
89 2 VSCL = 1; //make the data useful
90 2 _nop_();
91 2 _nop_();
92 2 one = VSDA;
93 2 VSCL = 0;
94 2 }
95 1 *rchar = rechar;
96 1 }
97
98 void ReadByteEE(uchar addr,uchar data * rchar)
99 {
100 1 StartIIC();
101 1 SendByteIIC(wAdd);
102 1 CheckAckIIC();
103 1 SendByteIIC(addr);
104 1 CheckAckIIC();
105 1 StartIIC();
106 1 SendByteIIC(rAdd);
107 1 CheckAckIIC();
108 1 ReadByteIIC(rchar);
109 1 StopIIC();
110 1 }
111 void init8583()
112 {
113 1 uchar i;
114 1 for(i = 0;i < 16; i ++)
115 1 {
116 2 WriteByteEE(i,0x00);
117 2 }
C51 COMPILER V8.08 8583 09/08/2008 13:11:28 PAGE 3
118 1 }
119 void main(){
120 1 uchar rchar;
121 1 init8583();
122 1 init_lcd();
123 1 WriteByteEE(0,0x80);
124 1 WriteByteEE(8,0xCA); //闹钟计时器
125 1 WriteByteEE(7,0x00);
126 1 WriteByteEE(0x0F,0x05);
127 1 WriteByteEE(0,0x04);
128 1
129 1 while(1)
130 1 {
131 2 ReadByteEE(7,&rchar);
132 2 DisChar(0x80,(rchar >> 4) + 0x30);
133 2 DisChar(0x81,(rchar & 0x0F) + 0x30);
134 2 ReadByteEE(0x0F,&rchar);
135 2 DisChar(0x82,(rchar >> 4) + 0x30);
136 2 DisChar(0x83,(rchar & 0x0F) + 0x30);
137 2 }
138 1 while(1);
139 1 }
140
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 294 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 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 + -