?? ir.lst
字號:
C51 COMPILER V7.06 IR 10/10/2003 10:51:50 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE IR
OBJECT MODULE PLACED IN IR.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE IR.c BROWSE MODDP2 DEBUG OBJECTEXTEND CODE
stmt level source
1 #include "CS6208.H"
2 #include "REG.H"
3 #include <intrins.h>
4 #include <stdlib.h>
5 #include <math.h>
6 #include <absacc.h>
7
8 #include "NIC.H"
9 #include "IR.H"
10
11 #define IR38KHz //use 38khz crastal,else use timer0 generate 38khz
12 #define TIMER0_RELOAD 0x7C
13
14 #define TRUE 1
15 #define FALSE 0
16
17 unsigned char __wsystemtimer = 0;
18 #define TIME_1S 100
19
20 unsigned char __wsend = 0;
21 #define TIME_ARPREQ 100
22 #define TIME_SEND 200
23
24 unsigned char idata __wmeterquantity;
25 unsigned char idata __warmed;
26 unsigned char idata ALARM_BUFFER[4];
27 unsigned char xdata TIME[7];
28 unsigned char xdata CONTROL[4];
29 struct METER{
30 unsigned char TYPE;
31 unsigned char PULSE;
32 unsigned char WIDTH;
33 unsigned char COUNTER0;
34 unsigned char COUNTER1;
35 unsigned long AMOUNT;
36 unsigned char WRITE;
37 }METER0,METER1,METER2,METER3,METER4,METER5;
38
39 void PARA_INIT();
40 void CS6208_INIT();
41
42 /*************************/
43
44 /************************/
45 main()
46 {
47 1
48 1 PBOE = 0xFF;//PB as output
49 1 PCOE = 0xFF;//PC as output
50 1 BREG = 0xFF;
51 1 CREG = 0xFF;
52 1
53 1 PARA_INIT();
54 1 CHECKSUM_UDP();
55 1
C51 COMPILER V7.06 IR 10/10/2003 10:51:50 PAGE 2
56 1 Init_NIC();
57 1 CS6208_INIT();
58 1 ARPREQ();
59 1
60 1 while(1)
61 1 {
62 2
63 2 TA = 0xAA;
64 2 TA = 0x55;
65 2 WDCON = WDCON|0x01;//clear watchdog timer
66 2
67 2 #ifdef IR38KHz
68 2 if (__wirtime >= TIME_IR)
69 2 {
70 3 __wirtime = 0;
71 3
72 3 if (!__blearn)
73 3 {
74 4 __blearn = TRUE;
75 4 __sbbusy = 0;
76 4 IR_CLEAR();
77 4 EX0 = 1;//enable ir interrupt
78 4 }
79 3 else
80 3 {
81 4 __blearn = FALSE;
82 4 if (__dir)
83 4 {
84 5 __dirlong = 0;
85 5 EX0 = 1;//enable ir interrupt
86 5 }
87 4 }
88 3 }
89 2 #endif
90 2
91 2 Deal_Packet();
92 2
93 2 if (__wsend == TIME_ARPREQ)
94 2 {
95 3 __wsend = TIME_ARPREQ + 30;
96 3 ARPREQ();
97 3 }
98 2 if (__wsend == TIME_SEND)
99 2 {
100 3 __wsend = TIME_SEND + 30;
101 3 UDP(R_BROARDCAST);
102 3 }
103 2 }
104 1 }
105 /**********************************************************/
106
107 void PARA_INIT()
108 {
109 1
110 1 MACADDRESS[0] = 0x00;
111 1 MACADDRESS[1] = 0x40;
112 1 MACADDRESS[2] = 0x9D;
113 1 MACADDRESS[3] = 0xFF;
114 1 MACADDRESS[4] = 0xFF;
115 1 MACADDRESS[5] = 0xFF;
116 1
117 1 IPADDRESS[0] = 221;
C51 COMPILER V7.06 IR 10/10/2003 10:51:50 PAGE 3
118 1 IPADDRESS[1] = 222;
119 1 IPADDRESS[2] = 222;
120 1 IPADDRESS[3] = 164;
121 1
122 1 PC_MACADDRESS[0] = 0x00;
123 1 PC_MACADDRESS[1] = 0x40;
124 1 PC_MACADDRESS[2] = 0x9D;
125 1 PC_MACADDRESS[3] = 0xFF;
126 1 PC_MACADDRESS[4] = 0xFF;
127 1 PC_MACADDRESS[5] = 0x00;
128 1
129 1 PC_IPADDRESS[0] = 221;
130 1 PC_IPADDRESS[1] = 222;
131 1 PC_IPADDRESS[2] = 222;
132 1 PC_IPADDRESS[3] = 1;
133 1 }
134 void CS6208_INIT()
135 {
136 1 PLLFC = 0x28;//PLL CLOCK :20*(8+1)/(2+1)=60MHz
137 1 //PLLFC = 0x5B;//PLL CLOCK :20*(B+1)/(5+1)=40MHz
138 1 //PLLFC = 0x4A;//PLL CLOCK :20*(A+1)/(4+1)=44MHz
139 1 //PLLFC = 0x45;//PLL CLOCK :20*(5+1)/(4+1)=24MHz
140 1 CCR = 0x05;//using fast OSC and disable slow OSC
141 1
142 1 CKCON = 0xC0;
143 1
144 1 TA = 0xAA;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -