基于AT89C51單片機(jī)的十進(jìn)制計(jì)算器系統(tǒng)設(shè)計(jì)
出處:EDN China電子技術(shù)設(shè)計(jì) 發(fā)布于:2014-07-24 11:37:52
本設(shè)計(jì)是基于AT89C51 單片機(jī)進(jìn)行的十進(jìn)制計(jì)算器系統(tǒng)設(shè)計(jì),可以完成計(jì)算器的鍵盤輸入,進(jìn)行加、減、乘、除4 位無(wú)符號(hào)數(shù)字的簡(jiǎn)單四則運(yùn)算,并在LED 上相應(yīng)的顯示結(jié)果。硬件方面從功能考慮,首先選擇內(nèi)部存儲(chǔ)資源豐富的AT89C51 單片機(jī),輸入采用4×4 矩陣鍵盤。顯示采用4 位7 段共陽(yáng)極LED 動(dòng)態(tài)顯示。軟件方面從分析計(jì)算器功能、流程圖設(shè)計(jì),再到程序的編寫進(jìn)行系統(tǒng)設(shè)計(jì)。
引言
本系統(tǒng)采用AT89C51 單片機(jī)作為控制器,用來(lái)實(shí)現(xiàn)實(shí)現(xiàn)四位數(shù)的“+”,“-”,“*”,“/”運(yùn)算,運(yùn)算結(jié)果通過(guò)數(shù)碼管顯示,并具有有清零功能。AT89C51 具有如下特點(diǎn):40 個(gè)引腳,4k BytesFlash 片內(nèi)程序存儲(chǔ)器,128 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32 個(gè)外部雙向輸入/ 輸出(I/O)口,5 個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2 個(gè)16 位可編程定時(shí)計(jì)數(shù)器,2 個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。
1 總體設(shè)計(jì)方案
1.1 系統(tǒng)組成與工作原理
本系統(tǒng)以51 單片機(jī)為主控,與矩陣鍵盤、晶振、LED 顯示管模塊一起組合而成。其工作過(guò)程為:首先存儲(chǔ)單元初始化,顯示初始值和鍵盤掃描,判斷按鍵位置,得出按鍵值,單片機(jī)則對(duì)數(shù)據(jù)進(jìn)行儲(chǔ)存與相應(yīng)的處理轉(zhuǎn)換,之后送入數(shù)碼管動(dòng)態(tài)顯示。將運(yùn)算結(jié)果送入數(shù)碼管動(dòng)態(tài)顯示。本設(shè)計(jì)只能進(jìn)行結(jié)果不超過(guò)四位數(shù)的運(yùn)算,其功能如下:
(1)數(shù)字鍵“0”到“9”用數(shù)碼管顯示。
(2)加法運(yùn)算: 加數(shù)與被加數(shù)均不能超過(guò)9999,加法終結(jié)果不能超過(guò)9999。
(3)減法運(yùn)算: 減法運(yùn)算正常邏輯為大的數(shù)值減去小的數(shù)值,本計(jì)算器亦如此,只能進(jìn)行正常邏輯的運(yùn)算,如為小的數(shù)值減去大的數(shù)值,則將得到的負(fù)數(shù)與535 相加,得到相應(yīng)的結(jié)果,即如果想進(jìn)行小數(shù)減大數(shù)的運(yùn)算,則把得到的結(jié)果減去535 即得到負(fù)數(shù)的正確結(jié)果。
(4)乘法運(yùn)算: 與上述方法一樣,計(jì)算結(jié)果不能超出9999,如溢出則顯示結(jié)果只有后三位。
(5)除法運(yùn)算: 除數(shù)與被除數(shù)均不能超過(guò)9999,計(jì)算結(jié)果只顯示整數(shù)部分。
(6)等于鍵: 只有按下等于鍵才能將運(yùn)算結(jié)果顯示出來(lái),否則一直顯示上一個(gè)數(shù)。
(7)清零功能:程序不穩(wěn)定或出現(xiàn)錯(cuò)誤時(shí),運(yùn)用清零鍵回到初始狀態(tài),也可用復(fù)位鍵清零。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)硬件總體設(shè)計(jì)
本系統(tǒng)由鍵盤矩陣、LED 顯示管、這幾個(gè)部分組成,鍵盤輸入鍵值,LED 顯示管顯示當(dāng)前按鍵及結(jié)果。硬件總體設(shè)計(jì)圖1 如下:

圖1 硬件總體設(shè)計(jì)圖
2.2 矩陣掃描顯示當(dāng)前按鍵模塊
利用AT89S51 單片機(jī)的P0 端口的P0.0 - P0.7 連接到一個(gè)七段數(shù)碼管的a - h 的筆段上,數(shù)碼管的公共端接電源。矩陣掃描顯示當(dāng)前按鍵模塊見(jiàn)圖2。

圖2 矩陣掃描顯示當(dāng)前按鍵模塊
2.3 鍵盤布局模塊
矩陣鍵盤的工作原理:計(jì)算器的鍵盤布局如圖3 所示:一般有16 個(gè)鍵組成,在單片機(jī)中正好可以用一個(gè)P 口實(shí)現(xiàn)16 個(gè)按鍵功能,這種形式在單片機(jī)系統(tǒng)中也常用。

圖3 計(jì)算器的鍵盤布局模塊
3 系統(tǒng)軟件設(shè)計(jì)
3.1 系統(tǒng)軟件總體設(shè)計(jì)
本系統(tǒng)的軟件流程如圖4 所示。

圖4 系統(tǒng)的軟件流程圖
3.2 顯示程序模塊
顯示程序?qū)⒁@示數(shù)值的千位、百位、十位與個(gè)位分別計(jì)算出來(lái),通過(guò)P0 段選口輸出數(shù)值,通過(guò)位選口P3^3、P3^4、 P3^5、P3^6 實(shí)現(xiàn)動(dòng)態(tài)顯示。
LED 數(shù)碼管,實(shí)現(xiàn)七段數(shù)碼管的顯示四位十進(jìn)制數(shù)。通過(guò)段選來(lái)顯示按鍵及計(jì)算結(jié)果的數(shù)值。由于本硬件設(shè)計(jì)選用的是共陽(yáng)接法,所以對(duì)應(yīng)的段碼表如下3.3 鍵盤掃描模塊。
本次鍵盤掃描程序采用的是行列翻轉(zhuǎn)法掃描鍵盤,即先置行為0,讀列值,存在變量1 中,然后把列置為0,讀行值,存在變量2 中,把變量1 和變量2 相加即為按鍵對(duì)應(yīng)的鍵值,下表為相應(yīng)按鍵對(duì)應(yīng)的鍵值。
4 結(jié)束語(yǔ)
本計(jì)算器是以51 系列單片機(jī)為構(gòu)成計(jì)算器系統(tǒng),該設(shè)計(jì)為能進(jìn)行簡(jiǎn)易算術(shù)運(yùn)算的計(jì)算器,在現(xiàn)有的硬件條件下只能進(jìn)行結(jié)果不超過(guò)四位數(shù)的運(yùn)算,能實(shí)現(xiàn)加減乘除的運(yùn)算功能與數(shù)字清零功能,以及系統(tǒng)的復(fù)位功能。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 電表互感器匝數(shù)倍率怎么看?2025/9/5 17:05:11
- 顏色傳感器原理及實(shí)際應(yīng)用案例2025/9/5 16:09:23
- 調(diào)諧器和調(diào)制器的區(qū)別2025/9/4 17:25:45
- 有載變壓器和無(wú)載變壓器的區(qū)別有哪些2025/9/4 17:13:35
- 什么是晶體諧振器?晶體諧振器的作用2025/9/4 16:57:42
- PCB電磁兼容性(EMC)設(shè)計(jì)核心實(shí)操規(guī)范
- 物聯(lián)網(wǎng)節(jié)點(diǎn)低功耗設(shè)計(jì):信號(hào)鏈中的濾波與功耗管理
- 同步整流中MOSFET的應(yīng)用要點(diǎn)
- 輸出短路對(duì)電源芯片的影響
- 連接器壽命評(píng)估與可靠性設(shè)計(jì)
- PCB電源完整性(PI)設(shè)計(jì)核心實(shí)操規(guī)范
- 多層PCB疊層設(shè)計(jì)核心實(shí)操規(guī)范
- 提高M(jìn)OSFET效率的電路優(yōu)化方法
- 電源管理IC在智能家居中的應(yīng)用
- 差分信號(hào)連接器設(shè)計(jì)要點(diǎn)









