加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機(jī)的計(jì)算器設(shè)計(jì)

10/10 09:14
1055
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
    • 第一章 前言
    • 第二章 方案論證
    • 第三章 系統(tǒng)硬件設(shè)計(jì)及說明
    • 第四章 設(shè)計(jì)原理分析
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

第一章 前言

1.1 系統(tǒng)開發(fā)背景

隨著社會(huì)的發(fā)展,科學(xué)的進(jìn)步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。電子產(chǎn)品的更新速度快就不足驚奇了。計(jì)算器在人們的日常中是比較的常見的電子產(chǎn)品之一。如何使計(jì)算器技術(shù)更加的成熟,充分利用已有的軟件硬件條件,設(shè)計(jì)出更出色的計(jì)算器,使其更好的為各個(gè)行業(yè)服務(wù),成了如今電子領(lǐng)域重要的研究課題。

1.2 系統(tǒng)開發(fā)意義

今天,人們的日常生活中已經(jīng)離不開計(jì)算器了,社會(huì)的各個(gè)角落都有它的身影,比如商店,辦公室,學(xué)校……因此設(shè)計(jì)一款簡單實(shí)用的計(jì)算器會(huì)有很大的實(shí)際意義。

1.3 設(shè)計(jì)目的

本設(shè)計(jì)旨在進(jìn)一步掌握單片機(jī)理論知識(shí),理解嵌入式單片機(jī)系統(tǒng)的硬軟件設(shè)計(jì),加強(qiáng)對實(shí)際應(yīng)用系統(tǒng)設(shè)計(jì)的能力。通過本設(shè)計(jì)的學(xué)習(xí),使我掌握單片機(jī)程序設(shè)計(jì)和微機(jī)接口應(yīng)用的基本方法,并能綜合運(yùn)用本科階段所學(xué)軟、硬件知識(shí)分析實(shí)際問題,提高解決畢業(yè)設(shè)計(jì)實(shí)際問題的能力,為單片機(jī)應(yīng)用和開發(fā)打下良好的基礎(chǔ)。

1、對字符液晶顯示模塊的工作原理,如初始化、清屏、顯示、調(diào)用及外特性有較清楚的認(rèn)識(shí),并會(huì)使用LCD(液晶顯示模塊)實(shí)現(xiàn)計(jì)算結(jié)果的顯示;掌握液晶顯示模塊的驅(qū)動(dòng)和編程,設(shè)計(jì)LCD和單片機(jī)的接口電路,以及利用單片機(jī)對液晶模塊的驅(qū)動(dòng)和操作;

2、在充分分析內(nèi)部邏輯的概念,進(jìn)行軟件和調(diào)試,學(xué)會(huì)使用,并能夠以其為平臺(tái)設(shè)計(jì)出具有四則運(yùn)算能力簡易計(jì)算器的硬件電路和軟件程序。

第二章 方案論證

2.1 方案構(gòu)思

本設(shè)計(jì)可以采用兩種方案,一種是以FPGA為核心處理芯片,配備相應(yīng)的外設(shè);另外一種是以AT89S52處理器,配備相應(yīng)的外設(shè)。

1、方案一:采用FPGA控制

FPGA是一種高密度的可編程邏輯器件,自從Xilinx公司1985年推出第一片F(xiàn)PGA以來,FPGA的集成密度和性能提高很快,其集成密度最高達(dá)500萬門/片以上,系統(tǒng)性能可達(dá)200MHz。由于FPGA器件集成度高,方便易用,開發(fā)和上市周期短,在數(shù)字設(shè)計(jì)和電子生產(chǎn)中得到迅速普及和應(yīng)用,并一度在高密度的可編程邏輯器件領(lǐng)域中獨(dú)占鰲頭。

但是而基于 SRAM編程的FPGA,其編程信息需存放在外部存儲(chǔ)器上 ,需外部存儲(chǔ)器芯片 ,且使用方法復(fù)雜 ,保密性差,而其對于一個(gè)簡單的計(jì)算器而言,實(shí)用FPGA有點(diǎn)大材小用,成本太高。

2、方案二:采用AT89S52

單片機(jī)是單片微型機(jī)的簡稱,故又稱為微控制器MCU(Micro Control Unit)。通常由單塊集成電路芯片組成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器CPU,存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)廣泛用于智能產(chǎn)品,智能儀表,測控技術(shù),智能接口等,具有操作簡單,實(shí)用方便,價(jià)格便宜等優(yōu)點(diǎn),而其中AT89S52以MCS-51為內(nèi)核,是單片機(jī)中最典型的代表,應(yīng)用于各種控制領(lǐng)域。

2.2? 方案比較與選擇

通過以上兩種方案論證和比較,從設(shè)計(jì)的實(shí)用性,方便性和成本出發(fā),選擇了以AT89S52單片機(jī)作為中央處理單元進(jìn)行計(jì)算器的設(shè)計(jì),這樣設(shè)計(jì)能夠?qū)崿F(xiàn)對四位加減乘除和除法四位小點(diǎn)數(shù)的運(yùn)算。

第三章 系統(tǒng)硬件設(shè)計(jì)及說明

3.1系統(tǒng)組成及總體框圖

圖3.1 系統(tǒng)組成及總體框圖

3.2元件簡介

3.2.1 AT89S52特點(diǎn)

1、主要性能:

(2) 管腳說明:

VCC:供電電壓。

GND:接地。

2、AT89S52的功能特性描述

AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。

AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振時(shí)鐘電路。

此外, AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。

3、AT89S52引腳功能

AT89S52 單片機(jī)為40 引腳芯片見圖3.2.1-2。

(1)口線:P0、P1、P2、P3 共四個(gè)八位口。

P0 口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。

對P0端口寫“1”時(shí),引腳用作高阻抗輸入。

當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0不具有內(nèi)部上拉電阻

在flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。

P1口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。

此外,P1.0和P1.1分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。

在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。

引腳號(hào)第二功能:

P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出

P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)

P1.5 MOSI(在系統(tǒng)編程用)

P1.6 MISO(在系統(tǒng)編程用)

P1.7 SCK(在系統(tǒng)編程用)

P2口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。

在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR) 時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。

在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。

在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)

P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。

P3口亦作為AT89S52特殊功能(第二功能)使用,如表3.2.1所示。

表3.2.1 P3口管腳 備選功能:

端口引腳 第二功能
P3.0 RXD(串行輸入口)
P3.1 TXD(串行輸出口)
P3.2 /INT0(外部中斷0)
P3.3 /INT1(外部中斷1)
P3.4 T0(記時(shí)器0外部輸入)
P3.5 T1(記時(shí)器1外部輸入)
P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)
P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)

在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。

此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。

(2)其他引腳說明:

RST:復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位。看門狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。

ALE/PROG——當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。

對FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。

如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。

PSEN——程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。

EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。

如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。

FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。

XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。

XTAL2:來自反向振蕩器的輸出。

XTAL1,XTAL2接石英晶體振蕩器。如圖3.2.1-3所示外接晶體引腳圖。

XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時(shí),外部振蕩信號(hào)應(yīng)直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時(shí),時(shí)鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時(shí)鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇,在本設(shè)計(jì)電路中選用了12MHz。電容取20PF左右。機(jī)器周期=12×?xí)r間周期,如12MHz的機(jī)器周期為1微秒。

(3)控制或復(fù)位引腳

RESET 此腳為高電平時(shí)(約2個(gè)機(jī)器周期)可將單片機(jī)復(fù)位。

RST/VPD——當(dāng)出現(xiàn)兩個(gè)機(jī)器周期高電平時(shí),單片機(jī)復(fù)位。復(fù)位后,P0~P3輸出高電平;SP寄存器為07H;其它寄存器全部清0;不影響RAM狀態(tài)。如圖3.2.1-4所示。

圖3.2.1-4 按鍵電平復(fù)位

AT89SXX系列單片機(jī)實(shí)現(xiàn)了ISP下載功能,故而取代了89CXX系列的下載方式,也是因?yàn)檫@樣,ATMEL公司已經(jīng)停止生產(chǎn)89CXX系列的單片機(jī),現(xiàn)在市面上的AT89CXX多是停產(chǎn)前的庫存產(chǎn)品。

4、AT89S52的編程方法

編程前,須按編程模式表設(shè)置好地址、數(shù)據(jù)及控制信號(hào);順序如下:

① 在地址線上加上要編程單元的地址信號(hào)。

② 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。

③ 激活相應(yīng)的控制信號(hào)。

④ 將EA/Vpp端加上+12V編程電壓。

⑤ 每對Flash存儲(chǔ)陣列寫入一個(gè)字節(jié)或每寫入一個(gè)程序機(jī)密位,加上一個(gè)ALE/PROG編程脈沖。每個(gè)字節(jié)寫入周期是自身定時(shí)的,大多數(shù)約為50us。改變編程單元的地址和寫入的數(shù)據(jù),重復(fù)①—⑤步驟,直到全部文件編程結(jié)束。

單片機(jī)的現(xiàn)狀及發(fā)展方向:

單片機(jī)是為了工業(yè)控制需要滿足而誕生的,是自動(dòng)控制系統(tǒng)的核心部件,因而也主要用于工業(yè)控制、智能化儀器儀表、家用電器中。它具有體積小,功能多、價(jià)格低、使用方便、系統(tǒng)設(shè)計(jì)靈活等優(yōu)點(diǎn),應(yīng)用領(lǐng)域不斷擴(kuò)大,除了工業(yè)控制,智能化儀表,通訊,家用電器外,在智能化高檔電子玩具產(chǎn)品中也大量采用單片機(jī)芯片作為核心控制部件。

由于單片機(jī)主要面向工業(yè)控制,工作環(huán)境比較惡劣,入高溫,強(qiáng)電磁干擾,甚至含有腐蝕性氣體,在太空中工作的單片機(jī)控制系統(tǒng),還必須具有抗輻射能力,這決定了單片機(jī)CPU于通用微機(jī)CPU具有不同的技術(shù)特征和發(fā)展方向:

(1) 可靠性高;

(2) 控制功能往往很強(qiáng),數(shù)值計(jì)算交叉;

(3) 指令系統(tǒng)通用微處理器慢的多;

(4) X系列芯片取代;

(5) 抗干擾性強(qiáng),工作溫度范圍寬。

3.2.2 LCD1602液晶顯示屏

1、應(yīng)用簡介

模塊內(nèi)部自帶字符發(fā)生存儲(chǔ)器(CGROM),字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是(41H),顯示時(shí)模塊把代碼41H發(fā)給液晶模塊,我們就能在液晶上看到字母“A”。

1602液晶模塊內(nèi)部的控制器共有11條控制指令,豐富的指令可以完成液晶的時(shí)序控制、工作方式式設(shè)置和數(shù)據(jù)顯示等。

采用的LCD1602液晶模塊是標(biāo)準(zhǔn)16針插座,接口電路如圖3.2.3所示:關(guān)于LCD1602的詳細(xì)資料見表3.2.3-1和表3.2.3-2。

圖3.2.3 LCD接口電路

表3.2.3-1 LCD1602引腳說明

第1腳 VSS為地電源
第2腳 VDD接5V正電源
第3腳 V0為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高,對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度。

實(shí)際電路中采用2K電阻到地,比較理想。

第4腳 RS為寄存器選擇,高電平選擇數(shù)據(jù)寄存器、低電平選擇指令寄存器
第5腳 RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。

當(dāng)RS和RW共同為低電平時(shí)? (00)可以寫入指令或者顯示地址;

當(dāng)RS為低電平RW為高電平時(shí)(01)可以讀入忙信號(hào);

當(dāng)RS為高電平RW為低電平時(shí)(10)可以寫入數(shù)據(jù)。

第6腳 E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。
第7~14腳 D0~D7為8位雙向數(shù)據(jù)線。
第15~16腳 背光陽極和背光陰極。

表3.2.3-2 LCD1602指令表

指令1 清顯示???? 指令碼01H, 光標(biāo)復(fù)位到地址00H位置;
指令2 光標(biāo)復(fù)位?? 指令碼02H, 光標(biāo)返回到地址00H位置 ;
指令3 光標(biāo)和顯示模式設(shè)置

I/D位 → 光標(biāo)移動(dòng)方向,高電平右移,低電平左移;

S? 位 → 屏幕上所有文字是否左移或者右移,高電平有效,低電平無效;

指令4 顯示開關(guān)控制

D? 位 → 控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示;

C? 位 → 控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo);

B? 位 → 控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍 ;

指令5 光標(biāo)或顯示移位

S/C位 → 高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)

指令6 功能命令設(shè)置

DL位---高電平時(shí)為4位數(shù)據(jù)總線,低電平時(shí)為8位總線;

N—位低電平時(shí)為單行顯示,高電平時(shí)為雙行顯示;

