




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程名稱: 微機(jī)原理課程設(shè)計(jì) 題 目: 51單片機(jī)共陰極數(shù)碼管計(jì)算器課程設(shè)計(jì)報(bào)告 摘要近幾年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)技術(shù)日益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面的知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)合,加以完善。本設(shè)計(jì)是基于51系列的單片機(jī)進(jìn)行的十進(jìn)制計(jì)算器系統(tǒng)設(shè)計(jì)可以完成計(jì)算器的鍵盤輸入進(jìn)行加、減、乘、除的簡(jiǎn)單四則運(yùn)算并在4位數(shù)碼管上相應(yīng)的顯示結(jié)果。硬件方面從功能考慮首先選擇內(nèi)部存儲(chǔ)資源豐富的STC89C52單片機(jī)輸入采用44矩陣鍵盤。顯示采用4位7段共陰極數(shù)碼管動(dòng)態(tài)顯示。軟件方面從分析計(jì)算器功能
2、、流程圖設(shè)計(jì)再到程序的編寫(xiě)進(jìn)行系統(tǒng)設(shè)計(jì)。編程語(yǔ)言方面選用C語(yǔ)言進(jìn)行編寫(xiě),并選用全球編譯效率最高的KEIL公司的Vision2軟件,采用C語(yǔ)言進(jìn)行編程并用Proteus仿真。通過(guò)最后的調(diào)試和測(cè)試,本計(jì)算器可以實(shí)現(xiàn)簡(jiǎn)單的四位數(shù)的加減乘除功能。關(guān)鍵詞:?jiǎn)纹瑱C(jī),計(jì)算器,共陰極數(shù)碼管,矩陣鍵盤目錄一、設(shè)計(jì)任務(wù)要求41.1 設(shè)計(jì)任務(wù)41.2 設(shè)計(jì)的目的41.3 設(shè)計(jì)要求4二、方案總體設(shè)計(jì)52.1 系統(tǒng)模塊圖52.2 總體方案工作原理5三、硬件設(shè)計(jì)63.1 整個(gè)單片機(jī)的接口電路63.2 單片機(jī)STC89C52說(shuō)明63.3 引腳說(shuō)明73.4 計(jì)算器系統(tǒng)現(xiàn)狀83.5 最小系統(tǒng)原理圖93.6 顯示電路113.7
3、按鍵輸入電路13四、軟件設(shè)計(jì)15五、系統(tǒng)仿真與調(diào)試165.1 采用KEIL 開(kāi)發(fā)的89c52單片機(jī)應(yīng)用程序步驟165.2 硬件電路圖的接法操作165.3 單片機(jī)系統(tǒng)Proteus設(shè)計(jì)與仿真過(guò)程165.4 STC-ISP程序燒錄軟件175.5 實(shí)物圖185.6 仿真圖195.7 計(jì)算展示19六、設(shè)計(jì)總結(jié)22七、參考文獻(xiàn)23一、設(shè)計(jì)任務(wù)要求1.1 設(shè)計(jì)任務(wù)滿足計(jì)算器的基本要求,可以基本的運(yùn)算(加減乘除),數(shù)據(jù)歸零,利用51系列單片機(jī)設(shè)計(jì)符合功能的計(jì)算器,并用LED碼管顯示數(shù)據(jù),4*4的矩陣鍵盤實(shí)現(xiàn)數(shù)據(jù)輸入。在進(jìn)行運(yùn)算時(shí),按等號(hào)鍵能將最后結(jié)果輸送給數(shù)碼管并顯示出來(lái)。設(shè)計(jì)仿真和調(diào)試要用到Protues
4、、Keil等軟件。1.2 設(shè)計(jì)的目的通過(guò)對(duì)簡(jiǎn)易計(jì)算器的設(shè)計(jì)制作與調(diào)試,學(xué)習(xí)掌握 1) 單片機(jī)系統(tǒng)的整體設(shè)計(jì)流程; 2) 單片機(jī)系統(tǒng)的硬件、軟件調(diào)試方法及相關(guān)工具的使用; 3) Protues繪制電路原理圖的方法;4) 各種常見(jiàn)元器件的選擇及使用。1.3 設(shè)計(jì)要求通過(guò)簡(jiǎn)易計(jì)算器制作,使計(jì)算器能夠進(jìn)行加、減、乘、除簡(jiǎn)單的四則運(yùn)算。二、方案總體設(shè)計(jì)本設(shè)計(jì)是基于52系列單片機(jī)來(lái)進(jìn)行的數(shù)字計(jì)算器系統(tǒng)設(shè)計(jì),可以完成計(jì)算器的鍵盤輸入,鍵盤電路采用4*4矩陣鍵盤電路,進(jìn)行加、減、乘、除基本四則運(yùn)算,并在4位共陰極數(shù)碼管顯示相應(yīng)的結(jié)果;設(shè)計(jì)電路采用STC89C52單片機(jī)為主要控制芯片,利用軟件方面使用C語(yǔ)言編程
5、,并用Protues仿真。2.1 系統(tǒng)模塊圖圖1 系統(tǒng)模塊圖2.2 總體方案工作原理本系統(tǒng)選用以STC89C52C單片機(jī)為主控機(jī)。通過(guò)擴(kuò)展必要的外圍接口電路,實(shí)現(xiàn)對(duì)計(jì)算器的設(shè)計(jì)。系統(tǒng)框圖如下圖2圖2 系統(tǒng)框圖三、硬件設(shè)計(jì)單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。通常,單片機(jī)由單個(gè)集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件
6、,中央處理器,存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。隨著社會(huì)的發(fā)展,科學(xué)的進(jìn)步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。單片機(jī)的應(yīng)用已經(jīng)越來(lái)越貼近生活,用單片機(jī)來(lái)實(shí)現(xiàn)一些電子設(shè)計(jì)也變得容易起來(lái)。計(jì)算器在人們的日常中是比較的常見(jiàn)的電子產(chǎn)品之一??墒撬€在發(fā)展之中,以后必將出現(xiàn)功能更加強(qiáng)大的計(jì)算器,基于這樣的理念,本次設(shè)計(jì)是用單片機(jī)來(lái)設(shè)計(jì)的計(jì)算器。3.1 整個(gè)單片機(jī)的接口電路P0用于顯示輸出;P1用于鍵掃描輸入;P2用于數(shù)碼管位選控制。3.2 單片機(jī)STC89C52說(shuō)明STC89C52是STC公司生產(chǎn)
7、的一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash存儲(chǔ)器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,3個(gè)16 位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。另外 STC89C
8、52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35MHz,6T/12T可選。STC89C52主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義,在
9、本設(shè)計(jì)中,P0 端口(3239 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12腳、27腳及28腳定義為握手信號(hào)功能端口,連接主板CPU的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。3.3 引腳說(shuō)明1) P0 口: P0 口是一組8 位漏極開(kāi)路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏輯門電路,對(duì)端口P0 寫(xiě)“1”時(shí),可作為高阻抗輸入端用; 在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),
10、這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻; 在Flash編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。2) P1 口: P1 是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL); 與AT89C51 不同之處是,P1.0 和P1.1 還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1
11、/T2EX),F(xiàn)lash 編程和程序校驗(yàn)期間,P1 接收低8 位地址。3) P2 口: P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門電路。對(duì)端口P2 寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL); 在訪問(wèn)外部程序存儲(chǔ)器或16 位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR 指令)時(shí),P2 口送出高8 位地址數(shù)據(jù)。在訪問(wèn)8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX RI 指令)時(shí),P2 口輸出P2鎖存器的內(nèi)容; Flash
12、編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。4) P3 口: P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門電路。對(duì)P3 口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3 口將用上拉電阻輸出電流(IIL); P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能; P3 口還接收一些用于Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。5)其它的控制或復(fù)用引腳: (ALE/PROG 30 訪問(wèn)外部存儲(chǔ)器時(shí),ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問(wèn)外部存儲(chǔ)器,ALE
13、端仍以不變的頻率輸出脈沖信號(hào)(此頻率是振蕩器頻率的1/6)。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),出現(xiàn)一個(gè)ALE脈沖。對(duì)Flash存儲(chǔ)器編程時(shí),這個(gè)引腳用于輸入編程脈沖PROG; PSEN 29 該引是外部程序存儲(chǔ)器的選通信號(hào)輸出端。當(dāng)AT89C51由外部程序存儲(chǔ)器取指令或常數(shù)時(shí),每個(gè)機(jī)器周期輸出2個(gè)脈沖即兩次有效。但訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將不會(huì)有脈沖輸出; EA/Vpp 31 外部訪問(wèn)允許端。當(dāng)該引腳訪問(wèn)外部程序存儲(chǔ)器時(shí),應(yīng)輸入低電平。要使AT89S51只訪問(wèn)外部程序存儲(chǔ)器(地址為0000H-FFFFH),這時(shí)該引腳必須保持低電平。對(duì)Flash存儲(chǔ)器編程時(shí),用于施加Vpp編程電壓; RST引腳:復(fù)位輸入。
14、當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。圖3 單片機(jī)引腳3.4 計(jì)算器系統(tǒng)現(xiàn)狀計(jì)算器一般由運(yùn)算器、控制器、存儲(chǔ)器、鍵盤、顯示器、電源和一些可選外圍設(shè)備及電子配件通過(guò)人工或機(jī)器設(shè)備組成。低檔計(jì)算器的運(yùn)算器、控制器由數(shù)字邏輯電路實(shí)現(xiàn)簡(jiǎn)單的串行運(yùn)算,其隨機(jī)存儲(chǔ)器只有一、二個(gè)單元,供累加存儲(chǔ)用。高檔計(jì)算器由微處理器和只讀存儲(chǔ)器實(shí)現(xiàn)各種復(fù)雜的運(yùn)算程序,有較多的隨機(jī)存儲(chǔ)單元以存放輸入程序和數(shù)據(jù)。鍵盤是計(jì)算器的輸入部件,一般采用接觸式或傳感式。為減小計(jì)算器的尺寸,一鍵常常有多種功能。顯示器是計(jì)算器的輸出部件,有發(fā)光二極管顯示器或液晶顯示器等。除顯示計(jì)算結(jié)果外,還常有溢出指示、錯(cuò)誤
15、指示等。計(jì)算器電源采用交流轉(zhuǎn)換器或電池,電池可用交流轉(zhuǎn)換器或太陽(yáng)能轉(zhuǎn)換器再充電。為節(jié)省電能,計(jì)算器都采用CMOS工藝制作的大規(guī)模集成電路(見(jiàn)互補(bǔ)金屬-氧化物-半導(dǎo)體集成電路),并在內(nèi)部裝有定時(shí)不操作自動(dòng)斷電電路。計(jì)算器可選用的外圍設(shè)備有微型打印機(jī)、盒式磁帶機(jī)和磁卡機(jī)等。3.5 最小系統(tǒng)原理圖最小系統(tǒng)由震蕩電路、復(fù)位電路、輸入輸出設(shè)備、電源和單片機(jī)芯片組成。圖4 最小系統(tǒng)原理圖n 復(fù)位電路單片機(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦內(nèi)部的程序從頭開(kāi)始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時(shí)候,按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開(kāi)始。復(fù)位原
16、理單片機(jī)復(fù)位時(shí)只要保持RST引腳接大于兩個(gè)機(jī)器周期的高電平即可。在單片機(jī)啟動(dòng)0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時(shí)候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時(shí)候,開(kāi)關(guān)導(dǎo)通,這個(gè)時(shí)候電容兩端形成了一個(gè)回路,電容被短路,所以在按鍵按下的這個(gè)過(guò)程中,電容開(kāi)始釋放之前充的電量。隨著時(shí)間的推移,電容的電壓在0.1S內(nèi),從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個(gè)時(shí)候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機(jī)系統(tǒng)自動(dòng)復(fù)位。圖5 單片機(jī)復(fù)位電路n 單片機(jī)振蕩電路外接晶振引腳XTAL1和TXAL2接
17、外部晶振和微調(diào)電容的一端。振蕩電路的頻率就是晶體的固有頻率。晶振電路結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時(shí)鐘頻率。晶振提高頻率越高,單片機(jī)運(yùn)行速度越快。單片機(jī)一切指令的執(zhí)行都是建立在晶振提供的時(shí)鐘頻率上。圖6 單片機(jī)振蕩電路n 電源指示燈部分 電源指示燈部分包括一個(gè)開(kāi)關(guān),發(fā)光二級(jí)管和限流電阻。當(dāng)電源接通時(shí)發(fā)光二級(jí)管點(diǎn)亮,表明電路已上電。圖7 單片機(jī)電源指示燈電路3.6 顯示電路數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(即多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)數(shù)
18、碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(COM)的數(shù)碼管。共陽(yáng)數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。陰極數(shù)碼管是把所有LED的陰極連接到共同接點(diǎn)com,而每個(gè)LED的陽(yáng)極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn)),如下圖所示。圖中的8個(gè)LED分別和上面那個(gè)
19、圖中的ADP各段相對(duì)應(yīng),通過(guò)控制各個(gè)LED的亮滅來(lái)顯示數(shù)字。當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。圖8 共陰極數(shù)碼管引腳接線l 數(shù)碼管顯示部分的實(shí)現(xiàn):數(shù)碼管通過(guò)PO口輸入高低電平控制每個(gè)LED燈的亮滅,公共端接地線P0口接1K的上拉電阻。由于并未用到小數(shù)點(diǎn)顯示,所以DP引腳懸空。圖9 共陰極數(shù)碼管原理l 計(jì)算器用到的數(shù)字09的共陰極字形代碼:表1 數(shù)字09的共陰極字形代碼l 數(shù)碼管與單片機(jī)連接圖:圖10 數(shù)碼管與單片機(jī)連接圖l LCD數(shù)碼管顯示模塊:圖11 LCD數(shù)碼管顯示模塊3.7 按鍵輸入電路計(jì)算器輸入數(shù)字和其他功能按鍵要用到很多
20、按鍵,如果采用獨(dú)立按鍵的方式,在 這種情況下,編程會(huì)很簡(jiǎn)單,但是會(huì)占用大量的I/O 口資源,因此在很多情況下都不采用這種方式。為此,我們引入了矩陣鍵盤的應(yīng)用,采用四條I/O 線作為行線,四條I/O 線作為列線組成鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為44個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。每個(gè)按鍵都有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過(guò)兩并行接口和CPU通信。鍵盤的一端(列線)通過(guò)電阻接VCC,而接地是通過(guò)程序輸出數(shù)字“0”實(shí)現(xiàn)的。鍵盤處理程序的任務(wù)是:確定有無(wú)鍵按下,判斷哪一個(gè)鍵按下,鍵的
21、功能是什么?還要消除按鍵在閉合或斷開(kāi)時(shí)的抖動(dòng)。兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地;另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過(guò)軟件查表,查出該鍵的功能。當(dāng)無(wú)按鍵閉合時(shí),P10P13 與P14P17 之間開(kāi)路;當(dāng)有鍵閉合時(shí),與閉合鍵相連的兩條I/O 口線之間短路。判斷有無(wú)按鍵按下的方法是:第一步,置列線P14P17 為輸入狀態(tài),從行線P10P13 輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,行線輪流輸出低電平,從列線P14P17 讀入數(shù)據(jù),若有某一列為低電平,則對(duì)應(yīng)行線上有鍵按下。綜合一二兩步的結(jié)果,可確定按鍵編號(hào)。但是
22、鍵閉合一次只能進(jìn)行一次鍵功能操作,因此須等到按鍵釋放后,再進(jìn)行鍵功能操作,否則按一次鍵,有可能會(huì)連續(xù)多次進(jìn)行同樣的鍵操作。鍵盤連接如下圖所示:圖12 鍵盤連接圖8052單片機(jī)的P1口作鍵盤口。鍵盤由4*4共16個(gè)按鍵組成,10個(gè)數(shù)字鍵(由0-9組成)5個(gè)運(yùn)算符號(hào)(加減乘除等于)組成,1個(gè)清除鍵(作用相當(dāng)于整體復(fù)位)。4個(gè)數(shù)碼管用于顯示當(dāng)前數(shù)值的千,百,十,個(gè),采用動(dòng)態(tài)顯示方式,P0口接4個(gè)數(shù)碼管的七段,P2口分別接4個(gè)數(shù)碼管的公共端,P0口輸出數(shù)碼管的字形碼,P2口輸出數(shù)碼管的字位碼。整體電路如下:圖13 硬件電路整體四、軟件設(shè)計(jì)首先初始化參數(shù);然后掃描鍵盤看是否有鍵輸入,若有,讀取鍵碼;判斷
23、鍵碼是數(shù)字鍵、清零鍵還是功能鍵(“+”“-”“*”“/”“=”),是數(shù)值鍵則送數(shù)碼管顯示并保存數(shù)值,是清零鍵則做清零處理,是功能鍵則又判斷是“=”還是運(yùn)算鍵,若是“=”則計(jì)算最后結(jié)果并送數(shù)碼管顯示,若是其它功能鍵則不顯示。(其中里面包含了延時(shí)去抖動(dòng)程序)。程序流程如圖14:圖14 程序流程圖五、系統(tǒng)仿真與調(diào)試系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu)中。其中uVision是C52 for Windows的集成開(kāi)發(fā)環(huán)境(IDE)可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB
24、51創(chuàng)建生成庫(kù)文件也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH52轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件以供調(diào)試器dScope52或tScope52使用進(jìn)行源代碼級(jí)調(diào)試也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試也可以直接寫(xiě)入程序存貯器如EPROM中。5.1 采用KEIL 開(kāi)發(fā)的89c52單片機(jī)應(yīng)用程序步驟1) 在uVision 集成開(kāi)發(fā)環(huán)境中創(chuàng)建新項(xiàng)目Project擴(kuò)展文件名為.UV2,并為該項(xiàng)目選定合適的單片機(jī)CPU器件本設(shè)計(jì)采用ATMEL 公司下的STC89C522) 用uVision 的文本編輯器編寫(xiě)源文件可以是匯編文件.ASM,也可以使C語(yǔ)言文件擴(kuò)展名.C并將該文件添加到
25、項(xiàng)目中去。一個(gè)項(xiàng)目文件可以包含多個(gè)文件除了源程序文件外還可以是庫(kù)文件、頭文件或文本說(shuō)明文件。3) 通過(guò)uVision 3的相關(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ì)沒(méi)有語(yǔ)法錯(cuò)誤的程序進(jìn)行仿真調(diào)試調(diào)試成功后將HEX文件寫(xiě)入到單片機(jī)應(yīng)用系統(tǒng)的ROM中。5.2 硬件電路圖的接法操作1) 放置選擇(刪除)元器件2) 移動(dòng)元器件3) 縮放視圖4) 連接導(dǎo)線5) 仿真,調(diào)試5.3 單片機(jī)系統(tǒng)Proteus設(shè)計(jì)與仿真過(guò)程Proteus強(qiáng)大的單片機(jī)
26、系統(tǒng)設(shè)計(jì)與仿真功能使它可成為單片機(jī)系統(tǒng)應(yīng)用開(kāi)發(fā)和改進(jìn)手段之一。全部過(guò)程都是在計(jì)算機(jī)上通過(guò)Proteus來(lái)完成的。其過(guò)程一般也可分為三步:1) 在ISIS平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)電路設(shè)計(jì)、選擇元器件、接插件、連接電路和電氣檢測(cè)等簡(jiǎn)稱Proteus電路設(shè)計(jì)。2) 在Keil平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)程序設(shè)計(jì)、編輯、匯編編譯、代碼級(jí)調(diào)試,最后生成目標(biāo)代碼文件*.hex。簡(jiǎn)稱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)行情況。簡(jiǎn)稱Proteus仿真。Proteus中課程設(shè)計(jì)的仿真結(jié)果
27、。在Proteus中將硬件電路全部接好以將Keil中生成的.hex文件導(dǎo)入到單片機(jī)中點(diǎn)擊開(kāi)始仿真按鈕電路開(kāi)始仿真。可以觀察到數(shù)碼管顯示“0”分別依次按下按鍵“5”、“+”、“6”和“=”可以看到數(shù)碼管顯示“11”也可以分別調(diào)試其它功能鍵結(jié)果發(fā)現(xiàn)調(diào)試結(jié)果與預(yù)期的理論值相吻合,即本次課設(shè)已成功。試驗(yàn)的程序通過(guò)Keil軟件編譯,產(chǎn)生HEX文件如圖圖15 產(chǎn)生HEX文件圖5.4 STC-ISP程序燒錄軟件STC-ISP 是一款單片機(jī)下載編程燒錄軟件,是針對(duì)STC系列單片機(jī)而設(shè)計(jì)的,可下載STC89系列、12C2052 系列和12C5410等系列的STC單片機(jī),使用簡(jiǎn)便,現(xiàn)已被廣泛使用。打開(kāi)STC-IS
28、P,在MCU Type欄目下選中單片機(jī),如STC89C52RC:1) 根據(jù)您的9針數(shù)據(jù)線連接情況選中COM端口,波特率一般保持默認(rèn),如果遇到下載問(wèn)題,可以適當(dāng)下調(diào)一些;2) 按圖示選中各項(xiàng);3) 先確認(rèn)硬件連接正確,按如圖點(diǎn)擊“打開(kāi)文件”并在對(duì)話框內(nèi)找到您要下載的HEX文件;4) 按圖選中兩個(gè)條件項(xiàng),這樣可以使您在每次編譯KEIL時(shí)HEX代碼能自動(dòng)加載到STC-ISP,點(diǎn)擊“Download/下載”;5) 手動(dòng)按下電源開(kāi)關(guān)便即可把可執(zhí)行文件HEX寫(xiě)入到單片機(jī)內(nèi)。如圖示程序?qū)懭胪戤?,目?biāo)板開(kāi)始運(yùn)行程序結(jié)果:圖16 標(biāo)板開(kāi)始運(yùn)行程序圖5.5 實(shí)物圖圖17 實(shí)物圖鍵盤對(duì)應(yīng)有效值表表2鍵盤對(duì)應(yīng)有效值表789/456*123-C0=+使用說(shuō)明鍵盤分布如上圖所示,該計(jì)算器可以計(jì)算簡(jiǎn)單的4位數(shù)內(nèi)的加減乘除運(yùn)算,左側(cè)C為“清零”。1) 上電后,屏幕初始化。2) 計(jì)算。按下數(shù)字鍵,屏幕顯示要運(yùn)算的第一個(gè)數(shù)字,再按下符號(hào)鍵,然后再按下數(shù)字鍵,屏幕顯示要運(yùn)算的第二個(gè)數(shù)字,最后按下“”號(hào)鍵,屏幕上顯示出計(jì)算結(jié)果。3) 如果要再次計(jì)算,可以按下“ON/C”鍵清零,或者按下單片機(jī)的復(fù)位鍵,重新初始化。5.6 仿真圖圖18 仿真圖5.7 計(jì)算展示例:(1)99/3=33圖19 輸入99圖20 輸入/后繼續(xù)輸入3圖21 按下=后顯示的結(jié)果六、設(shè)計(jì)總結(jié)通過(guò)這次單片機(jī)課程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度企業(yè)股份變更與股權(quán)結(jié)構(gòu)調(diào)整協(xié)議書(shū)
- 荒山轉(zhuǎn)讓與林業(yè)產(chǎn)業(yè)園區(qū)建設(shè)2025年度合作協(xié)議
- 二零二五年度北京市房屋出租代理及風(fēng)險(xiǎn)控制合同
- 二零二五年度汽車維修企業(yè)安全生產(chǎn)責(zé)任書(shū)范本
- 2025年度汽車銷售單方違約解除合同賠償倍數(shù)計(jì)算標(biāo)準(zhǔn)書(shū)
- 二零二五年度精英階層相親婚姻合同
- 二零二五年度木工行業(yè)專業(yè)人才培養(yǎng)合同
- 二零二五年度車輛貸款抵押與二手車交易平臺(tái)會(huì)員服務(wù)協(xié)議
- 2025年吉林貨運(yùn)從業(yè)資格證考試模擬題庫(kù)及答案
- 2025年貴州貨運(yùn)叢業(yè)資格證試題
- 窗簾工程方案
- 2024年醫(yī)學(xué)高級(jí)職稱-全科醫(yī)學(xué)(醫(yī)學(xué)高級(jí))筆試歷年真題薈萃含答案
- 2024年蘭州市高三診斷考試(一診)地理試卷(含答案)
- 國(guó)防動(dòng)員建設(shè)總體規(guī)劃方案
- 教案檢查總結(jié)及整改措施
- 商品流通學(xué)課件
- 第2課《美麗的“缺牙巴”》課件
- 2024年青島版數(shù)學(xué)五年級(jí)下冊(cè)第一單元、第二單元測(cè)試題及答案(各一套)
- 胃癌術(shù)后化療后護(hù)理查房
- ESD靜電管理標(biāo)準(zhǔn)課件
- 自行車的力學(xué)知識(shí)研究報(bào)告
評(píng)論
0/150
提交評(píng)論