微型計(jì)算機(jī)課程設(shè)計(jì)報(bào)告_第1頁(yè)
微型計(jì)算機(jī)課程設(shè)計(jì)報(bào)告_第2頁(yè)
微型計(jì)算機(jī)課程設(shè)計(jì)報(bào)告_第3頁(yè)
微型計(jì)算機(jī)課程設(shè)計(jì)報(bào)告_第4頁(yè)
微型計(jì)算機(jī)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

微型計(jì)算機(jī)技術(shù)課程設(shè)計(jì)報(bào)告專業(yè):通信工程班級(jí):通信072班姓名:xxxx學(xué)號(hào):200727067指導(dǎo)教師:xxxx時(shí)間:2010-通信與電子工程學(xué)院鍵盤(pán)接口和顯示設(shè)計(jì)課程設(shè)計(jì)報(bào)告一、1.課設(shè)目的為了進(jìn)一步穩(wěn)固學(xué)習(xí)的理論知識(shí),增強(qiáng)學(xué)生對(duì)所學(xué)知識(shí)的實(shí)際應(yīng)用能力和運(yùn)用所學(xué)的知識(shí)解決實(shí)際問(wèn)題的能力,開(kāi)始為期兩周的課程設(shè)計(jì)。通過(guò)設(shè)計(jì)使學(xué)生在穩(wěn)固所學(xué)知識(shí)的根底之上具有初步的單片機(jī)系統(tǒng)設(shè)計(jì)與應(yīng)用能力。1、通過(guò)本設(shè)計(jì),使學(xué)生綜合運(yùn)用《微型計(jì)算機(jī)技術(shù)》、《C語(yǔ)言程序設(shè)計(jì)》以及《數(shù)字電路》、《模擬電路》等課程的內(nèi)容,為以后從事電子產(chǎn)品設(shè)計(jì)、軟件編程、系統(tǒng)控制等工作奠定一定的根底。2、學(xué)會(huì)使用KEILC和PROTEUS等軟件,用C語(yǔ)言或匯編語(yǔ)言編寫(xiě)一個(gè)較完整的實(shí)用程序,并仿真運(yùn)行,保證設(shè)計(jì)的正確性。3、了解單片機(jī)接口應(yīng)用開(kāi)發(fā)的全過(guò)程:分析需求、設(shè)計(jì)原理圖、選用元器件、布線、編程、調(diào)試、撰寫(xiě)報(bào)告等。2.課設(shè)內(nèi)容設(shè)計(jì)并實(shí)現(xiàn)一個(gè)4×4鍵盤(pán)的接口,并在兩個(gè)數(shù)碼管上顯示鍵盤(pán)所在的行與列。二、1.問(wèn)題分析、方案的提出鍵盤(pán)可以分為獨(dú)立聯(lián)接式和行列式兩類,每一類有可根據(jù)對(duì)鍵盤(pán)的譯碼方法分為編碼鍵盤(pán)和非編碼鍵盤(pán)兩種類型。編碼鍵盤(pán)主要是通過(guò)硬件電路產(chǎn)生被按按鍵的鍵碼和一個(gè)選通脈沖,這種鍵盤(pán)使用方便,但硬件電路復(fù)雜,常常不被微型計(jì)算機(jī)采用。在非編碼鍵盤(pán)中,每個(gè)按鍵的作用只是使相應(yīng)節(jié)點(diǎn)接通和斷開(kāi),每個(gè)按鍵的鍵碼并非由硬件電路產(chǎn)生,而是由相應(yīng)掃描處理程序?qū)λ鼟呙栊纬傻摹R虼?,非編碼鍵盤(pán)硬件電路極為簡(jiǎn)單。在獨(dú)立聯(lián)接式非編碼鍵盤(pán)中,每個(gè)啊年都是彼此獨(dú)立的,均需占用CPU的一條I/O輸入數(shù)據(jù)線。4×4鍵盤(pán)的每個(gè)按鍵菌核單片機(jī)的P1口的兩條相連。假設(shè)沒(méi)有按鍵按下時(shí),單片機(jī)從P1口讀得的引腳電平為“1〞;假設(shè)某一按鍵被按下,那么該鍵所對(duì)應(yīng)的端口線變?yōu)榈仉娖?。單片機(jī)定時(shí)對(duì)P1口進(jìn)行程序查詢,即可發(fā)現(xiàn)鍵盤(pán)上是否有按鍵按下以及哪個(gè)按鍵被按下。實(shí)現(xiàn)4×4鍵盤(pán)的接口需要用到單片機(jī)并編寫(xiě)相應(yīng)的程序來(lái)識(shí)別鍵盤(pán)的十六個(gè)按鍵中哪個(gè)按鍵被按下。因?yàn)榇祟}目還要求將被按下的按鍵顯示出來(lái),因此可以用兩個(gè)數(shù)碼管來(lái)分別顯示被按下的按鍵的行與列。我們可以將4×4鍵盤(pán)的八個(gè)接口與單片機(jī)的P1端口相連,兩個(gè)數(shù)碼管分別與單片機(jī)的P0口和P2口相連。從而編寫(xiě)相應(yīng)的程序使P1口能夠識(shí)別出4×4鍵盤(pán)中的哪個(gè)按鍵被按下并且將被按下的按鍵的這一信息通過(guò)P0口和P2口的兩個(gè)數(shù)碼管顯示出來(lái)?!参覀冞x擇P1口作為輸入口〔將按鍵信息從此端口輸入〕和選擇P0口和P2口作為輸出口〔從該端口將哪個(gè)按鍵被按下的信息傳出來(lái)送到數(shù)碼管上〕是根據(jù)PROTEUS軟件所提供的芯片的引腳排列及布線方便美觀來(lái)考慮的。其實(shí)P1端口、P2端口和P3端口都是輸入輸出端口,都可以輸入輸出數(shù)據(jù)!〕對(duì)于數(shù)碼管的連接,采用了共陽(yáng)極的接法,其下拉電阻應(yīng)保證芯片不會(huì)因?yàn)殡娏鬟^(guò)大而燒壞。2.設(shè)計(jì)思路及原因?qū)τ?×4鍵盤(pán),共有十六個(gè)按鍵。如果每個(gè)按鍵與單片機(jī)的一個(gè)引腳相連,就會(huì)占用16個(gè)引腳,這樣會(huì)使的單片機(jī)的接口不夠用〔即使夠用,也是對(duì)單片機(jī)端口的極大浪費(fèi)〕。因此我們應(yīng)該行列式的接法。行列式非編碼鍵盤(pán)是一種吧所有按鍵排列成行列矩陣的鍵盤(pán)。在這種鍵盤(pán)中,每根行線和列線的交叉處都接有一個(gè)按鍵,每當(dāng)某個(gè)按鍵被按下時(shí),與這個(gè)按鍵相連的行線和列線就會(huì)接通,否那么是斷開(kāi)狀態(tài)。。因此4×4行列式非編碼鍵盤(pán)只需4條行線和4條列線,總共占用8條I/O端口線。大大減少了I/O端口線的利用。假設(shè)沒(méi)有按鍵按下時(shí),單片機(jī)從P1口讀得的引腳電平為“1〞;假設(shè)某一按鍵被按下,那么該鍵所對(duì)應(yīng)的端口線變?yōu)榈仉娖?。因?xEX(X表示任意一個(gè)十六進(jìn)制數(shù))表示4×4鍵盤(pán)的第一行中的某個(gè)按鍵被按下,相應(yīng)的0xDX、0xBX、0x7X(X表示任意一個(gè)十六進(jìn)制數(shù))分別表示鍵盤(pán)的第二行、第三行、第四行;0xXE、0xXD、0xXB、0xX7(X表示任意一個(gè)十六進(jìn)制數(shù))那么分別表示鍵盤(pán)的第一列、第二列、第三列和第四列。例如0xD7是鍵盤(pán)的第二行第四列的按鍵三、1.電路設(shè)計(jì)及功能說(shuō)明4×4鍵盤(pán)的十六個(gè)按鍵分成四行四列分別于P1端口的八條I/O數(shù)據(jù)線相連;兩個(gè)七段數(shù)碼管分別與單片機(jī)的P0口和P2口的低七位I/O數(shù)據(jù)線相連。數(shù)碼管采用共陽(yáng)極的接法,所以需要下拉電阻來(lái)分流。〔在單片機(jī)的P3端口上安裝了一個(gè)喇叭,通過(guò)編程實(shí)現(xiàn)當(dāng)有按鍵按下的時(shí)候喇叭出現(xiàn)響聲予以提示。〕結(jié)合軟件程序,即可實(shí)現(xiàn)4×4鍵盤(pán)的接口及顯示的設(shè)計(jì)。當(dāng)按下鍵盤(pán)其中的一個(gè)按鍵時(shí),數(shù)碼管上會(huì)顯示出該按鍵在4×4鍵盤(pán)上的行值和列值。所以實(shí)現(xiàn)了數(shù)碼管顯示按鍵位置的功能。2.硬件原理框圖及電路圖(包括接口芯片簡(jiǎn)介);電路原理框圖電路圖接口芯片簡(jiǎn)介at89c51芯片管腳圖引腳圖AT89C51內(nèi)部功能圖AT89C51簡(jiǎn)介AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。1.主要特性:?與MCS-51兼容?4K字節(jié)可編程閃爍存儲(chǔ)器?全靜態(tài)工作:0Hz-24MHz?三級(jí)程序存儲(chǔ)器鎖定?128×8位內(nèi)部RAM?32可編程I/O線?兩個(gè)16位定時(shí)器/計(jì)數(shù)器?5個(gè)中斷源?可編程串行通道?低功耗的閑置和掉電模式?片內(nèi)振蕩器和時(shí)鐘電路2.主要管腳說(shuō)明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1〞時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1〞時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“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〔記時(shí)器1外部輸入〕

P3.6/WR〔外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通〕

P3.7/RD〔外部數(shù)據(jù)存儲(chǔ)器讀選通〕

P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。3.芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms來(lái)完成。在芯片擦操作中,代碼陣列全被寫(xiě)“1〞且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。數(shù)碼管簡(jiǎn)介數(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ù)碼管是指將所有發(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ù)碼管的驅(qū)動(dòng)方式數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。①靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示那么需要5×8=40根I/O端口來(lái)驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:〕,實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。②動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制翻開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。四、軟件局部的程序流程圖,算法和使用的編程技巧1.程序流程圖開(kāi)始開(kāi)始掃描P1端口有按鍵按下NYYN確定鍵盤(pán)的行列值行列值正確數(shù)碼管顯示按鍵行列值結(jié)束2.編程技巧1.在按鍵掃描程序中,通過(guò)for循環(huán)語(yǔ)句實(shí)現(xiàn)被按下的按鍵的行值確實(shí)定,用switch語(yǔ)句實(shí)現(xiàn)列值確實(shí)定。0xEX(X表示任意一個(gè)十六進(jìn)制數(shù))表示4×4鍵盤(pán)的第一行中的某個(gè)按鍵被按下,相應(yīng)的0xDX、0xBX、0x7X(X表示任意一個(gè)十六進(jìn)制數(shù))分別表示鍵盤(pán)的第二行、第三行、第四行;0xXE、0xXD、0xXB、0xX7(X表示任意一個(gè)十六進(jìn)制數(shù))那么分別表示鍵盤(pán)的第一列、第二列、第三列和第四列;2.ucRow+ucLine+1即為被按下的按鍵的行列值;3.用十六個(gè)switch語(yǔ)句實(shí)現(xiàn)對(duì)單片機(jī)P0端口和P2口的I/O數(shù)據(jù)線的控制,來(lái)控制數(shù)碼管顯示被按下按鍵的行值和列值;4.硬件設(shè)備中還在AT89C51芯片的P3口安裝一喇叭,并且在源程序中編寫(xiě)了相應(yīng)程序段使當(dāng)按鍵被按下時(shí)喇叭會(huì)發(fā)出聲音來(lái)提示按鍵被按下。五、源程序代碼〔C語(yǔ)言編寫(xiě)〕#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint#defineSCANPORTP1sbitspk=P3^0;ucharcodetable[]={0xF9,0xA4,0xB0,0x99}; //1,2,3,4的共陽(yáng)字形碼ucharuca_LineScan[]={0xEF,0xDF,0xBF,0x7F}; //ucharucKeyScan(){ ucharTemp=0; ucharucRow=0,ucLine=0; // 給行列值賦初值0 for(ucLine=0;ucLine<4;ucLine++) //對(duì)P1端口掃描來(lái)確定鍵盤(pán)行值 { SCANPORT=uca_LineScan[ucLine]; Temp=SCANPORT&0x0F; if(Temp!=0x0F) { switch(Temp) { case0x0E:ucRow=10;break; //假設(shè)為0x0E,那么選中鍵盤(pán)第一列 case0x0D:ucRow=20;break; //假設(shè)為0x0D 那么選中鍵盤(pán)第二列 case0x0B:ucRow=30;break; case0x07:ucRow=40;break; default:ucRow=50;break; //未選中鍵盤(pán)列值 } break; } } SCANPORT=0x0F; returnucRow+ucLine+1; //返回被按下鍵盤(pán)的行列值,即確定被按下的按鍵的位置}voidvKeyProcess(unsignedcharucKeyCode){ switch(ucKeyCode) { case11:P0=table[0];P2=table[0];spk=1;break; //按鍵K1-1被按下 case12:P0=table[1];P2=table[0];spk=1;break; case13:P0=table[2];P2=table[0];spk=1;break; case14:P0=table[3];P2=table[0];spk=1;break; case21:P0=table[0];P2=table[1];spk=1;break; //按鍵K2-1被按下 case22:P0=table[1];P2=table[1];spk=1;break; case23:P0=table[2];P2=table[1];spk=1;break; case24:P0=table[3];P2=table[1];spk=1;break; //按鍵K2-4被按下 case31:P0=table[0];P2=table[2];spk=1;break; case32:P0=table[1];P2=table[2];spk=1;break; //按鍵K3-2被按下 case33:P0=table[2];P2=table[2];spk=1;break; case34:P0=table[3];P2=table[2];spk=1;break; case41:P0=table[0];P2=table[3];spk=1;break; case42:P0=table[1];P2=table[3];spk=1;break; //按鍵K4-2被按下 case43:P0=table[2];P2=table[3];spk=1;break; //按鍵K4-3被按下 case44:P0=table[3];P2=table[3];spk=1;break; default:break; }}voidmain() //主程序{ spk=0; while(1) // 開(kāi)始循環(huán) { vKeyProcess(ucKeyScan()); //調(diào)用掃描鍵盤(pán)并確定按鍵行列值的子程序 spk=0; }}六、仿真過(guò)程綜述1.按照設(shè)計(jì)思路在PROTEUS軟件中找到相應(yīng)元器件,按照正確的連線方法將各個(gè)元器件連起來(lái)。再用PROTEUS軟件仿真時(shí),為防止連線的復(fù)雜性,可以使用在要連線的引腳上標(biāo)注相同的符號(hào)的方法。這樣可以使PROTEUS軟件窗口中的連線少一些,使電路圖更加清晰;2.按照硬件電路在KEILC軟件中編寫(xiě)程序,對(duì)編寫(xiě)的程序進(jìn)行編譯,在確定沒(méi)有錯(cuò)誤后生成十六進(jìn)制文件并加載到PROTEUS軟件中原理圖的AT89C51芯片中;3.在PROTEUS軟件中點(diǎn)擊運(yùn)行按鈕,實(shí)現(xiàn)仿真:按下鍵盤(pán)上的按鍵,觀察數(shù)碼管顯示的是否正確。七、調(diào)試過(guò)程中的主要難點(diǎn)(自己遇到的)及解決思路和方法因?yàn)樯暇W(wǎng)查到的資料與題目要求的有一定的差異,自己需要修改其硬件電路局部和程序,這樣就會(huì)產(chǎn)生一定的問(wèn)題:1.在硬件電路連線時(shí)用到了總線,造成了單線與總線虛連和錯(cuò)連的現(xiàn)象。使得自己感覺(jué)硬件與軟件都沒(méi)問(wèn)題但就是仿真不出來(lái)。2.程序?qū)懞?,編譯好后忘記加載到單片機(jī)芯片上就開(kāi)始仿真,走了不少的彎路,3.單線與總線連接時(shí)應(yīng)該確保單線準(zhǔn)確的連在總線上,而且應(yīng)該防止兩條單線連在總線的同一點(diǎn)處。否那么產(chǎn)生的錯(cuò)誤是非常致命的,而且還不容易找出;因此在單線與總線連接時(shí)一定要注意連接是否正確得當(dāng),并且將該標(biāo)注的標(biāo)號(hào)正確標(biāo)注;4.為防止電路圖中連線過(guò)多,可以采用將需要連線的引腳標(biāo)注上相同的符號(hào)的方法。這樣可以盡可能少的減少連線錯(cuò)誤,并是電路圖清晰,美觀;5.因?yàn)樵摂?shù)碼管是用的共陽(yáng)極的接法,其下拉電阻起到分流的作

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論