📄 计价器存储.lst
字号:
C51 COMPILER V8.02 计价芲存储 04/22/2007 20:47:35 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 计价芲存储
OBJECT MODULE PLACED IN 计价器存储.OBJ
COMPILER INVOKED BY: d:\Keil 8\C51\BIN\C51.EXE 计价器存储.c BROWSE DEBUG OBJECTEXTEND
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 uchar shijian[8]={0,0,16,0,0,16,0,0}; //时间存储单元
19 unsigned char lucheng[8]={0,0,18,0,16,0,18,0}; //路程存储单元
20 uchar jiage[8]={2,19,17,0,19,17,5,20} ; //价格存储单元
21 uchar zongjia[8]={0,18,17,17,17,0,18,0} ; //总价存储单元
22 uchar mima[8]={16,16,16,16,16,16,16,16} ; //输密码存储单元
23 uchar mima1[8]={1,2,3,4,5,6,7,8}; //原始密码存储单元
24 uchar lu,x,y,cuo=0,hour1,w=0,m=0,n; //定义相关变量
25 int i;
26 uchar dis;
27 char second;
28 char minite,minite2;
29 char hour;
30 uint tcnt,tcnt2,tcnt3;
31 uchar ms,a,c,jia;
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 sbit led=P1^4;
41 sbit res=P3^0;
42 bit k=0;
43
44 delay(int t) //延时子程序
45 {
46 1 int s,e;
47 1 for(s=0;s<t;s++)
48 1 for(e=0;e<100;e++);
49 1 }
50
51 void mdelay(uchar j)
52 {
53 1 uint i;
54 1 for(;j>0;j--)
55 1 {
C51 COMPILER V8.02 计价芲存储 04/22/2007 20:47:35 PAGE 2
56 2 for(i=0;i<125;i--)
57 2 {;}
58 2 }
59 1 }
60
61 void start(void)
62 {
63 1 sda=1;
64 1 scl=1;
65 1 _nop_();_nop_();_nop_();_nop_();
66 1 sda=0;
67 1 _nop_();_nop_();_nop_();_nop_();
68 1 }
69
70 void stop(void)
71 {
72 1 sda=0;
73 1 scl=1;
74 1 _nop_();_nop_();_nop_();_nop_();
75 1 sda=1;
76 1 _nop_();_nop_();_nop_();_nop_();
77 1
78 1 }
79
80 void ack(void)
81 {
82 1 sda=0;
83 1 _nop_();_nop_();_nop_();_nop_();
84 1 scl=1;
85 1 _nop_();_nop_();_nop_();_nop_();
86 1 scl=0;
87 1 }
88
89 void noack(void)
90 {
91 1 sda=1;
92 1 _nop_();_nop_();_nop_();_nop_();
93 1 scl=1;
94 1 _nop_();_nop_();_nop_();_nop_();
95 1 scl=0;
96 1 }
97
98 void send(uchar Data)
99 {
100 1 uchar bitcounter=8;
101 1 uchar temp;
102 1 do
103 1 {
104 2 temp=Data;
105 2 scl=0;
106 2 _nop_();_nop_();_nop_();_nop_();
107 2 if((temp&0x80)==0x80)
108 2 sda=1;
109 2 else
110 2 sda=0;
111 2 scl=1;
112 2 temp=Data<<1;
113 2 Data=temp;
114 2 bitcounter--;
115 2 }while(bitcounter);
116 1 scl=0;
117 1 }
C51 COMPILER V8.02 计价芲存储 04/22/2007 20:47:35 PAGE 3
118
119 uchar read(void)
120 {
121 1 uchar temp=0;
122 1 uchar temp1=0;
123 1 uchar bitcounter=8;
124 1 sda=1;
125 1 do
126 1 {
127 2 scl=0;
128 2 _nop_();_nop_();_nop_();_nop_();
129 2 scl=1;
130 2 _nop_();_nop_();_nop_();_nop_();
131 2 if(sda)
132 2 temp=temp|0x01;
133 2 else
134 2 temp=temp&0xfe;
135 2 if(bitcounter-1)
136 2 {
137 3 temp1=temp<<1;
138 3 temp=temp1;
139 3 }
140 2 bitcounter--;
141 2 }while(bitcounter);
142 1 return(temp);
143 1 }
144
145 void wrtorom(uchar Data[],uchar address,uchar num)
146 {
147 1 uchar i;
148 1 uchar *pData;
149 1 pData=Data;
150 1 for(i=0;i<num;i++)
151 1 {
152 2 start();
153 2 send(0xa0);
154 2 ack();
155 2 send(address+i);
156 2 ack();
157 2 send(*(pData+i));
158 2 ack();
159 2 stop();
160 2 mdelay(20);
161 2 }
162 1 }
163
164 void rdfromrom(uchar Data[],uchar address,uchar num)
165 {
166 1 uchar i;
167 1 uchar *pData;
168 1 pData=Data;
169 1 for(i=0;i<num;i++)
170 1 {
171 2 start();
172 2 send(0xa0);
173 2 ack();
174 2 send(address+i);
175 2 ack();
176 2 start();
177 2 send(0xa1);
178 2 ack();
179 2 *(pData+i)=read();
C51 COMPILER V8.02 计价芲存储 04/22/2007 20:47:35 PAGE 4
180 2 scl=0;
181 2 noack();
182 2 stop();
183 2 }
184 1 }
185
186 yijian() //一键是否按下子程序
187 {
188 1 char q=0;
189 1 if(k0==0)
190 1 {
191 2 delay(2);
192 2 if(k0==0)
193 2 {
194 3 q=1;
195 3 while(1) if(k0==1) break;
196 3 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -