📄 ds18b20main.lst
字号:
C51 COMPILER V8.01 DS18B20MAIN 08/05/2006 11:05:56 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE DS18B20MAIN
OBJECT MODULE PLACED IN ds18b20main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ds18b20main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*
2 //************************************************************************* //
3 //
4 //
5 // COPYRIGHT (c) 2006 BY FOSHAN LX.
6 // -- ALL RIGHTS RESERVED --
7 //
8 // File Name: UFMAIN.C
9 // Author: guobin
10 // Created: 2006/04/20
11 // Modified:
12 // Revision: 2.0
13 //
14 //*************************************************************************
15 */
16
17 //CPU: P89LPC932A1 8K Flash 256+512Byte RAM
18 //Crystal:12MHz Fosc=12M
19 //DIVM=0 CCLK=Fosc=12M
20 //Single INS=6M=166ns
21
22 #include "hardware.h"
23
24 unsigned char LLEDData,RLEDData;
25 bit bdata CLRFlag;
26
27 extern UCHAR ROM64Bit[8];
28 extern UCHAR RAM9Byte[9];
29 extern RealTM RealTimeTM;
30
31 UCHAR TXDData[14];
32 UCHAR TXDCount;
33 UCHAR TXDLength;
34
35 extern UCHAR DS18B20_Start(void);
36 extern void DS18B20_ReadTM(void);
37 extern void DS18B20_WaitDQ(void);
38
39 void (*ISP)();
40
41 //P00(O) P01(O) P02(O) P03(O) P04(O) P05(O) P06(O) P07(O)
42 //P10(O) P11(I) P12(O) P13(I/O) P14(I) P15(I) P16(O) P17(O)
43 //P20(I/O) P21(I/O) P22(I/O) P23(I/O) P24(I/O) P25(I/O) P26(I/O) P27(I/O)
44 void GPIO_Initial(void)
45 {
46 1 P0M1=0x00;
47 1 P0M2=0x00;
48 1 P1M1=0x20;
49 1 P1M2=0x00;
50 1 P2M1=0x00;
51 1 P2M2=0x00;
52 1 }
53
54 void ISP_Initial(void)
55 {
C51 COMPILER V8.01 DS18B20MAIN 08/05/2006 11:05:56 PAGE 2
56 1 ISP=0x1F00;
57 1 if(!Key)
58 1 ISP();
59 1
60 1 SSTAT=0xFA;
61 1 BRGCON=0x00;
62 1 AUXR1=0x40;
63 1 SCON=0x50;
64 1 BRGR1=0x04; //cystal=12M baund=9600(0x04d2)-----baund=cclk/((brgr1,brgr0)+16)
65 1 BRGR0=0xD2;
66 1 BRGCON=0x03;
67 1 }
68
69 /*
70 位段编码对应关系:
71 数码管位:a b c d e f g dp
72 74HC164: Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
73 Q对应输出1点亮相应的位,比如显示1---写74HC164数据01100000(0x60)
74 */
75 code UCHAR LEDCode[]= //数码管编码表
76 {
77 0xFC, //'0'
78 0x60, //'1'
79 0xDA, //'2'
80 0xF2, //'3'
81 0x66, //'4'
82 0xB6, //'5'
83 0xBE, //'6'
84 0xE0, //'7'
85 0xFE, //'8'
86 0xF6, //'9'
87 };
88
89 /*
90 写74HC164函数
91 入口参数:写1个字节数据
92 出口参数:无
93 */
94 void HC164(UCHAR Dat)
95 {
96 1 UCHAR i;
97 1
98 1 HC164_CLK=0;
99 1 for(i=0;i<8;i++)
100 1 {
101 2 if(Dat&0x01) //移为顺序:LSB位先移出
102 2 HC164_AB=1;
103 2 else
104 2 HC164_AB=0;
105 2 HC164_CLK=1;
106 2 HC164_CLK=0;
107 2 Dat>>=1;
108 2 }
109 1 }
110
111 void ScanLEDOutput(void)
112 {
113 1 NLEDR=NLEDL=1;
114 1 if(CLRFlag)
115 1 {
116 2 CLRFlag=0;
117 2 HC164(LEDCode[RLEDData]);
C51 COMPILER V8.01 DS18B20MAIN 08/05/2006 11:05:56 PAGE 3
118 2 NLEDR=0;
119 2 }
120 1 else
121 1 {
122 2 CLRFlag=1;
123 2 HC164(LEDCode[LLEDData]);
124 2 NLEDL=0;
125 2 }
126 1 }
127
128 void T0_Initial(void)
129 {
130 1 TMOD&=0xf0;
131 1 TMOD|=0x01;
132 1 TH0=0x8A; //5MS
133 1 TL0=0xD0;
134 1 TR0=1;
135 1 ET0=1;
136 1 EA=1;
137 1 }
138
139 void T0_IRQ(void) interrupt 1
140 {
141 1 TH0=0x8A;
142 1 TL0=0xD0;
143 1
144 1 ScanLEDOutput();
145 1 }
146
147 char putchar (char c) {
148 1 if (c == '\n') {
149 2 while (!TI);
150 2 TI = 0;
151 2 SBUF = 0x0d; /* output CR */
152 2 }
153 1 while (!TI);
154 1 TI = 0;
155 1 return (SBUF = c);
156 1 }
157
158
159 void main(void)
160 {
161 1 UCHAR i;
162 1 UINT j;
163 1
164 1 GPIO_Initial();
165 1
166 1 ISP_Initial();
167 1
168 1 T0_Initial();
169 1
170 1 TI=1;
171 1 printf("P89LPC932A1 DS18B20 USB BOARD\n");
172 1
173 1 while(1)
174 1 {
175 2 for(j=0;j<60000;j++);
176 2
177 2 EA=0;
178 2 i=DS18B20_Start();
179 2 EA=1;
C51 COMPILER V8.01 DS18B20MAIN 08/05/2006 11:05:56 PAGE 4
180 2
181 2 if(i)
182 2 {
183 3 printf("DS18B20 Initial OK!\n");
184 3 printf("Read DS18B20 64Bit Rom Code\n");
185 3 for(i=0;i<8;i++)
186 3 printf("Rom[%bu]=%bx\n",i,ROM64Bit[i]);
187 3
188 3 DS18B20_WaitDQ();
189 3 EA=0;
190 3 DS18B20_ReadTM();
191 3 EA=1;
192 3
193 3 LLEDData=RealTimeTM.ZhengShu/10;
194 3 RLEDData=RealTimeTM.ZhengShu%10;
195 3 }
196 2 }
197 1 }
198
199
200
201
202
203
204
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 332 ----
CONSTANT SIZE = 105 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 21 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -