📄 text1.lst
字号:
C51 COMPILER V7.10 TEXT1 06/05/2008 14:12:35 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: D:\程序\keil51\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND TABS(6)
line level source
1 #include"reg51.h"
2 #define uchar unsigned char
3 #include"intrins.h"
4 uchar code zmtab[]={0xc0,0xf9,0xa4,0xb0,
5 0x99,0x92,0x82,0xf8,
6 0x80,0x90,0x88,0x83,
7 0xc6,0xa1,0x86,0x8e,0xff};
8 void delay(uchar del);
9 void init();
10 void ajcl(uchar jz);
11 uchar temp ,x,hz,lz,jz;
12 main()
13 {
14 1 jz=key();
*** WARNING C206 IN LINE 14 OF TEXT1.C: 'key': missing function-prototype
15 1 P2=jz;
16 1 ajcl(jz);
17 1 }
18 //*************************************************************
19 key()
20 {P2=0XF0;
21 1 if((P2&0xf0)!=0xf0)
22 1 { delay(10);
23 2 if((P2&0xf0)!=0xf0)
24 2 {hz=0xfe;
25 3 while(1)
26 3 {
27 4 P2=hz;
28 4 if ((P2&hz)!=hz)
29 4 {return(~P2);
30 5 break;
31 5 }
32 4 else
33 4 {hz=_crol_(hz,1);}
34 4 }
35 3 }
36 2 }
37 1 else
38 1 return 0;
39 1 }
40
41 //*************************************************************
42 void ajcl(uchar jz)
43 {
44 1
45 1
46 1 if(jz==0x11) P1=zmtab[0];
47 1 if(jz==0x21) P1=zmtab[1];
48 1 if(jz==0x41) P1=zmtab[2];
49 1 if(jz==0x81) P1=zmtab[3];
50 1 if(jz==0x12) P1=zmtab[4];
51 1 if(jz==0x22) P1=zmtab[5];
52 1 if(jz==0x42) P1=zmtab[6];
53 1 if(jz==0x82) P1=zmtab[7];
54 1 if(jz==0x14) P1=zmtab[8];
C51 COMPILER V7.10 TEXT1 06/05/2008 14:12:35 PAGE 2
55 1 if(jz==0x24) P1=zmtab[9];
56 1 if(jz==0x44) P1=zmtab[10];
57 1 if(jz==0x84) P1=zmtab[11];
58 1 if(jz==0x18) P1=zmtab[12];
59 1 if(jz==0x28) P1=zmtab[13];
60 1 if(jz==0x48) P1=zmtab[14];
61 1 if(jz==0x88) P1=zmtab[15];
62 1 }
63 //*************************************************************
64 void delay(uchar del)
65 {
66 1 uchar i;
67 1 for(;del>0;del--)
68 1 for(i=0;i<125;i++)
69 1 {;}
70 1 }
71
72 //*************************************************************
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 /*
91 uchar hz,lz;
92 P2=0xf0; //置所有行为低电平,行扫描,列线输入(此时)
93 if((P2&0xf0)!=0xf0) //判断是否有有键按下(读取列的真实状态,若第4列有键按下则P1的值会变成0111
-0000),有往下执行
94 {
95 delay(10); //延时去抖动(10ms)
96 if((P2&0xf0)!=0xf0) //再次判断列中是否是干扰信号,不是则向下执行
97 {
98 hz=0xfe; //逐行扫描初值(即先扫描第1行)
99 while((hz&0x10)!=0) //行扫描完成时(即4行已经全部扫描完成)sccode为1110 1111 停止while程序
-
100 {
101 P2=hz; //输出行扫描码
102 if ((P2&hz)!=hz) //***(P2&0xf0)!=0xf0***也可这样 本行有键按下(即P1(真实的状态)的高四位不全
-为1)
103 {
104 lz=(P2&0xf0)|0x0f; //列
105 while(P2&0xf0!=0xf0);
106 return((~hz)|(~lz)); //返回行和列
107 break; //有按键返回 提前退出循环
108 }
109 else //所扫描的行没有键按下,则扫描下一行,直到4行都扫描,此时sccode值为1110 1111
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -