個(gè)人消費(fèi)類電子
- 首頁 >> 新聞資訊 >> 博客文章 >> 個(gè)人消費(fèi)類電子
LCD計(jì)算器控制板設(shè)計(jì)開發(fā)
單片機(jī)芯片上集成了大規(guī)模特定功能的器件。其中最主要的元器件就是中央處理CPU,其是單片機(jī)的大腦。單片機(jī)還集成了一些具有存儲(chǔ)功能的設(shè)備,如:只讀存儲(chǔ)器ROM和隨機(jī)存儲(chǔ)器RAM;定時(shí)器/計(jì)時(shí)器也是常用到的單元;為了與其他設(shè)備進(jìn)行信息傳輸,單片機(jī)還需有多種I/O口。本文研究的是單片機(jī)在日常生活中常見的應(yīng)用——簡易計(jì)算器。由于它操作方便,因此應(yīng)用較為廣泛。該設(shè)備通常利用LCD液晶對(duì)數(shù)據(jù)進(jìn)行顯示,從而可以使運(yùn)算結(jié)果更加直觀而且不會(huì)浪費(fèi)過多的電能。為了便于學(xué)習(xí),本文對(duì)其功能進(jìn)行了簡化,可進(jìn)行整數(shù)和浮點(diǎn)運(yùn)算,運(yùn)算位數(shù)也可擴(kuò)展到15位。
一、電子計(jì)算器的意義分析
電子計(jì)算器是一種電子產(chǎn)品,是人們?cè)谏詈凸ぷ髦斜夭豢缮俚墓ぞ?。電子技術(shù)的飛速發(fā)展,人們對(duì)電子產(chǎn)品的要求也不斷提高,針對(duì)以上現(xiàn)狀,本文設(shè)計(jì)了一款更加簡便的計(jì)算器,該產(chǎn)品采用新方法來實(shí)現(xiàn)功能。由于采用傳統(tǒng)的技術(shù)要實(shí)現(xiàn)比較完善的功能需要非常復(fù)雜的模擬電路設(shè)計(jì),不僅會(huì)使設(shè)備顯得笨重,同時(shí)也不利于操作。而一片集成度較高小體積的芯片就可以解決上述問題。本文設(shè)計(jì)的計(jì)算器就是采用單片機(jī)對(duì)系統(tǒng)進(jìn)行控制,顯示模塊采用1602LCD顯示器,數(shù)據(jù)的輸入采用矩陣按鍵。該設(shè)備具有的優(yōu)勢(shì)是十分明顯,不僅體積小、精度較高而且方便使用。當(dāng)前對(duì)數(shù)據(jù)的運(yùn)算不僅進(jìn)停留在簡單的四則運(yùn)算上,還會(huì)經(jīng)常需要進(jìn)行乘方、開方、指數(shù)、對(duì)數(shù)、三角函數(shù)等計(jì)算,所以對(duì)計(jì)算器的研究和改進(jìn)有較強(qiáng)的實(shí)際意義和價(jià)值。
二、LCD計(jì)算器系統(tǒng)總體設(shè)計(jì)
2.1設(shè)計(jì)要求
本文采用STC89C52系列單片機(jī)作為主控制器,對(duì)外圍電路進(jìn)行一定的拓展完成實(shí)現(xiàn)對(duì)計(jì)算器的設(shè)計(jì),設(shè)計(jì)要求主要包括以下六個(gè)方面:
(1)掌握單片機(jī)和外圍擴(kuò)展電路的設(shè)計(jì)方法;(2)可進(jìn)行四則運(yùn)算,采用LCD顯示數(shù)據(jù)和結(jié)果;(3)可以完成浮點(diǎn)數(shù)之間的一些加減乘除運(yùn)算;(4)支持括號(hào)運(yùn)算,允許多層正確嵌套;(5)具備比較完善的報(bào)錯(cuò)系統(tǒng);(6)顯示界面友好,可實(shí)時(shí)顯示輸入數(shù)據(jù);
2.2設(shè)計(jì)方案
系統(tǒng)的具體設(shè)計(jì)方案主要分為以下4步:(1)輸入模塊部分使用4*4的矩陣鍵盤和4個(gè)獨(dú)立按鍵;電源采用LM7805的穩(wěn)壓電路;
(2)執(zhí)行程序:應(yīng)用液晶顯示屏顯示模塊部分,開機(jī)時(shí)無數(shù)字顯示,進(jìn)入等待鍵入數(shù)值的狀態(tài);當(dāng)有數(shù)字鍵入時(shí),在液晶顯示屏顯示出數(shù)值;當(dāng)鍵入運(yùn)算符+、-、*、/時(shí),計(jì)算器的內(nèi)部將會(huì)進(jìn)如數(shù)值的轉(zhuǎn)換和存儲(chǔ)狀態(tài),接著等待下一個(gè)數(shù)值被鍵入,之后鍵入的數(shù)值會(huì)被顯示出來;最后通過按等號(hào)鍵輸出運(yùn)算結(jié)果就會(huì)在液晶顯示屏上;
(3)AC清零功能:在運(yùn)算結(jié)果輸出之后通過按鍵鍵入AC鍵,把數(shù)據(jù)清零,接著等待下一步計(jì)算。
(4)錯(cuò)誤提示:如果單片機(jī)在執(zhí)行程序過程中出現(xiàn)錯(cuò)誤,相應(yīng)的錯(cuò)誤提示信息則將會(huì)在液晶顯示器上顯示出來。
三、電子計(jì)算器硬件系統(tǒng)設(shè)計(jì)
3.1主控芯片STC89C52單片機(jī)
考慮到系統(tǒng)的功耗和性能等因素,選用的STC89C52控制芯片具有32個(gè)I/0口,內(nèi)部FLASH程序存儲(chǔ)器8KB,內(nèi)部RAM12字節(jié),內(nèi)部EEPROM2KB,雙DPTR指針,3個(gè)定時(shí)器/計(jì)數(shù)器,自帶看門狗WatchDog。
3.2輔助模塊設(shè)計(jì)
LCD液晶顯示器用來顯示數(shù)值的輸出和輸入。它的數(shù)據(jù)端與單片機(jī)的P0口相連接,控制端部分與P24~P26相連接。當(dāng)所需要的鍵盤數(shù)量較多時(shí),為避免占用更多I/O口,最有效的方法就是將按鍵以矩陣形式進(jìn)行排列。需要注意的是,在行和列的交叉處不能直接進(jìn)行連接,而是使用一個(gè)按鍵將兩者連接。通過以上處理,一個(gè)I/O口就可以控制多個(gè)按鍵。蜂鳴器起到一個(gè)提示的作用,當(dāng)有按鍵被按下時(shí)就會(huì)發(fā)出聲音。本文中,驅(qū)動(dòng)蜂鳴器采用的是三極管。由于單片機(jī)I/O的驅(qū)動(dòng)能力不足,因此可以利用單片機(jī)的I/O口實(shí)現(xiàn)開關(guān)功能。如果想要打開蜂鳴器通道則顯示屏顯示為‘0’,這樣蜂鳴器會(huì)發(fā)出聲音。
本文設(shè)計(jì)的計(jì)算器系統(tǒng)的電源模塊采用LM7805作為穩(wěn)壓芯片。由于STC89C52和LCD1602都采用5V電壓供電,經(jīng)過初級(jí)和次級(jí)的電容濾波,最終可以得到5V的電壓供給使用。
四、LCB電子計(jì)算器軟件系統(tǒng)設(shè)計(jì)
軟件編程平臺(tái)選用最常用的keil軟件,仿真平臺(tái)選擇常見的Proteus軟件。因?yàn)檫@些程序并沒有牽涉到底層的驅(qū)動(dòng)問題,所以選用方便簡捷的C語言編程。通常把編程過程共分為四個(gè)模塊部分:主函數(shù)模塊部分、延時(shí)模塊部分、1602顯示模塊部分、用于處理計(jì)算表達(dá)式的對(duì)戰(zhàn)模塊部分。采用模塊化設(shè)計(jì),便于系統(tǒng)的調(diào)試與了解。重點(diǎn)介紹軟件核心的表達(dá)式解決程序算法部分。
4.1總體設(shè)計(jì)
在顯示數(shù)據(jù)傳輸?shù)倪M(jìn)程中,應(yīng)經(jīng)過程序控制的實(shí)時(shí)處理信息,顯示出輸入數(shù)據(jù)信息,差錯(cuò)控制信息,運(yùn)算結(jié)果信息,實(shí)時(shí)解決自定義的控制鍵功能,并且實(shí)現(xiàn)控制功能。系統(tǒng)的具體流程設(shè)計(jì)步驟如下所示:
(1)開始后程序應(yīng)該先初始化參數(shù),這時(shí)1602無數(shù)字顯示。
(2)然后開始掃描鍵盤看是否有輸入,如果有輸入則讀取鍵盤的編碼。如果是數(shù)字鍵則輸入數(shù)值;如果是清零鍵則狀態(tài)就為清零;如果是功能鍵則判別輸入的是‘+’鍵‘-’鍵‘*’鍵‘/’鍵還是‘=’鍵;如果是‘=’鍵,則輸出運(yùn)算結(jié)果并且在LCD上顯示出運(yùn)算結(jié)果;如果是其他鍵則保存其相對(duì)運(yùn)算程序的首地址并且在LCD上輸出顯示出來。
4.2子程序設(shè)計(jì)
矩陣鍵盤掃描程序如下,首先初始化地址參數(shù),依次讀出低四位數(shù)據(jù)和高四位。然后再確定鍵的ASCII碼值送給LCD顯示并且與表達(dá)式相對(duì)應(yīng)的堆棧進(jìn)行處理。讀鍵過程利用的是反轉(zhuǎn)方法,無論矩陣規(guī)模大小都分為兩次來完成讀鍵。第一次所有行線都輸出高電平,讀入行信息;第二次所有列線都輸出高電平,讀入列信息。
根據(jù)對(duì)系統(tǒng)的要求和硬件本身的特性的分析,系統(tǒng)的復(fù)位功能只需要將AC按鍵與單片機(jī)的外部中斷0連接,就可以利用單片機(jī)的中斷對(duì)數(shù)據(jù)進(jìn)行清理。具體過程為:程序運(yùn)行期間通過不斷查詢標(biāo)志位,若為0,則啟動(dòng)清零功能,清零結(jié)束后將標(biāo)志位置為1后返回主程序。
1602在上電以后,在進(jìn)行具體化操作時(shí)應(yīng)先對(duì)其內(nèi)部芯片做初始化處理。并且具體操作時(shí)其時(shí)序圖的參考也是非常有必要的,必須參考其時(shí)序圖,再把命令寫入它的內(nèi)部寄存器,然后再將工作方式及工作狀態(tài)進(jìn)行設(shè)置。
五、電子計(jì)算器系統(tǒng)調(diào)試
本文以整數(shù)運(yùn)算為例子來測(cè)試電子計(jì)算器的可行性。首先需要打開電源,能夠看到LCD打開顯示,說明能夠正常運(yùn)行,如果我們輸入一個(gè)比較完整的表達(dá)式:12*(34+56-78)/9,其正確結(jié)果應(yīng)該為16。當(dāng)所有的數(shù)值都被輸入以后,再按“=”鍵,其運(yùn)算結(jié)果就會(huì)在第二行的位置顯示出來。在使用過程中,按鍵音的打開和關(guān)閉還可以通過聲音開關(guān)按鈕來控制,通過在LCD上顯示出來以判斷是否打開按鍵聲音,如果有聲音被打開,則在第二行的第一個(gè)位置就有顯示。如果聲音還沒有被打開,那么在第二行的第一個(gè)位置就沒有顯示,它們都能夠通過按鈕打開或關(guān)閉聲音。
總結(jié)
本設(shè)計(jì)以STC89C52作為主控芯片,采用LCD1602液晶顯示數(shù)據(jù),軟件部分是用C語言來編寫,利用鍵盤和液晶設(shè)計(jì)的一個(gè)簡便計(jì)算器,能夠?qū)崿F(xiàn)數(shù)據(jù)的簡單四則運(yùn)算,并且在液晶屏上顯示運(yùn)算結(jié)果。另外單片機(jī)的程序能夠可靠運(yùn)行和修改,尤其是能夠?qū)崿F(xiàn)一些獨(dú)特的功能特性。通過利用單片機(jī)來編寫程序以便于完成高智能、高效率和更高的可靠性。
以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的LCD電子計(jì)算器開發(fā)示例。如果您有藍(lán)牙耳機(jī)方案開發(fā)需求,可以放心交給我們。我們代理多種單片機(jī)、語音芯片、雙模藍(lán)牙IC、wifi芯片。品牌有松翰單片機(jī)、應(yīng)廣單片機(jī)、杰理藍(lán)牙、安凱藍(lán)牙、全志、瑞昱(realtek)。我們的技術(shù)服務(wù)范圍有:PCB設(shè)計(jì)、單片機(jī)開發(fā)、藍(lán)牙方案、軟硬件定制開發(fā)、APP開發(fā)、小程序開發(fā)、微信公眾號(hào)開發(fā)等。還可以承接智能電子產(chǎn)品方案設(shè)計(jì)、生活電器開發(fā)、美容儀器研發(fā)、物聯(lián)網(wǎng)平臺(tái)應(yīng)用、智能家居控制系統(tǒng)、TWS耳機(jī)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童益智玩具方案開發(fā)、電子教育產(chǎn)品方案設(shè)計(jì)等。
- 返回頂部