?? keyboard.lst
字號:
C51 COMPILER V8.02 KEYBOARD 08/27/2007 12:25:45 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN keyboard.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE keyboard.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89X55.H>
2 #include<absacc.h>
3 #include <string.h>
4 #include "keyboard.h"
5
6
7
8
9 /******************************* 顯示字符*****************************************/
10 void print(char *pdat)
11 {
12 1 int i,len;
13 1 len = strlen(pdat);
14 1 for(i=0;i<len;i++)
15 1 {
16 2 SBUF = pdat[i];
17 2 while(TI != 1)
18 2 {
19 3 ;
20 3 }
21 2 TI = 0;
22 2 }
23 1 }
24
25 /*******************************顯示數(shù)字*****************************************/
26
27 void printhex(ulong dat)
28 {
29 1 uchar temp;
30 1 char i;
31 1 for(i=28;i>=0;i=i-4)
32 1 {
33 2 temp = (dat)>>i;
34 2 temp = temp&0xf;
35 2 if(temp >= 0 && temp <=9) temp = temp + '0';
36 2 else if(temp >= 0xa && temp <= 0xf) temp = temp + '0' +7;
37 2 SBUF = temp;
38 2 while(TI != 1)
39 2 {
40 3 ;
41 3 }
42 2 TI = 0;
43 2
44 2 }
45 1
46 1
47 1 }
48
49 /******************************* 8279延遲函數(shù)*****************************************/
50 void delay8279()
51 {
52 1 int i;
53 1 for(i=0;i<200;i++);
54 1 }
55
C51 COMPILER V8.02 KEYBOARD 08/27/2007 12:25:45 PAGE 2
56
57 /******************************* 向8279發(fā)命令*****************************************/
58 uchar SendCom(uchar com)
59 {
60 1 A1 = 0; // A1 = P3^5; 定時器 T1
61 1 A0 = 0; // A0 = P3^4; 定時器 TO
62 1 A08279 = 1; //the signale in or out are interpreted as a command or status
-
63 1 Com8279 = com;
64 1 delay8279();
65 1 return 0;
66 1 }
67
68
69 /******************************* 8279讀數(shù)據(jù)*****************************************/
70 uchar GetFiFoStatus()
71 {
72 1 uchar temp;
73 1 A08279 = 1; //
74 1 A0 = 0; // A0 = P3^4; 定時器 TO
75 1 A1 = 0; // A1 = P3^5; 定時器 T1
76 1 temp = Dat8279;
77 1 return temp;
78 1 }
79
80 /******************************* 8279讀數(shù)據(jù)*****************************************/
81 uchar RdData()
82 {
83 1 uchar temp; //i,num;
84 1 A1 = 0;
85 1 A0 = 0;
86 1 SendCom(0x40); // read FIFO
87 1 A08279 = 0; // 數(shù)據(jù)
88 1 temp = Dat8279;
89 1 return temp;
90 1 }
91
92 /******************************* 初始化8279*****************************************/
93
94 Init8279()
95 {
96 1 EX1 = 1; //外中斷1中斷允許
97 1 IE1 = 0; //INT1中斷請求標志位,有外部中斷請求時置1,
98 1 IT1 = 1; //INT1 觸發(fā)方式控制位 ,為負跳變觸發(fā)方式
99 1 A1 = 0;
100 1 A0 = 0;
101 1 SendCom(0); //設置鍵盤工作方式 兩鍵鎖定
102 1 SendCom(0x20 | 18); //設置時鐘頻率 大約為100KHZ
103 1 return 1;
104 1 }
105
106
107 /******************************* 外中斷INT1******************************************/
108
109
110 void KeyIsr() interrupt 2 using 0
111 {
112 1 uchar temp;
113 1 print("int1\r\n");
114 1 temp = RdData();
115 1 if(temp == 0) return ;
116 1 print("in int data is:");
C51 COMPILER V8.02 KEYBOARD 08/27/2007 12:25:45 PAGE 3
117 1 printhex(temp);
118 1 print("\r\n");
119 1 print("test 8 :");
120 1 printhex(0x8);
121 1 print("\r\n");
122 1 IE1 = 0;
123 1
124 1 }
125
126
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 321 ----
CONSTANT SIZE = 35 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 10
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 + -