999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PCF8591工作原理及與單片機通信代碼設計

2024-12-31 00:00:00任靜
科技創新與應用 2024年26期
關鍵詞:單片機

摘" 要:該文以STC15W1K24S單片機為核心控制器,分析PCF8591的工作原理,并以單片機采集氣敏傳感器的氣體濃度為例,設計一個氣體濃度監測自動控制系統,給出單片機和PCF8591之間通信的代碼。設計代碼在實際設備上經過驗證,可以正確采集到氣敏傳感器的氣體濃度。

關鍵詞:PCF8591;通信;代碼設計;STC15W1K24S單片機;傳感器

中圖分類號:TN911" " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2024)26-0125-04

Abstract: In this paper, taking STC15W1K24S single chip microcomputer as the core controller, the working principle of PCF8591 is analyzed;with the gas concentration of gas sensor collected by single chip microcomputer as an example, an automatic control system for gas concentration monitoring is designed; and the communication code between single chip microcomputer and PCF8591 is given. The design code has been verified in the actual equipment, and the gas concentration of the gas sensor can be collected correctly.

Keywords: PCF8591; communication; code design; STC15W1K24S single chip microcomputer; sensor

PCF8591是一個單片集成、單獨供電、低功耗和8位的互補金屬氧化物半導體(CMOS)數據轉換器件,廣泛使用在需要進行A/D轉換的場合。PCF8591具有4個模擬輸入、1個模擬輸出、1個串行I2C總線接口。PCF8591有3個地址引腳A0、A1、A2,可用于硬件地址編程,允許在同一個I2C總線上接入8個PCF8591器件。在PCF8591器件上輸入輸出的地址、控制、數據信號都是通過雙線雙向I2C總線以串行的方式進行傳輸。

1" PCF8591工作原理介紹

PCF8591是一款8位的具有I2C總線接口的A/D和D/A數據轉換器,其具有4路模擬信號輸入通道、1路模擬信號輸出通道。PCF8591芯片可以通過管腳上的A0、A1、A2來配置芯片的硬件地址,因此在一根I2C總線上最多可同時連接8個PCF8591芯片。主機與芯片之間的地址信息、控制信息、數據信息都是通過I2C總線通信來實現的。PCF8591芯片的引腳定義及芯片封裝如圖1、表1所示。

一根I2C總線上可以掛接8個PCF8591芯片,因此對PCF8591進行讀寫操作時要提供PCF8591的地址。PCF8591芯片的地址設置格式如圖2所示。

圖2中8位地址中前4位為固定值1001,后4位為可編程部分,其中A2、A1、A0是可配置地址位,最后一位為讀寫方向位,當進行讀操作時,此位為1,進行寫操作時,此位為0。本設計中A2、A1、A0均接地,因此進行讀操作時的地址為0X91,進行寫操作時的地址為0X90。

PCF8591進行ADC轉換時,需要通過控制寄存器設置ADC的工作模式。PCF8591的控制寄存器及寄存器功能說明如圖3、表2所示。

PCF8591進行A/D轉換時,先由主機通過I2C總線發送起始信號;接著主機向PCF8591寫地址信號,PCF8591發送應答信號;然后主機發送控制字節數據,使能模擬輸出控制位,選擇模擬量輸入方式,設置轉換通道,PCF8591給出應答信號;接著主機重新發送I2C起始信號,主機發送地址信號,方向為“讀”,PCF8591給出應答信號;最后讀取轉換數據,主機發送停止信號并返回。

2" 系統硬件環境搭建

在本實驗系統中,用到的硬件設備有氣敏傳感模塊、功能擴展模塊、STC15W1K24S單片機開發模塊、LCD12864顯示模塊、繼電器模塊和風扇模塊,其中功能擴展模塊集成了PCF8591芯片,具有數/模和模/數轉換功能。本系統實現的功能為STC15W1K24S單片機開發模塊采集氣敏傳感器的氣體濃度,氣敏傳感模塊的氣體濃度輸出為模擬量,通過功能擴展模塊將模擬量轉換為數字量,并通過I2C通信接口將數據傳輸給單片機,當氣體濃度超過閾值時,單片機控制風扇打開,當氣體濃度小于閾值時,單片機控制風扇關閉。氣體濃度及風扇的開關狀態可以在LCD12864顯示模塊上顯示,系統硬件框圖如圖4所示。

氣敏傳感模塊利用半導體氣敏傳感器的特性測量氣體濃度,并將氣體濃度轉換為模擬量輸出,此模擬量需要通過功能擴展模塊將模擬量轉換為數字量,再送由單片機處理。氣敏傳感模塊輸出的模擬量連接功能擴展模塊的AD1(也即PCF8591芯片的通道0),經過模/數轉換后的數據由I2C通信接口輸出,I2C通信接口的SCL串行時鐘輸入端和SDA串行數據輸出端分別連接單片機的P36和P37引腳。單片機通過P16引腳控制繼電器模塊,當單片機通過P16引腳輸出高電平時,繼電器得電吸合,風扇開啟;當單片機控制P16引腳輸出低電平時,繼電器斷電釋放,風扇關閉。風扇的工作電壓為12 V。

3" PCF8591與單片機通信代碼設計

采集氣敏傳感器的氣體濃度時,從PCF8591的0通道采集,進行模/數轉換后數據從PCF8591的SDA引腳輸出,PCF8591的I2C通信引腳SCL和SDA分別連接STC15W1K24S單片機的P36和P37引腳。

根據PCF8591和單片機的硬件連接,設計單片機STC15W1K24S單片機讀取PCF8591芯片模數轉換后的程序代碼如下。

#define" PCF8591 0x90" /*PCF8591地址1001 A2 A1 A0 R/W" A2-A0由硬件設置,R/W讀操作為1,寫操作為0*/

sbit AD_SCL=P3^6;" " "http://串行時鐘輸入端

sbit AD_SDA=P3^7;" " "http://串行數據輸出端'

I2C通信啟動信號函數,代碼如下。

void ADiic_start()" " "http://PCF8591芯片I2C通信啟動信號函數

{

AD_SDA=1;

Delay5us();

AD_SCL=1;

Delay5us();

AD_SDA=0;

Delay5us();

}

I2C通信停止信號函數,代碼如下。

void ADiic_stop()" " " //PCF8591芯片I2C通信停止信號函數

{

AD_SDA=0;

Delay5us();

AD_SCL=1;

Delay5us();

AD_SDA=1;

Delay5us();

}

應答信號函數,代碼如下。

void ADiic_respons()" " "http://應答信號函數,相當于一個智能的延時函數

{

unsigned char i;

AD_SCL=1;

Delay5us();

while((AD_SDA==1)amp;amp;(ilt;250))

i++;

AD_SCL=0;

Delay5us();

}

I2C通信初始化函數,代碼如下。

void ADC_init()" " " " // PCF8591芯片I2C通信初始化

{

AD_SDA=1;

Delay5us();

AD_SCL=1;

Delay5us();

}

向PCF8591寫數據函數,代碼如下。

void write_byteAD(unsigned char date)//向PCF85 91寫一字節數據

{

unsigned char i,temp;

temp=date;

for(i=0;ilt;8;i++)

{

temp=templt;lt;1;" " " //左移一位,移出的一位在CY中

AD_SCL=0;" " " " " "http://只有在AD_SCL=0時AD_SDA才能變化值

Delay5us();

AD_SDA=CY;

Delay5us();

AD_SCL=1;

Delay5us();

}

AD_SCL=0;

Delay5us();

AD_SDA=1;

Delay5us();

}

從SDA數據線讀一字節數據函數,代碼如下。

unsigned char read_byteAD()

{

unsigned char i,k;

AD_SCL=0;

Delay5us();

AD_SDA=1;

Delay5us();

for(i=0;ilt;8;i++)

{

AD_SCL=1;

Delay5us();

k=(klt;lt;1)|AD_SDA;" "http://先左移一位,再在最低位接受當前位

AD_SCL=0;

Delay5us();

}

return k;

}

向PCF8591寫地址和控制信息函數,代碼如下。

void write_addDA(unsigned char control,unsigned char date)

{

ADiic_start();

write_byteAD(PCF8591);

ADiic_respons();

write_byteAD(control);

ADiic_respons();

write_byteAD(date);

ADiic_respons();

ADiic_stop();

}

從PCF8591芯片讀數據函數,代碼如下。

unsigned char PCF8591_Readch(unsigned char channel)" //00h通道為0

