?? 計價器存儲.lst
字號:
C51 COMPILER V8.02 計價芲存儲 03/12/2007 20:08:55 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 計價芲存儲
OBJECT MODULE PLACED IN .\計價器存儲.obj
COMPILER INVOKED BY: d:\Keil 8\C51\BIN\C51.EXE ..\7\計價器存儲.c BROWSE DEBUG OBJECTEXTEND PRINT(.\計價器存儲.lst) OBJEC
-T(.\計價器存儲.obj)
line level source
1 #include <AT89X51.H>
2 #include<intrins.h>
3
4 #define uchar unsigned char
5 #define uint unsigned int
6 #define addwr 0xa0
7 #define addrd 0xa1
8
9 unsigned char code duanma[]={0x3f,0x06,0x5b,0x4f, //定義段碼
10 0x66,0x6d,0x7d,0x07,
11 0x7f,0x6f,0x77,0x7c,
12 0x39,0x5e,0x79,0x71,
13 0x40,0x00,0xbf,0x86,
14 0xdb,0xcf,0xe6,0xed,
15 0xfd,0x87,0xff,0xef};
16 unsigned char weima[]={0xfe,0xfd,0xfb,0xf7, //定義掃描位碼
17 0xef,0xdf,0xbf,0x7f};
18 unsigned char shijian[8]={0,0,16,0,0,16,0,0}; //時間存儲單元
19 unsigned char lucheng[8]={0,0,18,0,16,0,18,0}; //路程存儲單元
20 char jiage[8]={2,19,17,0,19,17,5,20} ; //價格存儲單元
21 unsigned char zongjia[8]={0,18,17,17,17,0,18,0} ; //總價存儲單元
22 char mima[8]={16,16,16,16,16,16,16,16} ; //輸密碼存儲單元
23 unsigned char mima1[8]={1,2,3,4,5,6,7,8}; //原始密碼存儲單元
24 unsigned char lu,x,y,cuo=0,hour1,w=0,m=0,n; //定義相關變量
25 int i;
26 unsigned char dis;
27 char second;
28 char minite,minite2;
29 char hour;
30 unsigned int tcnt,tcnt2;
31 unsigned char ms,a,c;
32
33 sbit k0=P1^0;
34 sbit k1=P1^1;
35 sbit k2=P1^2;
36 sbit k3=P1^3;
37 sbit sda=P1^7;
38 sbit scl=P1^6;
39 sbit wp=P1^5;
40 bit k=0;
41
42 delay(int t) //延時子程序
43 {
44 1 int s,e;
45 1 for(s=0;s<t;s++)
46 1 for(e=0;e<100;e++);
47 1 }
48
49 void mdelay(uchar j)
50 {
51 1 uint i;
52 1 for(;j>0;j--)
53 1 {
54 2 for(i=0;i<125;i--)
C51 COMPILER V8.02 計價芲存儲 03/12/2007 20:08:55 PAGE 2
55 2 {;}
56 2 }
57 1 }
58
59 void start(void)
60 {
61 1 sda=1;
62 1 scl=1;
63 1 _nop_();_nop_();_nop_();_nop_();
64 1 sda=0;
65 1 _nop_();_nop_();_nop_();_nop_();
66 1 }
67
68 void stop(void)
69 {
70 1 sda=0;
71 1 scl=1;
72 1 _nop_();_nop_();_nop_();_nop_();
73 1 sda=1;
74 1 _nop_();_nop_();_nop_();_nop_();
75 1
76 1 }
77
78 void ack(void)
79 {
80 1 sda=0;
81 1 _nop_();_nop_();_nop_();_nop_();
82 1 scl=1;
83 1 _nop_();_nop_();_nop_();_nop_();
84 1 scl=0;
85 1 }
86
87 void noack(void)
88 {
89 1 sda=1;
90 1 _nop_();_nop_();_nop_();_nop_();
91 1 scl=1;
92 1 _nop_();_nop_();_nop_();_nop_();
93 1 scl=0;
94 1 }
95
96 void send(uchar Data)
97 {
98 1 uchar bitcounter=8;
99 1 uchar temp;
100 1 do
101 1 {
102 2 temp=Data;
103 2 scl=0;
104 2 _nop_();_nop_();_nop_();_nop_();
105 2 if((temp&0x80)==0x80)
106 2 sda=1;
107 2 else
108 2 sda=0;
109 2 scl=1;
110 2 temp=Data<<1;
111 2 Data=temp;
112 2 bitcounter--;
113 2 }while(bitcounter);
114 1 scl=0;
115 1 }
116
C51 COMPILER V8.02 計價芲存儲 03/12/2007 20:08:55 PAGE 3
117 uchar read(void)
118 {
119 1 uchar temp=0;
120 1 uchar temp1=0;
121 1 uchar bitcounter=8;
122 1 sda=1;
123 1 do
124 1 {
125 2 scl=0;
126 2 _nop_();_nop_();_nop_();_nop_();
127 2 scl=1;
128 2 _nop_();_nop_();_nop_();_nop_();
129 2 if(sda)
130 2 temp=temp|0x01;
131 2 else
132 2 temp=temp&0xfe;
133 2 if(bitcounter-1)
134 2 {
135 3 temp1=temp<<1;
136 3 temp=temp1;
137 3 }
138 2 bitcounter--;
139 2 }while(bitcounter);
140 1 return(temp);
141 1 }
142
143 void wrtorom(uchar Data[],uchar address,uchar num)
144 {
145 1 uchar i;
146 1 uchar *pData;
147 1 pData=Data;
148 1 for(i=0;i<num;i++)
149 1 {
150 2 start();
151 2 send(0xa0);
152 2 ack();
153 2 send(address+i);
154 2 ack();
155 2 send(*(pData+i));
156 2 ack();
157 2 stop();
158 2 mdelay(20);
159 2 }
160 1 }
161
162 void rdfromrom(uchar Data[],uchar address,uchar num)
163 {
164 1 uchar i;
165 1 uchar *pData;
166 1 pData=Data;
167 1 for(i=0;i<num;i++)
168 1 {
169 2 start();
170 2 send(0xa0);
171 2 ack();
172 2 send(address+i);
173 2 ack();
174 2 start();
175 2 send(0xa1);
176 2 ack();
177 2 *(pData+i)=read();
178 2 scl=0;
C51 COMPILER V8.02 計價芲存儲 03/12/2007 20:08:55 PAGE 4
179 2 noack();
180 2 stop();
181 2 }
182 1 }
183
184 yijian() //一鍵是否按下子程序
185 {
186 1 char q=0;
187 1 if(k0==0)
188 1 {
189 2 delay(2);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -