📄 jianpanshumaxianshi.lst
字号:
C51 COMPILER V7.06 JIANPANSHUMAXIANSHI 12/26/2008 11:35:31 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE JIANPANSHUMAXIANSHI
OBJECT MODULE PLACED IN jianpanshumaxianshi.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE jianpanshumaxianshi.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<stdio.h> //通用4*4小键盘程序,可以用数码管显示键值
2 #include<at89x52.h> //可用于51单片机,晶振频率11.0592MHZ
3
4 #define uchar unsigned char
5 #define uint unsigned int
6
7 int Hang;
8 int Lie;
9 int Mazhi[4][4]={{1,2,4,3},{5,6,8,7},{9,0,11,10},{12,13,15,14}};
10 /**************************************************************/
11 // 0 1 3 2
12
13 // 1 2 3 4 .........
14 // 5 6 7 8 ......... .
15 // 9 0 . > ......... . P2接通用四乘四小键盘
16 // EXE MENU ESC < .........
17
18 // |-----|
19 // | | ........
20 // |-----| ........ .
21 // | | ........ . P3 接数码管显示
22 // |-----| . ........
23
24 // .-. .
25 // . ? . .......... P2_0接LED显示按下状态
26 // .=. .
27
28 //程序作者:王庆波,黑龙江大学电子工程学院06级,爱好者工作室,borlittle,Q:634172943
29 /*************************************************************/
30 int mz;
31 uchar code dis_7[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x7F,0x88,0xc6,0xa1,0x86,0x83};
32 /*对应键值为 0 1 2 3 4 5 6 7 8 9 . A C D E B */
33 int Key_scan();
34 void Delay();
35
36 void main()
37 {
38 1 int key;
39 1 P1=0x00;
40 1 P0_0=0;
41 1 while(1)
42 1 {
43 2 key=Key_scan();
44 2 if(key==1)
45 2 {
46 3 mz=Mazhi[Lie][Hang]; //获取码值
47 3 P3=dis_7[mz]; //查表输出段码
48 3 P1=0x80;
49 3 }
50 2 Delay();
51 2 P1=0x00;
52 2 }
53 1 }
54
55 void Delay() //延时子程序
C51 COMPILER V7.06 JIANPANSHUMAXIANSHI 12/26/2008 11:35:31 PAGE 2
56 {
57 1 long i;
58 1 for(i=5000;i>0;i--);
59 1 }
60 int Key_scan()
61 {
62 1 P2=0xF0; //行扫描
63 1 if((P2&0xF0)!=0xF0)
64 1 {
65 2 switch(P2)
66 2 {
67 3 case 0x70:
68 3 Hang=0;
69 3 break;
70 3 case 0xB0:
71 3 Hang=1;
72 3 break;
73 3 case 0xD0:
74 3 Hang=2;
75 3 break;
76 3 case 0xE0:
77 3 Hang=3;
78 3 break;
79 3 default:
80 3 break;
81 3 }
82 2 Delay();
83 2 P2=0x0F; //列扫描
84 2 if((P2&0x0F)!=0x0F)
85 2 {
86 3 switch(P2)
87 3 {
88 4 case 0x07:
89 4 Lie=0;
90 4 break;
91 4 case 0x0B:
92 4 Lie=1;
93 4 break;
94 4 case 0x0D:
95 4 Lie=2;
96 4 break;
97 4 case 0x0E:
98 4 Lie=3;
99 4 break;
100 4 default:
101 4 break;
102 4 }
103 3 return 1;
104 3 }
105 2 }
106 1 else
107 1 {
108 2 return 0;
109 2 }
110 1 }
111
112
113
114
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.06 JIANPANSHUMAXIANSHI 12/26/2008 11:35:31 PAGE 3
CODE SIZE = 239 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 38 4
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 + -