新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于串口的溫度檢測數據單片機仿真

基于串口的溫度檢測數據單片機仿真

作者: 時間:2012-09-23 來源:網絡 收藏

本文引用地址:http://2s4d.com/article/170815.htm

圖 4.1 晶振電路

  圖 4.1 晶振電路

  2.空閑方式

  在空閑方式下,CPU 的內部時鐘信號被門控電路所封鎖,CPU 即進入睡眠狀態(tài),但內部時鐘信號仍繼續(xù)供給中斷系統(tǒng),定時器和串行口。這種方式由軟件調用。在空閑方式期間,片內RAM和所有專用寄存器的狀態(tài)仍被保留,空閑方式可通過任何允許的中斷或硬件復位來終止。當空閑方式由硬件復位終止時,通常系統(tǒng)在空閑處恢復程序的執(zhí)行。硬件復位只需要信號持續(xù)有效兩個機器周期。當用復位終止空閑方式時,為防止避免意外寫入端口引腳的可能性,調用空閑方式指令的下一條指令不應是寫端口引腳或外部存儲器。

3.掉電工作方式

5.2 程序設計

  5.2.1 主程序設計

  主程序主要完成硬件初始化、子程序調用等功能。

  1. 初始化。

  首先調用 LCD 初始化程序,在LCD 上顯示RECEIVE:和TEMP is: *C.

  然后調用中斷及初始化子程序程序,把接收單元RECDATA 清零。設置寄存器SCON 的SM0、SM1 位定義工作方式,選擇波特率發(fā)生器為定時器T1;設定定時器T1 工作方式為方式2;設置波特率參數為9600bps;允許串行中斷及總中斷;允許串口接收,定義REN=1;啟動定時/計數器T1 工作,定義TR1=1.

  2. 串口收發(fā)數據。

  判斷串口成功接收數據標志位flag_uart 是否為0,若flag_uart 為0,表明串口未接收到數據,則繼續(xù)等待串口接收數據;若flag_uart 為1,表明串口成功接收或發(fā)送數據,進入串口中斷服務子程序,接收數據,并將串口成功接收數據標志位flag_uart 清零,調用LCD 顯示接收數據子程序,在LCD 上顯示從串口接收到的數據,同時回傳值給PC機顯示。主程序設計流程圖如圖5.1 所示。

圖 5.1 主程序流程圖

  圖 5.1 主程序流程圖

  5.2.2 串口中斷服務子程序

  判斷串口發(fā)送標志位TI 是否為1,若TI 為1,則把數據從發(fā)給PC 機,并把TI清零,中斷子程序返回;若TI為0,表明RI=0,則把串口接收標志位RI清零,把串口接收緩沖器SBUF 中的數據寫入串口接收數據單元RECDATA,再把該數據送到串口發(fā)送緩沖器SBUF 中,傳給PC 機,置串口成功接收數據標志位RECOKBIT 為1,表明串口成功接收發(fā)送數據,最后中斷子程序返回。串口收發(fā)數據中斷服務子程序設計流程圖如圖5.2 所示。

圖5.2 串口中斷服務子程序

  圖5.2 串口中斷服務子程序

  5.2.3 讀溫子程序

  讀出子程序的主要功能是讀出RAM 中的9 字節(jié),在讀出時需進行CRC 校驗,校驗有錯時不進行數據的改寫。其程序流程圖如圖5.3 示。

圖5.3 讀溫子程序

  圖5.3 讀溫子程序

  5.2.4 溫度轉換命令子程序

  溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,當采用12 位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如上圖,圖5.4 所示。

圖5.4 溫度轉換流程圖

  圖5.4 溫度轉換流程圖

  5.2.5 計算溫度子程序

  計算溫濕度子程序將RAM 中讀取值進行BCD 碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖5.5 所示。

圖5.5 計算溫度流程圖

  圖5.5 計算溫度流程圖

  5.2.6 顯示數據刷新子程序

  顯示數據刷新子程序主要是對分離后的溫度顯示數據進行刷新操作,當標志位位為1時將符號顯示位移入第一位。程序流程圖如圖5.6 所示。

圖5.6 顯示數據刷新子程序

  圖5.6 顯示數據刷新子程序

  6 結論

  本系統(tǒng)的硬件采用模塊化設計,以AT89C52 單片機為核心,與LCD 顯示電路、串行口通信電路及DS18B20 溫度電路組成控制系統(tǒng)。該系統(tǒng)硬件主要包括以下幾個模塊:

  AT89C52 主控模塊、LCD 顯示模塊、串行口通信模塊、DS18B20 溫度模塊等。其中AT89C52 主要完成外圍硬件的控制以及一些運算功能,LCD 顯示模塊完成字符、數字的顯示功能、串行口通信模塊主要完成單片機和PC 機之間的通信功能,DS18B20 溫度模塊主要完成環(huán)境溫度檢測功能。

  在掉電方式下,片內振蕩器停止工作。調用掉電指令是執(zhí)行的最后一條指令。片內RAM 和專用寄存器的值被保留,直到掉電方式終止。退出掉電方式只能靠硬件復位。復位后將重新定義所有專用寄存器,但不改變RAM 的內容。在VCC 未恢復到正常工作電壓之前,不能啟動復位,復位信號應保持足夠長的時間,以保證振蕩器的起振和達到穩(wěn)定。

  為了使單片機正常工作,還需要加入上電復位電路和掉電檢測電路。上電復位簡要原理:

  在系統(tǒng)不需要復位時,RST端是低電平;按下按鍵,RST端變?yōu)楦唠娖健?/font>

圖 4.2 上電復位電路

  圖 4.2 上電復位電路

  AT89C51、晶振電路與上電復位電路共同組成單片機最小系統(tǒng),如圖4.3 所示。

圖 4.3 最小系統(tǒng)

  圖 4.3 最小系統(tǒng)

  4.2 溫度傳感器

圖4.4 DS18B20連線圖

  圖4.4 DS18B20連線圖

  從圖 4.4 可以看出,DS18B20 與單片機的連接非常簡單,單片機只需要一個I/O 口就可以控制DS18B20.這個圖的接法是單片機與一個DS18B20 通信,如果要控制多個DS18B20進行溫度采集,只要將所有的DS18B20 的I/O 口全部連接到一起就可以了。

  4.3 LCD顯示模塊

  顯示電路采用LCD1602 液晶顯示屏,P2 作為液晶8 位數據輸入端口。P1.0 口作為液晶數據/命令選擇端口,P1.1 為液晶使能端口。

圖 4.5 LCD 顯示模塊

  圖 4.5 LCD 顯示模塊

  4.4 串行口通信模塊設計

  51 單片機有一個全雙工的串行通信口,使單片機和計算機之間可以方便地進行通信。

  電平范圍是電路能夠安全可靠識別信號的電壓范圍。

  CMOS 電路的電平范圍一般是從0 到電源電壓。CMOS 電平中,高電平(3.5~5V)為邏輯1,低電平(0~0.8V)為邏輯0.

  RS232 接口的電平范圍是-15V 到+15V,RS232 電平采用負邏輯,即邏輯1:-3~-15V,邏輯0:+3~+15V.

  單片機的串口是TTL 電平的,而計算機的串口是RS232 電平,要使兩者之間進行通信,兩者之間必須有一個電平轉換電路,即單片機的串口要外接電平轉換電路芯片把與TTL兼容的CMOS 高電平表示的1 轉換成RS232 的負電壓信號,把低電平轉換成RS-232 的正電壓信號。典型的轉換電路給出-9V 和+9V.

  本設計中實現邏輯電平轉換可以采用MAX232 芯片的轉換接口:MAX232 是MAXIM公司生產的,包含兩路驅動器和接收器的RS-232 轉換芯片。MAX232 芯片內部有一個電壓轉換器,可以把輸人的+5V 電壓轉換為RS-232 接口所需的±10V 電壓,尤其適用于沒有±12V 的單電源系統(tǒng)。與此原理相同的芯片還有MAX202、AD 公司的ADDt101 以及SIL 公司的IC1232 芯片。

圖 4.6 MAX232 芯片引腳

  圖 4.6 MAX232 芯片引腳

  由于 protues時不需進行電平轉換,所以時沒有用上MAX232 芯片電路,但做實物時需進行電平轉換,其硬件連線圖如圖4.7 所示。MAX232 芯片的T1in 引腳連接AT89C51 單片機的P3.1(TXD)引腳,MAX232 芯片的R1out 引腳連接AT89C51 單片機的P3.0(RXD)引腳;MAX232 芯片的T1out 引腳連接DB9 針接口的第2 引腳,MAX232 芯片的R1in 引腳連接DB9 針接口的第3 引腳。

圖4.7 電平轉換硬件連接圖

  圖4.7 電平轉換硬件連接圖

  4.5 系統(tǒng)原理圖

  由以上模塊化設計可得整個系統(tǒng)原理圖如圖4.8 所示:

圖4.8 系統(tǒng)原理圖

  圖4.8 系統(tǒng)原理圖

電流變送器相關文章:電流變送器原理
溫濕度控制器相關文章:溫濕度控制器原理


評論


相關推薦

技術專區(qū)

關閉