📄 404.lst
字号:
C51 COMPILER V6.12 404 09/02/2007 01:39:52 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE 404
OBJECT MODULE PLACED IN .\404.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\404.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg52.h"
2
3 //数码管上显示的0-9的显示代码
4
5 //共阴:
6 //unsigned char code LEDCODE[]=
7 //{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴
8
9 //共阳
10 unsigned char code LEDCODE[]=
11 {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //共阳
12
13 void delay(void) //好像是延时10MS
14 {
15 1 unsigned char i,j;
16 1 for(i=20;i>0;i--)
17 1 for(j=248;j>0;j--);
18 1 }
19
20 void main(void)
21 {
22 1 unsigned char key;
23 1 P2=0X00; //初始化数码管显示"8"
24 1 while(1)
25 1 {
26 2 P3=0xef; //此举是为了方便在平凡老师提供的仿真附件上使用
27 2 P1=0xef;//扫描第一列
28 2 if ((P1 & 0x0f)!=0x0f) //判断是该列是否有键按下
29 2 {
30 3 delay(); //去抖动
31 3 if ((P1 & 0x0f)!=0x0f) //再判断该列是否有键按下
32 3 {
33 4 switch(P1& 0x0f) //读取行的代码,分析是哪一行有键按下
34 4 {
35 5 case 0x0e:
36 5 key=15;
37 5 break;
38 5 case 0x0d:
39 5 key=14;
40 5 break;
41 5 case 0x0b:
42 5 key=13;
43 5 break;
44 5 case 0x07:
45 5 key=12;
46 5 break;
47 5 }
48 4 P2=LEDCODE[key];//送出显示
49 4 while((P1&0x0f)!=0x0f);//等待按键释放
50 4 }
51 3 }
52 2 P3=0xdf;//扫描第二列
53 2 P1=0xdf;//扫描第二列
54 2 if ((P1 & 0x0f)!=0x0f)
55 2 {
C51 COMPILER V6.12 404 09/02/2007 01:39:52 PAGE 2
56 3 delay();
57 3 if ((P1 & 0x0f)!=0x0f)
58 3 {
59 4 switch(P1 & 0x0f)
60 4 {
61 5 case 0x0e:
62 5 key=11;
63 5 break;
64 5 case 0x0d:
65 5 key=10;
66 5 break;
67 5 case 0x0b:
68 5 key=9;
69 5 break;
70 5 case 0x07:
71 5 key=8;
72 5 break;
73 5 }
74 4 P2=LEDCODE[key];
75 4 while((P1 & 0x0f)!=0x0f);
76 4 }
77 3 }
78 2 P3=0xbf;//扫描第三列
79 2 P1=0xbf;//扫描第三列
80 2 if ((P1 & 0x0f)!=0x0f)
81 2 {
82 3 delay();
83 3 if ((P1 & 0x0f)!=0x0f)
84 3 {
85 4 switch(P1 & 0x0f)
86 4 {
87 5 case 0x0e:
88 5 key=7;
89 5 break;
90 5 case 0x0d:
91 5 key=6;
92 5 break;
93 5 case 0x0b:
94 5 key=5;
95 5 break;
96 5 case 0x07:
97 5 key=4;
98 5 break;
99 5 }
100 4 P2=LEDCODE[key];
101 4 while((P1&0x0f)!=0x0f);
102 4 }
103 3 }
104 2 P3=0x7f;//扫描第四列
105 2 P1=0x7f;//扫描第四列
106 2 if ((P1&0x0f)!=0x0f)
107 2 {
108 3 delay();
109 3 if ((P1&0x0f)!=0x0f)
110 3 {
111 4 switch(P1 & 0x0f)
112 4 {
113 5 case 0x0e:
114 5 key=3;
115 5 break;
116 5 case 0x0d:
117 5 key=2;
C51 COMPILER V6.12 404 09/02/2007 01:39:52 PAGE 3
118 5 break;
119 5 case 0x0b:
120 5 key=1;
121 5 break;
122 5 case 0x07:
123 5 key=0;
124 5 break;
125 5 }
126 4 P2=LEDCODE[key];
127 4 while((P1 & 0x0f)!=0x0f);
128 4 }
129 3 }
130 2
131 2 }
132 1 }
133
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 315 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -