亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        PCF8591工作原理及與單片機(jī)通信代碼設(shè)計(jì)

        2024-12-31 00:00:00任靜
        科技創(chuàng)新與應(yīng)用 2024年26期
        關(guān)鍵詞:氣敏風(fēng)扇代碼

        摘" 要:該文以STC15W1K24S單片機(jī)為核心控制器,分析PCF8591的工作原理,并以單片機(jī)采集氣敏傳感器的氣體濃度為例,設(shè)計(jì)一個(gè)氣體濃度監(jiān)測(cè)自動(dòng)控制系統(tǒng),給出單片機(jī)和PCF8591之間通信的代碼。設(shè)計(jì)代碼在實(shí)際設(shè)備上經(jīng)過(guò)驗(yàn)證,可以正確采集到氣敏傳感器的氣體濃度。

        關(guān)鍵詞:PCF8591;通信;代碼設(shè)計(jì);STC15W1K24S單片機(jī);傳感器

        中圖分類號(hào):TN911" " " 文獻(xiàn)標(biāo)志碼:A" " " " " 文章編號(hào):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是一個(gè)單片集成、單獨(dú)供電、低功耗和8位的互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)數(shù)據(jù)轉(zhuǎn)換器件,廣泛使用在需要進(jìn)行A/D轉(zhuǎn)換的場(chǎng)合。PCF8591具有4個(gè)模擬輸入、1個(gè)模擬輸出、1個(gè)串行I2C總線接口。PCF8591有3個(gè)地址引腳A0、A1、A2,可用于硬件地址編程,允許在同一個(gè)I2C總線上接入8個(gè)PCF8591器件。在PCF8591器件上輸入輸出的地址、控制、數(shù)據(jù)信號(hào)都是通過(guò)雙線雙向I2C總線以串行的方式進(jìn)行傳輸。

        1" PCF8591工作原理介紹

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

        一根I2C總線上可以掛接8個(gè)PCF8591芯片,因此對(duì)PCF8591進(jìn)行讀寫(xiě)操作時(shí)要提供PCF8591的地址。PCF8591芯片的地址設(shè)置格式如圖2所示。

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

        PCF8591進(jìn)行ADC轉(zhuǎn)換時(shí),需要通過(guò)控制寄存器設(shè)置ADC的工作模式。PCF8591的控制寄存器及寄存器功能說(shuō)明如圖3、表2所示。

        PCF8591進(jìn)行A/D轉(zhuǎn)換時(shí),先由主機(jī)通過(guò)I2C總線發(fā)送起始信號(hào);接著主機(jī)向PCF8591寫(xiě)地址信號(hào),PCF8591發(fā)送應(yīng)答信號(hào);然后主機(jī)發(fā)送控制字節(jié)數(shù)據(jù),使能模擬輸出控制位,選擇模擬量輸入方式,設(shè)置轉(zhuǎn)換通道,PCF8591給出應(yīng)答信號(hào);接著主機(jī)重新發(fā)送I2C起始信號(hào),主機(jī)發(fā)送地址信號(hào),方向?yàn)椤白x”,PCF8591給出應(yīng)答信號(hào);最后讀取轉(zhuǎn)換數(shù)據(jù),主機(jī)發(fā)送停止信號(hào)并返回。

        2" 系統(tǒng)硬件環(huán)境搭建

        在本實(shí)驗(yàn)系統(tǒng)中,用到的硬件設(shè)備有氣敏傳感模塊、功能擴(kuò)展模塊、STC15W1K24S單片機(jī)開(kāi)發(fā)模塊、LCD12864顯示模塊、繼電器模塊和風(fēng)扇模塊,其中功能擴(kuò)展模塊集成了PCF8591芯片,具有數(shù)/模和模/數(shù)轉(zhuǎn)換功能。本系統(tǒng)實(shí)現(xiàn)的功能為STC15W1K24S單片機(jī)開(kāi)發(fā)模塊采集氣敏傳感器的氣體濃度,氣敏傳感模塊的氣體濃度輸出為模擬量,通過(guò)功能擴(kuò)展模塊將模擬量轉(zhuǎn)換為數(shù)字量,并通過(guò)I2C通信接口將數(shù)據(jù)傳輸給單片機(jī),當(dāng)氣體濃度超過(guò)閾值時(shí),單片機(jī)控制風(fēng)扇打開(kāi),當(dāng)氣體濃度小于閾值時(shí),單片機(jī)控制風(fēng)扇關(guān)閉。氣體濃度及風(fēng)扇的開(kāi)關(guān)狀態(tài)可以在LCD12864顯示模塊上顯示,系統(tǒng)硬件框圖如圖4所示。

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

        3" PCF8591與單片機(jī)通信代碼設(shè)計(jì)

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

        根據(jù)PCF8591和單片機(jī)的硬件連接,設(shè)計(jì)單片機(jī)STC15W1K24S單片機(jī)讀取PCF8591芯片模數(shù)轉(zhuǎn)換后的程序代碼如下。

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

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

        sbit AD_SDA=P3^7;" " "http://串行數(shù)據(jù)輸出端'

        I2C通信啟動(dòng)信號(hào)函數(shù),代碼如下。

        void ADiic_start()" " "http://PCF8591芯片I2C通信啟動(dòng)信號(hào)函數(shù)

        {

        AD_SDA=1;

        Delay5us();

        AD_SCL=1;

        Delay5us();

        AD_SDA=0;

        Delay5us();

        }

        I2C通信停止信號(hào)函數(shù),代碼如下。

        void ADiic_stop()" " " //PCF8591芯片I2C通信停止信號(hào)函數(shù)

        {

        AD_SDA=0;

        Delay5us();

        AD_SCL=1;

        Delay5us();

        AD_SDA=1;

        Delay5us();

        }

        應(yīng)答信號(hào)函數(shù),代碼如下。

        void ADiic_respons()" " "http://應(yīng)答信號(hào)函數(shù),相當(dāng)于一個(gè)智能的延時(shí)函數(shù)

        {

        unsigned char i;

        AD_SCL=1;

        Delay5us();

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

        i++;

        AD_SCL=0;

        Delay5us();

        }

        I2C通信初始化函數(shù),代碼如下。

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

        {

        AD_SDA=1;

        Delay5us();

        AD_SCL=1;

        Delay5us();

        }

        向PCF8591寫(xiě)數(shù)據(jù)函數(shù),代碼如下。

        void write_byteAD(unsigned char date)//向PCF85 91寫(xiě)一字節(jié)數(shù)據(jù)

        {

        unsigned char i,temp;

        temp=date;

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

        {

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

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

        Delay5us();

        AD_SDA=CY;

        Delay5us();

        AD_SCL=1;

        Delay5us();

        }

        AD_SCL=0;

        Delay5us();

        AD_SDA=1;

        Delay5us();

        }

        從SDA數(shù)據(jù)線讀一字節(jié)數(shù)據(jù)函數(shù),代碼如下。

        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://先左移一位,再在最低位接受當(dāng)前位

        AD_SCL=0;

        Delay5us();

        }

        return k;

        }

        向PCF8591寫(xiě)地址和控制信息函數(shù),代碼如下。

        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芯片讀數(shù)據(jù)函數(shù),代碼如下。

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

        {

        unsigned char date;

        ADiic_start();

        write_byteAD(PCF8591);

        ADiic_respons();

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

        ADiic_respons();

        ADiic_start();

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

        ADiic_respons();

        date=read_byteAD();

        ADiic_stop();

        return date;

        }

        4" 程序運(yùn)行結(jié)果驗(yàn)證

        本程序在新大陸公司的NEWLab平臺(tái)及相應(yīng)設(shè)備上進(jìn)行了驗(yàn)證,可以正確采集到氣體傳感器的濃度,當(dāng)氣體濃度大于閾值(1.43 V)時(shí),單片機(jī)控制繼電器開(kāi)啟風(fēng)扇,當(dāng)氣體濃度小于閾值(1.43 V)時(shí),單片機(jī)控制繼電器關(guān)閉風(fēng)扇。整個(gè)系統(tǒng)的控制信息可以在LCD12864顯示模塊上進(jìn)行顯示,程序運(yùn)行驗(yàn)證結(jié)果如圖5、圖6所示。

        5" 結(jié)束語(yǔ)

        本文重點(diǎn)介紹了PCF8591芯片的工作原理,設(shè)計(jì)了PCF8591與單片機(jī)進(jìn)行通信的程序代碼,搭建了氣敏傳感器氣體濃度采集控制系統(tǒng)。設(shè)計(jì)代碼經(jīng)過(guò)在實(shí)際設(shè)備上的驗(yàn)證,能正確實(shí)現(xiàn)控制系統(tǒng)功能的要求。

        參考文獻(xiàn):

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

        [2] 張漢飛.基于PCF8591的智能照明系統(tǒng)設(shè)計(jì)[J].職業(yè)技術(shù),2017,16(6):117-118.

        [3] 陳柱峰,沈治國(guó).基于PCF8591的I~2C總線A/D、D/A轉(zhuǎn)換[J].企業(yè)技術(shù)開(kāi)發(fā),2009,28(5):18-21.

        作者簡(jiǎn)介:任靜(1986-),女,碩士,講師。研究方向?yàn)槲锫?lián)網(wǎng)工程技術(shù)。

        猜你喜歡
        氣敏風(fēng)扇代碼
        鈷摻雜二氧化鈦納米片的制備及其氣敏特性研究
        云南化工(2021年8期)2021-12-21 06:37:16
        水熱法合成WO3納米片及其甲苯氣敏性能研究
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        氣敏傳感器的研究進(jìn)展
        建材與裝飾(2018年5期)2018-02-13 23:12:02
        電風(fēng)扇
        故事大王(2017年4期)2017-05-08 07:53:40
        基于智能手機(jī)控制風(fēng)扇運(yùn)行的實(shí)現(xiàn)
        新蒙迪歐車?yán)鋮s風(fēng)扇常高速運(yùn)轉(zhuǎn)
        91白浆在线视频| 亚洲成aⅴ人片久青草影院 | 视频在线观看一区二区三区| 一区二区免费国产a在亚洲 | 色拍拍在线精品视频| 久久婷婷国产综合精品| 人妻在线有码中文字幕| 99久久久无码国产精品秋霞网| 欧美丰满熟妇乱xxxxx图片| 亚洲国产成人Av毛片大全| 白白色免费视频一区二区在线| 波多野结衣中文字幕一区二区三区| 一本一道av无码中文字幕| 国产在线一区二区三区av| 网址视频在线成人亚洲| 无码人妻一区二区三区免费看 | 中文字幕日韩欧美一区二区三区 | 毛片av中文字幕一区二区| 在线观看 国产一区二区三区| 国产男女猛烈无遮挡免费网站| 无码的精品免费不卡在线| 国产黑色丝袜在线观看网站91| 免费一级淫片日本高清| 国产乱子伦农村叉叉叉| 免费高清日本中文| 激情五月六月婷婷俺来也| 亚洲高清乱码午夜电影网| 欧美高大丰满freesex| 日本经典中文字幕人妻| 丝袜美腿福利一区二区| 又粗又粗又黄又硬又深色的| 亚洲午夜无码AV不卡| 97久久综合精品国产丝袜长腿| 美女mm131爽爽爽| 国产内射合集颜射| 91在线视频视频在线| 国产乱人伦偷精品视频免观看 | 亚洲欧美综合在线天堂| 久久久精品人妻一区二区三区日本| 91色老久久偷偷精品蜜臀懂色| 一本一道波多野结衣av中文|