0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

采用HT46R2X系列單片機如何實現(xiàn)微波爐控制器的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-10-29 07:59 ? 次閱讀

微波控制器的工作環(huán)境相對比較惡劣。首先是爐腔溫度比較高,控制器附近溫度也會比較高,達到60℃“70℃;另一方面,微波輻射對單片機抗干擾的要求也很高,在做多次快速開關(guān)門試驗中,當少量微波泄露時,對控制器有一定的輻射,以及反復開通和關(guān)斷大功率負載會產(chǎn)生較強的干擾。所以選擇合適的單片機十分重要,在多年的家電產(chǎn)品設計中,經(jīng)常用盛群半導體(Holtek)的48系列及46系列8bit單片機設計微波爐控制器,無論在適應工作環(huán)境還是抗干擾等方面都完全滿足要求,在成本及供貨等方面比國外芯片也有更明顯的優(yōu)勢。

本文通過實際產(chǎn)品為例,以產(chǎn)品功能要求、方案確定和芯片選型、硬件設計、軟件規(guī)劃及編寫等幾部分介紹如何用單片機設計微波爐控制器。

功能要求

設計產(chǎn)品首先了解產(chǎn)品的要求,了解越詳細設計反復修改就越少,特別是關(guān)于影響芯片選型及輸出控制等跟硬件直接相關(guān)的部分。本文介紹的微波爐控制器的主要功能如下:

微波加熱,功率有10檔。

燒烤加熱,功率有2檔。

熱風烘烤加熱,溫度多檔。

混合加熱,有三種組合模式:燒烤加微波、烘烤加微波、烘烤加燒烤。

自動解凍,重量選擇有20檔。

自動菜單,6大類,各類分別有重量選擇。

顯示:88:88數(shù)碼管,四周帶14個圖標。

按鍵:有功能選擇鍵、啟動鍵、取消鍵、熱風烘烤鍵,時鐘及定時鍵,自動菜單各功能鍵,總共11個。

編碼開關(guān):調(diào)節(jié)加熱時間。

另有蜂鳴器、門檢測和門燈控制。

方案確定和芯片選型

了解產(chǎn)品的詳細要求后,需要確定具體的實現(xiàn)方案,首先是選擇合適的單片機。選擇合適的型號主要要看兩個方面:硬件資源和軟件資源。要選擇合理的單片機首先必須了解單片機的各系列及各款的資源,再了解需要什么樣的資源,下面分別從硬件和軟件來說明怎樣根據(jù)要求選擇單片機。在選擇單片機時,整個產(chǎn)品的方案也基本確定。

硬件相關(guān)資源

硬件相關(guān)的資源是指外圍硬件相關(guān)的如I/O數(shù)量、特殊驅(qū)動、工作電壓等。

首先,選擇合適的單片機系列。看供電電壓及工作溫度抗干擾能力等是否滿足要求。盛群的MCU在系統(tǒng)振蕩頻率小于4MHz時供電電壓供電范圍為2.2V”5.5V,當8MHz時則為3.3V“5.5V,要提高系統(tǒng)的抗干擾能力,最好用5V電壓供電,當供電電壓較高時,MCU內(nèi)部所有邏輯電平幅值較高,容差電壓大,干擾更強才能改變其邏輯狀態(tài)。工作溫度,選擇Holtek的48和46系列工業(yè)級單片機,工作溫度范圍為-40℃”85℃,完全能滿足微波爐控制器工作溫度的要求。在選擇合適的系列時,還要看特殊資源的要求,如中斷口、PWM、蜂鳴器驅(qū)動、A/D轉(zhuǎn)換等;在此產(chǎn)品的具體要求中,需要檢測爐腔的溫度以及在產(chǎn)品中需要對交流風扇調(diào)速,溫度檢測需要A/D轉(zhuǎn)換,交流風扇調(diào)速控制需要有過零中斷,所以,在這個產(chǎn)品中選擇了46系列單片機。但此產(chǎn)品不需要LCD驅(qū)動、高精度A/D轉(zhuǎn)換及比較器等資源,則不選擇HT46R6X、HT46R5X、HT46R1X等系列,而選擇HT46R2X系列。

再就是選擇的具體I/O要求和什么樣封裝的單片機,在Holtek單片機中同型號的單片機有多種封裝,如HT46R23有DIP28或SOP28封裝,也有DIP24或SOP24封裝,其I/O分別為23個和19個。

根據(jù)前面提到的功能要求,其I/O的需求列舉如下:

繼電器驅(qū)動:微波、燒烤、熱風烘烤、門燈/轉(zhuǎn)盤、散熱風扇共5個輸出ports。

蜂鳴器驅(qū)動:1個輸出ports

按鍵有11個:11個輸入port

門狀態(tài)檢測:1個輸入port

編碼開關(guān)檢測:2個輸入port

顯示數(shù)碼管:5個COM,9個段,需14輸出port

過零中斷檢測:1個中斷輸入port

溫度檢測:1個A/D輸入port

簡單加起來總共需要20個輸出port,16個輸入port??紤]復用I/O,將9個數(shù)碼驅(qū)動段和5個公共端同時做輸入檢測;溫度檢測只能用A/D口PB.0,過零檢測只能用單獨的中斷PA.5來檢測,所以總共需要22個I/O,所以選擇28PIN的HT46R2x可以滿足要求。

軟件相關(guān)資源

軟件相關(guān)的資源主要包括程序空間即ROM的大小和數(shù)據(jù)空間RAM的多少,當功能較多且復雜時需要更多的ROM和RAM;當然還有定時器、中斷、以及其它某些特殊的資源;前面已經(jīng)選擇了28PIN封裝的46R2X系列單片機,此產(chǎn)品功能相對比較豐富,程序空間要求比較多,選擇4K的ROM和192byteRAM的HT46R23應該能夠滿足要求,同樣封裝可以選擇28PIN的HT46R24,它有8K ROM和384byteRAM,可以做后備選擇,這樣不必擔心資源不夠時換IC,反復修改硬件就很麻煩。

總之,在選擇資源時,要軟硬兼顧,如果程序簡單,硬件資源要求高,則可以選擇封裝小、I/O少的單片機,另外增加擴展IC來擴展I/O;當程序復雜,硬件資源要求少時,則選擇較小封裝、軟件資源多的單片機。

硬件電路設計

在選擇主芯片時,已經(jīng)在考慮部分電路設計了,顯示、按鍵檢測、輸出驅(qū)動等都考慮好了,由于篇幅有限,只簡單介紹幾個關(guān)鍵問題:

門檢測電路:給單片機檢測的門開關(guān)信號的同時,還要控制微波、燒烤、熱風烘烤繼電器的電源。

供電部分:考慮數(shù)碼管顯示內(nèi)容較多,驅(qū)動電流大,變壓器盡量選擇繼電器和單片機獨立供電,一方面降低變壓器功率,同時可以讓單片機的電源不受繼電器的工作狀態(tài)影響。

過零檢測和觸發(fā):選擇合適的光耦可控硅驅(qū)動電路,實現(xiàn)過零驅(qū)動,過零檢測電路注意適當?shù)臑V波和隔離,減少通過電源耦合的干擾。

微波爐控制器電路原理圖如圖1。

另外,PCB設計時注意強弱電分開,注意電源與地的分布,注意生產(chǎn)的工藝性問題等??傊侠淼挠布O計和PCB布板對保證產(chǎn)品功能和性能十分重要。

軟件規(guī)劃及編寫

芯片配置選項設定

根據(jù)硬件電路,將按鍵、編碼開關(guān)及門檢測部分的內(nèi)部設置上拉電阻;盛群單片機的LVD功能很可靠,所以復位電路直接接到VCC,那么在設置配置選項時一定要開啟低電壓復位功能,不開啟容易上電復位不良。下面將主要選項設定列舉如下:

PA3/PFD: Enable PFD

Pull-High PB: Enable

Pull-High PC: Disable

Pull-High PD: Enable

OSC: Crystal

WDT clock source: WDTOSC

WDT: Enable

LVR: Enable

LVR voltage: 3.2V

CLRWDT: Two Instructions.

軟件整體規(guī)劃及模塊化分解

將復雜的功能分解,通過變量傳遞各模塊之間的關(guān)聯(lián)內(nèi)容,模塊內(nèi)部則盡量獨立完成,這樣讓程序的可移植性提高,調(diào)試更快。把復雜的問題簡單化是程序編寫的重要原則。

1)主程序

通過調(diào)用各子程序,整合各模塊的功能。數(shù)碼管掃描顯示對時間要求比較高,而且各個公共端要平均分配時間,所以主程序執(zhí)行周期選擇固定周期。另外編碼開關(guān)也是掃描檢測方式,當編碼開關(guān)旋轉(zhuǎn)很快時,脈沖頻率較高,掃描周期也不能太長,綜合整體,主程序選擇4ms為執(zhí)行周期,但顯示和按鍵及編碼開關(guān)則執(zhí)行2次,相當于2ms的掃描周期。

采用HT46R2X系列單片機如何實現(xiàn)微波爐控制器的設計

圖1 HT46X23微波爐原理圖

如果用4MHz的晶振,4ms時間可以執(zhí)行4000條指令,程序設計合理情況下完全可以運行完各子程序,不擔心出現(xiàn)當處理事件多時顯示閃爍等問題。

2)編碼開關(guān)、按鍵及門狀態(tài)檢測

因編碼開關(guān)、按鍵及門狀態(tài)檢測I/O都同顯示驅(qū)動I/O復用,所以需統(tǒng)一處理。

先關(guān)閉顯示COM,檢測SEG上的狀態(tài),再關(guān)閉SEG,再檢測COM上的狀態(tài)。

此部分程序還要完成按鍵檢測及消抖動處理、編碼開關(guān)的檢測、門狀態(tài)去抖動檢測,以有效按鍵變量、編碼開關(guān)左右旋轉(zhuǎn)標志、門狀態(tài)等為輸出。其它子程序根據(jù)按鍵、編碼開關(guān)操作和門狀態(tài)執(zhí)行對應的操作和功能。

3)過零檢測及過零觸發(fā)

過零檢測在外部中斷程序中完成,中斷后根據(jù)當前運行狀態(tài)設置散熱風扇半功率、全功率和關(guān)三種狀態(tài)。開和關(guān)狀態(tài)直接設置控制光耦狀態(tài),當需要半功率時,需要記錄中斷次數(shù),調(diào)整導通和關(guān)閉周期,這里沒有用調(diào)整可控硅導通移相的方法調(diào)功,可減少電磁輻射。

4)按鍵設置

按鍵操作設置程序的輸入條件為有效的按鍵和編碼開關(guān)左右旋轉(zhuǎn)標志,再細分每個按鍵分別處理,在什么條件下設置對應的工作時間、輸出模式、顯示模式、蜂鳴器鳴叫等。

5)顯示狀態(tài)設置

設置4字節(jié)保存顯示數(shù)字部分內(nèi)容,另2字節(jié)保存四周圖標變量,由于四周的圖標有閃爍和不閃爍狀態(tài),另2字節(jié)設置圖標的閃爍狀態(tài)。

6)顯示輸出掃描

根據(jù)顯示狀態(tài)變量的8字節(jié)變量內(nèi)容,設置數(shù)碼管對應COM和SEG,掃描顯示輸出。

7)加熱輸出及功率控制設置

加熱和功率控制程序通過統(tǒng)一的變量輸入,設置當前的微波、燒烤、熱風還是幾種混合加熱,以及設置內(nèi)燈及散熱風扇輸出等。

8)溫度檢測及計算

設置A/D轉(zhuǎn)換,檢測熱敏電阻的值,并濾波處理,以及開路短路保護檢測。其輸出為故障狀態(tài)標志和當前爐腔溫度。在熱風烘烤輸出程序中根據(jù)溫度設置對應的加熱狀態(tài)。

9)時鐘、定時及運行時間計算及對應輸出模式切換

程序中關(guān)于時間的設置很多,大多都在這個子程序中完成,如時鐘計算、預約比較、倒計時、自動功能的多段加熱模式切換等。

10)蜂鳴器設置

兩個變量buz_n,buz_long來設置蜂鳴器鳴叫次數(shù)和單聲鳴叫長度??蓡为氃O置buz_long值為單聲的鳴叫,在上電和按鍵操作時設置單聲鳴叫。當定時結(jié)束或定時啟動或故障提示等情況時,需要設置鳴叫多時,設置buz_n值就可以了。

11)定時中斷子程序

定時中斷子程序相對很簡單,只設置中斷次數(shù)記錄就可以了。由于蜂鳴器鳴叫頻率為2KHz,所以定時中斷時間為250us。

其中內(nèi)容比較多的部分是:按鍵操作、顯示狀態(tài)設置、時鐘、定時及運行時間計算及對應輸出模式切換、加熱輸出及功率設置等部分。

在軟件的編寫中,變量規(guī)劃很重要,下面還列出了幾個典型的變量規(guī)劃:

整個產(chǎn)品的主要工作模式用run_state來記錄:

run_state equ [40h]

s_hotfan equ run_state.0 ;熱風烘烤

s_micro equ run_state.1 ;微波

s_grill equ run_state.2 ;燒烤

s_mix equ run_state 3 ;混合模式

s_auto equ run_state.4 ;自動解凍

s_mu equ run_state.5 ;自動菜單工作模式

s_fast equ run_state.6 ;快速啟動模式

顯示模式用dsp_state來記錄:

dsp_state equ [41h]

s_time equ dsp_state.0 ;顯示時鐘狀態(tài)

s_timer equ dsp_state.1 ;顯示定時時間狀態(tài)

s_off_t equ dsp_state.2 ;顯示倒計時狀態(tài)

s_code equ dsp_state.3 ;顯示菜單或工作模式狀態(tài)

加熱模式heat_mode變量來控制當前的輸出,其具體數(shù)據(jù)說明如下:

0則關(guān)閉所有輸出。

bit0_bit3(10_1)保存微波100% /90% /80% /70% /60% /50% /40% /30% /20% /10% /10檔,即最后4bit來記錄微波輸出功率,在自動解凍、自動菜單、混合等非簡單微波模式時,加熱功率輸出時只需要判斷此變量,就直接設置微波輸出。

bit4_bit5保存燒烤功率100%和50%。

bit7保存熱風烘烤輸出。

當有混合狀態(tài)時,則同時設置對應的位就可以了。

合理設計變量對整個程序的編寫很有用,同時也是對產(chǎn)品功能的規(guī)劃和理解的具體化,找出主要的和關(guān)鍵的控制關(guān)系,設計合適的、適當通用的算法。而且對于經(jīng)常編寫同類產(chǎn)品時,移植程序變得很簡單;比如將此產(chǎn)品數(shù)碼管換為LCD顯示時,基本上只需要將顯示輸出部分修改為驅(qū)動顯示IC或顯示RAM就可以了,其顯示得內(nèi)容還是顯示時間、定時、倒計時時間、菜單或模式,只需要修改對應得顯示表就可以了。

程序編寫和程序調(diào)試

軟件簡單規(guī)劃后,就需要具體的編寫,將任務分解后,每部分已經(jīng)比較簡單了,調(diào)試時可以考慮各子程序單獨調(diào)試,人為模擬輸入各種情況下的數(shù)據(jù)及狀態(tài),檢查輸出是否正確。再將相關(guān)聯(lián)的一起調(diào)試。除非很有把握,不要將程序全編寫完了再調(diào)試,那樣就不知道到底哪里有問題。

程序簡單題綱如下:

;定義常量,某些固定的值,多次用到或經(jīng)常修改的常量,單獨定義后調(diào)用。

buz_l0 equ 50d ;50*4=200ms設置所有默認蜂鳴器鳴叫聲音長度。

sw_t0 equ 70d ;有效按鍵響應時間,按鍵去抖動時間

......

;定義I/O,將各輸入/輸出單獨按功能或原理圖網(wǎng)絡標號定義,當原理圖修改時方便軟件修改

buz_p equ pa.3

grill_p equ pc.0

micro_p equ pc.1

......

;定義變量,

run_state equ [40h] ;或則用自動變量定義

......

;程序開始

org 0h

jmp start_l

org 04H ;外部中斷向量

jmp int_set ;跳轉(zhuǎn)過零中斷處理程序

org 08H ;定時中斷向量,中斷周期為250us

mov temp_a,a ;保存

mov a,status

mov temp_s,a

inc t_int0 ;每次中斷0.25us

mov a,temp_s

mov status,a

mov a,temp_a

reti

;中斷處理程序,注意先保存用到的ACC和標志寄存器status,返回前恢復

int_set:

......;中斷處理程序,設置風扇輸出

reti

;主程序開始

start_l:

;初始化RAM、I/O、timer、中斷等,一般先將通用RAM全清零

;注意繼電器等關(guān)鍵變量的初始化,否則上電時繼電器可能會跳一下。

;初始化某些特殊變量

;主循環(huán)程序部分

main:

call sw_in_set ;注意按鍵設置會將顯示關(guān)閉,則顯示輸出程序在后

call dsp_out_set ;顯示掃描程序

call sw_out_set ;按鍵功能及狀態(tài)設置

call ad_tem_set ;A/D轉(zhuǎn)換及溫度計算

call dsp_state_set ;顯示狀態(tài)計算

main_delay_2ms:

mov a,t_int0 ;0.25*8=2 等待2ms時間到

sub a,8

snz c

jmp main_delay_2ms

call sw_in_set ;注意按鍵設置會將顯示關(guān)閉,則顯示輸出程序在后

call dsp_out_set ;調(diào)用顯示掃描程序

call heat_out _set ;調(diào)用加熱狀態(tài)及功率設置

call buz_set ;調(diào)用蜂鳴器設置子程序

call time_set

main_delay_4ms:

mov a,t_int0 ;0.25ms*16=4ms 等待4ms時間到

sub a,16

snz c

jmp main_delay_2ms

clr t_int0

jmp main

;各子程序分列后面

sw_in_set: ;按鍵檢測、編碼開關(guān)檢測、門狀態(tài)檢測

......

ret

dsp_out_set: ;顯示掃描程序

。..。..

ret

sw_out_set: ;按鍵功能及狀態(tài)設置

......

ret

ad_tem_set: ;A/D轉(zhuǎn)換及溫度計算

......

ret

dsp_state_set: ;顯示狀態(tài)計算

......

ret

heat_out _set: ;調(diào)用加熱狀態(tài)及功率設置

......

ret

buz_set: ;蜂鳴器設置子程序

......

ret

time_set: ;時間及定時處理程序

......

ret

;程序中會用到很多表,為調(diào)用方便,則將其放到最后頁面

org 0f00h

dsp_code_l0:

dc 10011111b;0

......

end ;程序結(jié)束


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電源
    +關(guān)注

    關(guān)注

    184

    文章

    17484

    瀏覽量

    249148
  • 繼電器
    +關(guān)注

    關(guān)注

    132

    文章

    5314

    瀏覽量

    148352
  • 單片機
    +關(guān)注

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631981
收藏 人收藏

    評論

    相關(guān)推薦

    Holtek推出HT48R016/017與HT46R016/017系列高抗噪聲16-pin單片機

    HT48R01x系列家族成員共2顆、HT46R01x系列家族成員也有2顆。
    發(fā)表于 11-09 18:22 ?1918次閱讀

    基于48/46系列8bit單片機實現(xiàn)微波爐控制器的設計

    本文通過實際產(chǎn)品為例,以產(chǎn)品功能要求、方案確定和芯片選型、硬件設計、軟件規(guī)劃及編寫等幾部分介紹如何用單片機設計微波爐控制器
    的頭像 發(fā)表于 03-27 12:34 ?3853次閱讀
    基于48/<b class='flag-5'>46</b><b class='flag-5'>系列</b>8bit<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>微波爐</b><b class='flag-5'>控制器</b>的設計

    基于C51單片機微波爐設計

    本帖最后由 eehome 于 2013-1-5 09:44 編輯 基于C51單片機微波爐設計
    發(fā)表于 08-17 15:31

    51單片機微波爐定時程序分享

    //51單片機微波爐定時程序(原創(chuàng),自已寫的) //免責聲明:這是微波爐的定時功能 //按下獨立鍵盤RD按鍵,每按一次增加60秒,按下INT1啟動,按下INT0停止 //我們知道微波爐
    發(fā)表于 07-19 02:00

    微波爐控制板【回映分享】

    通過7805送入控制電路。 At89c52單片機采用14個控制開關(guān)、16 × 2液晶顯示和4
    發(fā)表于 12-31 10:27

    基于單片機微波爐加熱箱系統(tǒng)設計資料分享

    029【畢設課設】基于單片機微波爐加熱箱系統(tǒng)設計,通過多個按鍵進行設定,包括預設的30s、1min、5min、加減檔位,啟停按鍵控制,數(shù)碼管顯示。包括的資料有仿真、程序、原理圖等資料?!举Y源下載
    發(fā)表于 01-13 06:33

    TMP87CH46N在聲控微波爐系統(tǒng)設計中的應用

    押本文介紹了東芝單片機TMP87CH46N 在聲控微波爐系統(tǒng)設計中的應用,給出了硬件的資源分配方案和各個軟件模塊的說明,重點介紹了單片機和語音識別
    發(fā)表于 08-04 08:45 ?46次下載

    HT46R22單片機在電磁功率控制中的應用

    HT46R22單片機在電磁功率控制中的應用:介紹了電磁的基本工作原理,并提出了一種采用
    發(fā)表于 12-09 21:37 ?124次下載

    HT46R47,HT46R22,HT46R23,HT46R2

    HT46R47,HT46R22,HT46R23,HT46R24 A/D型單片機使用手冊 本手冊分成三部份。關(guān)于一般的
    發(fā)表于 03-24 14:11 ?58次下載

    基于HT46R46E/HT46C46E經(jīng)濟A/D型八位單片機

    基于HT46R46E/HT46C46E經(jīng)濟A/D型八位單片機 HT46R46E/HT46C46E 是8 位高性能精簡指令集
    發(fā)表于 03-25 14:18 ?33次下載

    HT46R322在電磁中的應用

    HT46R322在電磁中的應用 Holtek 用于電磁控制的MCU 有:HT46R47、HT46R
    發(fā)表于 03-27 09:19 ?57次下載

    HT46R23/HT46C23 A/D型八位單片機

    HT46R23/HT46C23是8位高性能精簡指令集單片機,專門為需要A/D轉(zhuǎn)換的產(chǎn)品而設計,例如傳感信號輸入。掩膜版本HT46C23與O
    發(fā)表于 07-27 17:16 ?45次下載

    HT46R32/HT46R34 A/D+OPA型八位單片機

    概述 HT46R32/HT46R34是8位高性能精簡指令集單片機,專門為需要A/D轉(zhuǎn)換的產(chǎn)品而設計,例如傳感信號輸入。內(nèi)置放大器/比較
    發(fā)表于 12-21 22:55 ?31次下載

    用ds18b20和51單片機模擬的小微波爐

    用ds18b20和51單片機模擬的小微波爐
    發(fā)表于 07-17 15:42 ?4次下載

    基于MCS- 51單片機微波爐智能控制系統(tǒng)設計

    電子發(fā)燒友網(wǎng)站提供《基于MCS- 51單片機微波爐智能控制系統(tǒng)設計.pdf》資料免費下載
    發(fā)表于 11-15 11:31 ?5次下載
    基于MCS- 51<b class='flag-5'>單片機</b>的<b class='flag-5'>微波爐</b>智能<b class='flag-5'>控制</b>系統(tǒng)設計