📄 mainc.lst
字号:
C51 COMPILER V7.00 MAINC 05/07/2006 20:43:37 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MAINC
OBJECT MODULE PLACED IN MainC.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe MainC.c DB OE SMALL ROM(LARGE)
stmt level source
1
2 #include <REG51.H>
3 #include <ABSACC.H>
4 #include "Device.h"
5
6 #define HIGH_TH 21 /*最高PWM级数门限*/
7 #define LOW_TH HIGH_TH+25 /*最低PWM级数门限*/
8 #define INIT_TH HIGH_TH+12 /*复位后初始PWM级数*/
9 #define INIT_TS 20 /*初始化时隙计数值*/
10 #define TS_MAX INIT_TS+40 /*10ms后时隙计数值*/
11
12 void Main_Initlization( void ); /* 主初始化程序*/
13 void Interrupt_INT0( void ); /* 遥控解码*/
14 void Interrupt_INT1( void ); /* 20ms定时脉冲中断*/
15 void Interrupt_T0( void ); /* 遥控解码*/
16 void Interrupt_T1( void ); /* 0.25ms定时器*/
17
18 void LED_Flash_Control( void ); /* LED闪烁控制*/
19 void KEY_TimeOut( void ); /* 遥控按键超时判断*/
20 void KEY_Process( void ); /* 遥控按键解码*/
21
22 unsigned char RUN_Counter; /* 运行LED闪烁控制*/
23 unsigned char KEY_TimeOut_Counter; /* 遥控器按键释放超时计数器*/
24 bit LED_MODE; /* LED闪灯模式*/
25 bit NEW_KEY_Flag; /* 新按下键盘标志*/
26 unsigned long RemoteCode; /* 遥控码*/
27 unsigned char RemoteCounter; /* 遥控码解码位计数*/
28 unsigned long Decode; /* 解码输出*/
29 bit Decode_Flag; /* 解码输出标志*/
30 bit PowerFlag; /* 总电源开关状态*/
31 unsigned char Control[4]; /* 控制字*/
32 unsigned char TimeSlot; /* PWM定时器*/
33 unsigned char P1_Mirror; /* PWM和LED输出镜像寄存器*/
34
35
36 /********************************************************************/
37 /* 主程序 */
38 /********************************************************************/
39 void main( void )
40 {
41 1 Main_Initlization( ); /*主初始化程序*/
42 1
43 1 while( 1 )
44 1 {
45 2 LED_Flash_Control( ); /* LED闪烁控制*/
46 2 KEY_TimeOut( ); /* 遥控按键超时判断*/
47 2 KEY_Process( ); /* 遥控按键解码*/
48 2 }
49 1 }
50
51 /********************************************************************/
52 /* 遥控按键解码处理程序 */
53 /********************************************************************/
54 void KEY_Process( void ) /* 遥控按键解码*/
55 {
C51 COMPILER V7.00 MAINC 05/07/2006 20:43:37 PAGE 2
56 1 if( Decode_Flag ) /* 按键解码成功*/
57 1 {
58 2 Decode_Flag = 0;
59 2 switch( Decode )
60 2 {
61 3 case 0x00000FFE: /* Power 键*/
62 3 if( NEW_KEY_Flag )
63 3 PowerFlag = ~PowerFlag;
64 3 break;
65 3 /* 左侧第一路*/
66 3 case 0x0000C7E7: /* 亮度增加,左侧第1路*/
67 3 if( PowerFlag )
68 3 if( Control[0] > HIGH_TH )
69 3 Control[0] --;
70 3 break;
71 3 case 0x0001E7C3: /* 亮度降低,左侧第1路*/
72 3 if( PowerFlag )
73 3 if( Control[0] < LOW_TH )
74 3 Control[0] ++;
75 3 break;
76 3 /* 左侧第二路*/
77 3 case 0x000067F3: /* 亮度增加,左侧第2路*/
78 3 if( PowerFlag )
79 3 if( Control[1] > HIGH_TH )
80 3 Control[1] --;
81 3 break;
82 3 case 0x0000E7E3: /* 亮度降低,左侧第2路*/
83 3 if( PowerFlag )
84 3 if( Control[1] < LOW_TH )
85 3 Control[1] ++;
86 3 break;
87 3 /* 左侧第三路*/
88 3 case 0x000107DF: /* 亮度增加,左侧第3路*/
89 3 if( PowerFlag )
90 3 if( Control[2] > HIGH_TH )
91 3 Control[2] --;
92 3 break;
93 3 case 0x000167D3: /* 亮度降低,左侧第3路*/
94 3 if( PowerFlag )
95 3 if( Control[2] < LOW_TH )
96 3 Control[2] ++;
97 3 break;
98 3 /* 左侧第四路*/
99 3 case 0x00008FEE: /* 亮度增加,左侧第4路*/
100 3 if( PowerFlag )
101 3 if( Control[3] > HIGH_TH )
102 3 Control[3] --;
103 3 break;
104 3 case 0x00018FCE: /* 亮度降低,左侧第4路*/
105 3 if( PowerFlag )
106 3 if( Control[3] < LOW_TH )
107 3 Control[3] ++;
108 3 break;
109 3 }
110 2 NEW_KEY_Flag = 0;
111 2 }
112 1 }
113
114 /********************************************************************/
115 /* 主初始化程
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -