日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]   筆者在電子市場購買了一塊3.6V450mAh的鋰離子充電本文介紹一種以AT89C51單片機為核心的低成本溫度控制實驗系統(tǒng)。該系統(tǒng)采用溫度傳感器DS18820實現(xiàn)一線數(shù)字式測溫,經(jīng)過PID算法輸出PWM波,再由PWM信

 

  筆者在電子市場購買了一塊3.6V450mAh的鋰離子充電本文介紹一種以AT89C51單片機為核心的低成本溫度控制實驗系統(tǒng)。該系統(tǒng)采用溫度傳感器DS18820實現(xiàn)一線數(shù)字式測溫,經(jīng)過PID算法輸出PWM波,再由PWM信號控制固態(tài)繼電器,調(diào)節(jié)熱阻絲發(fā)熱功率,最終達到控制被控對象溫度的目的,該系統(tǒng)還擴展了人機接口和串口通信,實現(xiàn)溫度設(shè)定、控制及圖像顯示。

  硬件設(shè)計

 

  1.總體設(shè)計

  系統(tǒng)結(jié)構(gòu)框圖如圖1所示,以AT89C51單片機為控制核心,DS18820電池,外型尺寸完全符合原機的內(nèi)部空間要求。按照正確的正負極性焊連到電路中即可完成電池的更換工作。實際使用效果極佳,連續(xù)播放時間超過了7個小時(圖4)。測量被控溫度,外圍電路包括人機接口的按鍵與數(shù)碼顯示電路、溫度讀取與控制驅(qū)動電路以及與上位機串行通信電路。用戶通過按鍵設(shè)定加熱溫度后,系統(tǒng)啟動加熱“熱得快”燒水。當前水溫經(jīng)過DS18820測量送給單片機,單片機經(jīng)PID校正后輸出PWM信號,然后通過固態(tài)繼電器驅(qū)動熱得快加熱,最終使水溫保持在設(shè)定值上,誤差不超過O.1℃。

  單片機系統(tǒng)通過串口與上位PC機實現(xiàn)通訊,上位機實現(xiàn)溫度、溫度曲線顯示以及PID參數(shù)的設(shè)定,用戶通過上位機可以清晰地看到設(shè)定的PID參數(shù)所產(chǎn)生的控制作用,如系統(tǒng)的微調(diào)、時間等參數(shù)。

  2溫度測試模塊

  系統(tǒng)選用美國DALLAS公司生產(chǎn)的單總線DS18820數(shù)字式溫度傳感器作為溫度模塊,引腳圖如下圖所示。

