2021年基于單片機簡單計算器設(shè)計畢業(yè)設(shè)計_第1頁
2021年基于單片機簡單計算器設(shè)計畢業(yè)設(shè)計_第2頁
2021年基于單片機簡單計算器設(shè)計畢業(yè)設(shè)計_第3頁
2021年基于單片機簡單計算器設(shè)計畢業(yè)設(shè)計_第4頁
2021年基于單片機簡單計算器設(shè)計畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機簡單計算器設(shè)計畢業(yè)設(shè)計目目錄第一部分設(shè)計任務(wù)與調(diào)研…………3第二部分設(shè)計說明……………………4第三部分設(shè)計成果……………………11第四部分結(jié)束語………………………15第五部分致謝…………16第六部分…………………17第一部分設(shè)計任務(wù)與調(diào)研近幾年單片機技術(shù)的發(fā)展很快,其中電子產(chǎn)品的更新速度迅猛。計算器是日常生活中比較的常見的電子產(chǎn)品之一。科技的進步告別了以前復(fù)雜的模擬電路,一塊幾厘米平方的單片機可以省去很多繁瑣的電路?,F(xiàn)在應(yīng)用較廣泛的是科學計算器,與我們?nèi)粘K玫暮唵斡嬎闫饔休^大差別,除了能進行加減乘除,科學計算器還可以進行正數(shù)的四則運算和乘方、開方運算,具有指數(shù)、對數(shù)、三角函數(shù)、反三角函數(shù)及存儲等計算功能。計算器的未來是小型化和輕便化,現(xiàn)在市面上出現(xiàn)的使用太陽能電池的計算器,使用ASIC設(shè)計的計算器,如使用純軟件實現(xiàn)的計算器等,未來的智能化計算器將是我們的發(fā)展方向,更希望成為應(yīng)用廣泛的計算工具。主要任務(wù)本設(shè)計是以AT___S52單片機為核心的計算器模擬系統(tǒng)設(shè)計,輸入采用4X6矩陣鍵盤,可以進行加、減、乘、除9位帶符號數(shù)字運算,并在LCD1602上顯示結(jié)果。設(shè)計思路本設(shè)計是基于AT___C51單片機的簡單運用,設(shè)計一個簡單的計算器,利用keil進行編程調(diào)試,然后利用Protel99se進行仿真,能夠?qū)崿F(xiàn)加,減,乘,除的簡單運算。第二部分設(shè)計說明2.1硬件電路2.1.1硬件電路結(jié)構(gòu)框圖1AT___C51介紹AT___C51單片機是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個尺寸有限的集成電路芯片上。如果按功能劃分,它由如下功能部件組成,即微處理器、數(shù)據(jù)存儲器、程序存儲器、并行I/O口、串行口、定時器/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器。他們都是通過片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上___芯片的傳統(tǒng)結(jié)構(gòu)模式。但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。1)微處理器該單片機中有一個8位的微處理器,與通用的微處理器基本相同,同樣包括了運算器和控制器兩部分,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進行位變量的處理。2)數(shù)據(jù)存儲器片內(nèi)為18個字節(jié),2片外最多可外擴至64k字節(jié),用來存儲程序在運行期間的工作變量、運算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標志位等,所以稱為數(shù)據(jù)存儲器。AT___C5112222120XX181716151413121110987654340393837363534333231302928272625242___1.2P1.___1.4P1.5P1.6P1.7RST/VPD(RXD)P3.0(TXD)P3.1(INTO)P3.2(INT1)P3.3(T0)P3.4(T1)P3.5(WR)P3.6(RD)P3.7XTAL2XTAL1VSSVCCP0.0(AD0)P0.1(AD1)P0.6(AD6)P0.5(AD5)P0.4(AD4)P0.3(AD3)P0.2(AD2)P0.7(AD7)P2.0(A8)P2.1(A9)P2.2(A10)P2.3(A11)P2.4(A12)P2.5(A13)P2.6(A14)P2.7(A15)PSENALE/PROGEA/VPPP1.0P1.1圖2—2AT—C51芯片引腳圖圖2—1硬件電路結(jié)構(gòu)框圖按鍵輸入模塊AT___C51單片機顯示模塊3)程序存儲器由于受集成度限制,片內(nèi)只讀存儲器一般容量較小,如果片內(nèi)的只讀存儲器的容量不夠,則需要擴展片外的只讀存儲器,片外最多可外擴至64k字節(jié)。4)中斷系統(tǒng)具有5個中斷源,2個中斷優(yōu)先權(quán)5)定時器/計數(shù)器片內(nèi)有2個16位的定時器/計數(shù)器,具有四種工作方式6)串行口1個全雙工的串行口,具有四種工作方式??捎脕磉M行串行通訊,擴展并行I/O口,甚至與多個單片機相連接構(gòu)成多機系統(tǒng),從而使單片機的功能更強且應(yīng)用更廣。7)I/O口4個并行8位I/O口8)特殊功能寄存器共有21個,用于對片內(nèi)的各功能的部件進行管理、控制、監(jiān)視。實際上是一些控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。由上可見,ATC51單片機的硬件結(jié)構(gòu)具有功能部件種類全,功能強等特點。特別值得一提的是該單片機CPU中的微處理器實際上是一個完整的1位微計算機。這個1位微計算機有自己的CPU、位寄存器、I/O口和指令集。其在開關(guān)決策、邏輯電路仿真、過程控制方面非常有效;而8位機在數(shù)據(jù)采集、運算處理方面有明顯的長處。MCS-51單片機中8位機和1位機的硬件資源復(fù)合在一起,二者相輔相成,它是單片機技術(shù)上的一個突破,也是MCS-51單片機在設(shè)計上的精美之處。引腳說明MCS-51是標準的40引腳雙列直插式集成電路芯片,引腳分布可參照單片機引腳。P0.0~P0.7P0口8位雙向線(在引腳的32~39號端子);P1.0~P1.7P1口8位雙向線(在引腳的1~8號端子);P2.0~P2.7P2口8位雙向線(在引腳的21~28號端子);P3.0~P3.7P3口8位雙向線(在引腳的10~17號端子)。P0口有三個功能:(1)外部擴展存儲器時,當作數(shù)據(jù)總線(如圖中的D0~D7為數(shù)據(jù)總線接口)(2)外部擴展存儲器時,當作地址總線(如圖中的A0~A7為地址總線接口) (3)不擴展時,可作一般的I/O口使用,但內(nèi)部無上拉電阻,作為輸入輸出時應(yīng)在外部接上拉電阻。((2)P1口功能P1口只作I/O口使用,其內(nèi)部有上拉電阻。(3)P2口功能1、擴展外部存儲器時,當作地址總線使用;2、作一般I/O口使用,其內(nèi)部有上拉電阻。(4)P3口功能1、除了作為I/O口使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來設(shè)置。2、當作為輸入時,上拉電阻將其電位拉高,若輸入為低電平則可提供電流源,所以如果P0口作為輸入時,或處在高阻抗狀態(tài),只有外接一個上拉電阻才能有效。(5)ALE/PROG地址鎖存控制—在系統(tǒng)擴展時,ALE用于控制把P0口的輸出低8位地址送鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。PROG為編程脈沖的輸入端,在AT___C51單片機內(nèi)部有一個4kB的程序存儲器(ROM),ROM的作用就是用來存放用戶需要執(zhí)行的程序。我們?nèi)绾伟丫帉懞玫某绦虼嫒脒@個ROM中的呢?實際上是通過編程脈沖輸入采能寫進去,而這個脈沖的輸入端口就是PROG。(6)PSEN外部程序存儲器讀選通___在讀外部ROM時PSEN低電平有效,以實現(xiàn)外部ROM單元的讀操作:1、內(nèi)部ROM讀取時,PSEN不動作;2、外部ROM讀取時,在每個機器周期會動作兩次;3、外部RAM讀取時,兩個PSEN脈沖被跳過不會輸出;4、外接ROM時,與ROM的OE腳相接。(7)EA/VPP訪問程序存儲器控制—1、接高電平時:CPU讀取內(nèi)部程序存儲器(ROM)2、接低電平時:CPU讀取外部程序存儲器(ROM)。8031單片機內(nèi)部是沒有ROM的,因此在應(yīng)用8031單片機時,這個腳時一直接低電平的。(8)RST復(fù)位___當輸入的___連續(xù)2個機器周期以上高電平時即為有效,用以完成單片機的復(fù)位初始化操作,當復(fù)位后程序計數(shù)器PC=0000H,即復(fù)位后將從程序存儲器的0000H單元讀取第一條指令碼。(9)XTAL1和XTAL2外接晶振引腳。當使用芯片內(nèi)部時鐘時,此二引腳用于外接石英晶體和微調(diào)電容;當使用外部時鐘時,用于接外部時鐘脈沖___。(10)VCC電源+5V輸入(11)GND接地42.1.4按鍵模塊設(shè)計矩陣式按鍵輸入模塊,其特點是:電路和軟件稍復(fù)雜,但相比之下,當鍵數(shù)越多時,越節(jié)約I/O口,比較節(jié)省資源鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20個以上)和專用驅(qū)動芯片的組合,當按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預(yù)。通用計算機使用的標準鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片8279或串行接口芯片HD7279均可以組成編碼鍵盤,同時還可以兼顧數(shù)碼管的顯示驅(qū)動,其相關(guān)的接口電路和接口軟件均可在芯片資料中得到。當系統(tǒng)功能比較復(fù)雜,按鍵數(shù)量很多時,采用編碼鍵盤可以簡化軟件設(shè)計。但大多數(shù)智能儀器和電子產(chǎn)品的按鍵數(shù)目都不太多(20個以內(nèi)),為了降低成本和簡化電路通常采用非編碼鍵盤。非編碼鍵盤的接口電路有設(shè)計者根據(jù)需要自行決定,按鍵信息通過接口軟件來獲取52.1.5顯示模塊設(shè)計本設(shè)計采用的是LCD1602液晶顯示屏。模塊內(nèi)部自帶字符發(fā)生存儲器(CGROM),字符有:—數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是(41H),顯示時模塊把代碼41H發(fā)給液晶模塊,我們就能在液晶上看到字母“A”。1602液晶模塊內(nèi)部的控制器共有11條控制指令,豐富的指令可以完成液晶的時序控制、工作方式式設(shè)置和數(shù)據(jù)顯示等圖2—3編碼鍵盤電路LCD的特點:(1)低壓微功耗; (2)平板型結(jié)構(gòu);(3)被動顯示型(無眩光,不___人眼,不會引起眼睛疲勞); (4)顯示信息量大(因為像素可以做得很?。?; (5)易于彩色化(在色譜上可以非常準確的復(fù)現(xiàn)); (6)無電磁輻射(對人體安全,利于信息保密); (7)長壽命(這種器件幾乎沒有什么劣化問題,因此壽命極長,但是液晶背光壽命有限,不過背光部分可以更換)22.2軟件電路12.2.1鍵盤掃描的程序設(shè)計鍵盤掃描子程序,首先讀出P1的低四位,然后讀出P1口的高四位。然后鍵值并顯示緩存。然后將鍵如的值轉(zhuǎn)換為ASCII碼然后就可以軟件來設(shè)置硬件按鍵各個鍵代表的內(nèi)容。讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進行兩次讀鍵。第一次所有行線均輸出低電平,從所有讀入鍵盤信息(列信息);第二次所有列線均輸出低電平,從所有行線讀入鍵盤信息(行信息)。數(shù)字鍵按下則將相應(yīng)的數(shù)字送入緩存區(qū),功能鍵按下則執(zhí)行相應(yīng)的程序22.2.2顯示模塊的程序設(shè)計顯示模塊程序首先要對顯示模塊進行初始化;然后控制光標的圖2—4LCD液晶顯示屏位置;定義液晶顯示的控制端口,用SBIT指令完成;然后設(shè)置清屏、關(guān)閉顯示、歸位、開顯示、顯示位置的首地址等等。2.2.3程序運行流程圖2.2.4加減乘除子運算流程圖圖2—5程序運行流程圖否是圖2—5加減乘除子運算流程圖矩陣賦值"+"==num"*"==num"/"==num"="==numa=0;b=0復(fù)位i=0firstflag==0?(輸入數(shù)值的是第一個數(shù)據(jù)?)把第一個數(shù)據(jù)賦值給a,并把標志位置1,到下一個數(shù)據(jù)輸入時可以跳轉(zhuǎn)賦值給bsscanf(temp,"%d",&a)否賦值完成后把緩沖區(qū)清零,防止下次輸入影響結(jié)果sscanf(temp,"%d",&b);for(s=0;s第三部分設(shè)計成果仿真圖程序#include//包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義#include#defineKeyPortP1#defineDataPortP0//定義數(shù)據(jù)端口程序中遇到DataPort則用P0替換—itLATCH1=P2/;//定義鎖存使能端口段鎖存itLATCH2=P2八3;//位鎖存unsignedcharcodedofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//顯示段碼值0~9//unsignedcharcodedofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分別對應(yīng)相應(yīng)的數(shù)碼管點亮,即位碼unsignedcharTempData[8];//存儲顯示值的全局變量externunsignedcharTempData[8];//存儲顯示值的全局變量externunsignedcharcodedofly_DuanMa[10];//顯示函數(shù),用于動態(tài)掃描數(shù)碼管輸入?yún)?shù)FirstBit表示需要顯示的第一位,如賦值2表示從第三個數(shù)碼管開始顯示如輸入0表示從第一個顯示。Num表示需要顯示的位數(shù),如需要顯示99兩位數(shù)值則該值輸入2//按鍵掃描函數(shù),返回掃描鍵值//unsignedcharKeyScan(void);//鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法//按鍵值處理函數(shù),返回掃鍵值//unsignedcharKeyPro(void);voidDisplay(unsignedcharFirstBit,unsignedcharNum);//定時器初始化子程序//voidInit_Timer0(void);//uS延時函數(shù),含有輸入?yún)?shù)unsignedchart,無返回值unsignedchar是定義無符號字符變量,其值的范圍是0?255這里使用晶振12M,精確延時請使用匯編,大致延時長度如下T=tx2+5uS//voidDelayUs2x(unsignedchart);//mS延時函數(shù),含有輸入?yún)?shù)unsignedchart,無返回值unsignedchar是定義無符號字符變量,其值的范圍是0~255這里使用晶振12M,精確延時請使用匯編//voidDelayMs(unsignedchart);//主程序//in(){unsignedcharnum,i,sign;//數(shù)值unsignedchartemp[8];//最大輸入8個bitfirstflag;inta=0,b=0;unsignedchars;Init_Timer0();//初始化定時器0while(1)//主循環(huán){num=KeyPro();//掃描鍵盤if(num!=0xff)//如果掃描是按鍵有效值則進行處理{if(i==0)//輸入是第一個字符的時候需要把改行清空,方便觀看{for(s=0;sfor(s=0;sNum表示需要顯示的位數(shù),如需要顯示99兩位數(shù)值則該值輸入2//voidDisplay(unsignedcharFirstBit,unsignedcharNum){staticunsignedchari=0;DataPort=0;//清空數(shù)據(jù),防止有交替重影LATCH1=1;//段鎖存LATCH1=0;DataPort=dofly_WeiMa[i+FirstBit];//取位碼LATCH2=1;//位鎖存LATCH2=0;DataPort=TempData[i];//取顯示數(shù)據(jù),段碼LATCH1=1;//段鎖存LATCH1=0;i++;if(i==Num)i=0;}//定時器初始化子程序//voidInit_Timer0(void){TMOD|=0x01;//使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響//TH0=0x00;//給定初值//TL0=0x00;EA=1;//總中斷打開ET0=1;//定時器中斷打開TR0=1;//定時器開關(guān)打開}//定時器中斷子程序//voidTimer0_isr(void)interrupt1{TH0=(65536-2000)/256;//重新賦值2msTL0=(65536-2000)%256;Display(0,8);}//uS延時函數(shù),含有輸入?yún)?shù)unsignedchart,無返回值unsignedchar是定義無符號字符變量,其值的范圍是0?255這里使用晶振12M,精確延時請使用匯編,大致延時長度如下T=tx2+5uS//voidDelayUs2x(unsignedchart){while(--t);}//mS延時函數(shù),含有輸入?yún)?shù)unsignedchart,無返回值unsignedchar是定義無符號字符變量,其值的范圍是0?255這里使用晶振12M,精確延時請使用匯編//voidDelayMs(unsignedchart){while(t--){//大致延時1mSDelayUs2x(245);DelayUs2x(245);}}第四部分結(jié)束語通過此次畢業(yè)設(shè)計,讓我進一步了解了對單片機的編程、電路的分析以及系統(tǒng)控

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論