基於AT89C51單片機的十進位計算器系統設計

2021-01-08 華強電子網
基於AT89C51單片機的十進位計算器系統設計

來源:華強電子網 作者:- 時間:2014-07-25 14:48

  本設計是基於AT89C51 單片機進行的十進位計算器系統設計,可以完成計算器的鍵盤輸入,進行加、減、乘、除4 位無符號數字的簡單四則運算,並在LED 上相應的顯示結果。硬體方面從功能考慮,首先選擇內部存儲資源豐富的AT89C51 單片機,輸入採用4×4 矩陣鍵盤。顯示採用4 位7 段共陽極LED 動態顯示。軟體方面從分析計算器功能、流程圖設計,再到程序的編寫進行系統設計。

  引言

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

  1 總體設計方案

  1.1 系統組成與工作原理

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

  (1)數字鍵「0」到「9」用數碼管顯示。

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

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

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

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

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

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

  2 系統硬體設計

  2.1 系統硬體總體設計

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

  

圖1 硬體總體設計圖

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

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

  

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

  2.3 鍵盤布局模塊

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

  

圖3 計算器的鍵盤布局模塊

  3 系統軟體設計

  3.1 系統軟體總體設計

  本系統的軟體流程如圖4 所示。

  

圖4 系統的軟體流程圖

  3.2 顯示程序模塊

  顯示程序將要顯示數值的千位、百位、十位與個位分別計算出來,通過P0 段選口輸出數值,通過位選口P3^3、P3^4、 P3^5、P3^6 實現動態顯示。

  LED 數碼管,實現七段數碼管的顯示四位十進位數。通過段選來顯示按鍵及計算結果的數值。由於本硬體設計選用的是共陽接法,所以對應的段碼錶如下3.3 鍵盤掃描模塊

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

  4 結束語

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

 

關注電子行業精彩資訊,關注華強資訊官方微信,精華內容搶鮮讀,還有機會獲贈全年雜誌。

關注方法:添加好友→搜索「華強微電子」→關注

或微信「掃一掃」二維碼

相關焦點

  • 基於AT89C51單片機和傳感器實現家庭安全報警系統的設計
    警情採集電路當採集到警情信號時,單片機立即接通報警驅動電路實現聲光報警,同時由雙音多頻收發電路通過電話網絡撥打報警號碼向外界報警,當摘、掛機檢測電路檢測到被呼叫方摘機後,單片機接通語音報警電路,通過事先錄製好的語音信號告知對方與警情相關的信息,對方掛機後,模擬掛機,完成自動報警。
  • 單片機二進位編碼對照
    一、二進位編碼的十進位數: BCD 碼( Binary-Coded Decimal ) 字母與字符的編碼 字母和各種字符( $ 、 # )也必須按特   二進位編碼在計算機中,是採用二進位數。因而,要在計算機中表示的數、字母、符號等都要以特定的二進位碼來表示,這就是二進位編碼。
  • 51單片機之4位數加法計算器的設計報告
    二、系統設計2.1 設計任務    1、通過4*4矩陣鍵盤輸入數字及運算符;    2、可以進行4位十進位數以內的加法預算。如果計算結果超出四位數,則全部顯示「E」;    3、可以進行加減乘除所有運算;    4、添加其他功能。
  • 如何使用MSP430單片機實現簡易計算器的設計
    本文介紹了一種基於MSP430單片機的簡易電子計算器設計。基於MSP430單片機的簡易電子計算器設計具有體積小、便於攜帶、應用方便、組成元器件少、製造成本低等優點。MSP430單片機具有的超低功耗、硬體浮點數運算等功能使得簡易電子計算器設計簡單、計算能力強,有著廣闊的發展前景。
  • 基於51單片機設計的簡易智慧機器人
    引言 隨著微電子技術的不斷發展,微處理器晶片的集成程度越來越高,單片機已可以在一塊晶片上同時集成cpu、存儲器、定時器/計數器、並行和串行接口、看門狗、前置放大器、a/d轉換器、d/a轉換器等多種電路,這就很容易將計算機技術與測量控制技術結合,組成智能化測量控制系統
  • 使用Windows 10內置的計算器,可快速將十進位數轉換為二進位數
    計算器是現代人發明的可以進行數字運算的電子機器,擁有集成電路晶片,可以說是第一代的電子計算機,但結構比電腦簡單得多。由於使用較為方便與廉價,可廣泛運用於商業交易中,是必備的辦公用品之一。除顯示計算結果外,還常有溢出指示、錯誤指示等。計算器電源採用交流轉換器或電池,電池可用交流轉換器或太陽能轉換器再充電。
  • 基於AT89C51的自動溫度測量報警系統設計
    本文基於以上方面的考慮,研究並設計了一種基於單片機的自動溫度測量與報警系統。本文引用地址:http://www.eepw.com.cn/article/273497.htm  1 系統硬體設計  儘管目前市場上單片機的品種多樣,功能也越來越多,但是受成本約束,性能優良的8位單片機仍然是工業檢測與控制應用領域的首選。
  • 基於單片機和DSl8B20傳感器實現土木工程溫度監測系統的設計
    基於單片機和DSl8B20傳感器實現土木工程溫度監測系統的設計 陳娟 發表於 2020-12-09 10:17:09 1 引言 在土木工程中,許多大型的橋梁和大壩都是採用現場澆注的鋼筋混凝土結構
  • 嵌入式,單片機編程基礎-二進位
    作為一名嵌入式底層驅動開發人員,或者是單片機的固件編程人員,掌握一些二進位的基本知識是很必要的。首先,我們在看處理器的參考手冊時,看到最多的就是有關寄存器的介紹。我們開發驅動程序,本質上也是設置或讀取這些寄存器。參考手冊介紹寄存器時一般都是以比特位為單位介紹的。
  • 基於單片機的四位二進位轉十進位計算顯示程序
    此程序是根據自己的單片機板子寫的,四位共陽數碼管。本文引用地址:http://www.eepw.com.cn/article/170906.htmk1-k4是板子上的4個鍵 用來進行二進位輸入,因為按鍵只有按下和沒有按下兩種狀態,十進位的數值就顯示在數碼管上.
  • 單片機進位轉換
    今天我就給大家講講與計算機有關的「進位轉換」問題。   我們以(25.625)(十)為例講解一下進位之間的轉化問題。 1. 十 > 二  給你一個十進位,比如:6,如果將它轉換成二進位數呢?十 ----> 八  10進位數轉換成8進位的方法,和轉換為2進位的方法類似,惟一變化:除數由2變成8。   來看一個例子,如何將十進位數120轉換成八進位數。
  • 單片機小白學步(4) 模擬電路、傳統數字電路與單片機
    大家都用過計算器,有沒有想過它是怎麼實現的呢?這裡我不詳述計算器的原理,而只對思路進行簡單介紹。等我們學會了單片機,也可以親手製作一個計算器。用電路進行數學計算通過電路進行數學計算,應該怎麼做呢?
  • 單片機應用系統的可靠性設計
    單片機應用系統的設計包括功能性設計、可靠性設計和產品化設計。其中,功能性是基礎,可靠性是保障,產品化是前途。因此,從事單片機應用系統開發工作的設計人員必須掌握可靠性設計。單片機應用系統是當前最典型、最廣泛的現代電子系統。 現代電子系統的可靠性表現為,在規定條件下,系統準確無誤運行的能力.突出了可靠性的軟體和運行中的失誤概率。 可靠性設計則是在產品開發過程中,保證運行可靠的全部設計手段,甚至包括了產品出廠後軟體升級中的可靠性設計。
  • 基於AT89C52的溫室用溫度監控系統設計
    本設計就是對溫室的溫度控制要求進行全面分析,綜合考慮系統精度和經濟性多方面因素後,設計一種基於單片機的溫度自動控制系統。本系統能夠實現對溫室大棚溫度的自動監控,可以通過按鍵輸入設定溫度等控制指令,並且使溫室溫度保持在設定值的範圍內,完成監控系統的工作。
  • 計算機考試進位間轉換,能用計算器嗎?
    計算機考試不論是國考,還是專升本等考試,總會考幾分關於進位轉換的題目,那麼很多小夥伴不會算或者算不對怎麼辦?有小夥伴會問我能用計算器不。首先和大家講解一下電腦上的計算器進位轉化的設置及運用方法,這裡以win7系統為例:①先找到附近裡面的計算器
  • 基於Modbus通信協議的eView觸控螢幕與51單片機的通信設計
    基於Modbus通信協議的eView觸控螢幕與51單片機的通信設計 電子工程網 發表於 2019-09-27 16:27:48 Modbus協議由於其具有開放性、透明性、成本低、易於開發等特點,已成為當今工業領域通信協議的首選
  • 基於STC89C52單片機的溫度檢測系統設計
    摘要:為了檢測現場溫度,並直觀反映其變化趨勢,設計了基於STC89C52單片機的溫度檢測系統。利用數字溫度傳感器DS18B20採集溫度信號,該信號送入STC89C52單片機處理,後由液晶顯示器LCD12864(ST7920)顯示溫度值,並繪製出溫度變化曲線。實測結果表明,系統可靠性、測試精度及溫度趨勢曲線繪製達到設計要求。
  • 基於單片機的GPS/電子羅盤測姿定位系統
    摘要:設計了一種基於GPS/電子羅盤的測姿定位系統。該系統利用單片機C8051F021作為中央處理器,功耗極低的iTrax03-02作為GPS接收機,數字電子羅盤HMR3300提供姿態信息,通過串口通信實現了實時測姿定位功能。
  • 基於KEIL 51的單片機開發系統設計
    1.引言本文引用地址:http://www.eepw.com.cn/article/171806.htm近年來隨著KEIL 51不斷升級,高版本的KEIL 51編譯器,尤其是Keil μVision2(基於Windows的C51集成編譯環境)
  • 基於單片機和TC35i型無線通信GSM模塊實現LED顯示屏設計
    基於單片機和TC35i型無線通信GSM模塊實現LED顯示屏設計 樊宇 , 程全 , 徐朝 發表於 2020-03-29 10:23:19 1、 引言