F—位低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)為5x10的點(diǎn)陣字符;

指令7 字符發(fā)生器RAM地址設(shè)置
指令8 DDRAM地址設(shè)置
指令9 讀忙信號(hào)和光標(biāo)地址

BF位 → 為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù)

指令10 寫數(shù)據(jù)
指令11 讀數(shù)據(jù)

2 、LCD的特點(diǎn):

(1)低壓微功耗;

(2)平板型結(jié)構(gòu);

(3)被動(dòng)顯示型(無眩光,不刺激人眼,不會(huì)引起眼睛疲勞);

(4)顯示信息量大(因?yàn)橄袼乜梢宰龅煤苄?;

(5)易于彩色化(在色譜上可以非常準(zhǔn)確的復(fù)現(xiàn));

(6)無電磁輻射(對人體安全,利于信息保密);

(7)長壽命(這種器件幾乎沒有什么劣化問題,因此壽命極長,但是液晶背光壽命有限,不過背光部分可以更換)。

第四章 設(shè)計(jì)原理分析

4.1? 設(shè)計(jì)方案的確定

本設(shè)計(jì)需要使用LCD液晶顯示屏和編碼鍵盤。故選擇靜態(tài)顯示和用編碼鍵盤。使用LCD液晶顯示屏顯示運(yùn)算結(jié)果。

主程序進(jìn)行初始化,其他的程序選擇模塊式的方式。首先對每個(gè)模塊進(jìn)行調(diào)試, 當(dāng)模塊調(diào)試成功后,逐一的加入主程序中,最后完成整個(gè)軟件部分的設(shè)計(jì)。

4.2計(jì)算器硬件方案及硬件資源分配

4.2.1 硬件資源分配

主要用到的硬件:AT89S52?? LCD液晶顯示屏? 編碼鍵盤

硬件分配:

1、P1、P3口:做為輸出口,控制LCD液晶顯示屏顯示數(shù)據(jù)的結(jié)果。

2、P2口:做為輸入口,與鍵盤連接,實(shí)現(xiàn)數(shù)據(jù)的輸入。

3、LCD液晶顯示屏顯示輸出。

4.2.2 系統(tǒng)的硬件設(shè)計(jì)

為了更好的實(shí)現(xiàn)系統(tǒng)得功能,硬件電路的設(shè)計(jì)應(yīng)該遵循以下原則:

1、優(yōu)化硬件電路

采用軟件設(shè)計(jì)與硬件設(shè)計(jì)相結(jié)合的方法;盡管采用軟件來實(shí)現(xiàn)硬件系統(tǒng)的功能時(shí),也許響應(yīng)時(shí)間會(huì)比單純使用硬件時(shí)長,而且還要占用微處理器(MCU)的時(shí)間;但是,用軟件實(shí)現(xiàn)硬件的功能可以簡化硬件結(jié)構(gòu),提高電路的可靠性。所以,在設(shè)計(jì)本系統(tǒng)得時(shí)候,在滿足可靠性和實(shí)時(shí)性的前提下,盡可能的通過軟件來實(shí)現(xiàn)硬件功能。

2、可靠性及抗干擾設(shè)計(jì)

根據(jù)可靠性設(shè)計(jì)理論,系統(tǒng)所用芯片數(shù)量越少,系統(tǒng)的平均無故障時(shí)間越長。而且,所用芯片數(shù)量越少,地址和數(shù)據(jù)總線在電路板上受干擾的可能性也就越小。因此,系統(tǒng)的設(shè)計(jì)思想是在滿足功能的情況下力爭使用較少數(shù)量的芯片。

3、靈活的功能擴(kuò)展

功能擴(kuò)展是否靈活是衡量一個(gè)系統(tǒng)優(yōu)劣的重要指標(biāo)。一次設(shè)計(jì)往往不能完全考慮到系統(tǒng)的各個(gè)方面,系統(tǒng)需要不斷完善以及進(jìn)行功能升級。進(jìn)行功能擴(kuò)展時(shí),應(yīng)該在原有設(shè)計(jì)的基礎(chǔ)上,通過修改軟件程序和少量硬件完成。對于本系統(tǒng)而言,就是要求在系統(tǒng)硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴(kuò)展。

根據(jù)第提出的系統(tǒng)設(shè)計(jì)方案,結(jié)合以上三條原則,確定了系統(tǒng)硬件的設(shè)計(jì)。計(jì)算器主要由以下一些功能模塊構(gòu)成:非編碼鍵盤模塊、LCD液晶顯示屏模塊等。

該系統(tǒng)的硬件設(shè)計(jì)采用了模塊化的設(shè)計(jì)方法。AT89S52 單片機(jī)與LCD液晶顯示屏顯示電路是整個(gè)電路的核心,它們實(shí)現(xiàn)系統(tǒng)的功能要求。

簡易計(jì)算器主要包括:鍵盤電路,顯示電路。

下圖為總體硬件結(jié)構(gòu)。(如圖4.2.2 所示為整個(gè)系統(tǒng)的原理圖

圖4.2.2 計(jì)算器原理圖

前面敘述了該系統(tǒng)的設(shè)計(jì)說明,系統(tǒng)采用了比較簡單的設(shè)計(jì)方案,所以該系統(tǒng)的硬件設(shè)計(jì)的總外圍電路不會(huì)產(chǎn)生過多的干擾。在下面的闡述中,對系統(tǒng)的外圍電路分別予以介紹。鍵盤部分采用編碼鍵盤,顯示部分采用LCD液晶顯示屏完全能夠很好的實(shí)現(xiàn)顯示方面的要求。

4.2.3 鍵盤電路的設(shè)計(jì)

鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20個(gè)以上)和專用驅(qū)動(dòng)芯片的組合,當(dāng)按下某個(gè)按鍵時(shí),它能夠處理按鍵抖動(dòng)、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預(yù)。通用計(jì)算機(jī)使用的標(biāo)準(zhǔn)鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片8279或串行接口芯片HD7279均可以組成編碼鍵盤,同時(shí)還可以兼顧數(shù)碼管的顯示驅(qū)動(dòng),其相關(guān)的接口電路和接口軟件均可在芯片資料中得到。當(dāng)系統(tǒng)功能比較復(fù)雜,按鍵數(shù)量很多時(shí),采用編碼鍵盤可以簡化軟件設(shè)計(jì)。非編碼鍵盤成本低廉。

從成本角度出發(fā),本設(shè)計(jì)選用的是非編碼鍵盤。如圖4.2.3

4.2.4 顯示電路的設(shè)計(jì)

當(dāng)系統(tǒng)需要顯示少量數(shù)據(jù)時(shí),采用LCD液晶顯示屏進(jìn)行顯示是一種經(jīng)濟(jì)實(shí)用的方法。P0口作為液晶顯示的數(shù)據(jù)端口,P3.5-P3.7口作為其控制端口,控制LCD液晶顯示屏顯示輸出數(shù)據(jù)。

最終電路如圖4.2.4所示:

第五章 計(jì)算器的軟件設(shè)計(jì)

5.1計(jì)算器的軟件規(guī)劃

簡易計(jì)算器的程序主要包括以下功能模塊:

1、定時(shí)查鍵模塊,分為讀鍵程序、判鍵程序段、運(yùn)算操作子程序等部分;

2、基于LCD液晶顯示屏的顯示模塊;

3、主模塊,為系統(tǒng)的初始化。

5.2 鍵盤掃描的程序設(shè)計(jì)

鍵盤掃描子程序,首先讀出P1的低四位,然后讀出P1口的高四位。然后鍵值并顯示緩存。然后將鍵如的值轉(zhuǎn)換為ASCII碼然后就可以軟件來設(shè)置硬件按鍵各個(gè)鍵代表的內(nèi)容。

讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進(jìn)行兩次讀鍵。第一次所有行線均輸出低電平,從所有讀入鍵盤信息(列信息);第二次所有列線均輸出低電平,從所有行線讀入鍵盤信息(行信息)。

數(shù)字鍵按下則將相應(yīng)的數(shù)字送入緩存區(qū),功能鍵按下則執(zhí)行相應(yīng)的程序。

5.3 顯示模塊的程序設(shè)計(jì)

顯示模塊程序首先要對顯示模塊進(jìn)行初始化;然后控制光標(biāo)的位置;定義液晶顯示的控制端口,用SBIT指令完成;然后設(shè)置清屏、關(guān)閉顯示、歸位、開顯示、顯示位置的首地址等等。

顯示模塊的流程圖如圖5.3所示:

  • 有需要資料的可了解一下.docx

相關(guān)推薦

電子產(chǎn)業(yè)圖譜