錢志宏
摘要:該文介紹的基于AVR單片機與點陣液晶的老化控制器(以下簡稱“本系統(tǒng)”)主要用Atmega 64單片機進行編程控制,用點陣液晶來顯示老化過程中的各個狀態(tài),具有老化定時設(shè)定、日期時間設(shè)定、老化頻率設(shè)定、工作模式選擇等功能。
關(guān)鍵詞:AVR單片機;點陣液晶;老化控制器
中圖分類號:TP302 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)36-0248-03
1 引言
現(xiàn)代電子企業(yè)對于電子產(chǎn)品的質(zhì)量要求越來越高,不僅要求有較高的性能指標(biāo),而且還要有較好的可靠性。電子產(chǎn)品的可靠性取決于設(shè)計的合理性、選用的元器件性能及整機制造工藝等因素。隨著電子技術(shù)的不斷發(fā)展,電子產(chǎn)品的集成度越來越高,不僅功能越來越強大,而且制造工藝也越來越復(fù)雜,這樣在生產(chǎn)過程中會產(chǎn)生潛在缺陷,這種缺陷表現(xiàn)在電子產(chǎn)品的早期失效,即在剛投入使用的一段時間內(nèi)故障率較高。
目前國內(nèi)外普遍采用通電老化工藝,使電子產(chǎn)品的早期失效在企業(yè)內(nèi)完成,從而提高合格產(chǎn)品的可靠性。通電老化是在環(huán)境溫度為40-60?C的老化室內(nèi),讓電子產(chǎn)品連續(xù)通電工作48-72小時的過程。通過長時間通電老化,可以使電子產(chǎn)品設(shè)計中存在的缺陷、元器件的質(zhì)量問題和裝配焊接產(chǎn)生的隱患提前暴露出來,從而挑選出存在這些不足的不良品,保證出廠的產(chǎn)品能經(jīng)得起時間的考驗。
本文介紹的老化控制器,是根據(jù)電子企業(yè)對電子產(chǎn)品的可靠性要求,針對電子產(chǎn)品的早期失效而開發(fā)的一種自動老化裝置。它用128×64點陣液晶模塊作為工作界面,能設(shè)置老化起止時間,觀察老化狀態(tài),具有數(shù)據(jù)存儲、定時、報警、中斷記憶等功能。
2 硬件系統(tǒng)
硬件系統(tǒng)包括按鍵電路、單片機控制系統(tǒng)、液晶顯示器、輸出控制和報警系統(tǒng)五個部分,它的核心器件是AVR單片機。本系統(tǒng)采用Atmel公司推出的Atmega64單片機,它的輸入部分由6個按鍵組成,用于老化的啟停、設(shè)定老化時間、改變老化狀態(tài)等功能。它的輸出控制三個部分:一是驅(qū)動點陣液晶顯示器,能夠隨時反映老化過程中的工作狀態(tài);二是控制繼電器輸出,即控制產(chǎn)品的通電和斷電;三是驅(qū)動報警系統(tǒng),即在某批產(chǎn)品老化結(jié)束時,將會自動發(fā)出告警,通知相關(guān)人員可以進行下一批產(chǎn)品的老化。具體的框圖如圖1所示。
2.1 Atmega64單片機
Atmega64單片機是高性能AVR增強型RISC(精簡指令系統(tǒng)計算機)結(jié)構(gòu)的8位低功耗微處理器。由于130條指令基本上都能在一個時鐘周期內(nèi)完成,使得數(shù)據(jù)吞吐率高達1MIPS/MHz,從而可以減緩系統(tǒng)在處理速度和功耗之間的矛盾。Atmega64只有SMT一種封裝,其內(nèi)核具有豐富的指令集和32個通用工作寄存器。Atmega64 單片機具有如下特性:64K字節(jié)的可編程Flash(具有在寫的過程中還能讀的能力,即RWW)、2K字節(jié)的EEPROM、4K字節(jié)的SRAM、53個通用可編程I/O口線、32個通用工作寄存器、實時計數(shù)器RTC、4個靈活的具有比較模式和PWM功能的定時器/ 計數(shù)器(T/C)、2個USART、面向字節(jié)的兩線串行接口TWI、8路10位ADC、具有片內(nèi)振蕩器的可編程看門狗定時器、1個SPI串行端口、與IEEE 1149.1 規(guī)范兼容的JTAG接口、六種可以通過軟件選擇的省電模式。
Atmega64為許多嵌入式控制應(yīng)用提供了靈活而低成本的方案。本系統(tǒng)所涉及的數(shù)據(jù)量大,其對應(yīng)的存儲器空間的需求也相應(yīng)地增大。Atmega64內(nèi)置了64KB的存儲空間,4KB的數(shù)據(jù)存儲空間,選擇Atmega64單片機可使外圍電路更簡潔,提高控制器的運作效率。
2.2 按鍵電路
本系統(tǒng)共需6個按鍵,為了減少I/O口的占用,將按鍵排列成矩陣形式,如圖2和圖3所示。
Atmeg64單片機的PB口用作鍵盤I/O口,鍵盤的列線接到PB口的PB 4(PB 7)、PB 5(PG 3)、PB 6(PG 4),鍵盤的行線接到PB口的PB2(PB4)和PB3(PB5)。將PB 4(PB 7)、PB 5(PG 3)、PB 6(PG 4)設(shè)置為輸入、上拉,并把行線PB2(PB4)和PB3(PB5)設(shè)置為輸出,2根行線和3根列線形成6個相交點。
需要檢測當(dāng)前是否有鍵被按下時,只要讓行線中某一個輸出為低電平,讀取列線對應(yīng)端口的狀態(tài)。若為全“1”,則無鍵閉合;若不全為“1”,則有鍵閉合。當(dāng)檢測到有鍵按下,延時后做下一步的檢測判斷。若有鍵閉合,用對鍵盤的列線進行掃描的方法可以識別出是哪一個鍵閉合。
2.3 液晶顯示模塊
本系統(tǒng)顯示器采用的是恒芳公司的128×64點陣液晶,它能顯示點陣圖形,主要由行、列驅(qū)動器及128×64 全點陣液晶顯示器組成??赏瓿?×8 個漢字和各種圖形的顯示,有很強的靈活性,其結(jié)構(gòu)框圖如圖4所示。
圖中,IC3為行驅(qū)動器,IC1、IC2為列驅(qū)動器,它們含有如下功能器件:
1)用來寄存指令碼的指令寄存器IR,它與數(shù)據(jù)寄存器DR相對應(yīng)。當(dāng)D/I為1時,指令碼寫入IR。
2)用來寄存數(shù)據(jù)的數(shù)據(jù)寄存器DR,它與指令寄存器IR相對應(yīng)。當(dāng)D/I為1時,在E信號為下降沿時,數(shù)據(jù)寫入DR;在E信號為高電平1時,由DR讀到B7~DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動執(zhí)行的。
3)提供內(nèi)部工作情況的忙標(biāo)志BF,當(dāng)BF為1時,模塊進行內(nèi)部操作,不接受外部指令和數(shù)據(jù)。當(dāng)BF為0時,模塊隨時可接受外部指令和數(shù)據(jù)。
4)用于控制屏幕顯示開和關(guān)的顯示控制觸發(fā)器DFF,DFF為1,為開顯示,在屏幕上就會顯示DDRAM中的內(nèi)容。DFF為0,為關(guān)顯示(DISPLAY OFF)。DFF的狀態(tài)由指令DISPLAY ON/OFF和RST信號控制。
5)作為DDRAM的地址指針的9位地址計數(shù)器XY,它的高三位是X地址計數(shù)器,低6位為Y地址計數(shù)器。X地址計數(shù)器是DDRAM的頁指針,是沒有記數(shù)功能的,只能通過指令進行設(shè)置;Y地址計數(shù)器是DDRAM的Y地址指針,具有循環(huán)計數(shù)功能,各顯示數(shù)據(jù)寫入后,Y地址計數(shù)器自動加1。
6)用于存貯圖形顯示數(shù)據(jù)的顯示數(shù)據(jù)存儲器RAM(DDRAM),它的數(shù)據(jù)為1表示顯示選擇,數(shù)據(jù)為0表示顯示沒有被選擇。
7)用于顯示行掃描同步的地址計數(shù)器Z,它是一個6位計數(shù)器,具備循環(huán)記數(shù)功能。當(dāng)一行掃描完成,Z地址計數(shù)器自動加1,并指向下一行掃描數(shù)據(jù),當(dāng)RST復(fù)位時,Z地址計數(shù)器為0。
3 工具使用
3.1 ICCAVR編譯器
ICCAVR是一種使用符合ANSI標(biāo)準(zhǔn)的C語言來編寫微控制器32位程序的一個編譯器。它的主要特點是:運用了編輯器和工程管理器的工作環(huán)境,可在WINDOWS9X/NT/XP等操作系統(tǒng)下工作;狀態(tài)窗口能顯示編譯錯誤,并且用鼠標(biāo)單擊編譯錯誤時,光標(biāo)會自動跳轉(zhuǎn)到編輯窗口引起錯誤的那一行;輸出COFF/HEX格式的文件, HEX格式文件可支持大多數(shù)編程器,用于下載程序;COFF文件主要是用于仿真,方便檢查邏輯錯誤。
3.2 AVR Studio仿真器
AVR Studio是一個嵌入式開發(fā)環(huán)境,它可以在Windows 9x/Me/NT/2000/XP 操作系統(tǒng)下編寫和調(diào)試AVR應(yīng)用程序。AVR Studio為AVR單片機提供工程管理工具、源文件編輯器、芯片模擬器和在線仿真調(diào)試接口。另外,AVR Studio還支持STK500開發(fā)板,這個開發(fā)板可以對所有的AVR器件進行編程。它還支持JTAG在片仿真調(diào)試器。AVR Studio 4擁有的模塊結(jié)構(gòu)允許第三方軟件投資商共同合作開發(fā)。
AVR Studio的工作界面由工程管理、編輯器輸出欄、工作區(qū)、工作窗口、I/O窗口、信息窗口、查看窗口、存儲器窗口等組成。在本系統(tǒng)中,AVR Studio主要是充當(dāng)仿真編譯器使用,在仿真過程中方便檢查程序上的邏輯錯誤,如:程序進入某個未知的死循環(huán)中、或是跳過某個需要執(zhí)行的程序段等等。
程序的執(zhí)行狀態(tài)由調(diào)試工具欄控制,快捷鍵、菜單和調(diào)試工具欄可以實現(xiàn)所有的調(diào)試控制。如果在目標(biāo)文件中包含有效的源碼級信息,所有的調(diào)試操作將一直執(zhí)行下去,直到到達第一條用戶源代碼語句。要停止運行程序,必須在發(fā)出停止命令前轉(zhuǎn)換到反匯編模式。調(diào)試控制欄主要由開始調(diào)試(Start Debugging)、停止調(diào)試(Stop Debugging)、復(fù)位(Reset)(SHIFT+F5) 、運行(Run)(F5) 、暫停(Break)(CTRL-F5) 、單步執(zhí)行(Single step, Trace Into)(F11)、運行到光標(biāo)處(Run To Cursor)(F7) 、顯示下條語句(Show next statement)等命令組成。
3.3 PCtoLCD2002.exe液晶防真排版軟件
PCtoLCD2002有兩種界面模式:字符模式和圖形模式,圖形模式的工作界面如圖5所示。它可輸出多種形式的代碼(比如在匯編環(huán)境下的代碼、在C語言環(huán)境下的代碼等),圖形和字體的大小可根據(jù)需要可自由的調(diào)動。在圖形模式下,將設(shè)計好的顯示圖片直接導(dǎo)入到PCtoLCD2002下,然后設(shè)置代碼的輸出形式,生成并保存子模,這樣就可以直接將生成的代碼拷貝到程序中去。
本系統(tǒng)使用的是Atmega 64單片機,借助progisp.exe程序下載軟件將編好的程序燒進芯片里。
4 程序設(shè)計和調(diào)試
4.1 程序設(shè)計
本系統(tǒng)的程序分為主程序、顯示子程序和按鍵掃描子程序三大部分,主程序框圖如圖6所示(其它略)。它們都是在ICCAVR中編寫的,在編寫過程中經(jīng)過不斷的修改、編譯,然后生成COFF仿真文件。
4.2 軟件調(diào)試
把生成的仿真文件導(dǎo)入到AVR Studio仿真器中。先打開AVR Studio軟件,將會跳出新建項目窗口,點取消,點擊打開文件,找到COFF所在的文件,打開COFF文件,將跳出選擇設(shè)備和調(diào)試平臺(select device and debug platform)發(fā)窗口,在調(diào)試平臺(debug platform)中選擇AVR仿真器(AVR simulator),在器件(Device)中選擇Atmega64這個器件,點擊finish。
在工作窗口中的I/O View可以觀察寄存器、I/O端口、定時計數(shù)器等狀態(tài)變化,在主窗口的右面是相對應(yīng)的程序代碼,這樣在調(diào)試中能將每個語句與運行該語句所對應(yīng)的相關(guān)寄存器一一對應(yīng)起來,更直觀的看出語句中所存在的邏輯錯誤。
文件導(dǎo)入到仿真器后,點擊開始仿真(start debugging),仿真器開始運行,在第一次仿真時,應(yīng)該用單步仿真(step over),開始對程序進行逐句運行,直到?jīng)]有邏輯錯誤為止。
4.3 整機調(diào)試
軟件調(diào)試成功后,就可將程序代碼直接燒錄到單片機芯片中去,進行整機調(diào)試。
先將控制器通電,在剛開始的三秒鐘內(nèi)顯示歡迎屏幕。三秒后,則進入工作屏幕,顯示工作狀態(tài)、老化時間、計次次數(shù)、時間日期等數(shù)據(jù),并等待操作人員的操作。在菜單界面下,對老化參數(shù)進行更改(工作模式的選擇、老化信號頻率設(shè)定、老化時間設(shè)定、日期、時間設(shè)定等)。
然后打開老化架電源,則對應(yīng)得電源指示燈亮,再打開信號開關(guān),開始進行計次,看到計次燈在閃爍,則計次正常,對應(yīng)得信號開關(guān)指示燈也會常亮。等到老化時間為零時,即老化結(jié)束,老化架電源和計次信號都會被關(guān)閉,并發(fā)出報警信號,通知相關(guān)人員可以進行下一批產(chǎn)品的老化。
5 結(jié)束語
經(jīng)過整體調(diào)試,歡迎界面的顯示、老化時間的設(shè)置、計次頻率的調(diào)整、工作模式的選擇等功能都能很好地實現(xiàn)。它可以取代目前多數(shù)電子企業(yè)使用的機械式或半自動的老化控制器。
參考文獻:
[1] 曹國華.高速嵌入式單片機原理與接口技術(shù)[M].國防工業(yè)出版社,2004.
[2] 佟長福.AVR單片機GCC程序設(shè)計[M].北京航空航天大學(xué)出版社,2006.
[3] 眭碧霞.C語言[M].蘇州:蘇州大學(xué)出版社,2003.