(南昌理工學(xué)院電子與信息學(xué)院 江西 南昌 330013)
基于單片機(jī)的計(jì)算器設(shè)計(jì)
繆星星
(南昌理工學(xué)院電子與信息學(xué)院江西南昌330013)
設(shè)計(jì)以實(shí)現(xiàn)基本四則運(yùn)算與常用三角函數(shù)計(jì)算作為基礎(chǔ)功能的計(jì)算器,并在此基礎(chǔ)之上,添加數(shù)據(jù)采集與數(shù)據(jù)分析功能。
單片機(jī);計(jì)算器;液晶;串口
在現(xiàn)實(shí)生活中,數(shù)學(xué)計(jì)算常常伴隨我們左右,一個(gè)簡單廉價(jià)的計(jì)算器可以極大的方便人們生產(chǎn)生活中的計(jì)算問題,那么在滿足常規(guī)數(shù)學(xué)計(jì)算的同時(shí),提供簡單數(shù)據(jù)分析,將賦予計(jì)算器全新的生命,這將使計(jì)算器更好的成為人們的生產(chǎn)力工具,使用現(xiàn)有技術(shù),解決和方便人們生活中的問題是本設(shè)計(jì)的最大意義。
系統(tǒng)由下位機(jī)系統(tǒng)和上位機(jī)系統(tǒng)兩個(gè)系統(tǒng)組成,下位機(jī)系統(tǒng)由單片機(jī)最小系統(tǒng),串口通信模塊,按鍵輸入模塊,LCD液晶顯示模塊組成,上位機(jī)系統(tǒng)為PC端桌面程序。下位機(jī)系統(tǒng)主要完成對(duì)用戶輸入的數(shù)學(xué)表達(dá)式的計(jì)算,并在計(jì)算完成后自動(dòng)將相關(guān)數(shù)據(jù)通過單片機(jī)串口模塊,上傳至上位機(jī)系統(tǒng)。上位機(jī)系統(tǒng)則實(shí)時(shí)接收下位機(jī)發(fā)送數(shù)據(jù),內(nèi)部使用相關(guān)算法,對(duì)上傳數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,系統(tǒng)結(jié)構(gòu)為:
系統(tǒng)工作原理見圖2-1:
圖1 系統(tǒng)工作原理框圖
下位機(jī)系統(tǒng)使用串口數(shù)據(jù)線與PC端口連接,按下系統(tǒng)電源按鍵,系統(tǒng)開始運(yùn)行,首先進(jìn)行各模塊進(jìn)行初始化工作,系統(tǒng)初始化完成后,系統(tǒng)進(jìn)入等待狀態(tài)等待用戶的按鍵輸入,當(dāng)硬件電路感知到用戶輸入時(shí),LCD液晶屏中會(huì)對(duì)用戶輸入進(jìn)行實(shí)時(shí)顯示,當(dāng)用戶按下“=”鍵時(shí),系統(tǒng)程序會(huì)對(duì)用戶輸入的表達(dá)式進(jìn)行處理,計(jì)算出表達(dá)式結(jié)果,同時(shí)通過串口模塊將表達(dá)式及結(jié)果數(shù)據(jù)上傳至PC上位,PC上位機(jī)接收串口數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行相關(guān)處理顯示。
圖2 硬件設(shè)計(jì)電路圖
系統(tǒng)軟件設(shè)計(jì),是指通過軟件編程的方式協(xié)調(diào)系統(tǒng)各硬件電路運(yùn)行,通過軟硬結(jié)合的方式,實(shí)現(xiàn)系統(tǒng)功能。它是整個(gè)系統(tǒng)穩(wěn)定,可靠運(yùn)行的重要保障。
本設(shè)計(jì)中下位機(jī)系統(tǒng)程序包括,鍵盤按鍵掃描,LCD液晶顯示,單片機(jī)串口通信,數(shù)學(xué)表達(dá)式計(jì)算,主程序控制等模塊構(gòu)成。系統(tǒng)上電后,在主程序中首先完成各功能模塊的初始化工作,隨后主程序中進(jìn)入while(1)大循環(huán),循環(huán)調(diào)用按鍵掃描模塊,對(duì)用戶輸入進(jìn)行監(jiān)控,當(dāng)有鍵按下,在鍵盤掃描模塊中將會(huì)獲取按鍵鍵值,同時(shí)主程序中會(huì)將鍵值放入表達(dá)式緩沖區(qū)中進(jìn)行保存,并調(diào)用LCD液晶顯示模塊將用戶按鍵值在LCD1602液晶屏中進(jìn)行顯示,當(dāng)用達(dá)式輸入完畢按下“=”鍵,主程序中將會(huì)調(diào)用數(shù)學(xué)表達(dá)式計(jì)算模塊,首先從表達(dá)式緩沖區(qū)中讀取用戶輸入表達(dá)式,通過計(jì)算模塊的符號(hào)棧處理,將用戶輸入中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式,存儲(chǔ)在后綴表達(dá)式緩沖區(qū)中,隨后計(jì)算模塊通過計(jì)算棧對(duì)后綴表達(dá)式進(jìn)行計(jì)算求值,得出表達(dá)式計(jì)算結(jié)果,并通過LCD液晶顯示模塊,將計(jì)算結(jié)果在LCD中進(jìn)行顯示,最后主程序調(diào)用單片機(jī)串口通信模塊,將表達(dá)式緩沖區(qū)的內(nèi)容與表達(dá)式計(jì)算結(jié)果發(fā)送到PC上位機(jī)系統(tǒng)中,上述步驟執(zhí)行完成,主程序重新回到按鍵掃描模塊中執(zhí)行,掃描等待用戶下一次的表達(dá)式輸入計(jì)算。主程序中當(dāng)用戶按下清屏按鍵,主程序會(huì)調(diào)用LCD液晶顯示模塊,對(duì)LCD液晶顯示進(jìn)行清除,同時(shí)會(huì)將各緩沖區(qū)內(nèi)存空間進(jìn)行初始化操作,完成清屏后回調(diào)到按鍵掃描模塊,等待用戶下一次按鍵輸入。
[1]華成英.模擬電子技術(shù)基礎(chǔ)[M].清華大學(xué)出版社出版.2006.2
[2]陳海宴.51單片機(jī)原理及應(yīng)用[M].北京航空航天大學(xué)出版社.2010.7
[3]王東鋒.單片機(jī)C語言應(yīng)用100例[M].電子工業(yè)出版社.2008.3
[4]安曉輝.Qt Quick核心編程[M].電子工業(yè)出版社2015.1.