基于51單片機的簡易計算器.(精選)_第1頁
基于51單片機的簡易計算器.(精選)_第2頁
基于51單片機的簡易計算器.(精選)_第3頁
基于51單片機的簡易計算器.(精選)_第4頁
基于51單片機的簡易計算器.(精選)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、摘要目錄摘要第一章緒論1.1 課題簡介1.2 設(shè)計目的1.3 簡易計算器系統(tǒng)簡介 第二章總體電路設(shè)計第三章主要模塊介紹3.1AT89C513.2 LED數(shù)碼管的結(jié)構(gòu)及工作原理3.3 矩陣按鍵3.4 蜂鳴器模塊第四章計算器系統(tǒng)設(shè)計4.1 計算器硬件4.2 系統(tǒng)框圖4.3 程序設(shè)計結(jié)語參考文獻(xiàn)word.摘要課程設(shè)計教學(xué)環(huán)節(jié)是為了學(xué)生能夠更好地鞏固和實踐所學(xué)專業(yè)知識而設(shè)置的,在本次課程設(shè)計中,我以 MCS-51系列單片微型計算機及其應(yīng)用課程中所學(xué)知識為 基礎(chǔ),設(shè)計了簡易計算器。本系統(tǒng)以MCS-51系列中的AT89C51單片機為核心,能夠?qū)崿F(xiàn)六位數(shù)的四則運算。該系統(tǒng)通過檢測矩陣鍵盤掃描,判斷是否按鍵,

2、經(jīng)數(shù)據(jù)轉(zhuǎn)換 把數(shù)值送入數(shù)碼管顯示。本系統(tǒng)的設(shè)計說明重點介紹了如下幾方面的內(nèi)容:1)基于單片機簡易計算器的基本功能,同時對矩陣鍵盤及LED數(shù)碼管顯示原理進(jìn)行了簡單的闡述;2)介紹了系統(tǒng)的總體設(shè)計、給出了系統(tǒng)的整體流程框圖,并對其進(jìn)行了功能模 塊劃分及所采用的元器件進(jìn)行了詳細(xì)說明;3)對系統(tǒng)各功能模塊的軟、硬件實現(xiàn)進(jìn)行了設(shè)計說明。關(guān)鍵詞:MCS-51單片機;計算器;加減乘除第一章緒論1.1 課題簡介單片機由于其微小的體積和極低的成本,廣泛的應(yīng)用于家用電器、工業(yè)控制等領(lǐng)域中。在工業(yè)生產(chǎn)中。單片機微型計算機是微型計算機的一個重要分支,也是頗具生 命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領(lǐng)

3、域,故又稱為微控制 器。本系統(tǒng)就是充分利用了 51芯片的I/O弓I腳。系統(tǒng)統(tǒng)采用 MSC-51系列單片機 AT89C51為中心器件來設(shè)計計算器控制器。1.2 設(shè)計目的通過本次工程實踐,運用 MCS-51系列單片微型計算機及其應(yīng)用所學(xué)知識及 查閱相關(guān)資料,完成簡易計算器的設(shè)計,達(dá)到理論知識與實踐更好結(jié)合、提高綜合運 用所學(xué)知識和設(shè)計能力的目的。通過本次設(shè)計訓(xùn)練,可以使我們在基本思路和基本方法上對基于MCS-51單片機的嵌入式系統(tǒng)設(shè)計有一個比較感性的認(rèn)識,并具備一定程度的設(shè)計能力。1.3 簡易計算器系統(tǒng)簡介本計算器是以MCS-51系列AT89C51單片機為核心構(gòu)成的簡易計算器系統(tǒng)。該系 統(tǒng)通過單片

4、機控制, 實現(xiàn)對4*4鍵盤掃描進(jìn)行實時的按鍵檢測,并把檢測數(shù)據(jù)存儲下來。整個計算器系統(tǒng)的工作過程為:首先存儲單元初始化,顯示初始值和鍵盤掃描, 判斷按鍵位置,查表得出按鍵值,單片機則對數(shù)據(jù)進(jìn)行儲存與相應(yīng)處理轉(zhuǎn)換,之后送 入LED數(shù)碼管顯示。整個系統(tǒng)可分為三個主要功能模塊:功能模塊一,實時鍵盤掃描;功能模塊二,數(shù)據(jù)轉(zhuǎn)換為了數(shù)碼管顯示;功能模塊三,LED數(shù)碼管顯示。第二章總體電路設(shè)計本次設(shè)計采用AT89C5憚片機作為控制芯片,采用單片機上的按鍵來模仿輸入信 號。通過鍵盤掃描將輸入按鍵信號讀入單片機,根據(jù)按鍵的號碼進(jìn)行不同的顯示,并 通過蜂鳴器發(fā)出信號。顯示模塊則利用六位八段數(shù)碼管,進(jìn)行按鍵號碼的顯

5、示。本系統(tǒng)功能由硬件和軟件兩大部分協(xié)調(diào)完成,硬件部分主要完成按鍵輸入的模擬、蜂鳴器的驅(qū)動、按鍵號碼的顯示等功能;而軟件主要完成對按鍵輸入的掃描、中 斷對數(shù)據(jù)初始化及數(shù)碼顯示管的顯示控制等功能。第三章主要模塊介紹3.1 AT89C51 簡介AT89C51 是一種帶 4K 字節(jié) FLASH 存儲器(FPEROHMFlash Programmable andErasable Read Only Memory )的低電壓、高性能 CMOS盼微處理器,俗稱單片機。AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用 ATMELW密度

6、非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMELI勺AT89C51是一種高效微控制器,AT89C51是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。0 12 3 4 5 6 7EHrcmE 內(nèi)瓦生3 4 5s? HHKKRD n-T H圖1 AT89C5偌片內(nèi)部弓I腳圖3.2 LED數(shù)碼管的結(jié)構(gòu)及工作原理LED數(shù)碼管(LED Segment Displays )是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電

7、極。LED數(shù)碼管常用段數(shù)一般為 7段有的另加一個小數(shù)點,還有一種是類似于3位“+1”型。位數(shù)有半位,1, 2, 3, 4, 5, 6, 8, 10位等等.,LED數(shù)碼管根據(jù)LED的接法不同 分為共陰和共陽兩類,了解 LED的這些特性,對編程是很重要的,因為不同類型的數(shù) 碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖 4.5是共陰和共陽極 數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色 有紅,綠,藍(lán),黃等幾種。LED數(shù)碼管廣泛用于儀表,時鐘,車站,家電等場合。選LED數(shù)碼管內(nèi)部引用時要注意產(chǎn)品尺寸顏色,功耗,亮度,波長等。下面將介紹常用腳圖。圖2這是一個八段

8、兩位帶小數(shù)點10引腳的LED數(shù)碼管每一筆劃都是對應(yīng)一個字母表示DP是小數(shù)點.數(shù)碼管分為共陽極的 LED數(shù)碼管、共陰極的LED數(shù)碼管兩種。下圖例舉的是共陽極的LED數(shù)碼管,共陽就是 8段的顯示字碼共用一個電源的正。圖3 LED數(shù)碼管原理圖LED數(shù)碼管原理圖示意如圖 3:從上圖可以看出,要是數(shù)碼管顯示數(shù)字,有兩個條件:1、是要在 VT端(3/8腳)加正電源;2、要使(a,b,c,d,e,f,g,dp) 端接低電平或“0"電平。這樣才能顯 示的。共陽極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理圖:圖4共陽極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理圖共陰極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理圖:QVTVT 林* k $ 電 區(qū)I&

9、#39;名助圖5共陰極LED數(shù)碼管的內(nèi)部結(jié)構(gòu)原理圖出示 字符碼 gfedc. ba六透制0011 二11 1*13F1o 100 10I00621010J_15B3100"l '1 -14F4i 1I00106651011【I16D6i1 11 -11 I017D70000t107R1 J11 J11 _17F9i,101'i1116FA1110,i 11177b1 111 11i 0 _07Cc0J-110 10 _139di011105EE1 JI1 J10 J0_179F1,110Q0171共陰極數(shù)碼管顯示字段表1顯示數(shù)字對應(yīng)的二進(jìn)制電平信號LED數(shù)碼管要正常顯

10、示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管的驅(qū)動方式的不同, 可以分為靜態(tài)式和動態(tài)式兩類。靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O 口進(jìn)行驅(qū)動,或者使用如 BCD碼二-十進(jìn)位轉(zhuǎn)換器進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O 口多。3.3 矩陣按鍵鍵盤是單片機系統(tǒng)中最常用的人機對話輸入設(shè)備,用戶通過鍵盤向單片機輸入數(shù)據(jù)或指令。鍵盤控制程序需完成的任務(wù)有:監(jiān)測是否有鍵按下,有鍵按下時,在無硬 件去抖的動電路時,應(yīng)用軟件延時方法消除按鍵抖動影響;當(dāng)有多個鍵同時按下時, 只處理一個按鍵

11、,不管一次按鍵持續(xù)多長時間,僅執(zhí)行一次按鍵功能程序。矩陣按鍵掃描程序是一種節(jié)省IO 口的方法,按鍵數(shù)目越多節(jié)省IO 口就越可觀,思路:先判斷某一列(行)是否有按鍵按下,再判斷該行(列)是那一只鍵按下。但 是,在程序的寫法上,采用了最簡單的方法,使得程序效率最高。本程序中,如果檢 測到某鍵按下了,就不再檢測其它的按鍵,這完全能滿足絕大多數(shù)需要,又能節(jié)省大 量的CPU時間。本鍵盤掃描程序的優(yōu)點在于: 不用專門的按鍵延時程序, 提高了 CPU率,也不 用中斷來掃描鍵盤,節(jié)省了硬件資源。另外,本鍵盤掃描程序,每次掃描占用CPU寸最短,不論有鍵按下或者無鍵按下都可以在很短的時間完成一次掃描。圖6矩陣鍵盤

12、電路圖3.4 蜂鳴器模塊單片機的P0.7經(jīng)三極管驅(qū)動揚聲器,當(dāng)有按鍵輸入時,單片機P0.7輸出低電平,與此引腳相連的 PNFH三極管基電極也為低電平,三極管導(dǎo)通,壓電蜂鳴器兩端獲得+5V電壓而鳴叫;當(dāng) P0.7輸出高電平時,三極管截止,蜂鳴器停止發(fā)聲。蜂鳴器模塊如圖3.9所示:圖7蜂鳴器模塊電路原理圖第四章 計算器系統(tǒng)設(shè)計4.1計算器硬件AT89C51單片機一片,4*4鍵盤一個,6位共陽極的八段數(shù)碼管一個,連線和電 阻和開關(guān)若干。51單片機的P2 口作鍵盤口,其中 P2.4-P2.7為鍵盤掃描輸出線, P2.0-P2.3為鍵盤掃描輸入線。鍵盤由 4*4共16個按鍵組成,10個數(shù)字鍵(由0-9

13、組成)5個運算符號(加減乘除等于)組成, 1個清除鍵(作用相當(dāng)于整體復(fù)位)。6 個數(shù)碼管用于顯示當(dāng)前數(shù)值的十萬,萬,千,百,十,個, P1 口接6個數(shù)碼管的八 段,P0 口分別接6個數(shù)碼管的公共端,P1 口輸出數(shù)碼管的字形碼,P0 口輸出數(shù)碼管的字位碼。word.摘要word.4.2系統(tǒng)框圖:1.主程序流程圖圖8主程序流程圖2.鍵盤掃描流程圖圖9鍵盤掃描流程圖4.3程序設(shè)計 #include<reg51.h>#define uchar unsigned char#define uint unsigned int sbit dula=P2A6;sbit wela=P2A7; sbit

14、 beep=P2A3;uchar temp,key;uchar fun;long int num1,num2,res;uchar aa,dis;uchar codetable=0x00,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x 6f,0x77,0x7G0x39,0x5e,0x79,0x71;uchar code weixuan"0xdf,0xef,0x億0xfb,0xfd,0xfe;void delay(unsigned char i)uchar j,k;for(j=i;j>0;j-)for(k=125;k>0;k-)

15、;void bee()beep=0;delay(255);delay(255);beep=1;key_scan()P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(10);if(temp!=0xf0)temp=P3;switch(temp)case 0xee:key=0;break;case 0xde:key=1;break;case 0xbe:key=2;break;case 0x7e:key=3;break;while(temp!=0xf0)temp=P3;temp=temp&0xf0;P3=0xfd;temp=P3;te

16、mp=temp&0xf0; if(temp!=0xf0) delay(10);if(temp!=0xf0)temp=P3;switch(temp)case 0xed: key=4; break;case 0xdd: key=5; break;case 0xbd: key=6; break;case 0x7d: key=7; break;while(temp!=0xf0)temp=P3;temp=temp&0xf0;P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(10);if(temp!=0xf0)temp=P3;sw

17、itch(temp)case 0xeb: key=8; break;case 0xdb: key=9; break;case 0xbb: key=10;break;case 0x7b:key=11;break;while(temp!=0xf0)temp=P3;temp=temp&0xf0;P3=0x億temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(10);if(temp!=0xf0)temp=P3;switch(temp)case 0xe7:key=12;break;case 0xd7:key=13;break;case 0xb7: key

18、=14; break;case 0x77: key=15; break;while(temp!=0xf0)temp=P3;temp=temp&0xf0; void Init()num1=0;num2=0;wela=1;P0=0xdf;wela=0;dula=1;P0=table1;dula=0;key=16;aa=0;dis=0;res=0;void dis_play(long int nm) uchar a1,a6; long int shu; shu=nm;if(shu=0)wela=1;P0=0xdf;wela=0;dula=1;P0=table1;dula=0;elsefor(

19、a6=0;a6<6;a6+)a1=shu%10;if(shu!=0)a1=a1+1;shu=shu/10;P0=tablea1;dula=1;dula=0;P0=weixuana6;wela=1;wela=0;delay(5);void display。switch (dis)case 0:dis_play(num1);break;case 1:dis_play(num2); break;case 2:dis_play(res); break;void shanshuo()wela=1;P0=0xff;wela=0;delay(255);void check()if(key!=16)be

20、e();if(key>=10) switch (key)case 10:Init();break; CEcase 11:switch (fun)case 0:res=num1+num2,dis=2;break;case 1:res=num1-num2,dis=2;break;case 2:res=num1*num2,dis=2;break;case 3:res=num1/num2,dis=2;break; ;break; / =case 12:fun=0,aa=1,shanshuo();break; / +case 13:fun=1,aa=1,shanshuo();break; / -case 14:fun=2,aa=1,shanshuo();break; / * case 15:fun=3,aa=1,shanshuo();break; / /elseswitch (aa)case 0:num1=num1*10+key;break;case 1:dis=1;num2=num2*10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論