DS18820具有體積小、經(jīng)濟、使用方便靈活、測試精度高、性價比高、CRC校驗功能等特點,溫度測量范圍為-55+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測溫分辨率達0.0625℃,被測溫度采用帶符號位擴展的16位數(shù)字方式串行輸出。其工作電源即可在遠端引入,也可采用寄生電源方式產(chǎn)生,多個DS18820可以并聯(lián)到3根或2根線上,CPU只需一根端口線即可與多個DS18820通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。

  文中的DS18820三引腳分別接公共電源+5V、電源地和單片機P1.O引腳,具體電路如下圖所示,由于DS18820為1-WIRE器件,只需在其信號線上加一個上拉電阻到+5V電源即可。

  同時,每一個DS18820均有唯一系列號,即允許在不同地方放置溫度靈敏器件,通過SearchRom指令選擇不同的DS18820芯片,實現(xiàn)溫度的多點監(jiān)測,如HVAC環(huán)境控制、建筑物、設(shè)備或機械內(nèi)溫度檢測、過程溫度監(jiān)視和控制等。

  3鍵盤及顯示電路模塊

  本系統(tǒng)采用PT6961驅(qū)動控制電路同時驅(qū)動鍵盤與數(shù)碼管。PT6961為帶有鍵盤掃描接口的LED驅(qū)動控制專用電路,內(nèi)部集成MCU數(shù)字接口、數(shù)據(jù)鎖存器、LED高壓驅(qū)動、鍵盤掃描等電路。主要應用于VCR、VCD、DVD及家庭影院等產(chǎn)品的顯示屏驅(qū)動、多種顯示模式(11段×7位~14段×4位)、鍵掃描(10×3bit)電路、灰度調(diào)節(jié)電路(占空比8級可調(diào)),與單片機實現(xiàn)串行數(shù)據(jù)傳輸,節(jié)省了單片機引腳。PT6961可以自己驅(qū)動顯示和鍵盤模塊電路,可實現(xiàn)串行數(shù)據(jù)傳輸,同日寸對時序要求較高。

  單片機的P0.6引腳與PT6961的時鐘線相連,控制時序;P0.7引腳與PT6961的片選端相連,選通芯片,P0.4、PO.5引腳與PT6961的DOUT、DIN端相連,進行數(shù)據(jù)和指令的串行傳輸,具體的傳輸數(shù)據(jù)仍由單片機編程控制。PT6961在cLOCk端產(chǎn)生下降沿時,讀取DIN口的數(shù)據(jù),在clock端產(chǎn)生上升沿時,在DOUT口產(chǎn)生按鍵寄存器值可供單片機讀取。硬件連接電路如下圖所示,該芯片可以同時驅(qū)動(8~14)段×(4~7)位數(shù)碼管和3×10個按鍵,本文選用驅(qū)動6個數(shù)碼管和1×6個按鍵。

  4.執(zhí)行模塊

  系統(tǒng)采用固態(tài)繼電器(SSR)控制熱得快電源,固態(tài)繼電器是一種四端器件,兩個輸人端,兩個輸出端,輸入端接控制信號,輸出端與負載、電源串聯(lián),SSR實際是一個受控電力電子開關(guān)。

  單片機經(jīng)PID算法,從P1.5口輸出PWM波,經(jīng)ULN2003反相驅(qū)動后,作為SSR的控制信號,如圖5所示,在固態(tài)繼電器輸出端接兩個二端口插件,方便引線串入熱得快插線中。由于SSR與熱得快接口是整個系統(tǒng)和電路板唯一一塊強電部分,為將其對弱電部分的干擾降到最低,弱電電路線遠離該部分電路,且不共地,接線端子的腳間距應大于SSR的腳間距。

  5.串行通信模塊

  本系統(tǒng)采用串口實現(xiàn)單片機與上位計算機的連接,單片機向上位機傳送溫度值,上位機顯示該值,并畫出溫度變化曲線圖,反應溫度的變化情況,同時上位機可以調(diào)整PID參數(shù),使系統(tǒng)適用于不同的對象。串行通信連接如下圖所示,其中5個電容均取O.1μF的典型值,串口

  DB9的5端為公共端接地端,2、3端則分別連接信號的接收端和發(fā)送端,該電路完成TTL電平與RS232電平轉(zhuǎn)換,DB9接口通過交叉串口線連接到PC機上,完成硬件的串行通信。

  軟件設(shè)計

  為加強程序的可讀性、可移植性和便于調(diào)試,系統(tǒng)軟件設(shè)計采用模塊化思想,程序運行時,通過主程序調(diào)用各子程序模塊。本文主程序流程如下圖所示,軟件設(shè)計主要講述DS18820信號處理子程序和串口通信子程序。

  1.DS18820信號處理子程序

  DSl8820為1-wire制器件,采用一根信號線即可與單片機進行串行通信,簡化了硬件電路,但是,在軟件設(shè)計中須進行復雜的時序控制。DS1820單線通信功能為分日寸完成,有嚴格的時隙概念,系統(tǒng)對DS1820的各種操作必須按協(xié)議進行。

  操作協(xié)議為:初始化DS1820(發(fā)復位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù),DS18820操作程序流程如下圖所示。

  本文只有一個DSl8820掛在總線上,因此每次對總線進行讀寫日寸,可跳過讀ROM指令,為提高測溫精度,文中采用默認的12位數(shù)碼轉(zhuǎn)換,即0.0625度/位,程序如下:

  #include

  sbit DQ=P1^O;

  void Init_DS18820();

  WriteOneChar(unsigned char dat);

  char ReadOneChar();

  void deIay(unsigned int i);

  unsigned int ReadTemperature()

  {

  unsigned char a=0,c=O:

  unsigned char b=O;

  unsigned int t=O;

  float tt=0;

  Init_DS18820();

  WriteOneChar(0xCC);

  /*跳過讀序號列號的操作*/

  WriteOneChar(Ox44);

  /*啟動溫度轉(zhuǎn)換*/

  Init_DS18820();

  WriteOneChar(OxCC);

  /*跳過讀序號列號的操作*/

  WriteOneCha r(0xBE);

  /*讀取溫度寄存器等(共可讀9個寄

  存器)前兩個就是溫度*/

  a=ReadOneChar();

  /*Read the low byte of the tem-perature*/

  b=ReadOneChar();

  /*high*/

  c=a;

  a>>=4;

  b<<=4;

  t=aㄧb;

  , c&=0x0F;

  tt=c;

  tt*=0.0625;

  c=tt*1 0+0.5;

  t=t*1 0+c;

  return t;

  /*溫度轉(zhuǎn)化,位了避免浮點數(shù)運算,

  盡量用整形數(shù)據(jù)運算,這樣可以減輕CPU負擔*/

  }

  void Init_DS18820()

  /*初始化函數(shù)*/

  {

  unsigned char x=0;

  DQ=1;

  /*DQ復位*/

  delay(8);

  /*稍做延時*/

  DQ=0;

 ?。瘑纹瑱C將DQ拉低*/

  delay(80);

  /*精確延時大于480μs*/

  DQ=1;

  /*拉高總線*/

  delay(1 4):

  x=DQ;

 ?。?稍做延時后,如果x=0則初始化

  成功x=1則初始化失敗*/

  }

  char ReadoneChar()

 ?。?讀一個字節(jié)*/

  {

  unsigned char i=O;

  unsigned char dat=O;

  for(i=8;i>O;i--)

  {

  DQ=0:

  /*給脈沖信號*/

  dat>>=1;

  DQ=1;

  /*給脈沖信號*/

  if(DQ)

  datl=Ox80;

  delay(4);

  }

  return(dat);

  }

  WriteOneChar(unsigned char dat)

  /*寫一個字節(jié)*/

  {

  unsigned char i=O;

  for(i=8:i>O:i--)

  {

  DO=0;

  DQ=dat&Ox01;

  delay(5);

  DQ=1:

  dat>>=1;

  }

  delay(4);

  }

  void delay(unsigned int i)

  /*延時函數(shù)*/

  {

  while(i--);

  }

  2,串行通信程序設(shè)計

  單片機通過引腳RXD(P3.O,串行數(shù)據(jù)接收端)和引腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通訊,SBUF為串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器,具有相同名字和地址空間,但不會出現(xiàn)沖突,因為其中一個只能被CPU讀出數(shù)據(jù),另一個只能被CPU寫入數(shù)據(jù)。

  單片機的串行口的四種工作方式中,方式0和2的波特率是固定的,方式1和3的波特率是可變的,由定時器T1的溢出率控制,方式2為自動重裝入初值的8位定時器/計數(shù)器模式,作為本文的波特率發(fā)生器。

  上位機編程中,本文采用最常用的通信控件MSComm,實現(xiàn)可視化界面。MSComm控件的常用屬性有:Comm-Port設(shè)置并返回通訊端口號:Settings以字符串的形式設(shè)置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位;PortOpen設(shè)置并返回通訊端口的狀態(tài),也可以打開和關(guān)閉端口;Input從接收緩沖區(qū)返回和刪除字符;Output向傳輸緩沖區(qū)寫一個字符串。

  串口初始化程序如下

  BOOLJWDIg::OnInitDialog()

  {

  Comport SetCommPort(1):

  if(!Comport GetPortOpen())

  Comport.SetPortOpen(TRUE);

  /*打開指定的串口*/

  Comport.

  SetlnputMode

  (cOm-Input-

  ModeBinary);

  /*設(shè)置數(shù)據(jù)

  獲取方式*/

  Comport.

  SetSettings

  (“9600,n.8,1”);

  /*設(shè)置波特率及其他通信

  數(shù)*/

  Comport.

  SetRThreshOld

  (n);

  /*設(shè)定每接受n個字符觸發(fā)一次

  MSComm事件*/

  Comport.SetInputLen(0);

 ?。O(shè)置讀取方式*/

  Comport.GetInput();

  /*預置緩沖區(qū)以清除殘留數(shù)據(jù)*/

  return TRU E;

  }

  系統(tǒng)測試

  本系統(tǒng)實現(xiàn)的電路實物圖如下圖所示,通過按鍵設(shè)置預定溫度,如81.7℃,設(shè)定PID參數(shù),比例系數(shù)Kc=O.8、積分系數(shù)KI=O.007以及微分系數(shù)KD=5,設(shè)定PWM控制信號周期為20ms,采樣周期Ts=1S,測量的實驗數(shù)據(jù)經(jīng)串行通信傳遞到上位機后實時顯示的響應曲線實驗中,測量溫度由低升高,最后與設(shè)定溫度值一致。

  結(jié)論

本文介紹的溫控實驗系統(tǒng)即有單片機主控的可靠性,又有上位機監(jiān)測的方便性,同時基于1-Wire總線DS18820實現(xiàn)多路溫度測控,具有現(xiàn)場安裝簡單、

 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

8位單片機在嵌入式設(shè)計領(lǐng)域已經(jīng)成為半個多世紀以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復雜,8位單片機依然不斷發(fā)展,積極應對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關(guān)鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設(shè)計與硬件實現(xiàn)的關(guān)鍵環(huán)節(jié)。當前主流的單片機燒錄技術(shù)已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應用編程)三大技術(shù)體系,分別對應開發(fā)調(diào)試、量產(chǎn)燒錄、遠程升級等不同場景。...

關(guān)鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細情況有所認識,或者想要增進對它的了解程度,不妨請看以下內(nèi)容哦。

關(guān)鍵字: 單片機 開發(fā)板 Keil

隨著單片機系統(tǒng)越來越廣泛地應用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領(lǐng)域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關(guān)鍵字: 單片機 電磁兼容

以下內(nèi)容中,小編將對單片機的相關(guān)內(nèi)容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關(guān)鍵字: 單片機 復位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機 異常復位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關(guān)報道,通過閱讀這篇文章,大家可以對它具備清晰的認識,主要內(nèi)容如下。

關(guān)鍵字: 單片機 仿真器

單片機將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關(guān)情況以及信息有所認識和了解,詳細內(nèi)容如下。

關(guān)鍵字: 單片機 中斷 boot

一直以來,單片機都是大家的關(guān)注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)韱纹瑱C的相關(guān)介紹,詳細內(nèi)容請看下文。

關(guān)鍵字: 單片機 數(shù)字信號 模擬信號
關(guān)閉