?? wl005.lst
字號:
C51 COMPILER V7.20 WL005 03/29/2005 15:43:28 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE WL005
OBJECT MODULE PLACED IN wl005.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE wl005.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 * 標題: 偉納電子ME300B單片機開發系統演示程序 - 按鍵掃描程序 *
3 * 文件: wl005.C *
4 * 日期: 2004-1-5 *
5 * 版本: 1.0 *
6 * 作者: 偉納電子 - Freeman *
7 * 郵箱: freeman@willar.com *
8 * 網站: http://www.willar.com *
9 ********************************************************************************
10 * 描述: *
11 * 按鍵掃描程序 *
12 * 上電時, 點亮P00口LED *
13 * 按下K1時, LED向右移一位 *
14 * 按下K2時, LED向左移一位 *
15 * *
16 ********************************************************************************
17 * 【版權】 Copyright(C)偉納電子 www.willar.com All Rights Reserved *
18 * 【聲明】 此程序僅用于學習與參考,引用請注明版權和作者信息! *
19 *******************************************************************************/
20
21 #include <reg51.h>
22 #include <intrins.h>
23
24 unsigned char scan_key();
25 void proc_key(unsigned char key_v);
26 void delayms(unsigned char ms);
27
28 sbit K1 = P1^4;
29 sbit K2 = P1^5;
30
31 main()
32 {
33 1
34 1 unsigned char key_s,key_v;
35 1 key_v = 0x03;
36 1 P0 = 0xfe;
37 1 while(1)
38 1 {
39 2 key_s = scan_key();
40 2 if(key_s != key_v)
41 2 {
42 3 delayms(10);
43 3 key_s = scan_key();
44 3 if(key_s != key_v)
45 3 {
46 4 key_v = key_s;
47 4 proc_key(key_v);
48 4 }
49 3 }
50 2 }
51 1 }
52
53 unsigned char scan_key()
54 {
55 1 unsigned char key_s;
C51 COMPILER V7.20 WL005 03/29/2005 15:43:28 PAGE 2
56 1 key_s = 0x00;
57 1 key_s |= K2;
58 1 key_s <<= 1;
59 1 key_s |= K1;
60 1 return key_s;
61 1 }
62
63 void proc_key(unsigned char key_v)
64 {
65 1 if((key_v & 0x01) == 0)
66 1 {
67 2 P0 = _cror_(P0,1);
68 2 }
69 1 else if((key_v & 0x02) == 0)
70 1 {
71 2 P0 = _crol_(P0, 1);
72 2 }
73 1 }
74
75 void delayms(unsigned char ms)
76 // 延時子程序
77 {
78 1 unsigned char i;
79 1 while(ms--)
80 1 {
81 2 for(i = 0; i < 120; i++);
82 2 }
83 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 111 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -