?? mima.lst
字號:
C51 COMPILER V8.08 MIMA 11/12/2007 17:13:27 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MIMA
OBJECT MODULE PLACED IN mima.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE mima.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<intrinS.h>
3 #include<absacc.h>
4
5 #define uchar unsigned char
6 #define C02_write 0xa0
7 #define C02_read 0xa1
8
9 #define no0 0x28
10 #define no1 0x14
11 #define no2 0x24
12 #define no3 0x44
13 #define no4 0x12
14 #define no5 0x22
15 #define no6 0x42
16 #define no7 0x11
17 #define no8 0x21
18 #define no9 0x41
19 #define enter 0x88
20 #define backspace 0x81
21
22 #define lcm_write_cmd_add XBYTE[0x80FF]
23 #define lcm_write_data_add XBYTE[0x81FF]
24 #define lcm_read_busy_add XBYTE[0x82FF]
25 #define lcm_read_data_add XBYTE[0x83FF]
26
27 uchar idata temp5_password[6]={0x00,0x00,0x00,0x00,0x00,0x00};
28 uchar idata key_code[]={no0,no1,no3,no4,no5,no6,no7,no8,no9};
29
30 sbit SCL=P3^0;
31 sbit SDA=P3^1;
32 sbit i=P3^2;
33 bit ack;
34
35 uchar int_counter_1;
36 unsigned int int_counter_2;
37
38 void delayms(uchar i)
39 {
40 1 uchar j;
41 1 for(;i>0;i--)
42 1 for(j=124;j>0;j--);
43 1 }
44
45 void longdelay(uchar i)
46 {
47 1 unsigned int j;
48 1 for(;i>0;i--)
49 1 for(j=10000;j>0;j--);
50 1 }
51
52 void lcm_wait()
53 {
54 1 while(lcm_read_busy_add&0x80);
55 1 }
C51 COMPILER V8.08 MIMA 11/12/2007 17:13:27 PAGE 2
56
57 void lcm_write_cmd(uchar lcm_cmd)
58 {
59 1 lcm_wait();
60 1 lcm_write_cmd_add=lcm_cmd;
61 1 }
62
63 void lcm_write_data(uchar lcm_data)
64 {
65 1 lcm_wait();
66 1 lcm_write_data_add=lcm_data;
67 1 }
68
69 uchar lcm_read_data(void)
70 {
71 1 uchar lcm_data;
72 1 lcm_wait();
73 1 lcm_data=lcm_read_data_add;
74 1 return(lcm_data);
75 1 }
76
77 void lcm_setxy(uchar x,uchar y)
78 {
79 1 if(y==1) lcm_write_cmd(x|0x80);
80 1 if(y==2) lcm_write_cmd(x|0xc0);
81 1 }
82
83 void lcm_write_string(uchar *string)
84 {
85 1 uchar i=0;
86 1 while(string[i]!='\0')
87 1 {
88 2 lcm_write_data(string[i]);
89 2 i++;
90 2 }
91 1 }
92
93 void lcm_roll_display(uchar *string,uchar y)
94 {
95 1 uchar counter;
96 1 lcm_write_cmd(0x06);
97 1 lcm_setxy(0,y);
98 1 while(string[counter]!='\0')
99 1 {
100 2 lcm_write_data(string[counter]);
101 2 counter++;
102 2 if (counter==19) lcm_setxy(19,y);
103 2 longdelay(2);
104 2
105 2 }
106 1 lcm_write_cmd(0x07);
107 1 lcm_setxy(19,y);
108 1 while(string[counter]!='\0')
109 1 {
110 2 lcm_write_data(string[counter]);
111 2 counter++;
112 2 if (counter==19) lcm_setxy(19,y);
113 2 longdelay(2);
114 2
115 2 }
116 1 }
117
C51 COMPILER V8.08 MIMA 11/12/2007 17:13:27 PAGE 3
118 void lcm_init()
119 {
120 1 delayms(20);
121 1 lcm_write_cmd_add=0x38;
122 1 delayms(4);
123 1 lcm_write_cmd_add=0x38;
124 1 delayms(1);
125 1 lcm_write_cmd_add=0x38;
126 1 lcm_write_cmd(0x38);
127 1 lcm_write_cmd(0x0f);
128 1 lcm_write_cmd(0x01);
129 1 lcm_write_cmd(0x06);
130 1 }
131
132 void I2C_start(void)
133 {
134 1 SDA=1;
135 1 SCL=1;
136 1 _nop_();
137 1 _nop_();
138 1 _nop_();
139 1 _nop_();
140 1 _nop_();
141 1 SDA=0;
142 1 _nop_();
143 1 _nop_();
144 1 _nop_();
145 1 _nop_();
146 1 _nop_();
147 1 SCL=0;
148 1 _nop_();
149 1 _nop_();
150 1 }
151
152 void I2C_stop(void)
153 {
154 1 SDA=0;
155 1 SCL=1;
156 1 _nop_();
157 1 _nop_();
158 1 _nop_();
159 1 _nop_();
160 1 _nop_();
161 1 SDA=1;
162 1 _nop_();
163 1 _nop_();
164 1 _nop_();
165 1 _nop_();
166 1 _nop_();
167 1 SCL=0;
168 1 _nop_();
169 1 _nop_();
170 1 }
171
172 void I2C_ackownledge(void)
173 {
174 1 SDA=0;
175 1 _nop_();
176 1 _nop_();
177 1 SCL=1;
178 1 _nop_();
179 1 _nop_();
C51 COMPILER V8.08 MIMA 11/12/2007 17:13:27 PAGE 4
180 1 _nop_();
181 1 _nop_();
182 1 _nop_();
183 1 SCL=0;
184 1 _nop_();
185 1 _nop_();
186 1 _nop_();
187 1 }
188
189 void I2C_no_ackownledge(void)
190 {
191 1 SDA=1;
192 1 _nop_();
193 1 _nop_();
194 1 SCL=1;
195 1 _nop_();
196 1 _nop_();
197 1 _nop_();
198 1 _nop_();
199 1 _nop_();
200 1 SCL=0;
201 1 _nop_();
202 1 _nop_();
203 1 _nop_();
204 1 }
205
206 void I2C_sendB(uchar byte)
207 {
208 1 uchar counter;
209 1 for(counter=0;counter<8;counter++)
210 1 {
211 2 if(byte&0x80) SDA=1;
212 2 else SDA=0;
213 2 _nop_();
214 2 SCL=1;
215 2 _nop_();
216 2 _nop_();
217 2 _nop_();
218 2 _nop_();
219 2 _nop_();
220 2 SCL=0;
221 2 _nop_();
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -