?? 4x4key+led.lst
字號(hào):
C51 COMPILER V7.50 4X4KEY_LED 06/19/2008 02:53:33 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 4X4KEY_LED
OBJECT MODULE PLACED IN 4X4KEY+LED.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE 4X4KEY+LED.c BROWSE DEBUG OBJECTEXTEND
line level source
1 ///////////////////////////////////////////////////
2 //4X4鍵盤(pán)演示程序
3 //精英團(tuán)隊(duì)提供
4 //位選信號(hào) :由右到左為P20、P21、P22、P23、P24、P33
5 //LED數(shù)據(jù)線 :P0口
6 //數(shù)碼管數(shù)字碼:0 0xC0 1 0xF9 2 0xA4 3 0xB0 4 0x99 5 0x92 6 0x82 7 0xF8 8 0x80 9 0x90
7 //鍵盤(pán)數(shù)據(jù)線 :P1口
8 ///////////////////////////////////////////////////
9 #include<reg52.h>
10 sbit wei1=P2^0;
11 sbit wei2=P2^1;
12 sbit wei3=P2^2;
13 sbit wei4=P2^3;
14 sbit wei5=P2^4;
15 sbit wei6=P3^3;
16
17 unsigned char keyvalue;//定義鍵值
18
19 ///////////////////////////////////////////////////
20 void delay(unsigned long time)
21 {
22 1 while(time--);
23 1 }
24 //////////////////////////////////////////////////
25 void KEY4X4_scan(void)
26 {
27 1 keyvalue=0x00;//無(wú)按鍵時(shí)返回Ox00
28 1 P1=0xFE;//掃描第1行
29 1 delay(1);
30 1 if((P1&0xF0)!=0xF0)
31 1 keyvalue=(P1>>4)|0x10;//返回鍵值
32 1 P1=0xFD;//掃描第2行
33 1 delay(1);
34 1 if((P1&0xF0)!=0xF0)
35 1 keyvalue=(P1>>4)|0x20;//返回鍵值
36 1 P1=0xFB;//掃描第3行
37 1 delay(1);
38 1 if((P1&0xF0)!=0xF0)
39 1 keyvalue=(P1>>4)|0x30;//返回鍵值
40 1 P1=0xF7;//掃描第4行
41 1 delay(1);
42 1 if((P1&0xF0)!=0xF0)
43 1 keyvalue=(P1>>4)|0x40;//返回鍵值
44 1 }
45 //////////////////////////////////////////////////
46 void LEDdisplay(unsigned char numb,unsigned char wei)//顯示子函數(shù)
47 {
48 1 switch(numb)
49 1 {
50 2 case 0:P0=0xC0;break;
51 2 case 1:P0=0xF9;break;
52 2 case 2:P0=0xA4;break;
53 2 case 3:P0=0xB0;break;
54 2 case 4:P0=0x99;break;
55 2 case 5:P0=0x92;break;
C51 COMPILER V7.50 4X4KEY_LED 06/19/2008 02:53:33 PAGE 2
56 2 case 6:P0=0x82;break;
57 2 case 7:P0=0xF8;break;
58 2 case 8:P0=0x80;break;
59 2 case 9:P0=0x90;break;
60 2 }
61 1 switch(wei)
62 1 {
63 2 case 1:wei1=1;wei2=0;wei3=0;wei4=0;wei5=0;wei6=0;break;
64 2 case 2:wei1=0;wei2=1;wei3=0;wei4=0;wei5=0;wei6=0;break;
65 2 case 3:wei1=0;wei2=0;wei3=1;wei4=0;wei5=0;wei6=0;break;
66 2 case 4:wei1=0;wei2=0;wei3=0;wei4=1;wei5=0;wei6=0;break;
67 2 case 5:wei1=0;wei2=0;wei3=0;wei4=0;wei5=1;wei6=0;break;
68 2 case 6:wei1=0;wei2=0;wei3=0;wei4=0;wei5=0;wei6=1;break;
69 2 }
70 1
71 1 }
72 //////////////////////////////////////////////////
73 void main(void)
74 {
75 1 unsigned char numb=0;
76 1 while(1)//動(dòng)態(tài)顯示
77 1 {
78 2
79 2 KEY4X4_scan();
80 2 switch(keyvalue)
81 2 {
82 3 case 0x1E:numb=1;break;
83 3 case 0x1D:numb=2;break;
84 3 case 0x1B:numb=3;break;
85 3 case 0x17:numb=4;break;
86 3
87 3 case 0x2E:numb=5;break;
88 3 case 0x2D:numb=6;break;
89 3 case 0x2B:numb=7;break;
90 3 case 0x27:numb=8;break;
91 3
92 3 case 0x3E:numb=9;break;
93 3 case 0x3D:numb=10;break;
94 3 case 0x3B:numb=11;break;
95 3 case 0x37:numb=12;break;
96 3
97 3 case 0x4E:numb=13;break;
98 3 case 0x4D:numb=14;break;
99 3 case 0x4B:numb=15;break;
100 3 case 0x47:numb=16;break;
101 3 }
102 2 LEDdisplay(numb%10,1);delay(50);
103 2 LEDdisplay(numb/10,2);delay(50);
104 2
105 2
106 2 }
107 1 }
108 //////////////////////////////////////////////////
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 486 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 5
IDATA SIZE = ---- ----
C51 COMPILER V7.50 4X4KEY_LED 06/19/2008 02:53:33 PAGE 3
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -