📄 sa3010p.lst
字号:
C51 COMPILER V7.50 SA3010P 05/19/2007 23:43:48 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE SA3010P
OBJECT MODULE PLACED IN sa3010p.OBJ
COMPILER INVOKED BY: D:\程序\keil\C51\BIN\C51.EXE sa3010p.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND
line level source
1 // 波特率发生器的初值(115200波特率)XTAL 11.0592M
2 #include<reg52.h>
3 #include"sa3010.h"
4 #include <intrins.h>
5
6 unsigned char buffer;
7 unsigned char count,buf_s; //红外接收位寄存器
8 bit EndFlag,Flag = 1; //红外一帧接收结束标志
9 sbit DATABIT = P3^3;
10 sbit Key = P2^0;
11
12 sbit SoundUP = P2^1;
13 sbit SoundDown = P2^2;
14
15 void powerup( void )//初始化
16 {
17 1 EA = 1;
18 1 ET0 = 1;
19 1 EX1 = 1;
20 1 TMOD = 0X21; //定时器1为方式2
21 1 TL1 = 0xfd; //置初值,波特率为9600
22 1 TH1 = 0xfd;
23 1 PCON = 0x00; //SMOD = 0
24 1 TR1 = 1; //启动定时器1
25 1 SCON = 0x50;//串口工作在方式1,REN为1
26 1 }
27
28 void t0_service(void) interrupt 1 using 1
29 {
30 1 //第一次进入中断,为定时1/4位的时间445us
31 1 //以后则定时一位时间1.778ms进入中断
32 1 count++;
33 1 TH0=(0xffff-1522)/256;
34 1 TL0=(0xffff-1522)%256;
35 1
36 1 // TH0=0x00fa;
37 1 // TL0=0x000d;
38 1
39 1 if( count>=8 )
40 1 {
41 2 if(DATABIT)
42 2 buffer = buffer+0;
43 2 else
44 2 buffer = buffer+1;
45 2
46 2 if(count==14)
47 2 {
48 3 buf_s=buffer;
49 3 }
50 2
51 2 if(count==15) //等最后半位结束,实际延时1位时间
52 2 {
53 3 buffer = 0;
54 3 EndFlag = 0;
55 3 TR0 = 0; //解码结束,定时器停止
C51 COMPILER V7.50 SA3010P 05/19/2007 23:43:48 PAGE 2
56 3 return;
57 3 }
58 2
59 2 buffer = buffer << 1;
60 2 }
61 1 }
62
63 void EXINT1( void ) interrupt 2
64 {
65 1 TR0 = 1;
66 1 EX1 = 0;
67 1 Flag = 0;
68 1 }
69
70 void main(void)
71 {
72 1 DATABIT = 1; //输入首先写1
73 1 Key = 1;
74 1 SoundUP = 1;
75 1 SoundDown=1;
76 1
77 1 powerup();
78 1 InitLcd();
79 1 while(1)
80 1 {
81 2 EX1 = 1;
82 2
83 2 TH0 = (0xffff-381)/256;
84 2 TL0 = (0xffff-381)%256;
85 2
86 2 Dis4bitNumber(2,3,1234);
87 2
88 2 buffer = 0;
89 2 count = 0;
90 2 EndFlag = 1;
91 2
92 2 while(Flag);
93 2 Dis4bitNumber(0,0,0);
94 2 Flag = 1;
95 2 while(EndFlag); //等一帧解码结束
96 2
97 2 Dis4bitNumber(2,1,buf_s);
98 2
99 2 if(buf_s == 1)
100 2 {
101 3 Key = ~Key;
102 3
103 3 }
104 2
105 2 if(buf_s == 16)
106 2 {
107 3 SoundUP =0;
108 3 delay(50000);
109 3 SoundUP =1;
110 3 }
111 2
112 2 if(buf_s == 17)
113 2 {
114 3 SoundDown =0;
115 3 delay(50000);
116 3 SoundDown =1;
117 3 }
C51 COMPILER V7.50 SA3010P 05/19/2007 23:43:48 PAGE 3
118 2 delay(50000);
119 2 CleanScreen();
120 2
121 2 delay(1000);
122 2 }
123 1 }
124
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 209 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -