📄 dev_io.lst
字号:
C51 COMPILER V6.10 DEV_IO 04/09/2004 17:11:35 PAGE 1
C51 COMPILER V6.10, COMPILATION OF MODULE DEV_IO
OBJECT MODULE PLACED IN .\DEV_IO.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\DEV_IO.C OPTIMIZE(6,SPEED) DEBUG OBJECTEXTEND
stmt level source
1 #include "Fx2.h"
2 #include "Fx2regs.h"
3
4 #define PF_IDLE 0
5 #define PF_GETKEYS 1
6
7 #define KEY_WAKEUP 0
8 #define KEY_F1 1
9 #define KEY_F2 2
10 #define KEY_F3 3
11
12 #define BTN_ADDR 0x20
13 #define LED_ADDR 0x21
14
15 BYTE xdata Digit[] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x98, 0x88, 0x83, 0xc6, 0xa1,
- 0x86, 0x8e };
16
17 main()
18 {
19 1 BYTE num = 0;
20 1 BYTE xdata buttons;
21 1 BYTE kstates = 0xff;
22 1 BYTE kdeltas;
23 1 BYTE key;
24 1 BYTE display = TRUE;
25 1
26 1 EZUSB_InitI2C(); // Initialize EZ-USB I2C controller
27 1
28 1 while(TRUE)
29 1 {
30 2 EZUSB_ReadI2C(BTN_ADDR,0x01,&buttons); // Read button states
31 2
32 2 kdeltas = kstates ^ buttons; //
33 2 kstates = buttons;
34 2 key = 0;
35 2
36 2 while(kdeltas)
37 2 {
38 3 if(kdeltas & 0x01)
39 3 {
40 4 if(!((kstates >> key) & 0x01))
41 4 switch(key)
42 4 {
43 5 case KEY_F1:
44 5 if(--num > 0x0f)
45 5 num = 0x0f;
46 5 break;
47 5 case KEY_F2:
48 5 if(++num > 0x0f)
49 5 num = 0;
50 5 break;
51 5 case KEY_WAKEUP:
52 5 num = 0;
53 5 break;
54 5 case KEY_F3:
C51 COMPILER V6.10 DEV_IO 04/09/2004 17:11:35 PAGE 2
55 5 num = 0x0f;
56 5 }
57 4 display = TRUE;
58 4 }
59 3 kdeltas = kdeltas >> 1;
60 3 ++key;
61 3 }
62 2 if(display)
63 2 {
64 3 EZUSB_WriteI2C(LED_ADDR, 0x01, &(Digit[num]));
65 3 EZUSB_WaitForEEPROMWrite(LED_ADDR);
66 3 display = FALSE;
67 3 }
68 2 }
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 150 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 16 1
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
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 + -