📄 7279.lst
字号:
163 NOSELECT7279; //置CS高电平
164 }
165 */
166
167 void MoveLeft(void)
168 {
169 1 Send7279Byte(0xA1); //发左移指令
170 1 NOSELECT7279; //置CS高电平
171 1 }
172
173 void MoveRight(void)
174 {
175 1 Send7279Byte(0xA0); //发右移指令
176 1 NOSELECT7279; //置CS高电平
177 1 }
178
179 unsigned char code BdSeg[]={
C51 COMPILER V7.06 7279 01/24/2005 10:04:57 PAGE 4
180 0x7e,0x30,0x6d,0x79, // 0 1 2 3
181 0x33,0x5b,0x5f,0x70, // 4 5 6 7
182 0x7f,0x7b,0x77,0x1f, // 8 9 a b
183 0x4e,0x3d,0x4f,0x47, // c d e f
184 0x00,0x01};
185
186 void DispLED(char *DispBuf,char ShowDot)//ShowDot 显示小数点位
187 {
188 1 char i,ch;
189 1 ShowDot--;
190 1 for (i=0;i<6;i++)
191 1 {
192 2 ch=DispBuf[i];
193 2 if ((ch>='a') && (ch<='f'))
194 2 {
195 3 ch-='a';ch+=0xa;
196 3 }
197 2 if ((ch>='A') && (ch<='F'))
198 2 {
199 3 ch-='A';ch+=0xa;
200 3 }
201 2 Send7279Byte(0x90+5-i); //不译码
202 2 if (ch==' ')
203 2 Send7279Byte(0x00);
204 2 else
205 2 if (ch=='-')
206 2 Send7279Byte(0x01);
207 2 else
208 2 {
209 3 if (ShowDot==i)
210 3 Send7279Byte(0x80|BdSeg[ch&0x0f]);
211 3 else
212 3 Send7279Byte(BdSeg[ch&0x0f]);
213 3 }
214 2 }
215 1 NOSELECT7279; //置CS高电平
216 1 }
217
218 char GetKeyValue(void)
219 {
220 1 char KeyValue;
221 1 if (CPT1CN&0x40) return -1; //无键按下
222 1 Send7279Byte(0x15); //发读键盘指令
223 1 KeyValue=Receive7279Byte();
224 1 NOSELECT7279; //置CS高电平
225 1 return KeyValue;
226 1 }
227
228 void WaitKeyOff(void)
229 {
230 1 while (!(CPT1CN&0x40));
231 1 }
232
233 void Test7279(bit LoopFlag)
234 {
235 1 char i,KeyValue;
236 1 Delay1ms(25); //等待25ms复位时间
237 1 Send7279Byte(0xA4); //发复位指令
238 1 NOSELECT7279; //置CS高电平
239 1 if (LoopFlag==0) return;
240 1 DispLED("123456",0); //显示123456
241 1 for (i=0;i<8;i++)
C51 COMPILER V7.06 7279 01/24/2005 10:04:57 PAGE 5
242 1 {
243 2 Delay1s(1);
244 2 MoveLeft();
245 2 }
246 1
247 1 DispLED("123456",0); //显示123456
248 1 Delay1s(1);
249 1
250 1 DispLED("7890AB",2); //显示7890ab
251 1 Delay1s(1);
252 1
253 1 DispLED("CDEF -",3); //显示cdef -
254 1
255 1 for (i=0;i<6;i++)
256 1 {
257 2 Delay1s(1);
258 2 MoveRight();
259 2 }
260 1
261 1 DispLED("F 1",1); //显示123456
262 1
263 1 FlashLED(0); //第一位闪烁
264 1 Delay1s(10);
265 1 FlashLED(1); //第二位闪烁
266 1 Delay1s(10);
267 1 FlashLED(8); //关闪烁
268 1
269 1 //BlankLED(0x23); //注意:执行消隐后,键盘输入中断口不能恢复.
270 1
271 1 for (;;)
272 1 {
273 2 KeyValue=GetKeyValue();
274 2 if(KeyValue!=-1)
275 2 {
276 3 Send7279Byte(0xC8); //发送键码值,按方式1译码下载显示
277 3 Send7279Byte(KeyValue%16);
278 3 NOSELECT7279; //置CS高电平
279 3 WaitKeyOff();
280 3 }
281 2 }
282 1 }
283
284
285
286 void Delay1us(unsigned char us)
287 {
288 1 while (us)
289 1 {
290 2 _nop_();
291 2 _nop_();
292 2 _nop_();
293 2 _nop_();
294 2 _nop_();
295 2 --us;
296 2 }
297 1 }
298
299 void Delay1ms(unsigned char T)
300 {
301 1 Count1ms=T;
302 1 while (Count1ms);
303 1 }
C51 COMPILER V7.06 7279 01/24/2005 10:04:57 PAGE 6
304
305 void Delay1s(unsigned char T)
306 {
307 1 while (T)
308 1 {
309 2 Delay1ms(200);
310 2 Delay1ms(200);
311 2 Delay1ms(200);
312 2 Delay1ms(200);
313 2 Delay1ms(200);
314 2 T--;
315 2 }
316 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 710 ----
CONSTANT SIZE = 46 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 13
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 + -