版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)技術(shù)及其應(yīng)用課程設(shè)計(jì)報(bào)告專業(yè):通信工程班級(jí):09312班姓名:某某某學(xué)號(hào):學(xué)031069指導(dǎo)教師:二0一二年六月十八日1設(shè)計(jì)目的12設(shè)計(jì)題目描述與要求13設(shè)計(jì)過程24硬件總體方案及說明75軟件總體方案及設(shè)計(jì)流程116調(diào)試與仿真167心得體會(huì)188指導(dǎo)老師意見199參考文獻(xiàn)19附錄19附錄二31基于51單片機(jī)的數(shù)字計(jì)算器的設(shè)計(jì)1 設(shè)計(jì)目的簡易計(jì)算器的原理與設(shè)計(jì)是單片機(jī)課程設(shè)計(jì)課題中的一個(gè)。在完成理論學(xué)習(xí)和必要的實(shí)驗(yàn)后,我們掌握了單片機(jī)的基本原理以及編程和各種基本功能的應(yīng)用,但對(duì)單片機(jī)的硬件實(shí)際應(yīng)用和單片機(jī)完整程序設(shè)計(jì)還不清楚,實(shí)際動(dòng)手能力不夠,因此對(duì)該課程進(jìn)行一次課程設(shè)計(jì)是有必要的。單片機(jī)
2、課程設(shè)計(jì)既鞏固了課本學(xué)到的理論,還學(xué)到了單片機(jī)硬件電路和程序設(shè)計(jì),簡易計(jì)算器課程設(shè)計(jì)通過自己動(dòng)手用計(jì)算機(jī)電路設(shè)計(jì)軟件,編寫和調(diào)試,最后仿真,來加深對(duì)單片機(jī)的認(rèn)識(shí),充分發(fā)揮我們的個(gè)人創(chuàng)新和動(dòng)手能力,并提高我們對(duì)單片機(jī)的興趣,同時(shí)學(xué)習(xí)查閱資料、參考資料的方法。本設(shè)計(jì)是基于51系列的單片機(jī)進(jìn)行的簡易計(jì)算器系統(tǒng)設(shè)計(jì),可以完成計(jì)算器的鍵盤輸入,進(jìn)行加、減、乘、除3位無符號(hào)數(shù)字的簡單四則運(yùn)算,并在LED上相應(yīng)的顯示結(jié)果。設(shè)計(jì)過程在硬件與軟件方面進(jìn)行同步設(shè)計(jì)。硬件選擇AT89C51單片機(jī)和741s164,輸入用4X4矩陣鍵盤。顯示用5位7段共陰極LED靜態(tài)顯示。軟件從分析計(jì)算器功能、流程圖設(shè)計(jì),再到程序的編
3、寫進(jìn)行系統(tǒng)設(shè)計(jì)。選用編譯效率最高的Kei1軟件進(jìn)行編程,并用proteus仿真。2 設(shè)計(jì)題目描述與要求基于AT89C51數(shù)字計(jì)算器設(shè)計(jì)的基本要求與基本思路:(1)擴(kuò)展4*4鍵盤,其中10個(gè)數(shù)字,5個(gè)功能鍵,1個(gè)清零2)使用五位數(shù)碼管接口電路(3)完成十進(jìn)制的四則運(yùn)算(加、減、乘、除)(4)實(shí)現(xiàn)低于三位小于255數(shù)字的連續(xù)運(yùn)算(5)使用keil軟件編寫程序(6)最后用ptoteus仿真3設(shè)計(jì)過程3.1設(shè)計(jì)思路按照2的設(shè)計(jì)要求,本課題需要使用數(shù)碼管顯示和擴(kuò)展4*4鍵盤,由于實(shí)驗(yàn)箱的硬件電路已經(jīng)固定,故選擇串行靜態(tài)顯示和用P1口擴(kuò)展4*4鍵盤,擴(kuò)展的4*4鍵盤定義十個(gè)數(shù)字鍵,六個(gè)功能鍵,使用串行靜態(tài)
4、顯示顯示運(yùn)算結(jié)果。主程序進(jìn)行初始化,采用定時(shí)器0進(jìn)行查鍵,每次按鍵后調(diào)用顯示子程序3.2單片機(jī)簡要原理在該課程設(shè)計(jì)中,主要用到一個(gè)AT89c51芯片和申接的五個(gè)74LS164芯片。作為該設(shè)計(jì)的主要部分。下面將對(duì)這兩個(gè)芯片原理及功能做已詳細(xì)介紹和說明。1.AT89C51介紹芯片AT89C51的外形結(jié)構(gòu)圖Fl . O Fl . 1 Pl . 2 Fl . 3 Fl . 4 fi. q Fl . 6 Fl . 7 MSET KMD/F3. O TKD/F3. 1 INT0/F3. 2T0/F3. 4 T1/f 3. 5 TO/F3. 6 FS/F5. 7XTAL2 KTAL1 FDTF 中品占LEE
5、rcELLLr-rcEr-LL0 12 辛 4 5G7H90 125&丁aL- L- 1- L .1 2-o 9 B F G 54S21o9sre54321 433353 3 33322 2-22223 ir c«c FO. O/ATJO FO.17AB1Zl FO. 2/ADZl PO. 3/AB3 尸。,4/AP4 FO.57AB3 FCi. g/ATiS.J Fp. 7/ADT Zl EA/Vpp Zl JLE/FFUOG Zl PSEN F2. t/aS1 5P2P e/AB1 4 f之一 s/aih a P2. 4/ATJ1 2 PS.息/A。,1 F2. 2/AD
6、1 0 P2. 1/AB3 F2,。/HL號(hào)圖3-2-1芯片AT89C51的外形結(jié)構(gòu)和引腳圖如3-2-1所示。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalshProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。A主要特性:8051CPU與MCS
7、-51兼容4K字節(jié)可編程FLASH存儲(chǔ)器(壽命:1000寫/擦循環(huán))全靜態(tài)工作:0Hz-24KHz三級(jí)程序存儲(chǔ)器保密鎖定128*8位內(nèi)部RAM32條可編程I/O線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路B管腳說明:VCC:供電電壓(圖中未畫出)GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1
8、口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用
9、內(nèi)部上拉優(yōu)勢,當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時(shí)器0外部輸入)P3.5T1(
10、記時(shí)器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)
11、行MOVX,MOVC指令時(shí)才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XT
12、AL2:來自反向振蕩器的輸出引腳。2.芯片74LS164介紹74LS164是一個(gè)申入并出的8位移位寄存器,他常用于單片機(jī)系統(tǒng)中,下面結(jié)束一下這個(gè)元件的基本知識(shí)。74LS164外部結(jié)構(gòu)和引腳圖83口后口5口.K?TRCPnii司1i口口”1i日iI"I13II>門ABQoQiQ2QaGNO圖3-2-2A主要特性:串行輸入帶鎖存時(shí)鐘輸入邛行輸入帶緩沖異步消除最高時(shí)鐘頻率可高達(dá)36Mhz功耗:10mW/bit74系列工作溫度:0Cto70CVcc最高電壓:7V輸入最高電壓:7V最大輸出驅(qū)動(dòng)能力:高電平:一0.4mA;低電平:8mAB管腳說明在單片機(jī)系統(tǒng)中,如果并行口的IO資源不夠,而
13、用行口又沒有其他的作用,那么我們可以用74LS164來擴(kuò)展并行IO口,節(jié)約單片機(jī)資源。74LS164是一個(gè)串行輸入并行輸出的移位寄存器。并帶有清除端。其中,Q0-Q7并行輸出端;A,B用行輸入端;MR清除端,為0時(shí),輸出清零;CP時(shí)鐘輸入端。4硬件總體方案及說明簡易數(shù)字計(jì)算器系統(tǒng)硬件設(shè)計(jì)主要包括:鍵盤電路,顯示電路以及其他輔助電路。下面分別進(jìn)行設(shè)計(jì)。4.1 鍵盤電路的設(shè)計(jì)鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20個(gè)以上)和專用驅(qū)動(dòng)芯片的組合,當(dāng)按下某個(gè)按鍵時(shí),它能夠處理按鍵抖動(dòng)、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預(yù)。通用計(jì)算機(jī)使用的標(biāo)準(zhǔn)鍵盤就是編碼鍵盤。在智能儀
14、器中,使用并行接口芯片8279或串行接口芯片HD7279均可以組成編碼鍵盤,同時(shí)還可以兼顧數(shù)碼管的顯示驅(qū)動(dòng),其相關(guān)的接口電路和接口軟件均可在芯片資料中得到。當(dāng)系統(tǒng)功能比較復(fù)雜,按鍵數(shù)量很多時(shí),采用編碼鍵盤可以簡化軟件設(shè)計(jì)。但大多數(shù)智能儀器和電子產(chǎn)品的按鍵數(shù)目都不太多(20個(gè)以內(nèi)),為了降低成本和簡化電路通常采用非編碼鍵盤。非編碼鍵盤的接口電路有設(shè)計(jì)者根據(jù)需要自行決定,按鍵信息通過接口軟件來獲取。本課題需要的是16個(gè)按鍵,故選擇用非編碼鍵盤,為了減少所占用的端口,由P1口采用4*4矩陣式鍵盤。具體電路連接如圖4-1-1所示所對(duì)應(yīng)的鍵碼為:4.2 顯示電路設(shè)計(jì)當(dāng)系統(tǒng)需要顯示少量數(shù)據(jù)時(shí),采用LED數(shù)
15、碼管進(jìn)行顯示是一種經(jīng)濟(jì)實(shí)用的方法。數(shù)碼管顯示有靜態(tài)顯示和動(dòng)態(tài)顯示兩種方法。為了減少端口的使用,故選擇靜態(tài)顯示,并采用共陰極接法電路如圖4-2-1所示圖4-2-1LED數(shù)碼管顯示塊是由發(fā)光二極管顯示字段的顯示器件。在單片機(jī)應(yīng)用中通常使用七段LED。這種顯示塊有共陰極和共陽極兩種。4.3 時(shí)鐘電路及數(shù)碼管電路設(shè)計(jì)1 .時(shí)鐘電路機(jī)器周期(24個(gè)時(shí)鐘周期)的高電平即可對(duì)單片機(jī)實(shí)現(xiàn)復(fù)位操作當(dāng)主電源Vcc發(fā)生掉電或者是電壓降低到電平規(guī)定值時(shí),VPD上外接的備用電源自動(dòng)啟用,為單片機(jī)內(nèi)部RAM提供電源,以保護(hù)片內(nèi)RAM中的信息不丟失,使系統(tǒng)在恢復(fù)上電后能正常運(yùn)行2 .多位數(shù)碼管電路顯示的驅(qū)動(dòng)電路單片機(jī)應(yīng)用中
16、只有一位的的數(shù)字顯示是不常見的,即要同時(shí)驅(qū)動(dòng)多個(gè)數(shù)碼管顯示,就必須要同時(shí)讓多個(gè)數(shù)碼管加上各自不同的選片段,這個(gè)屬于靜態(tài)顯示。所謂靜態(tài)顯示,就是每一個(gè)顯示器,都要占用單獨(dú)的具有封鎖功能的I/O接口用于筆畫字段形代碼,單片機(jī)只要把顯示的字形代碼發(fā)送到接口電路,直到要顯示新的數(shù)據(jù)時(shí),再發(fā)送新的字形碼,因此,使用這種方法單片機(jī)中CPU的開銷小,可以提高單獨(dú)鎖存的I/O接口電路很多,這里以常用的串并轉(zhuǎn)化電路74LS164為例介紹一種常用靜態(tài)顯示電路。如圖所示,5片74LS164首尾相串,而時(shí)鐘端接在一起,這樣,當(dāng)輸入8個(gè)脈沖時(shí),從單片機(jī)RXD端輸出的數(shù)據(jù)就進(jìn)入到第一個(gè)74LS164中了,當(dāng)?shù)诙€(gè)8個(gè)脈沖
17、到來時(shí),這個(gè)數(shù)據(jù)就進(jìn)入了第二個(gè)片74LS164,新的數(shù)據(jù)則進(jìn)入了第一個(gè)74LS164o這樣,當(dāng)?shù)谖鍌€(gè)脈沖完成后,首次送出的數(shù)據(jù)被送入到最左面的74LS164中,其他數(shù)據(jù)依次出現(xiàn)在第一、第二、第三、第四片74LS164中。入口:把要顯示的數(shù)分別放在顯示緩沖區(qū)60H-64H共五個(gè)單元中,并且分別對(duì)應(yīng)五個(gè)數(shù)碼管LED1-LED4。出口:蔣預(yù)置在顯示緩沖區(qū)中的五個(gè)數(shù)組成相應(yīng)的現(xiàn)實(shí)字形碼,然后輸出到顯示器中顯示。多位數(shù)碼管連接電路圖4-3-24.4總原理圖 片X己【班3 Z.口5取 - « 1 , 1 r 1, 'Hlg II FE.IrtMC Ij ra.MWUib匕立7 RDATU
18、Q,酊2,£0M FZJfS“F-Z&B-ldra.iEO n wrm fzBTT叮ST1 -351 ra.7/TFrHgnB.口口回回-:r xla - E = Er =,*1: A3T11 Kk-F-1*kN J-pID圖4-4-1將時(shí)鐘電路、顯示電路、數(shù)碼管電路、鍵盤電路和51單片機(jī)按如圖4-4-1所示連接。數(shù)碼管上顯示的236為第一次輸入的數(shù)字5軟件總體方案及設(shè)計(jì)流程在軟件規(guī)劃要求下,簡易計(jì)算器的程序主要包括以下功能模塊:(1)主模塊,為系統(tǒng)初始化。(2)顯示與讀鍵模塊,分顯示子程序,判鍵程序段、運(yùn)算操作子程序等部分5.1 主程序設(shè)計(jì)主程序主要是用來進(jìn)行初始化的,調(diào)用
19、其他子程序,清空各個(gè)標(biāo)志位,清空緩存區(qū),讀取鍵碼,判斷功能,在LED上作出回應(yīng),主程序流程圖如圖所示。(1)數(shù)字送顯示緩沖程序設(shè)計(jì)簡易計(jì)算器所顯示的數(shù)值最大位三位。要顯示數(shù)值,先判斷數(shù)值大小和位數(shù),如果是超過三位或大于255,將不顯示數(shù)字??芍匦螺斎霐?shù)字,再次計(jì)算。-開始(2)運(yùn)算程序的設(shè)計(jì)首先初始化參數(shù),送LED低位顯示“0”,高位不顯示。然后掃描鍵盤看是否有鍵輸入,若有,讀取鍵他。判斷鍵他是數(shù)字鍵、清零鍵還是功能鍵,是數(shù)值鍵則送LED顯示并保存數(shù)值,是清零鍵則做清零處理,是功能鍵則又判斷是“二還是運(yùn)算鍵,若是“二”則計(jì)算最后結(jié)果并送LED顯示,若是運(yùn)算鍵則保存相對(duì)運(yùn)算程序的首地址。5.2
20、顯示讀鍵模塊設(shè)計(jì)1. LED顯示程序設(shè)計(jì)LED顯示器由七段發(fā)光二極管組成,排列成8字形狀,因此也稱為七段LED顯示器。簡易計(jì)算器用到的數(shù)字09的共陰極字形代碼如下表:顯示字gfedcba段碼001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fh表5-2-12.讀鍵子程序設(shè)計(jì)為了實(shí)現(xiàn)鍵盤的輸入功能,每個(gè)鍵都有其處理子程序,為此每個(gè)鍵都對(duì)應(yīng)一個(gè)碼鍵碼。為了得到被按鍵的鍵碼,使用行掃描法識(shí)別按鍵。5.3 定時(shí)查件及軟件可靠性設(shè)計(jì)1 .定
21、時(shí)查鍵的程序設(shè)計(jì)進(jìn)入定時(shí)器0的中斷程序后,首先重新付初值,然后調(diào)用讀鍵程序,如果有鍵按下,則判斷按鍵是否與上次按鍵相同,如果相同則判斷按鍵相應(yīng)位是否為一,如果不為一,說明這不是持續(xù)按鍵導(dǎo)致的按鍵相應(yīng),并且進(jìn)行相應(yīng)的程序。如果不是則退出中斷程序。讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進(jìn)行兩次讀鍵。第一次所有行線均輸出低電平,從所有讀入鍵盤信息(列信息);第二次所有列線均輸出低電平,從所有行線讀入鍵盤信息(行信息)。將兩次讀鍵信息進(jìn)行組合就可以得到按鍵的特征編碼,然后通過查表得到按鍵的順序編碼。將各特征編碼按希望的順序排成一張表,然后用當(dāng)前讀得的特征碼來查表。當(dāng)表中有該特征碼時(shí),它
22、的位置就是對(duì)應(yīng)的順序編碼;當(dāng)表中沒有該特征碼時(shí),說明這是一個(gè)沒有定義的鍵碼,與沒有按鍵(0FFH)同等看待。數(shù)字鍵按下則將相應(yīng)的數(shù)字送入緩存區(qū),功能鍵按下則執(zhí)行相應(yīng)的程序。首先對(duì)數(shù)字鍵的程序段進(jìn)行相應(yīng)的設(shè)計(jì),如果運(yùn)算鍵(、,*,/)響應(yīng)標(biāo)志不為一,則將輸入的數(shù)字送入第一個(gè)操作數(shù)緩存區(qū),并且清空所有響應(yīng)位。否則送入第二個(gè)操作數(shù)緩存區(qū)。其次對(duì)功能鍵的程序段進(jìn)行相應(yīng)的設(shè)計(jì)。如果功能鍵(、,*,/)第一次被按下,則置相應(yīng)的標(biāo)志位為一,并且將運(yùn)算鍵響應(yīng)標(biāo)志位置一,清空第二個(gè)操作數(shù)的緩存區(qū),為輸入操作數(shù)做準(zhǔn)備,如果是第二次按下則先調(diào)用運(yùn)算操作子程序,執(zhí)行上次按下的運(yùn)算鍵的運(yùn)算,置相應(yīng)的標(biāo)志位為一,并且將運(yùn)
23、算鍵響應(yīng)標(biāo)志位置一,清空第二個(gè)操作數(shù)的緩存區(qū),為輸入操作數(shù)做準(zhǔn)備。如果是C'鍵按下,則先判斷運(yùn)算鍵響應(yīng)位是否為一,如果不為一,則清空第一個(gè)操作數(shù),否則清空第二個(gè)操作數(shù)。如果是=鍵按下,則調(diào)用運(yùn)算操作子程序。2 .軟件的可靠性設(shè)計(jì)提高本儀器的可靠性措施主要有:( 1)為防止程序跑飛,軟件中設(shè)置了軟件陷阱( 2)為防止鍵盤抖動(dòng)造成按鍵錯(cuò)誤,采取了軟件防( 3)為了保證結(jié)果的正確性,結(jié)果溢出時(shí)顯示錯(cuò)誤代碼06 調(diào)試與仿真下面用Keil與porteus仿真軟件介紹數(shù)字計(jì)算器的仿真與調(diào)試。6.1 keilC51單片機(jī)軟件開發(fā)系統(tǒng)( .采用KEIL開發(fā)的89c51單片機(jī)應(yīng)用程序步驟:( 1)在ke
24、il集成開發(fā)環(huán)境中創(chuàng)建新項(xiàng)目(Project)擴(kuò)展文件名為.UV2,并為該項(xiàng)目選定合適的單片機(jī)CPU器件(本設(shè)計(jì)采用ATMEL公司下的AT89C51)( 2)用keil的文本編輯器編寫源文件,可以是匯編文件(.ASM),并將該文件添加到項(xiàng)目中去。一個(gè)項(xiàng)目文件可以包含多個(gè)文件,除了源程序文件外,還可以是庫文件、頭文件或文本說明文件。( 3)通過keil的相關(guān)選擇項(xiàng),配置編譯環(huán)境、連接定位器以及Debug調(diào)試器的功能。( 4)對(duì)項(xiàng)目中的源文件進(jìn)行編譯連接,生成絕對(duì)目標(biāo)代碼和可選的HEX文件,如果出現(xiàn)編譯連接錯(cuò)誤則返回到第2步,修改源文件中的錯(cuò)誤后重構(gòu)整個(gè)項(xiàng)目。( 5)對(duì)沒有語法錯(cuò)誤的程序進(jìn)行仿真調(diào)
25、試,調(diào)試成功后將HEX文件寫入到單片機(jī)應(yīng)用系統(tǒng)的ROM中。6.2 porteus的操作(1) 件電路圖的接法操作(2) .放置選擇(刪除)元器件(3) .移動(dòng)元器件(4) .縮放視圖(5) .連接導(dǎo)線(6) .仿真,調(diào)試2. 單片機(jī)系統(tǒng)PROTEUS設(shè)計(jì)與仿真過程Proteus強(qiáng)大的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真功能,使它可成為單片機(jī)系統(tǒng)應(yīng)用開發(fā)和改進(jìn)手段之一。全部過程都是在計(jì)算機(jī)上通過Proteus來完成的。其過程一般也可分為三步:(1)在ISIS平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)電路設(shè)計(jì)、選擇元器件、接插件、連接電路和電氣檢測等。簡稱Proteus電路設(shè)計(jì)。(2)在Keil平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)程序設(shè)計(jì)、編輯、匯編
26、編譯、代碼級(jí)調(diào)試,最后生成目標(biāo)代碼文件(*.hex)。簡稱Proteus源程序設(shè)計(jì)和生成目標(biāo)代碼文件。(3)在ISIS平臺(tái)上將目標(biāo)代碼文件加載到單片機(jī)系統(tǒng)中,并實(shí)現(xiàn)單片機(jī)系統(tǒng)的實(shí)時(shí)交互、協(xié)同仿真。它在相當(dāng)程度上反映了實(shí)際單片機(jī)系統(tǒng)的運(yùn)行情況。簡稱Proteus仿真。7 心得體會(huì)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說得是無處不在。因此作為自動(dòng)化專業(yè)的學(xué)生來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。我的題目是數(shù)字計(jì)算器硬軟
27、件的設(shè)計(jì),對(duì)于我們這些工科學(xué)生來說,這是一次考驗(yàn)。怎么才能找到課堂所學(xué)與實(shí)際應(yīng)用的最佳結(jié)合點(diǎn)?怎樣讓自己的業(yè)余更接近專業(yè)?怎樣讓自己的計(jì)劃更具有序性,而不會(huì)忙無一用?這都是我們所要考慮和努力的。這次課程設(shè)計(jì)我學(xué)到很多很多的東西,學(xué)會(huì)了怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。不僅鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí),掌握了一種系統(tǒng)的研究方法,可以進(jìn)行一些簡單的編程。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),
28、從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,對(duì)單片機(jī)匯編語言掌握得不夠好。這次課程設(shè)計(jì)通過自己的努力,同學(xué)的幫助,還有老師的辛勤指導(dǎo)下,最終順利完成了。通過這次課程設(shè)計(jì),認(rèn)識(shí)到自己在所學(xué)專業(yè)知識(shí)上存在很大不足,明確了今后的學(xué)習(xí)方向,為以后的就業(yè)打下了可靠的基礎(chǔ)。最后,對(duì)我們的老師,表示感謝!謝謝他們兩周來對(duì)我的幫助。同時(shí),對(duì)幫助我的所有同學(xué)和各位指導(dǎo)老師表示衷心的感謝!8 指導(dǎo)老師意見9 參考文獻(xiàn)1 周美娟,肖來勝單片機(jī)原理及系統(tǒng)設(shè)計(jì)清華大學(xué)出版社2 余孟嘗數(shù)字電子技術(shù)基礎(chǔ)簡明教程第三版.高等教育出版社3
29、 彭偉單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例基于8951+proteus仿真電子工業(yè)出版社4 蔡駿單片機(jī)實(shí)驗(yàn)指導(dǎo)教程安徽大學(xué)出版社5 周美娟,肖來勝單片機(jī)原理及系統(tǒng)設(shè)計(jì)清華大學(xué)出版社附錄一實(shí)驗(yàn)設(shè)計(jì)源程序:DBUFEQU30HTEMPEQU40HYJEQU50H;結(jié)果存放YJ1EQU51H;中間結(jié)果存放GONGEQU52H;功能鍵存放DINBIT0B0H;P3.0CLKBIT0B1H;P3.1ORG00HSTART:MOVR3,#0;初始化顯示為空MOVGONG,#0MOV30H,#10HMOV31H,#10HMOV32H,#00HMOV33H,#10HMOV34H,#10HMLOOP:CALLDIS
30、P;PAN調(diào)顯示子程序WAIT:CALLTESTKEY;判斷有無按鍵JZWAITCALLGETKEY;讀鍵INCR3;按鍵個(gè)數(shù)CJNEA,#0,NEXT1;判斷是否數(shù)字鍵LJMPE1;轉(zhuǎn)數(shù)字鍵處理NEXT1:CJNEA,#1,NEXT2LJMPE1NEXT2:CJNEA,#2,NEXT3LJMPE1NEXT3:CJNEA,#3,NEXT4LJMPE1NEXT4:CJNEA,#4,NEXT5LJMPE1NEXT5:CJNEA,#5,NEXT6LJMPE1NEXT6:CJNEA,#6,NEXT7LJMPE1NEXT7:CJNEA,#7,NEXT8LJMPE1NEXT8:CJNEA,#8,NEXT9
31、LJMPE1NEXT9:CJNEA,#9,NEXT10LJMPE1NEXT10:CJNEA,#10,NEXT11;判斷是否功能鍵LJMPE2;轉(zhuǎn)功能鍵處理NEXT11:CJNEA,#11,NEXT12LJMPE2NEXT12:CJNEA,#12,NEXT13LJMPE2-NEXT13:CJNEA,#13,NEXT14LJMPE2NEXT14:CJNEA,#14,NEXT15LJMPE2NEXT15:LJMPE3;判斷是否清除鍵E1:CJNER3,#1,N1;判斷第幾次按鍵LJMPE11;為第一個(gè)數(shù)字N1:CJNER3,#2,N2LJMPE12;為第二個(gè)數(shù)字N2:CJNER3,#3,N3LJMP
32、E13;為第三個(gè)數(shù)字N3:LJMPE3;第四個(gè)數(shù)字轉(zhuǎn)溢出E11:MOVR4,A;輸入值暫存R4MOV34H,A;輸入值送顯示緩存MOV33H,#10HMOV32H,#10HLJMPMLOOP;等待再次輸入E12:MOVR7,A;個(gè)位數(shù)暫存R7MOVB,#10MOVA,R4MULAB;十位數(shù)ADDA,R7MOVR4,A;輸入值存R4MOV32H,#10H;輸入值送顯示緩存MOV33H,34HMOV34H,R7LJMPMLOOPMOVR7,AMOVB,#10MOVA,R4MULABJBOV,E3;輸入溢出ADDA,R7JBCY,E3;輸入溢出MOVR4,AMOV32H,33H;輸入值送顯示緩存MO
33、V33H,34HMOV34H,R7LJMPMLOOPMOVR3,#0;按鍵次數(shù)清零MOVR4,#0;輸入值清零MOVYJ,#0;計(jì)算結(jié)果清零MOVGONG,#0;功能鍵設(shè)為零MOV30H,#10H;顯示清空E13:E3:MOV31H,#10HMOV32H,#10HMOV33H,#10HMOV34H,#00HLJMPMLOOPE2:MOV34H,#10HMOV33H,#10HMOV32H,#10HMOVR0,GONG;與上次功能鍵交換MOVGONG,AMOVA,R0CJNEA,#10,N21;判斷功能鍵LJMPJIA;“”N21:CJNEA,#11,N22LJMPJIAN;N22:CJNEA,#
34、12,N23LJMPCHENG;N23:CJNEA,#13,N24LJMPCHU;“/”N24CJNEA,#0,N25LJMPFIRST;首次按功能鍵N25:LJMPDEN;-N4:LJMPE3FIRST:MOVYJ,R4;輸入值送結(jié)果MOVR3,#0;按鍵次數(shù)清零LJMPDISP1;結(jié)果處理JIA:MOVA,YJ;上次結(jié)果送累加器ADDA,R4;上次結(jié)果加輸入值JBCY,N4;溢出MOVYJ,A;存本次結(jié)果MOVR3,#0;按鍵次數(shù)清零LJMPDISP1JIAN:MOVA,YJSUBBA,R4;上次結(jié)果減輸入值JBCY,N4;負(fù)數(shù)溢出MOVYJ,AMOVR3,#0LJMPDISP1CHENG:MOVA,YJMOVB,AMOVA,R4MULAB;上次結(jié)果乘輸入值JBOV,N4;溢出MOVYJ,ALJMPDISP1CHU:MOVA,R4MOVB,AMOVA,YJDIVAB;上次結(jié)果除輸入值MOVYJ,AMOVR3,#0LJMPDISP1DEN:MOVR3,#0LJMPDISP1DISP1:MOVB,#10MOVA,YJ;結(jié)果送累加器DIVAB;結(jié)果除10MOVYJ1,A;暫存“商”MOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年預(yù)拌砂漿產(chǎn)業(yè)鏈上下游產(chǎn)業(yè)轉(zhuǎn)型升級(jí)合作合同3篇
- 三方車輛租賃協(xié)議2024版專業(yè)模板版
- 廣東省揭陽市2025年中考語文模擬試卷五套【附參考答案】
- 2024年餐具回收利用協(xié)議3篇
- 12 慧眼看交通 第1課時(shí) 說課稿-2023-2024學(xué)年道德與法治三年級(jí)下冊統(tǒng)編版
- 2024年版國際制藥行業(yè)技術(shù)轉(zhuǎn)移合同
- 2024樣板間房地產(chǎn)買賣合同模板3篇
- 專業(yè)辣椒經(jīng)銷商2024年度購貨協(xié)議版B版
- 2024水利工程環(huán)境監(jiān)理規(guī)范執(zhí)行操作指導(dǎo)合同范本3篇
- 福建省南平市塔前中學(xué)高二地理聯(lián)考試卷含解析
- 西師大版2023-2024學(xué)年五年級(jí)數(shù)學(xué)上冊期末測試卷含答案
- 2024年浙江省寧波寧海縣事業(yè)單位公開招聘85人歷年公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 校區(qū)熱水供水系統(tǒng)維護(hù)服務(wù)第冊維保服務(wù)方案
- 3D打印行業(yè)研究報(bào)告
- 魯教版(五四制)七年級(jí)數(shù)學(xué)下冊電子課本教材
- 人教版八年級(jí)物理上冊 1.5運(yùn)動(dòng)圖像(專題練習(xí))原卷版+解析
- (2024年)Maya三維建模教案
- 國開電大本科《理工英語4》機(jī)考真題(第六套)
- 公共資源交易培訓(xùn)課件
- 護(hù)理實(shí)習(xí)針灸科出科小結(jié)
- 信息系統(tǒng)集成方案
評(píng)論
0/150
提交評(píng)論