程序中,利用ATmega16单片机对DS18B20进行操作。并在8位数码管上显示当前温度,格式如23.5℃或者123.5℃,测试范围为-55~150℃。本程序在开发板上调试通过。
程序详解如下:
●目的:18B20温度显示。
●功能:单线测温。
●时钟频率:内部1MHz。
●编译环境:ICC-AVR6.31。
●使用硬件:DS18B20温度传感器。
●结果:数码管显示当前环境温度,格式为“当前温度:XX.X℃”,测试范围为-55~150℃。
●操作要求:连接好18B20,然后插上P18跳帽。
程序流程图如图14-8所示。
在下面的程序解释中,只给出各个功能模块的解释,完整的程序代码读者可参考光盘中的内容。
1)头文件部分。
程序中包含了特定头文件iom16v.h和macros.h,这两个头文件都在ICC程序安装文件夹下的一个include目录中,iom16v.h和用户选择的芯片相对应,如果选择的是ATmega16,那么这个文件就是iom16v.h,在这样的文件中定义了对应芯片的各个硬件地址。macros.h文件中定义了一些宏命令和老版的语言写法。通常每一个程序都要包含这个头文件。关于iom16v.h和macros.h读者可以在安装目录下的include文件夹里找到。
图14-8 DS18B20温度数码管显示流程图
2)定义DS18B20的操作端口。
3)全局变量的定义。
(www.xing528.com)
4)函数声明。函数定义放在函数调用后时,这种情况需要进行函数说明。
5)主函数。
6)定时器中断服务程序。
7)DS18B20初始化函数。
8)DS18B20读一个字节函数。
9)DS18B20写一个字节函数。
10)从DS18B20读取温度函数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。