📄 ledkey.lst
字号:
C51 COMPILER V7.00 LEDKEY 07/18/2007 12:16:39 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE LEDKEY
OBJECT MODULE PLACED IN LedKey.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LedKey.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "LedKey.h"
2
3 xdata DWORD m_TickCount = 0;
4 DWORD GetTickCount(){return m_TickCount;}
5
6 void Sleep(DWORD iMilliseconds)
7 {
8 1 DWORD TickCount = GetTickCount();
9 1 while((GetTickCount() - TickCount) < iMilliseconds)
10 1 {
11 2 //WDT_CONTR = 0x3C; //复位看门狗
12 2 }
13 1 }
14
15 //数码管显示娩冲区
16 uchar xdata g_led_buf1[8] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
17 uchar xdata g_led_buf2[8] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
18
19 // 这里定义的是数码管对应的字符字根
20 code uchar disbuf_u[]={
21 0xC0,/*0*/
22 0xF9,/*1*/
23 0xA4,/*2*/
24 0xB0,/*3*/
25 0x99,/*4*/
26 0x92,/*5*/
27 0x82,/*6*/
28 0xF8,/*7*/
29 0x80,/*8*/
30 0x90,/*9*/
31 0x88,/*A*/
32 0x83,/*b*/
33 0xC6,/*C*/
34 0xA7,/*c*/
35 0xA1,/*d*/
36 0x86,/*E*/
37 0x8E,/*F*/
38 0x89,/*H*/
39 0x8B,/*h*/
40 0xC7,/*L*/
41 0xAB,/*n*/
42 0xC8,/*N*/
43 0xA3,/*o*/
44 0x8C,/*P*/
45 0xAF,/*r*/
46 0x87,/*t*/
47 0xC1,/*U*/
48 0xBF,/*-*/
49 };
50
51 #define StateIO StateIO_1
52 #define bSerialRSLed bSerialRSLed_1
53
54 char bdata OutIO _at_ 0x21;
55 char bdata InIO = 0;
C51 COMPILER V7.00 LEDKEY 07/18/2007 12:16:39 PAGE 2
56 char bdata StateIO _at_ 0x20;
57
58 sbit bSerialRSLed = StateIO^7;
59 uchar xdata bSerialRSLedDelay = 0;
60 sbit BeepIO = P4^3;
61
62 #define Refurbish(x) x = 1;x = 0;
63 #define GledIO P2_2
64 #define Led1IO P2_0
65 #define Led2IO P2_1
66
67 uchar xdata g_LedOn = 0;
68
69 //-----------beep------------
70 int xdata m_OpenDelay = 0;
71 int xdata m_CloseDelay = 0;
72 //延时多久执行
73 int xdata m_BeepDelay = 0;
74 char xdata m_Times = 0;
75 int xdata m_beep = 0;
76
77 //Key--------------------------
78 xdata uchar key;
79 xdata uchar Prvkey;
80 xdata uint keycount = 0;
81 xdata uchar keybuf[6];
82 xdata uchar KeyPos = 0;
83
84 void AddKey(uchar ukey)
85 {
86 1 if(KeyPos < 5)
87 1 {
88 2 keybuf[KeyPos++] = ukey;
89 2 Beep(30, 0, 1, 0);
90 2 }else
91 1 Beep(20, 20, 3, 0);
92 1 }
93
94 uchar GetKey(void)
95 {
96 1 if(KeyPos)
97 1 {
98 2 Beep(30, 0, 1, 0);
99 2 return keybuf[--KeyPos];
100 2 }
101 1 return 0;
102 1 }
103 //---------------------------Key
104 uchar xdata m_uFlash = 0;//闪...
105 uchar xdata m_uFlashBit1 = 0;
106 uchar xdata m_uFlashBit2 = 0;
107 void SetLedFlash1(uchar uFlash)
108 {
109 1 m_uFlashBit1 = uFlash;
110 1 }
111
112 void SetLedFlash2(uchar uFlash)
113 {
114 1 m_uFlashBit2 = uFlash;
115 1 }
116
117 //数码管显示中断
C51 COMPILER V7.00 LEDKEY 07/18/2007 12:16:39 PAGE 3
118 void IntLed(void)
119 {
120 1 P2_4 = 0;
121 1 InIO = ~P0;
122 1 P2_4 = 1;
123 1 g_led_buf1[6] = ~OutIO;
124 1 g_led_buf1[7] = ~InIO;
125 1 g_led_buf2[7] = ~StateIO;
126 1 P0 = ~OutIO;
127 1 Refurbish(P2_5);
128 1 //----------------------------------------
129 1 P0 = 0xFF;
130 1 Refurbish(Led1IO);
131 1 Refurbish(Led2IO);
132 1 P0 = ~(0x01 << g_LedOn);
133 1 Refurbish(GledIO);
134 1
135 1 if(g_LedOn < 6)
136 1 {
137 2 if((m_uFlashBit1&(0x20 >> g_LedOn))&&(m_uFlash < 125))
138 2 {
139 3 P0 = 0xFF;
140 3 }else
141 2 {
142 3 if(g_led_buf1[g_LedOn] != 0xFF)
143 3 {
144 4 P0 = disbuf_u[g_led_buf1[g_LedOn]&0x7F];
145 4 if(g_led_buf1[g_LedOn]&0x80)
146 4 P0 &= 0x7F;
147 4 }else P0 = 0xFF;
148 3 }
149 2 }else P0 = g_led_buf1[g_LedOn];
150 1 Refurbish(Led1IO);
151 1 if(g_LedOn < 7)
152 1 {
153 2 if((m_uFlashBit2&(0x40 >> g_LedOn))&&(m_uFlash < 125))
154 2 {
155 3 P0 = 0xFF;
156 3 }else
157 2 {
158 3 if(g_led_buf2[g_LedOn] != 0xFF)
159 3 {
160 4 P0 = disbuf_u[g_led_buf2[g_LedOn]&0x7F];
161 4 if(g_led_buf2[g_LedOn]&0x80)
162 4 P0 &= 0x7F;
163 4 }else P0 = 0xFF;
164 3 }
165 2 }else P0 = g_led_buf2[g_LedOn];
166 1 Refurbish(Led2IO);
167 1
168 1 g_LedOn++;
169 1 if(g_LedOn > 8)
170 1 {
171 2 g_LedOn = 0;
172 2 //--------------------
173 2 if(bSerialRSLed)
174 2 {
175 3 bSerialRSLedDelay++;
176 3 if(bSerialRSLedDelay > 2)
177 3 {
178 4 bSerialRSLed = bSerialRSLedDelay = 0;
179 4 }
C51 COMPILER V7.00 LEDKEY 07/18/2007 12:16:39 PAGE 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -