📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 08/04/2007 22:15:56 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "STC89C51RC.H"
2
3 sbit DQ = P4^3;
4 sbit SPK = P1^0;
5
6 unsigned char irm_code[6];
7
8 void delay(unsigned int t)
9 {
10 1 while(t--);
11 1 }
12 void Sound(void)
13 {
14 1 SPK = 0;
15 1 delay(10000);
16 1 SPK = 1;
17 1 }
18
19 void rs232_port_init(void)
20 {
21 1 SCON=0x50; //串口工作在方式1,异步模式
22 1 PCON=0x80; //波特率翻倍
23 1 TMOD=0x20; //定时器1工作在方式2
24 1 TH1=0xff; //波特率115200,晶振为22.1184MHz
25 1 TL1=0xff;
26 1 TR1 = 1;
27 1 RI = 0;
28 1 TI = 0;
29 1 }
30
31 void uart_putc(unsigned char c)
32 {
33 1 SBUF = c;
34 1 while(!TI);
35 1 TI = 0;
36 1 }
37
38 //STC单片机特有的外部中断INT2实现红外解码
39 //解码结果由数据缓冲区返回
40 void IRMint(void) interrupt 6
41 {
42 1 unsigned int temp;
43 1 unsigned char i,j;
44 1
45 1 EA = 0;/*解码过程禁止其它中断发生*/
46 1 temp = 0;
47 1 while(!DQ) if(temp++>0x1000) goto return_main;//防止意外死机
48 1 if (temp < 0x0200) goto return_main;//Max=0x0222
49 1 /*以上完成引导码9ms的低电平检测*/
50 1 temp = 0;
51 1 while(DQ) if(temp++>0x1000)goto return_main;
52 1 if (temp < 0x0150) goto return_main;//Max=0x0216
53 1 /*以上完成引导码4.5ms的高电平检测*/
54 1
55 1 for(j=0;j<6;j++)
C51 COMPILER V8.02 MAIN 08/04/2007 22:15:56 PAGE 2
56 1 {
57 2 for(i=0;i<8;i++)
58 2 {
59 3 irm_code[j]<<=1;
60 3 temp = 0;
61 3 while(!DQ)if(temp++>0x1000) goto return_main;//通过编码低电平
62 3 temp = 0;
63 3 while(DQ) if(temp++>0x1000) goto return_main;
64 3 if(temp > 0x0060) irm_code[j] |= 0x01;
65 3 }
66 2 }
67 1
68 1 /*将结果6字节从串口发出*/
69 1 for(j=0;j<6;j++)
70 1 {
71 2 uart_putc(irm_code[j]);
72 2 }
73 1 Sound();
74 1 return_main:EA = 1;
75 1 }
76
77 void main()
78 {
79 1 rs232_port_init();
80 1 EA = 1;
81 1 IT2 = 1;//下降沿中断
82 1 EX2 = 1;
83 1
84 1 while(1)
85 1 {
86 2
87 2 }
88 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 281 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
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 + -