📄 4×3矩阵键盘c编程.lst
字号:
C51 COMPILER V8.08 4×3矩誣键盘C编程 08/12/2008 19:31:25 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 4×3矩誣键盘C编程
OBJECT MODULE PLACED IN 4×3矩阵键盘C编程.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 4×3矩阵键盘C编程.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<absacc.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 uchar code Tab[12]={
7 0xF9,/*1*/
8 0xA4,/*2*/
9 0xB0,/*3*/
10 0x99,/*4*/
11 0x92,/*5*/
12 0x82,/*6*/
13 0xF8,/*7*/
14 0x80,/*8*/
15 0x90,/*9*/
16 0x88,/*A*/
17 0xC0,/*0*/
18 0xC6,/*C*/};
19 uchar idata com1,com2;
20 uint idata key[12]={0};
21
22 void delay()
23 {
24 1 uchar i,j;
25 1 for(i=0;i<20;i++)
26 1 for(j=0;j<255;j++);
27 1 }
28
29 uchar key_scan()
30 {
31 1 uchar temp;
32 1 uchar i;
33 1 delay();
34 1 P2=0xf0;
35 1 if(P2!=0xf0)
36 1 {
37 2 com1=P2;
38 2 P2=0x0f;
39 2 com2=P2;
40 2 }
41 1 P2=0xf0;
42 1 while(P2!=0xf0);
43 1 temp=com1|com2;
44 1 if(temp==0xee)i=0;
45 1 if(temp==0xed)i=1;
46 1 if(temp==0xeb)i=2;
47 1 if(temp==0xde)i=3;
48 1 if(temp==0xdd)i=4;
49 1 if(temp==0xdb)i=5;
50 1 if(temp==0xbe)i=6;
51 1 if(temp==0xbd)i=7;
52 1 if(temp==0xbb)i=8;
53 1 if(temp==0x7e)i=9;
54 1 if(temp==0x7d)i=10;
55 1 if(temp==0x7b)i=11;
C51 COMPILER V8.08 4×3矩誣键盘C编程 08/12/2008 19:31:25 PAGE 2
56 1 return(i);
57 1 }
58
59
60
61 void main()
62 {
63 1 uchar dat;
64 1 P0=0x00;
65 1 while(1)
66 1 {
67 2 P2=0xf0;
68 2 while(P2!=0xf0)
69 2 {
70 3 dat=key_scan();
71 3 P1=dat;
72 3 key[0]=dat;
73 3 P0=Tab[key[0]];
74 3 }
75 2 }
76 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 149 ----
CONSTANT SIZE = 12 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 26 ----
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 + -