<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于A(yíng)T89C51單片機的十進(jìn)制計算器系統

一種基于A(yíng)T89C51單片機的十進(jìn)制計算器系統

作者: 時(shí)間:2014-08-28 來(lái)源:網(wǎng)絡(luò ) 收藏

  本設計是基于單片機進(jìn)行的十進(jìn)制系統設計,可以完成的鍵盤(pán)輸入,進(jìn)行加、減、乘、除4位無(wú)符號數字的簡(jiǎn)單四則運算,并在LED 上相應的顯示結果。硬件方面從功能考慮,首先選擇內部存儲資源豐富的單片機,輸入采用4×4。顯示采用4位7段共陽(yáng)極LED動(dòng)態(tài)顯示。軟件方面從分析功能、流程圖設計,再到程序的編寫(xiě)進(jìn)行系統設計。

本文引用地址:http://dyxdggzs.com/article/262335.htm

  引言

  本系統采用單片機作為控制器,用來(lái)實(shí)現實(shí)現四位數的“+”,“-”,“*”,“/”運算,運算結果通過(guò)數碼管顯示,并具有有清零功能。 AT89C51具有如下特點(diǎn):40個(gè)引腳,4k BytesFlash片內程序存儲器,128 bytes的隨機存取數據存儲器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計數器,2個(gè)全雙工串行通信口,看門(mén)狗(WDT)電路,片內時(shí)鐘振蕩器。

  1總體設計方案

  1.1系統組成與工作原理

  本系統以51單片機為主控核心,與、晶振、LED顯示管模塊一起組合而成。其工作過(guò)程為:首先存儲單元初始化,顯示初始值和鍵盤(pán)掃描,判斷按鍵位置,得出按鍵值,單片機則對數據進(jìn)行儲存與相應的處理轉換,之后送入數碼管動(dòng)態(tài)顯示。將運算結果送入數碼管動(dòng)態(tài)顯示。本設計只能進(jìn)行結果不超過(guò)四位數的運算,其功能如下:

  (1)數字鍵“0”到“9”用數碼管顯示。

  (2)加法運算:加數與被加數均不能超過(guò)9999,加法最終結果不能超過(guò)9999.

  (3)減法運算:減法運算正常邏輯為大的數值減去小的數值,本計算器亦如此,只能進(jìn)行正常邏輯的運算,如為小的數值減去大的數值,則將得到的負數與535相加,得到相應的結果,即如果想進(jìn)行小數減大數的運算,則把得到的結果減去535即得到負數的正確結果。

  (4)乘法運算:與上述方法一樣,計算結果不能超出9999,如溢出則顯示結果只有后三位。

  (5)除法運算:除數與被除數均不能超過(guò)9999,計算結果只顯示整數部分。

  (6)等于鍵:只有按下等于鍵才能將運算結果顯示出來(lái),否則一直顯示上一個(gè)數。

  (7)清零功能:程序不穩定或出現錯誤時(shí),運用清零鍵回到初始狀態(tài),也可用復位鍵清零。

  2系統硬件設計

  2.1系統硬件總體設計

  本系統由鍵盤(pán)矩陣、LED顯示管、這幾個(gè)部分組成,鍵盤(pán)輸入鍵值,LED顯示管顯示當前按鍵及結果。硬件總體設計圖1如下:

  

 

  圖1硬件總體設計圖

  2.2矩陣掃描顯示當前按鍵模塊

  利用AT89S51單片機的P0端口的P0.0 - P0.7連接到一個(gè)七段數碼管的a - h的筆段上,數碼管的公共端接電源。矩陣掃描顯示當前按鍵模塊見(jiàn)圖2.

  

 

  圖2矩陣掃描顯示當前按鍵模塊

  2.3鍵盤(pán)布局模塊

  的工作原理:計算器的鍵盤(pán)布局如圖3所示:一般有16個(gè)鍵組成,在單片機中正好可以用一個(gè)P口實(shí)現16個(gè)按鍵功能,這種形式在單片機系統中也最常用。

  

 

  圖3計算器的鍵盤(pán)布

  

 

  圖4系統的軟件流程圖

  3.2顯示程序模塊

  顯示程序將要顯示數值的千位、百位、十位與個(gè)位分別計算出來(lái),通過(guò)P0段選口輸出數值,通過(guò)位選口P3^3、P3^4、P3^5、P3^6實(shí)現動(dòng)態(tài)顯示。

  LED數碼管,實(shí)現七段數碼管的顯示四位十進(jìn)制數。通過(guò)段選來(lái)顯示按鍵及計算結果的數值。由于本硬件設計選用的是共陽(yáng)接法,所以對應的段碼表如下3.3鍵盤(pán)掃描模塊

  本次鍵盤(pán)掃描程序采用的是行列翻轉法掃描鍵盤(pán),即先置行為0,讀列值,存在變量1中,然后把列置為0,讀行值,存在變量2中,把變量1和變量2相加即為按鍵對應的鍵值,下表為相應按鍵對應的鍵值

  4結束語(yǔ)

  本計算器是以51系列單片機為核心構成計算器系統,該設計為能進(jìn)行簡(jiǎn)易算術(shù)運算的計算器,在現有的硬件條件下只能進(jìn)行結果不超過(guò)四位數的運算,能實(shí)現加減乘除的運算功能與數字清零功能,以及系統的復位功能。

51單片機相關(guān)文章:51單片機教程


單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理


塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理
晶振相關(guān)文章:晶振原理
雙控開(kāi)關(guān)相關(guān)文章:雙控開(kāi)關(guān)原理


關(guān)鍵詞: AT89C51 矩陣鍵盤(pán) 計算器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>