📄 mm2.lst
字号:
C51 COMPILER V7.09 MM2 04/19/2007 16:01:13 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE MM2
OBJECT MODULE PLACED IN mm2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mm2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*********************************************************************/
2 //
3 // 自动报警控制
4 // ancleyan 2007.04.17
5 /*********************************************************************/
6 //使用AT89C51单片机,12MHZ晶振,P1口输入,P2口作列扫描,p3数据输出,用共阳LED数码管
7
8 #include"reg51.h"
9 #define char unsigned char
10 //
11 char code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};
12 /* 共阳LED段码表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" */
13 //char code dis_7[10]={0xC0,0xF9,0xA4,0x99,0xB0,0x82,0xF8,0x80,0x99,0xff};
14 /* 共阳LED段码表 "0" "1" "2" "8" "3" "5" "6" "7" "4" "9" "不亮" */
15 //char code scan_con[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; // 列扫描控制字
16 char code scan_con[9]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; // 列扫描控制字
17 char data keytmp[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//显示单元数据初值,共8个
18 //char data keytmp[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//显示单元数据初值,共8个
19 char data key[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
20 char m,t;
21 //*******初始化程序*******//
22 void clear()
23 {
24 1 char t;
25 1 for(t=0;t<8;t++)
26 1 {keytmp[t]=0x00;}
27 1 }
28
29 /****************/
30 //1毫秒延时程序//
31 /***************/
32 delay1ms(int t)
33 {
34 1 int i,j;
35 1 for(i=0;i<t;i++)
36 1 for(j=0;j<120;j++)
37 1 ;
38 1 }
39 /**********键功能函数************/
40 scankey()
41 { P3=0xf0;
42 1 if(P3!=0xf0)
43 1 { delay1ms(10); //括号3
44 2 if(P3!=0xf0)
45 2 {switch(P3) //括号2
46 3 { //括号1
47 4 case 0xb0: //如果是第3列有键按下
48 4 {
49 5 P3=0x0f;
50 5 switch(P3)
51 5 {case 0x0e:return keytmp[t]=9;t++;break;
52 6 case 0x0d:return keytmp[t]=6;t++;break;
53 6 case 0x0b:return keytmp[t]=3;t++;break;
54 6 default: break;
55 6 }
C51 COMPILER V7.09 MM2 04/19/2007 16:01:13 PAGE 2
56 5 }; break;
57 4
58 4 case 0xd0: //如果是第2列有键按下
59 4
60 4 {P3=0x0f;
61 5 switch(P3)
62 5 {case 0x0e:return keytmp[t]=8;t++;break;
63 6 case 0x0d:return keytmp[t]=5;t++;break;
64 6 case 0x0b:return keytmp[t]=2;t++;break;
65 6 default: break;
66 6 }}; break;
67 4
68 4 case 0xe0: //如果是第1行有键按下
69 4
70 4 {P3=0x0f;
71 5 switch(P3)
72 5 {case 0x0e:return keytmp[t]=7;t++;break;
73 6 case 0x0d:return keytmp[t]=4;t++;break;
74 6 case 0x0b:return keytmp[t]=1;t++;break;
75 6 default: break;
76 6 }}; break;
77 4 default: break;
78 4 }//括号1
79 3 }//括号2
80 2 } //括号3
81 1 return t;
82 1 }
83 //*****数码管扫描函数*********//
84 void scan_7(void)
85 {
86 1 char j;
87 1 for(j=0;j<=8;j++)
88 1 {
89 2 P2=scan_con[keytmp[j]];// j
90 2 P0=dis_7[keytmp[j]];//j
91 2 delay1ms(1);
92 2
93 2 }
94 1 }
95
96 //*******主程序*******//
97 void main()
98 {
99 1 while(1)
100 1 {
101 2 //if(P1^0==1) {clear();}
102 2 scan_7();
103 2 scankey();
104 2
105 2 delay1ms(1);
106 2 //password();
107 2 }
108 1 }
109
110
111
112
113
114
115
116
117
C51 COMPILER V7.09 MM2 04/19/2007 16:01:13 PAGE 3
118
119
120
121
122
123
124
125
126
127
128
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 309 ----
CONSTANT SIZE = 20 ----
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 + -