基于PCF8591的數(shù)字電壓表設(shè)計(jì)
Snipaste_2019-12-04_11-55-36.png (70.44 KB, 下載次數(shù): 105)
下載附件
proteus仿真原理圖
2019-12-4 11:55 上傳
單片機(jī)源程序如下:
- #include "config.h"
- #include "IIC.h"
- // 初始化PCF8591
- void Init_PCF(){
- IIC_Start(); // IIC起始信號(hào)
- IIC_SendByte(PCF_Address + IIC_Write); // 寫(xiě)入PCF8591器件地址和寫(xiě)方向位
- IIC_WaitAck(); // 等待從機(jī)應(yīng)答
- IIC_SendByte(0x00); // 寫(xiě)入控制字0000 0000,選擇通道0
- IIC_WaitAck(); // 等待從機(jī)應(yīng)答
- IIC_Stop(); // IIC結(jié)束信號(hào)
- }
- //將模擬量轉(zhuǎn)換為數(shù)字量
- uchar Read_PCF() {
- uchar temp;
- IIC_Start(); // IIC起始信號(hào)
- IIC_SendByte(PCF_Address + IIC_Read); // 發(fā)送PCF8591地址和讀方向位
- IIC_WaitAck(); // 等待從機(jī)應(yīng)答
- temp = IIC_ReadByte(); // 讀取數(shù)字量
- IIC_SendAck(1); // 讀取完畢,主機(jī)發(fā)送結(jié)束標(biāo)志位
- IIC_Stop(); // IIC結(jié)束信號(hào)
- return temp;
- }
- // 數(shù)字量轉(zhuǎn)換為模擬量
- void PCF_Output(uchar Digital) {
- IIC_Start();
- IIC_SendByte(PCF_Address + IIC_Write); //器件地址+0,下一個(gè)字節(jié)為寫(xiě)入
- IIC_WaitAck();
- IIC_SendByte(0x40); //設(shè)置控制字 0100 0000 允許模擬輸出,不自增單端
- IIC_WaitAck();
- IIC_SendByte(Digital); //將要轉(zhuǎn)換的數(shù)字量寫(xiě)入
- IIC_所有資料51hei提供下載:
- WaitAck();
- IIC_Stop();
- }
復(fù)制代碼
所有資料51hei提供下載:
數(shù)字電壓表設(shè)計(jì).zip
(1.04 MB, 下載次數(shù): 151)
2019-12-4 11:52 上傳
點(diǎn)擊文件名下載附件
proteus仿真+源程序 下載積分: 黑幣 -5
|