?? 發送機.lst
字號:
C51 COMPILER V8.02 發送籣 11/26/2008 20:24:14 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 發送籣
OBJECT MODULE PLACED IN 發送機.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 發送機.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 void dlms(void);
5 uchar kbscan(void);
6 uchar change(uchar);
7 void main(void)
8 { TMOD=0x20;
9 1 TH1=0xe6;
10 1 TR1=1;
11 1 SCON=0x40;
12 1 while(1)
13 1 {
14 2 SBUF=change(kbscan());/*鍵盤掃描函數,返回鍵碼送key保存*/
15 2 while(!TI);
16 2 TI=0;
17 2 }
18 1 }
19 void dlms(void)
20 {
21 1 uchar i;
22 1 for(i=200;i>0;i--){}/*延時函數*/
23 1 }
24 uchar kbscan(void)/*鍵盤掃描函數*/
25 {
26 1 uchar sccode,recode;
27 1 P1=0xf0;
28 1 if((P1&0xf0)!=0xf0)/*如P1口高4位不全為1,有鍵按下*/
29 1 {
30 2 dlms(); /*延時去掉抖動*/
31 2 if((P1&0xf0)!=0xf0)/*重讀輸入值*/
32 2 {
33 3 sccode=0xfe;/*最低位置0*/
34 3 while((sccode&0x10)!=0)/*不到最后一行*/
35 3 {
36 4 P1=sccode;/*P1口輸出掃描碼*/
37 4 if((P1&0xf0)!=0xf0)
38 4 {
39 5 recode=P1&0xf0;
40 5 sccode=sccode&0x0f;
41 5 return(sccode+recode);
42 5 }//if
43 4 else
44 4 sccode=(sccode<<1)|0x01;/*如該行無鍵按下,查下一行,行掃描值左移一位*/
45 4 }//while
46 3 }//if
47 2
48 2 }//if
49 1 return(0);/*無鍵按下,返回值為0*/
50 1 }
51
52
53 uchar change(uchar i){
54 1
55 1 uchar j;
C51 COMPILER V8.02 發送籣 11/26/2008 20:24:14 PAGE 2
56 1 if(i==0){
57 2 j=0;
58 2 }
59 1
60 1 if(i==0xee){
61 2 j=0x3f;
62 2 }
63 1
64 1 if(i==0xde){
65 2 j=0x06;
66 2 }
67 1
68 1 if(i==0xbe){
69 2 j=0x5b;
70 2 }
71 1
72 1 if(i==0x7e){
73 2 j=0x4f;
74 2 }
75 1
76 1 if(i==0xed){
77 2 j=0x66;
78 2 }
79 1
80 1 if(i==0xdd){
81 2 j=0x6d;
82 2 }
83 1
84 1 if(i==0xbd){
85 2 j=0x7d;
86 2 }
87 1
88 1 if(i==0x7d){
89 2 j=0x07;
90 2 }
91 1
92 1 if(i==0xeb){
93 2 j=0x7f;
94 2 }
95 1
96 1 if(i==0xdb){
97 2 j=0x6f;
98 2 }
99 1
100 1 if(i==0xbb){
101 2 j=0x77;
102 2 }
103 1
104 1 if(i==0x7b){
105 2 j=0x7c;
106 2 }
107 1
108 1 if(i==0xe7){
109 2 j=0x39;
110 2 }
111 1
112 1 if(i==0xd7){
113 2 j=0x5e;
114 2 }
115 1
116 1 if(i==0xb7){
117 2 j=0x79;
C51 COMPILER V8.02 發送籣 11/26/2008 20:24:14 PAGE 3
118 2 }
119 1
120 1 if(i==0x77){
121 2 j=0x71;
122 2 }
123 1
124 1 return(j);
125 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 177 ----
CONSTANT SIZE = ---- ----
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 + -