📄 4.3.4.lst
字号:
141 2 {
142 3 send_byte(RTL_UNCYL); //不循环左移指令
143 3 write7279(DECODE0,j); //译码方式0指令,显示在第1位
144 3 delay10ms(50);
145 3 }
146 2 delay10ms(150);
147 2 //send_byte(CMD_RESET);
148 2 /***************消隐指令测试程序**************************/
149 2 k=0xff;
150 2 for (j=0;j<6;j++)
151 2 {
152 3 k=k<<1;
153 3 write7279(ACTCTL,k); //每隔1秒增加一个消隐位
154 3 delay10ms(100);
155 3 }
156 2 write7279(ACTCTL,0xff); //恢复8位显示
157 2 delay10ms(100);
158 2 send_byte(CMD_RESET); //消除显示
159 2 /***********译码方式1及右移指令测试程序********************/
160 2 for (j=0;j<16;j++)
161 2 {
162 3 send_byte(RTR_UNCYL); //不循环右移指令
163 3 write7279(DECODE1+7,j); //译码方式1指令,显示在第8位
164 3 delay10ms(50);
165 3 }
166 2 delay10ms(150);
167 2 /***************消隐指令测试程序**************************/
168 2 k=0xff;
169 2 for (j=0;j<6;j++)
170 2 {
171 3 k=k/2;
172 3 write7279(ACTCTL,k); //每隔1秒增加一个消隐位
173 3 delay10ms(100);
174 3 }
175 2 write7279(ACTCTL,0xff); //恢复8位显示
176 2 delay10ms(100);
177 2 send_byte(CMD_RESET); //消除显示
178 2 /*************段点亮指令和段关闭指令程序****************************/
179 2 for (j=0;j<64;j++)
C51 COMPILER V8.02 4_3_4 12/13/2007 12:52:34 PAGE 4
180 2 {
181 3 write7279(SEGON,j); //将64个显示段逐个点亮
182 3 write7279(SEGOFF,j-1); //同时将前一个显示段关闭
183 3 delay10ms(20);
184 3 }
185 2 }
186 1 }
187
188 void write7279(unsigned char cmd, unsigned char dta)
189 {
190 1 send_byte (cmd);
191 1 send_byte (dta);
192 1 }
193
194 unsigned char read7279(unsigned char command)
195 {
196 1 send_byte(command);
197 1 return(receive_byte());
198 1 }
199
200 void send_byte( unsigned char out_byte)
201 {
202 1 unsigned char i;
203 1 cs=0;
204 1 long_delay();
205 1 for (i=0;i<8;i++)
206 1 {
207 2 if (out_byte&0x80)
208 2 {
209 3 dat=1;
210 3 }
211 2 else
212 2 {
213 3 dat=0;
214 3 }
215 2 clk=1;
216 2 short_delay();
217 2 clk=0;
218 2 short_delay();
219 2 out_byte=out_byte*2;
220 2 }
221 1 dat=0;
222 1 }
223
224 unsigned char receive_byte(void)
225 {
226 1 unsigned char i, in_byte;
227 1 dat=1; //设为输入状态
228 1 long_delay();
229 1 for (i=0;i<8;i++)
230 1 {
231 2 clk=1;
232 2 short_delay();
233 2 in_byte=in_byte*2;
234 2 if (dat)
235 2 {
236 3 in_byte=in_byte|0x01;
237 3 }
238 2 clk=0;
239 2 short_delay();
240 2 }
241 1 dat=0;
C51 COMPILER V8.02 4_3_4 12/13/2007 12:52:34 PAGE 5
242 1 return (in_byte);
243 1 }
244
245 void long_delay(void)
246 {
247 1 unsigned char i;
248 1 for (i=0;i<0x30;i++);
249 1 }
250
251 void short_delay(void)
252 {
253 1 unsigned char i;
254 1 for (i=0;i<8;i++);
255 1 }
256
257 /********************* 延时n*10ms **********************/
258 void delay10ms(unsigned char time)
259 {
260 1 unsigned char i;
261 1 unsigned int j;
262 1 for (i=0;i<time;i++)
263 1 {
264 2 for(j=0;j<0x590;j++)
265 2 {
266 3 //if (!key)
267 3 //{
268 3 //key_int();
269 3 //}
270 3 ;
271 3 }
272 2 }
273 1 }
274
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 760 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 5
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -