📄 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 函数名称:KeyScan()
12 函数功能:键盘扫描子程序
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 函数名称:display()
67 函数功能:
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 + -