?? io復用.lst
字號:
C51 COMPILER V7.06 IO__用 04/11/2005 21:04:36 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE IO__用
OBJECT MODULE PLACED IN IO復用.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE IO復用.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-----------------------函數聲明,變量定義--------------------------------------------------------
2 #include <reg51.h>
3 sbit KEY_1 =P1^0; // 將p1.0定義為KEY_1
4 sbit KEY_2 =P1^1; // 將p1.1定義為KEY_2
5 sbit KEY_3 =P1^2; // 將p1.2定義為KEY_3
6 #define KEY P1
7 //-----------------------變量聲明---------------------------------------------------------------------
8 unsigned char manage_KEY(); //完成按鍵消抖得鍵盤處理程序,供主程序調用
9 unsigned char SScan_key(); //掃描查詢子程序
10 void delay(unsigned int N) ;//延時子程序,實現(16*N+24)us的延時
11 //-------------------------------- ------------------------------------------------------------------
12 // 函數名稱: SScan_key
13 // 返回值: 有按鍵按下返回鍵值,無按鍵按下返回0xFF
14 // 函數功能:延時子程序,實現(16*N+24)us的延時
15 // 系統采用11.0592MHz的時鐘時,延時滿足要求,其它情況需要改動
16 //--------------------------------------------------------------------------------------------------
17 unsigned char SScan_key()
18 {
19 1 unsigned KEY_value;
20 1 KEY_1=1;
21 1 KEY_2=1;
22 1 KEY_3=1;
23 1 KEY_value=(KEY&0x07); //按鍵查詢
24 1 if(KEY_value==0x07) //S0~S6無鍵按下
25 1 {
26 2 KEY_1=0;
27 2 KEY_value=(KEY&0x06);
28 2 switch(KEY_value)
29 2 {
30 3 case 0x00: KEY_value=7;break; //KEY_2、KEY_3均為0
31 3 case 0x02: KEY_value=11;break; //KEY_2為1、KEY_3為0
32 3 case 0x04: KEY_value=14;break; //KEY_2為0、KEY_3為1
33 3 default: KEY_value=0xFF;
34 3 }
35 2 KEY_2=0;
36 2 KEY_value=(KEY&0x05);
37 2 switch(KEY_value)
38 2 {
39 3 case 0x00: KEY_value=10;break; //KEY_1、KEY_3均為0
40 3 case 0x01: KEY_value=8;break; //KEY_1為1、KEY_3為0
41 3 case 0x04: KEY_value=15;break; //KEY_1為0、KEY_3為1
42 3 default: KEY_value=0xFF;
43 3 }
44 2 KEY_3=0;
45 2 KEY_value=(KEY&0x03);
46 2 switch(KEY_value)
47 2 {
48 3 case 0x00: KEY_value=13;break; //KEY_1、KEY_2均為0
49 3 case 0x01: KEY_value=9;break; //KEY_1為1、KEY_2為0
50 3 case 0x02: KEY_value=12;break; //KEY_1為0、KEY_2為1
51 3 default: KEY_value=0xFF;
52 3 }
53 2 }
54 1 return(KEY_value);
55 1 }
C51 COMPILER V7.06 IO__用 04/11/2005 21:04:36 PAGE 2
56 //-------------------------------- ------------------------------------------------------------------
57 // 函數名稱: manage_KEY()
58 // 函數功能: 供主程序調用鍵盤處理程序
59 // 如果有鍵按下,定時消抖,如果是有效按鍵返回鍵值,無效按鍵返回0xFF
60 //--------------------------------------------------------------------------------------------------
61 unsigned char manage_KEY()
62 {
63 1 unsigned char key_value;
64 1 key_value=SScan_key();
65 1 if(key_value<=0x0f)
66 1 delay(1000);
67 1 if(key_value!=SScan_key())
68 1 key_value=0xFF;
69 1 return(key_value);
70 1 }
71 //-------------------------------- ------------------------------------------------------------------
72 // 函數名稱: delay
73 // 入口參數: N
74 // 函數功能:延時子程序,實現(16*N+24)us的延時
75 // 系統采用11.0592MHz的時鐘時,延時滿足要求,其它情況需要改動
76 //--------------------------------------------------------------------------------------------------
77 void delay(unsigned int N)
78 {
79 1 int i;
80 1 for(i=0;i<N;i++);
81 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 163 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -