📄 红外.lst
字号:
C51 COMPILER V8.02 红外 05/05/2007 19:24:29 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 红外
OBJECT MODULE PLACED IN 红外.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 红外.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <at89x51.H>
2 #define IR_SYSCODE 0x00
3 #define SEGMENT P0
4 #define BIT_LED P2
5
6 void delay_100us(void);
7 void key_process(void);
8 void ir_init(void) ;
9 void display(void) ;
10 void breakdata(void);
11 void delay1s(void);
12
13 unsigned char ir_data;
14 bit ir_flag;
15 unsigned char ir_repeat;
16
17 unsigned char data display_bit,display_buffer[8];
18 unsigned char data time0_h,time0_l;
19 unsigned int idata time0_times;
20
21 unsigned int showdata;
22 unsigned char data TEMP;
23 int *point;
24 unsigned int shdata;
25 unsigned int keyin;
26 unsigned int kbempty;
27 unsigned char dataIR[6];//dataIR 0:syscode0
28 unsigned char width; // 1:syscode1
29
30
31 /**********************主程序********************************************************/
32 void main( void)
33 {int q;
34 1 ir_init();
35 1 for(q=0;q<5;q++)
36 1 { P0_7=1;
37 2 delay1s();
38 2 P0_7=0;
39 2 delay1s();
40 2 }
41 1 while(1)
42 1 {unsigned int l,m;
43 2 for(m=0;m<6;m++)
44 2 {for(l=0;l<2000;l++)
45 3 {showdata=dataIR[m];
46 4 display();
47 4 }
48 3 }
49 2
50 2 //display();
51 2
52 2
53 2 /*1showdata=dataIR[1];
54 2 display();
55 2 delay1s();
C51 COMPILER V8.02 红外 05/05/2007 19:24:29 PAGE 2
56 2 showdata=dataIR[2];
57 2 display();
58 2 delay1s();
59 2 showdata=dataIR[3];
60 2 display();
61 2 delay1s();
62 2 showdata=dataIR[4];
63 2 display();
64 2 delay1s();
65 2 showdata=dataIR[5];
66 2 display();
67 2 delay1s();*/
68 2 }
69 1
70 1 }
71 void ir_init(void)
72 {
73 1 IE = 0x00;
74 1 EA = 1;
75 1 IT1 = 1;
76 1 EX1 = 1; /* Enable External Interrupt1 INT1 */
77 1 ir_flag = 0; /* Initialize ir_flag, Receive success mark. */
78 1 ir_repeat = 0; /* Initialize ir_repeat, Repear mark. */
79 1 ir_data = 0;
80 1 display_bit=1;
81 1 dataIR[6]=0X00;
82 1 }
83 /***************中断程序*****************************************/
84 void ir_svr(void) interrupt 2
85 {
86 1
87 1 unsigned char i=0; // 2:data
88 1 EX1 = 0; // 3:data negation
89 1 width = 0x00; // 4:oxoo end-mark
90 1
91 1 while(!P3_3) /* 计算引导电平的宽度 , 常规状态下INT1为高电平,由高电平跳变为低电平时(即下降沿)产生中
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -