專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
基于PIC16C74單片機(jī)空調(diào)室內(nèi)機(jī)軟件的實(shí)現(xiàn)
單片機(jī)軟件實(shí)現(xiàn)是單片機(jī)系統(tǒng)應(yīng)用的重點(diǎn),他是在硬件設(shè)計基礎(chǔ)上實(shí)現(xiàn)程序設(shè)計的 重要環(huán)節(jié) 。單片機(jī)程序設(shè)計一般包括以下幾個步驟:軟件規(guī)劃、流程圖編制、代碼編寫。由于單片機(jī) 系統(tǒng)具有軟硬件緊密結(jié)合的特點(diǎn),因此在基于某種單片機(jī)系統(tǒng)的軟件開發(fā)時,應(yīng)充分了解該 系統(tǒng)實(shí)現(xiàn)的硬件環(huán)境,同時也應(yīng)該在系統(tǒng)設(shè)計與硬件設(shè)計階段,對軟件設(shè)計有一個大體的規(guī)劃。因此,本文在介紹室內(nèi)機(jī)控制器功能的基礎(chǔ)上,重點(diǎn)討論如何用軟件實(shí)現(xiàn)該室內(nèi)機(jī)的功能。
1.0室內(nèi)機(jī)控制器的功能
室內(nèi)機(jī)控制器主要是驅(qū)動風(fēng)門步進(jìn)電機(jī),接收來自紅外遙控器設(shè)計的指令,進(jìn)入到相應(yīng)的工 作狀態(tài),并顯示運(yùn)行狀態(tài)?! ?br/> 室內(nèi)機(jī)控制器包括以下幾個硬件電路模塊:室內(nèi)機(jī)處理器,室內(nèi)機(jī)驅(qū)動電路,風(fēng)門步進(jìn)電機(jī) ,顯示板電路(LED),紅外遙控接收/發(fā)送電路,室內(nèi)機(jī)外裝置串行通信電路,溫度傳感器 電路。
2.2.3運(yùn)行模式編程實(shí)現(xiàn)1.1室內(nèi)機(jī)CPU
從以上室內(nèi)機(jī)控制器包含的硬件電路模塊來看,要設(shè)計家用空調(diào)控制器在功能上要求具有2 路溫度傳感器,1個步進(jìn)電機(jī)控制接口,1組PG調(diào)速風(fēng)機(jī)控制,10 個發(fā)光二極管溫度指 示,紅 外遙控接收接口和室外機(jī)組控制接口。選擇Microchip公司的PIC16C74單片機(jī),可以滿足以 上條件,該單片機(jī)具有以下特點(diǎn):
(1) 獨(dú)立分離的數(shù)據(jù)總線和14 b指令總線的“哈佛”結(jié)構(gòu),采用33條精簡指令集, 指令執(zhí)行速度快,效率高。內(nèi)含4 kB程序存儲器和192 B數(shù)據(jù)存儲器,滿足設(shè)計要求?! ?br/>(2) 內(nèi)置具有8路10 b A/D轉(zhuǎn)換,簡化電路設(shè)計?! ?br/>(3) 3個硬件定時器,便于控制器復(fù)雜的延時保護(hù)。1.2PG電機(jī) PG電機(jī)內(nèi)的霍爾傳感器主要是檢測電機(jī)的轉(zhuǎn)速并反饋到CPU中,最終達(dá)到調(diào)節(jié)風(fēng)速的 目的。在設(shè)計閉環(huán)風(fēng)機(jī)調(diào)速部分,可以采用簡單的二階伺服環(huán)路控制模式,在速度閉環(huán)的基 礎(chǔ)上增加加速度閉環(huán)控制算法,解決風(fēng)機(jī)控制的風(fēng)速抖動問題,使得PG電機(jī)運(yùn)轉(zhuǎn)平穩(wěn)性得到 大幅度提高。
2.0空調(diào)室內(nèi)機(jī)控制器軟件規(guī)劃
2.1軟件的總體設(shè)計
在進(jìn)行室內(nèi)機(jī)控制器軟件實(shí)現(xiàn)時,首先要進(jìn)行軟件設(shè)計,軟件設(shè)計主要基于模塊化設(shè)計思想 ,將軟件分解成若干功能,通過主程序?qū)⒏鬈浖O(shè)計模塊有機(jī)地組織起來。該室內(nèi)機(jī)控制器 的軟件設(shè)計模塊主要包括:主程序、紅外接收模塊、運(yùn)行模塊、風(fēng)門步進(jìn)電機(jī)控制模塊、PG 風(fēng)機(jī)調(diào)速模塊、運(yùn)行模式模塊、A/D轉(zhuǎn)換處理模塊。同時在設(shè)計時應(yīng)考慮以下幾類中斷:自動按鍵中斷、風(fēng)機(jī)速度中斷,除此之外應(yīng)規(guī)劃設(shè)計2個定時器中斷:設(shè)置定時器0產(chǎn)生250ms定時中斷,定時器1產(chǎn)生125 μs定時中斷。
2.2軟件的詳細(xì)設(shè)計
對室內(nèi)機(jī)控制器在總體上進(jìn)行了模塊功能的設(shè)計后,應(yīng)對每一個模塊的實(shí)現(xiàn)進(jìn)行詳細(xì)設(shè)計, 在這里以運(yùn)行模式模塊為例來討論該模塊的詳細(xì)設(shè)計過程。 空調(diào)室內(nèi)機(jī)運(yùn)行模式主要包括:自動運(yùn)行模式、制冷運(yùn)行模式、抽濕運(yùn)行模式、通風(fēng)運(yùn)行模 式和制熱運(yùn)行模式。以下主要從各運(yùn)行模式特點(diǎn)、各模式與主程序的流程圖規(guī)劃和運(yùn)行模 式編程語言的選擇與編程實(shí)現(xiàn)等3個方面介紹如何開發(fā)一個復(fù)雜工程。
2.2.1空調(diào)室內(nèi)機(jī)各運(yùn)行模式的特點(diǎn)
(1) 自動運(yùn)行模式進(jìn)入自動模式,LED顯示屏上自動標(biāo)志常亮,5 s 后選定工作模式,5 s期間風(fēng)門、風(fēng)速、溫度可調(diào),空調(diào)根據(jù)最終設(shè)定溫度(默認(rèn)初始設(shè)定值 24 ℃)與當(dāng)前室溫的差別,自動進(jìn)入制冷或制熱模式,以維持設(shè)定溫度,令室內(nèi)溫度為T ,設(shè)定溫度為T0,當(dāng)T≥T0時,進(jìn)入制冷運(yùn)行;當(dāng)T<t0時,進(jìn)入制熱運(yùn)行。
(2) 制冷運(yùn)行模式制冷運(yùn)行模式溫度設(shè)定范圍為16~30 ℃(初始值24 ℃ ),當(dāng)T≥T0時,壓縮機(jī)、外風(fēng)機(jī)運(yùn)轉(zhuǎn);當(dāng)T
(3) 制熱運(yùn)行模式制熱運(yùn)行模式下溫度設(shè)定范圍為16~30 ℃(初始值24 ℃),當(dāng)選定制熱運(yùn)行方式后,可按圖3所示運(yùn)行,在制熱過程中風(fēng)速可任意選擇,并在制 熱過程中考慮防冷風(fēng)控制、超負(fù)荷、吹余熱等保護(hù)功能的設(shè)置?! ?br/>(4) 抽濕運(yùn)行模式當(dāng)選擇抽濕方式運(yùn)轉(zhuǎn),空調(diào)器將以制冷方式運(yùn)轉(zhuǎn)到室 內(nèi)溫度達(dá)到遙控器設(shè)定的溫度為止,然后轉(zhuǎn)入抽濕方式,開3 min再停3 min,如此循環(huán)進(jìn)行 。停機(jī)時,內(nèi)風(fēng)機(jī)延時30 s停止。在抽濕運(yùn)轉(zhuǎn)時,溫度可調(diào),溫度范圍設(shè)定在16~30 ℃。
(5) 通風(fēng)運(yùn)行模式在通風(fēng)運(yùn)行模式下,室外機(jī)組停止運(yùn)轉(zhuǎn),室內(nèi)風(fēng)機(jī)可 選擇自動、高、中、低任意一檔風(fēng)速。當(dāng)Δt>4 ℃時,運(yùn)行高風(fēng),當(dāng)Δt<0 ℃時, 運(yùn)行低風(fēng)。
2.2.2空調(diào)各運(yùn)行模式的流程圖設(shè)計
面對復(fù)雜系統(tǒng)的實(shí)現(xiàn),在程序?qū)崿F(xiàn)之前,應(yīng)依賴于流程圖使復(fù)雜的問題變得清晰易于理解, 因此在分析了各運(yùn)行模式的特點(diǎn)后,利用結(jié)構(gòu)化分析方法將各運(yùn)行模式模塊化,然后再在模 塊化的基礎(chǔ)上具體繪制各模塊的流程圖,將各功能模塊的功能進(jìn)行進(jìn)一步明確。
各模塊的流程圖畫好后,下一步的工作就是要用某種編程語言實(shí)現(xiàn)各功能模塊。在 用編程語 言實(shí)現(xiàn)時,選擇了Microchip公司提供的MPLAB(4.00)集成開發(fā)環(huán)境。該開發(fā)環(huán)境是Micro chip公司為其PIC系列單片機(jī)專門設(shè)計的開發(fā)環(huán)境,該平臺包括編輯器、編譯環(huán)境、軟件仿 真、硬件仿真,同時該環(huán)境采用Windows界面,開發(fā)設(shè)計非常方便。由于篇幅的原因這里只 給出制冷運(yùn)行模塊的編程實(shí)現(xiàn)。
3.結(jié)語
分的了解,并在此基礎(chǔ)上運(yùn)用結(jié)構(gòu)化程序設(shè)計的方法進(jìn)行功能分解與模塊設(shè)計,使得 在編程時能達(dá)到事半功倍的效果,且有利于日后對程序的仿真和調(diào)試。