{

unsigned char date;

ADiic_start();

write_byteAD(PCF8591);

ADiic_respons();

write_byteAD(channel);" " " "http://模式為四個ADC單端輸入

ADiic_respons();

ADiic_start();

write_byteAD(PCF8591|0x01);" //把最后一位變成1,讀

ADiic_respons();

date=read_byteAD();

ADiic_stop();

return date;

}

4" 程序運行結果驗證

本程序在新大陸公司的NEWLab平臺及相應設備上進行了驗證,可以正確采集到氣體傳感器的濃度,當氣體濃度大于閾值(1.43 V)時,單片機控制繼電器開啟風扇,當氣體濃度小于閾值(1.43 V)時,單片機控制繼電器關閉風扇。整個系統的控制信息可以在LCD12864顯示模塊上進行顯示,程序運行驗證結果如圖5、圖6所示。

5" 結束語

本文重點介紹了PCF8591芯片的工作原理,設計了PCF8591與單片機進行通信的程序代碼,搭建了氣敏傳感器氣體濃度采集控制系統。設計代碼經過在實際設備上的驗證,能正確實現控制系統功能的要求。

參考文獻:

[1] 張林.PCF8591芯片與MCS-51單片機通信的探討[J].電子制作,2013(17):291.

[2] 張漢飛.基于PCF8591的智能照明系統設計[J].職業技術,2017,16(6):117-118.

[3] 陳柱峰,沈治國.基于PCF8591的I~2C總線A/D、D/A轉換[J].企業技術開發,2009,28(5):18-21.

作者簡介:任靜(1986-),女,碩士,講師。研究方向為物聯網工程技術。

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 四虎永久在线视频| 国产精品视频导航| 亚洲综合色婷婷中文字幕| 在线观看国产黄色| 国产人免费人成免费视频| 日韩成人高清无码| 澳门av无码| 日韩免费中文字幕| 亚洲人成人无码www| 亚洲第一成年人网站| 视频二区中文无码| 国产欧美视频综合二区| 在线网站18禁| 伊人色综合久久天天| 91人人妻人人做人人爽男同| 欧美人人干| 国产成人综合日韩精品无码首页| 97se亚洲综合| 久久香蕉国产线看观看式| 国产香蕉国产精品偷在线观看| 国产精品久久久久久久久kt| 国产天天射| 亚洲小视频网站| 成人午夜免费视频| 午夜免费视频网站| 亚洲系列中文字幕一区二区| 欧美日韩中文国产va另类| 婷婷久久综合九色综合88| 国内嫩模私拍精品视频| 亚洲综合二区| 国产成人毛片| 亚洲精品手机在线| 国产欧美日韩在线在线不卡视频| 黄色不卡视频| 毛片基地视频| av大片在线无码免费| 国产白浆在线观看| 国产欧美视频一区二区三区| 日本在线欧美在线| 欧美天堂在线| 亚洲精品无码抽插日韩| 国产成人久久综合777777麻豆| 国产福利免费视频| 伊大人香蕉久久网欧美| 久久国产精品夜色| 国产欧美另类| 亚洲嫩模喷白浆| 欧美成人怡春院在线激情| 午夜国产精品视频黄| 直接黄91麻豆网站| 欧美在线国产| 草逼视频国产| a免费毛片在线播放| 亚洲第一香蕉视频| 亚洲欧美国产视频| 亚亚洲乱码一二三四区| 香蕉视频国产精品人| 一级毛片免费的| 亚洲精品片911| 制服丝袜在线视频香蕉| 午夜福利无码一区二区| 亚洲综合香蕉| 国产玖玖视频| 欧美成人免费一区在线播放| 国产91精品久久| 国产在线观看一区二区三区| 婷婷开心中文字幕| 亚洲综合久久一本伊一区| 国产波多野结衣中文在线播放| 二级毛片免费观看全程| 亚洲一区免费看| 亚洲国产在一区二区三区| 成人午夜亚洲影视在线观看| 色老二精品视频在线观看| 国产经典在线观看一区| 超清无码熟妇人妻AV在线绿巨人| 亚洲中文字幕在线观看| 国产亚洲欧美在线人成aaaa| 国产成人精品男人的天堂| 欧美国产日韩另类| 综合网天天| 国产成人AV大片大片在线播放 |