基于PCF8591的數字電壓表設計
Snipaste_2019-12-04_11-55-36.png (70.44 KB, 下載次數: 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結束信號
- }
- //將模擬量轉換為數字量
- uchar Read_PCF() {
- uchar temp;
- IIC_Start(); // IIC起始信號
- IIC_SendByte(PCF_Address + IIC_Read); // 發送PCF8591地址和讀方向位
- IIC_WaitAck(); // 等待從機應答
- temp = IIC_ReadByte(); // 讀取數字量
- IIC_SendAck(1); // 讀取完畢,主機發送結束標志位
- IIC_Stop(); // IIC結束信號
- return temp;
- }
- // 數字量轉換為模擬量
- void PCF_Output(uchar Digital) {
- IIC_Start();
- IIC_SendByte(PCF_Address + IIC_Write); //器件地址+0,下一個字節為寫入
- IIC_WaitAck();
- IIC_SendByte(0x40); //設置控制字 0100 0000 允許模擬輸出,不自增單端
- IIC_WaitAck();
- IIC_SendByte(Digital); //將要轉換的數字量寫入
- IIC_所有資料51hei提供下載:
- WaitAck();
- IIC_Stop();
- }
復制代碼
所有資料51hei提供下載:
數字電壓表設計.zip
(1.04 MB, 下載次數: 151)
2019-12-4 11:52 上傳
點擊文件名下載附件
proteus仿真+源程序 下載積分: 黑幣 -5
|