📄 ds18b20.lst
字号:
C51 COMPILER V7.20 DS18B20 03/24/2007 02:38:50 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE DS18B20
OBJECT MODULE PLACED IN DS18B20.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DS18B20.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /*****************************************************************************
2 MCU8051学习板演示程序
3
4 (c) Copyright 2007-2007,广州恒芯电子
5 All Rights Reserved
6 *****************************************************************************/
7
8 /*****************************************************************************
9 程序说明
10 名称: MCU8051学习板演示程序(DS18B20测试)
11 功能: 实现在数码管上显示当前温度
12 版本:2007-03-01
13 *****************************************************************************/
14
15 /*****************************************************************************
16 硬件说明
17 单片机: 兼容MCS-51单片机/STC89C51
18 晶振频率: 12MHz
19 *****************************************************************************/
20
21 #include "regx52.h"
22
23 /****************************************************************************
24 说明: 程序预定义
25 *****************************************************************************/
26 #define LED7A_STATUS P1_0/*数码管第一位控制引脚(0为有效,1为无效)*/
27 #define LED7B_STATUS P1_1/*数码管第二位控制引脚(0为有效,1为无效)*/
28 #define LED7C_STATUS P1_2/*数码管第三位控制引脚(0为有效,1为无效)*/
29 #define LED7D_STATUS P1_3/*数码管第四位控制引脚(0为有效,1为无效)*/
30
31 #define LED7_STATUS P0/*数码管状态引脚(0为有效,1为无效)*/
32
33 #define DS18B20_IO P3_2/*DS18B20数据引脚*/
34
35 #define DS18B20_ORDER_READID 0x33
36 #define DS18B20_ORDER_JMPROM 0xcc
37 #define DS18B20_ORDER_START 0x44
38 #define DS18B20_ORDER_READREG 0Xbe
39
40 /****************************************************************************
41 说明: 变量定义
42 *****************************************************************************/
43 code unsigned char m_ucLedTab[]=
44 {
45 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90,
46 0x88, 0x83, 0xC6, 0xa1 ,0x86 ,0x8e, 0xff
47 };/*数码管十六进制编码表*/
48
49 unsigned char m_ucLedBuf[4];/*七段数码管显示值缓存*/
50
51 /****************************************************************************
52 名称: Delay
53 说明: 程序延时
54 参数: 无
55 返回: 无
C51 COMPILER V7.20 DS18B20 03/24/2007 02:38:50 PAGE 2
56 *****************************************************************************/
57 void Delay();
58
59 /****************************************************************************
60 名称: Led7Scan()
61 说明: 数码管动态扫描处理程序
62 参数: 无
63 返回: 无
64 *****************************************************************************/
65 void Led7Scan();
66
67 /****************************************************************************
68 名称:DS18B20ReadTemp
69 说明:DS18B20读取当前温度
70 参数:无
71 返回: unsigned char 温度值
72 ****************************************************************************/
73 unsigned char DS18B20ReadTemp();
74
75 /****************************************************************************
76 名称:DS18B20Init
77 说明:DS18B20初始化
78 参数:无
79 返回: 无
80 ****************************************************************************/
81 unsigned char DS18B20Init();
82
83
84 /****************************************************************************
85 名称:DS18B20ReadBit
86 说明:DS18B20读位操作
87 参数:无
88 返回: unsigned char ucData 读位
89 ****************************************************************************/
90 unsigned char DS18B20ReadBit();
91
92 /****************************************************************************
93 名称:DS18B20ReadChar
94 说明:DS18B20读字节操作
95 参数:无
96 返回: unsigned char ucData 读字节
97 ****************************************************************************/
98 unsigned char DS18B20ReadChar();
99
100 /****************************************************************************
101 名称:DS18B20WriteBit
102 说明:DS18B20写位操作
103 参数:unsigned char ucData 写位
104 ****************************************************************************/
105 void DS18B20WriteBit(unsigned char ucData);
106
107 /****************************************************************************
108 名称:DS18B20WriteChar
109 说明:DS18B20写字节操作
110 参数:unsigned char ucData 写字节
111 返回: 无
112 ****************************************************************************/
113 void DS18B20WriteChar(unsigned char ucData);
114
115 /****************************************************************************
116 名称:DS18B20Delay
117 说明:DS18B20延时
C51 COMPILER V7.20 DS18B20 03/24/2007 02:38:50 PAGE 3
118 参数:unsigned int uiDelay 时间延时
119 返回: 无
120 ****************************************************************************/
121 void DS18B20Delay(unsigned char ucDelay);
122
123 /*****************************************************************************
124 程序开始
125 *****************************************************************************/
126 void main()
127 {
128 1 unsigned char ucTemp=0;/*计数值置0*/
129 1
130 1 /*T0中断设定*/
131 1 TMOD=0x01;/*使用T0:GATE=0,C/T=0(定时),M1 M0=01(工作方式1)*/
132 1 TH0=0xec;/*定时时间5毫秒*/
133 1 TL0=0x78;
134 1 ET0=1;/*允许T0中断*/
135 1 TR0=1;/*使T0工作*/
136 1 EA=1;/*总中断开启*/
137 1
138 1 while(1)
139 1 {
140 2 ucTemp=DS18B20ReadTemp();/*获取当前温度*/
141 2
142 2 m_ucLedBuf[0]=16;
143 2 m_ucLedBuf[1]=16;
144 2 m_ucLedBuf[2]=(ucTemp%100)/10;/*取出十位数*/
145 2 m_ucLedBuf[3]=ucTemp%10;/*取出个位数*/
146 2
147 2 Delay();/*延时*/
148 2 }
149 1 }
150
151 /*****************************************************************************
152 名称: Interrupt1Handler
153 说明: T0中断入口
154 参数: 无
155 返回 :无
156 *****************************************************************************/
157 void Interrupt1Handler() interrupt 1
158 {
159 1 Led7Scan();/*数码管动态扫描处理程序*/
160 1 TH0=0xec;/*重新设置T0定时值*/
161 1 TL0=0x78;
162 1 }
163
164
165 /****************************************************************************
166 名称: Delay
167 说明: 程序延时
168 参数: 无
169 返回: 无
170 *****************************************************************************/
171 void Delay()
172 {
173 1 unsigned char a,b;
174 1
175 1 for(a=0;a<255;a++)
176 1 for(b=0;b<255;b++);
177 1 }
178
179 /****************************************************************************
C51 COMPILER V7.20 DS18B20 03/24/2007 02:38:50 PAGE 4
180 名称: Led7Scan()
181 说明: 数码管动态扫描处理程序
182 参数: 无
183 返回: 无
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -