標題:
單片機+PCF8591的數(shù)字電壓表Proteus仿真設計 源程序
[打印本頁]
作者:
dream772
時間:
2019-12-4 11:56
標題:
單片機+PCF8591的數(shù)字電壓表Proteus仿真設計 源程序
基于PCF8591的數(shù)字電壓表設計
Snipaste_2019-12-04_11-55-36.png
(70.44 KB, 下載次數(shù): 105)
下載附件
proteus仿真原理圖
2019-12-4 11:55 上傳
單片機源程序如下:
#include "config.h"
#include "IIC.h"
// 初始化PCF8591
void Init_PCF(){
IIC_Start(); // IIC起始信號
IIC_SendByte(PCF_Address + IIC_Write); // 寫入PCF8591器件地址和寫方向位
IIC_WaitAck(); // 等待從機應答
IIC_SendByte(0x00); // 寫入控制字0000 0000,選擇通道0
IIC_WaitAck(); // 等待從機應答
IIC_Stop(); // IIC結(jié)束信號
}
//將模擬量轉(zhuǎn)換為數(shù)字量
uchar Read_PCF() {
uchar temp;
IIC_Start(); // IIC起始信號
IIC_SendByte(PCF_Address + IIC_Read); // 發(fā)送PCF8591地址和讀方向位
IIC_WaitAck(); // 等待從機應答
temp = IIC_ReadByte(); // 讀取數(shù)字量
IIC_SendAck(1); // 讀取完畢,主機發(fā)送結(jié)束標志位
IIC_Stop(); // IIC結(jié)束信號
return temp;
}
// 數(shù)字量轉(zhuǎn)換為模擬量
void PCF_Output(uchar Digital) {
IIC_Start();
IIC_SendByte(PCF_Address + IIC_Write); //器件地址+0,下一個字節(jié)為寫入
IIC_WaitAck();
IIC_SendByte(0x40); //設置控制字 0100 0000 允許模擬輸出,不自增單端
IIC_WaitAck();
IIC_SendByte(Digital); //將要轉(zhuǎn)換的數(shù)字量寫入
IIC_所有資料51hei提供下載:
WaitAck();
IIC_Stop();
}
復制代碼
所有資料51hei提供下載:
數(shù)字電壓表設計.zip
(1.04 MB, 下載次數(shù): 151)
2019-12-4 11:52 上傳
點擊文件名下載附件
proteus仿真+源程序
下載積分: 黑幣 -5
作者:
元亨利貞
時間:
2019-12-4 23:45
voldata = iic_readvoldata(); //接收iic總線輸出數(shù)據(jù)
vol =1000- voldata*5/25.5*20; //將iic總線輸出數(shù)據(jù)轉(zhuǎn)換成百分比形式的數(shù)值(精確到0.1%)
我也用了這個芯片,但AD的算法我不明白,,你能講一講嗎
作者:
down2
時間:
2019-12-30 19:24
感謝分享!
作者:
yizhenfeng
時間:
2020-2-8 13:31
感謝分享
作者:
linnyshow
時間:
2020-2-26 13:03
感謝分享
作者:
qiaojungen51
時間:
2020-12-28 12:16
為什么單片機換成52的數(shù)碼管就不亮了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1