?? led.lst
字號:
C51 COMPILER V8.08 LED 09/28/2008 09:47:30 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN led.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE led.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include "led.h"
3 unsigned char ledfast=0; //LED每秒閃爍3次時使用的中間變量
4 unsigned char ledslow=0; //LED每秒閃爍1次時使用的中間變量
5 bit ledlabel=0; //ledlabel對應LED亮滅
6
7 unsigned char keyvalue=0X03; //鍵值0-短按,1-長按,2-亮,3-滅
8 /*ms延時函數*/
9 void DelayMs(unsigned char value)
10 {
11 1 unsigned char i,j;
12 1 for(;value>0;value++)
13 1 for(i=20;i>0;i--)
14 1 for(j=25;j>0;j--) ;
15 1 }
16 /*MICKEY\KEY狀態檢測函數*/
17 void KeyStatus(void)
18 {
19 1 unsigned long counter=0;
20 1 if(MICKEY==DOWN)
21 1 {
22 2 DelayMs(10); //延時去抖
23 2 if(MICKEY==DOWN)
24 2 {
25 3 while(MICKEY==DOWN);
26 3 if(MICKEY==UP)
27 3 {
28 4 ledlabel=~ledlabel;
29 4 if(ledlabel) keyvalue=2;
30 4 else keyvalue=3;
31 4 }
32 3 }
33 2 }
34 1 else if(KEY==DOWN)
35 1 {
36 2 DelayMs(10); //延時去抖
37 2 while(KEY==DOWN)
38 2 {
39 3 counter++;
40 3 }
41 2 if(KEY==UP)
42 2 {
43 3 if(counter>10000) keyvalue=1; //KEY++長按
44 3 else if(counter<=10000) keyvalue=0; //KEY++短按
45 3 }
46 2 }
47 1 }
48
49 /*鍵值處理函數*/
50 void KeyDeal(void)
51 {
52 1 switch(keyvalue)
53 1 {
54 2 case 0: MICLED=ledfast;break;
55 2 case 1: MICLED=ledslow;break;
C51 COMPILER V8.08 LED 09/28/2008 09:47:30 PAGE 2
56 2 case 2: MICLED=ON;break;
57 2 case 3: MICLED=OFF;break;
58 2 default:break;
59 2 }
60 1 }
61
62 /*設置鍵值函數*/
63 void Setkeyvalue(unsigned char value)
64 {
65 1 keyvalue=value;
66 1 }
67
68
69 /*T2中斷函數,用作控制1秒內D4閃爍的次數*/
70 void Timer2_INTR() interrupt 5
71 {
72 1 static unsigned char time2_counter; //靜態變量,用于計算T2的溢出次數
73 1 TF2=0; //T2定時器需手動清除溢出標志
74 1 time2_counter++;
75 1 if(time2_counter%5==0)
76 1 ledfast=~ledfast; //溢出5次為約為1/3秒,改變LED快閃的臨時變量
77 1 if(time2_counter==16)
78 1 {
79 2 time2_counter=0; //溢出次數清零.重新計數
80 2 ledslow=~ledslow; //溢出16次為約為1秒,改變LED慢閃的臨時變量
81 2 }
82 1 }
83
84 /*T2初始函數*/
85 void InitTimer2()
86 {
87 1 RCAP2H=0x10; //定時器置初值
88 1 RCAP2L=0x00;
89 1 EA=1; //打開中斷總開關
90 1 ET2=1; //允許T2中斷
91 1 TR2=1; //啟動T2中斷
92 1 }
93
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 233 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 4
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -