📄 ir.lst
字号:
C51 COMPILER V8.15 IR 11/08/2008 21:01:35 PAGE 1
C51 COMPILER V8.15, COMPILATION OF MODULE IR
OBJECT MODULE PLACED IN .\OBJ\IR.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SRC\IR.C BROWSE DEBUG OBJECTEXTEND PRINT(.\LST\IR.lst) OBJECT(.\OBJ\IR.obj)
line level source
1 /*******************************************************************************/
2 #include "config.h"
3
4 bit IR_flag0=1;
5 bit IR_flag1=1;
6 bit IR_flag2=1;
7 bit IR_flag3=1;
8 bit IR_flag4=1;
9 bit IR_flag5=1;
10 bit IR_flag6=1;
11 bit IR_flag7=1;
12
13 /************************************************************/
14 extern uint16 xdata ABA,ABB,ABC,ABD,ABE,ABF;
15 extern uint8 display[];
16 /************************************************************/
17 uint8 xdata dataIR[5];
18 uint8 xdata IR_IP0[8]; //(0-1:IP) (2-3:设定IP)(4-7:设定计划数量)
19 bit flag=0;
20 uint8 CA0=0;
21 uint8 IR_SET=1; //1:(正常) 2:(设定IP) 3-8:(设定1-6)
22 uint8 IR_IP; // IP
23
24 void IR_TASK(void );
25 /************************************************************/
26
27 //bit ir_flag;
28 /* */
29 #define KEY_0 0x10
30 #define KEY_1 0x30
31 #define KEY_2 0xB0
32 #define KEY_3 0x70
33 #define KEY_4 0x08
34 #define KEY_5 0x88
35 #define KEY_6 0x48
36 #define KEY_7 0x28
37 #define KEY_8 0xA8
38 #define KEY_9 0x68
39
40 #define KEY_POWER 0x00
41 #define KEY_CH_DEC 0x80
42 #define KEY_CH_ADD 0x40
43
44 #define KEY_EQ 0x20
45 #define KEY_VOL_ADD 0xA0
46 #define KEY_VOL_DEC 0x60
47
48 #define KEY_ZUO 0x90
49 #define KEY_YOU 0x50
50
51 #define KEY_EMPTY 0xFF
52
53 uchar Key1;
54 uchar IpDZ=00; //对应遥控器IP地址
55
C51 COMPILER V8.15 IR 11/08/2008 21:01:35 PAGE 2
56 /********************************************************************
57 函 数 名:iR_Receive()
58 功 能:初始化子程序
59 说 明:
60 调 用:
61 入口参数:
62 出口参数:
63 ***********************************************************************/
64 void delay_100us(void)
65 {
66 1 unsigned char i=48;
67 1 while(--i);
68 1 }
69 /********************************************************************
70 函 数 名:iR_Receive()
71 功 能:初始化子程序
72 说 明:
73 调 用:
74 入口参数:
75 出口参数:
76 ***********************************************************************/
77 /******************************************/
78 /*********************外部中断0服务程序**/
79 /*****************************************/
80 static void xint0_isr(void) interrupt IE0_VECTOR
81 {
82 1 unsigned char width;
83 1 unsigned char i=0;
84 1
85 1 width = 0x00;
86 1 INT0 = 1;
87 1 while(!INT0)
88 1 {
89 2 delay_100us();
90 2 width++;
91 2 }
92 1 if (width < 65)
93 1 {
94 2 return;
95 2 }
96 1
97 1 width = 0x00;
98 1 while(INT0)
99 1 {
100 2 delay_100us();
101 2 width++;
102 2 }
103 1
104 1 if (width < 30)
105 1 {
106 2 return;
107 2 }
108 1 // 至此,引导码已校验,以下接收地址码和数据码,一共32位
109 1
110 1 for(i=0; i<32; i++)
111 1 {
112 2 flag = 1;
113 2 while(!INT0);
114 2 width = 0x00;
115 2 while(INT0)
116 2 {
117 3 delay_100us();
C51 COMPILER V8.15 IR 11/08/2008 21:01:35 PAGE 3
118 3 width++;
119 3 }
120 2 dataIR[i/8] <<= 1;
121 2 if (width > 0x08)dataIR[i/8] |= 0x01;
122 2
123 2 else dataIR[i/8] &= 0XFE;
124 2 }
125 1 if ((IpDZ == dataIR[0]) && (dataIR[2] == (~dataIR[3])))
126 1 {
127 2
128 2 switch (dataIR[2])
129 2 {
130 3 case KEY_0 :
131 3 case KEY_1 :
132 3 case KEY_2 :
133 3 case KEY_3 :
134 3 case KEY_4 :
135 3 case KEY_5 :
136 3 case KEY_6 :
137 3 case KEY_7 :
138 3 case KEY_8 :
139 3 case KEY_9 :
140 3 // case KEY_POWER :
141 3 case KEY_CH_DEC:
142 3 case KEY_CH_ADD:
143 3 case KEY_EQ :
144 3 case KEY_VOL_DEC:
145 3 case KEY_VOL_ADD:
146 3 case KEY_ZUO :
147 3 case KEY_YOU :
148 3 Key1 = dataIR[2];
149 3 break;
150 3 default:
151 3 Key1 = KEY_EMPTY;
152 3 break;
153 3 }
154 2 //*******判断运行/设定*****************************************************
155 2 if(dataIR[2]==KEY_POWER)
156 2 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -