📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 10/29/2008 11:24:03 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2
3 sbit cs_138=P2^6;
4 sbit cs_373=P2^5;
5
6 unsigned code zima1[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
7 unsigned char keydat=1;
8
9 void keyscan(void); //按键扫描函数声明;
10 void keyfind(unsigned char); //按键分析函数声明;
11
12 void main()
13 {
14 1 cs_138=1;
15 1 cs_373=1;
16 1 while(1)
17 1 {
18 2 P1=0xf0;
19 2 if((~P1)&0xf0) //判别列线是否有键被按下
20 2 {
21 3 keyscan();
22 3 }
23 2 P0=zima1[keydat-1]; //所要显示的数据
24 2 P2=0x1c|0x60; //所要显示的数据位置
25 2 }
26 1 }
27 /*以下是按键函数处理的调用程序*/
28 void keyscan(void)
29 {
30 1 P1=0xfe;
31 1 keyfind(0);
32 1
33 1 P1=0xfd;
34 1 keyfind(4);
35 1
36 1 P1=0xfb;
37 1 keyfind(8);
38 1
39 1 P1=0xf7;
40 1 keyfind(12);
41 1 }
42
43 void keyfind(unsigned char i) //键植分析
44 {
45 1 switch((~P1)&0xf0)
46 1 {
47 2 case 0x10:
48 2 keydat=1+i; //列线p14被按下
49 2 break;
50 2 case 0x20:
51 2 keydat=2+i; //列线p15被按下
52 2 break;
53 2 case 0x40:
54 2 keydat=3+i; //列线p16被按下
55 2 break;
C51 COMPILER V7.50 MAIN 10/29/2008 11:24:03 PAGE 2
56 2 case 0x80:
57 2 keydat=4+i; //列线p17被按下
58 2 break;
59 2 default:break;
60 2 }
61 1 }
62
63
64
65
66
67
68
69
70
71
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 116 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -