📄 irshou1.lst
字号:
C51 COMPILER V7.06 IRSHOU1 03/31/2008 14:40:51 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE IRSHOU1
OBJECT MODULE PLACED IN irshou1.OBJ
COMPILER INVOKED BY: D:\KIEL C\C51\BIN\C51.EXE irshou1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<AT89x55.H>
2 #include <stdio.h>
3 #include <INTRINS.H>
4 //#include "Uart.h"
5 #define uint unsigned int
6 #define uchar unsigned char
7 sbit ir=P1^6;
8 sbit out=P1^7;
9 uchar irdata[4];
10 uchar *irdat;
11 uint count0,count1;
12 uchar count10,count11;
13 uchar t;
14 bit flag,flag1,flag0;
15 //*********************************
16 //t*2us 4.5ms equ 561 9ms equ 1124 0.56ms equ 69 2.5ms equ 311
17 //*********************************
18 void delay(uint t)
19 { while(--t);
20 1 }
21 //*********************************
22 //
23 //*********************************
24 void checkhead()
25 { while(ir==0)
26 1 {count0++;
27 2 }
28 1 if(count0>140)
29 1 {flag0=1;
30 2 }
31 1 count0=0;
32 1 if(flag0==1)
33 1 { flag0=0;
34 2 while(ir==1)
35 2 {count1++;
36 3 }
37 2 if(count1>350)
38 2 {flag1=1;
39 3 }
40 2 count1=0;
41 2 if(flag1==1)
42 2 {flag=1;
43 3 flag1=0;
44 3 }
45 2
46 2 }
47 1 }
48 uchar irshou(uchar *data1)
49 { //uchar data1,BitCnt,i;
50 1 uchar i,j;
51 1 checkhead();
52 1 if(flag==1)
53 1 {
54 2 // out=0;
55 2 flag=0;
C51 COMPILER V7.06 IRSHOU1 03/31/2008 14:40:51 PAGE 2
56 2 //t=33;
57 2 for(i=0;i<4;i++) //共4个字节
58 2 { //1
59 3 *data1=0;
60 3 for(j=0;j<8;j++)
61 3 { while(ir==0)
62 4 { count10++;
63 5 }
64 4 if(count10>20)
65 4 {(*data1)<<=1;
66 5 //out=0;
67 5 }
68 4 //0
69 4 while(ir==1)
70 4 {count11++;
71 5 }
72 4 if(count11<60)
73 4 {*data1|=1;
74 5 //out=0;
75 5 }
76 4 count10=0;
77 4 count11=0;
78 4 //out=1;
79 4 }
80 3
81 3 data1++;
82 3 //return(0);
83 3 }
84 2
85 2 }
86 1
87 1 return 0;
88 1 }
89
90
91 void uart_init()
92 {
93 1
94 1 SCON = 0xDA; // SCON: mode 1, 8-bit UART, enable rcvr */
95 1 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit reload */
96 1 TH1 = 0xFD; // TH1: reload value for 1200 baud @ 12MHz */
97 1 TR1 = 1; // TR1: timer 1 run */
98 1 TI = 1; // TI: set TI to send first char of UART */
99 1
100 1 }
101
102 void send(unsigned char ch)
103 {SBUF=ch;
104 1 while(TI==0);
105 1 TI=0;
106 1 }
107
108 void main()
109 { uchar c1,c2;
110 1 uart_init();
111 1 while(1)
112 1 { //checkhead();
113 2 irshou(&irdata);
114 2 //P2=irdata[2];
115 2 //P3=irdata[3];
116 2 //
117 2 if(irdata[2]==~irdata[3])
C51 COMPILER V7.06 IRSHOU1 03/31/2008 14:40:51 PAGE 3
118 2 {c1=irdata[2]/10;
119 3 c2=irdata[2]%10;
120 3 send('0'+c1);
121 3 send('0'+c2);
122 3 //send(irdata[2]);
123 3 }
124 2 //out=1;
125 2 }
126 1 }
127
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 266 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 3
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -