?? panel.lst
字號:
C51 COMPILER V7.50 PANEL 07/18/2008 09:56:23 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE PANEL
OBJECT MODULE PLACED IN panel.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL7.50\C51\BIN\C51.EXE panel.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************************
2 PANEL.C
3 按鍵與顯示子程序
4 Copyright (c) 2007.09.11
5 All rights reserved.
6 ******************************************************************************/
7 #define panel_c
8 #include "main.h"
9
10 /******************************************************************************
11 函數(shù)名稱:KeyScan()
12 函數(shù)功能:鍵盤掃描子程序
13 注意事項:
14 提示說明:
15 輸 入:無
16 返 回:無
17 ******************************************************************************/
18 void KeyScan()
19 {
20 1 unsigned char i,j,k;
21 1 unsigned int m;
22 1 // portd|=0xf0; //高4位為輸入
23 1 // portc|=0x07;
24 1 // portc&=0xfe; //讀下行
25 1 i=0x05;while(i--){;} //8+3*(i-1)延時20
26 1 // j=(portd^0xf0)&0xf0;
27 1 j=j>>4;
28 1
29 1 // portc|=0x07;
30 1 // portc&=0xfd; //讀中行
31 1 i=0x05;while(i--){;}
32 1 // j+=((portd^0xf0)&0xf0);
33 1
34 1 // portc|=0x07;
35 1 // portc&=0xfb; //讀上行
36 1 i=0x05;while(i--){;}
37 1 // k=((portd^0xf0)&0xf0);
38 1 k=k>>4;
39 1 // portc|=0x07;
40 1
41 1 //以下是去抖動 j\k分別為key1、key2的BUF
42 1 if(j|k) //有鍵
43 1 {
44 2 if(key_Cnt>=0x08) //采樣到8次都為高電平
45 2 {
46 3 key.halfkey[0]=j; //則賦當前值
47 3 key.halfkey[1]=k;
48 3 key_Cnt=0x00;
49 3 }
50 2 else //沒采樣到8次
51 2 {
52 3 key_Cnt++;
53 3 key.allkey=lastkey.allkey;
54 3 }
55 2 }
C51 COMPILER V7.50 PANEL 07/18/2008 09:56:23 PAGE 2
56 1 else //沒鍵
57 1 {
58 2 key.allkey=0x0000;
59 2 key_Cnt=0x00;
60 2 }
61 1 m=key.allkey; //以下是鍵后處理,鍵前沿檢出
62 1 key.allkey=key.allkey&(lastkey.allkey^key.allkey);
63 1 lastkey.allkey=m;
64 1 }
65 /******************************************************************************
66 函數(shù)名稱:display()
67 函數(shù)功能:
68 注意事項:
69 提示說明:
70 輸 入:無
71 返 回:無
72 ******************************************************************************/
73 void Display(void)
74 {
75 1 uchar i;
76 1 i=Bit_Select&0x03;
77 1 porta=0xff;
78 1 // portc=portc|0xf0;
79 1 if(i&0x02)
80 1 {
81 2 if(i&0x01)
82 2 {
83 3 porta=LED8[((dsbuf[1]&0x0f)+0x10)];
84 3 if(dspoint&0x80)
85 3 {
86 4 if(Bit_Select&0x80){porta=0xff;}
87 4 }
88 3 if(dspoint&0x08){porta&=0x7f;}
89 3 // portc&=0x7f;
90 3 }
91 2 else
92 2 {
93 3 porta=LED8[((dsbuf[1]>>4)&0x0f)+0x20];
94 3 if(dspoint&0x40)
95 3 {
96 4 if(Bit_Select&0x80){porta=0xff;}
97 4 }
98 3 if(dspoint&0x04){porta&=0xfe;}
99 3 // portc&=0xbf;
100 3 }
101 2 }
102 1 else
103 1 {
104 2 if(i&0x01)
105 2 {
106 3 porta=LED8[(dsbuf[0]&0x0f)+0x10];
107 3 if(dspoint&0x20)
108 3 {
109 4 if(Bit_Select&0x80){porta=0xff;}
110 4 }
111 3 if(dspoint&0x02){porta&=0x7f;}
112 3 // portc&=0xdf;
113 3 }
114 2 else
115 2 {
116 3 porta=LED8[(dsbuf[0]>>4)&0x0f];
117 3 if(dspoint&0x10)
C51 COMPILER V7.50 PANEL 07/18/2008 09:56:23 PAGE 3
118 3 {
119 4 if(Bit_Select&0x80){porta=0xff;}
120 4 }
121 3 if(dspoint&0x01){porta&=0xef;}
122 3 // portc&=0xef;
123 3 }
124 2 }
125 1 Bit_Select++;
126 1 }
127
128
129
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 243 ----
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 + -