📄 text1.lst
字号:
C51 COMPILER V8.05a TEXT1 10/23/2007 20:50:58 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 #define KEY P1
3 unsigned char key_code,count=0,key_value=0,i=0;
4 unsigned char LED_discode[]={ 0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
5 unsigned char disbuf[]={0,0};
6 unsigned char LED_bitcode[]={0x01,0x02};
7
8 //********************************************************************************************************
-*********
9 void manage_key1(void)
10 { key_value=1; }
11 void manage_key2(void)
12 { key_value=2; }
13 void manage_key3(void)
14 { key_value=3; }
15 void manage_key4(void)
16 { key_value=4; }
17 void manage_key5(void)
18 { key_value=5; }
19 void manage_key6(void)
20 { key_value=6; }
21 void manage_key7(void)
22 { key_value=7; }
23 void manage_key8(void)
24 { key_value=8; }
25 void manage_key9(void)
26 { key_value=9; }
27 void manage_key10(void)
28 { key_value=10; }
29 void manage_key11(void)
30 { key_value=11; }
31 void manage_key12(void)
32 { key_value=12; }
33 void manage_key13(void)
34 { key_value=13; }
35 void manage_key14(void)
36 { key_value=14; }
37 void manage_key15(void)
38 { key_value=15; }
39 void manage_key16(void)
40 { key_value=16; }
41 //**********************************************************************************************
42 bit judge_hitkey()
43 { unsigned char scancode;
44 1 scancode=0x0f;
45 1 KEY=scancode;
46 1 if(KEY==0x0f) return 0;
47 1 else return 1;
48 1 }
49 //******************************************
50 unsigned char key_scan()
51 { unsigned char keycode,scancode;
52 1 scancode=0xfe;
53 1 while(scancode!=0xef)
54 1 { KEY=scancode;
C51 COMPILER V8.05a TEXT1 10/23/2007 20:50:58 PAGE 2
55 2 keycode=KEY;
56 2 if((KEY&0xf0)!=0xf0) break;
57 2 scancode=~((~scancode)<<1);
58 2 }
59 1 keycode=~keycode;
60 1 return(keycode);
61 1 }
62 //******************************************
63 void key_manage(unsigned char keycode_1)
64 { switch(keycode_1)
65 1 { case 0x11:manage_key1();break;
66 2 case 0x12:manage_key2();break;
67 2 case 0x14:manage_key3();break;
68 2 case 0x18:manage_key4();break;
69 2 case 0x21:manage_key5();break;
70 2 case 0x22:manage_key6();break;
71 2 case 0x24:manage_key7();break;
72 2 case 0x28:manage_key8();break;
73 2 case 0x41:manage_key9();break;
74 2 case 0x42:manage_key10();break;
75 2 case 0x44:manage_key11();break;
76 2 case 0x48:manage_key12();break;
77 2 case 0x81:manage_key13();break;
78 2 case 0x82:manage_key14();break;
79 2 case 0x84:manage_key15();break;
80 2 case 0x88:manage_key16();break;
81 2 default:break;
82 2 }
83 1 }
84 //******************************************
85 void display(void)
86 {
87 1 if(i==0)
88 1 { P3=0x00;
89 2 P2=LED_discode[disbuf[0]];
90 2 P3=0x01;
91 2 i=1;
92 2 }
93 1 else { P3=0x00;
94 2 P2=LED_discode[disbuf[1]];
95 2 P3=0x02;
96 2 i=0;
97 2 }
98 1 }
99 //*******************************************
100 void timer1_ger()
101 { TMOD=0x20;
102 1 TR1=1;
103 1 TH1=0x06;
104 1 TL1=0x06;
105 1 ET1=1;
106 1 EA=1;
107 1 }
108 //*********************************************
109 void main(void)
110 { timer1_ger();
111 1 while(1);
112 1 }
113 //****************************************************
114 void timer1_scankey(void) interrupt 3
115 { ++count;
116 1 disbuf[0]=key_value%10;
C51 COMPILER V8.05a TEXT1 10/23/2007 20:50:58 PAGE 3
117 1 disbuf[1]=key_value/10;
118 1 display();
119 1 if(count%10==0)
120 1 { switch(count/10)
121 2 { case 1:if(judge_hitkey()==0)
122 3 { count=0;
123 4 break;
124 4 }
125 3 case 2:break;
126 3 case 3:if(judge_hitkey()==0) count=0;
127 3 else key_code= key_scan();
128 3 break;
129 3 default:if(judge_hitkey()==0)
130 3 { key_manage(key_code);
131 4 count=0;
132 4 }
133 3 }
134 2
135 2 }
136 1 }
137
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 395 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 ----
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 + -