51单片机PCF8591热敏电阻温度监测程序
3星 · 超过75%的资源 需积分: 25 47 浏览量
更新于2024-09-17
收藏 2KB TXT 举报
该资源提供了一个使用51单片机控制PCF8591芯片进行AD转换,并通过I2C通信协议读取热敏电阻温度数据的源代码。程序将采集到的温度数据转化为数码管显示。
在这个项目中,51单片机是主要的控制器,它利用PCF8591芯片进行模拟数字转换(AD转换),PCF8591是一个集成的8位模拟输入/数字输出接口,支持I2C总线通信。热敏电阻作为温度传感器,其阻值随温度变化,通过PCF8591芯片将阻值转换为数字信号。
代码中,`ADflag`是一个标志位,用于指示AD转换是否完成。当`ADflag`被置为1时,表示需要进行一次新的AD转换。在`main()`函数中,如果检测到`ADflag`为1,则执行ADC转换并根据得到的温度值更新数码管显示。
`init()`函数初始化了系统,设置TMOD寄存器为模式1,启动定时器1来实现延时功能,用于控制AD转换的周期性触发。定时器1中断服务子程序`timer1()`在每经过预设时间(约500μs)后重装定时器寄存器,并将`ADflag`设置为1,触发AD转换。
`ADC(ucharch)`函数负责读取指定通道的AD转换结果,返回的是一个8位数值,代表温度数据。根据`data2`的值,程序将温度转换为整数并存储在数组`a[]`中,然后通过`display()`函数显示在数码管上。`display()`函数利用预定义的字符编码表将数字转化为数码管可显示的段码。
`start()`和`stop()`函数分别实现了I2C通信协议的起始和停止条件,`response()`函数处理应答信号,`read_byte()`和`write_byte(uchardata1)`分别用于读取和写入I2C总线的数据。
整个程序的核心是通过51单片机控制PCF8591进行温度数据的采集和处理,然后实时更新显示。这种设计可以应用于各种需要实时监测温度的场合,如环境监控、设备散热等。
7621 浏览量
208 浏览量
334 浏览量
2022-05-11 上传
2022-03-19 上传
2022-03-19 上传
2024-03-23 上传
195 浏览量
zhangxiangliang2
- 粉丝: 75
- 资源: 41
最新资源
- 手把手,教你入门WINOLS(入门篇).rar
- AWT
- table_calendar:高度可定制的功能丰富的日历小部件,适用于Flutter
- 家具进销存管理软件 宏达家具进销存管理系统 v3.0
- rhodeswiki
- astarisx:适用于React的高度可组合MVVM框架
- python-json-logger:用于标准python记录器的Json Formatter
- 星期六AI:挑战Tareas de AIS星期六
- 5种炫酷js鼠标跟随动画特效插件
- plot3Dmeshgrid:plot3Dmeshgrid(X,Y,Z) 绘制由函数 [Xgrid,Ygrid,Zgrid] = meshgrid(X,Y,Z) 返回的 3D 网格-matlab开发
- measure.zip中文版
- dislocker:FUSE驱动程序在Linux Mac OSX下读写Windows的BitLocker版本
- Java的dubbo.xsd配置文件
- slider_animate:创建滑块控制的动画-matlab开发
- 骰子滚动游戏是计算机掷骰子,然后用户掷骰子获得最高分。骰子滚动游戏是“计算机”掷骰子。骰子,然后用户掷骰子,最高分获胜。 胜利加起来,如果愿意的话,球员们可以再次打球,然后比分提高。 一旦玩家选择退出,总分就会显示出来
- moonfair.github.io