久久久久综合给合狠狠狠,人人干人人模,大陆一级黄色毛片免费在线观看,亚洲人人视频,欧美在线观看一区二区,国产成人啪精品午夜在线观看,午夜免费体验

薈聚奇文、博采眾長、見賢思齊
當(dāng)前位置:公文素材庫 > 計(jì)劃總結(jié) > 工作總結(jié) > 單片機(jī)實(shí)訓(xùn)總結(jié)

單片機(jī)實(shí)訓(xùn)總結(jié)

網(wǎng)站:公文素材庫 | 時(shí)間:2019-05-28 03:19:15 | 移動(dòng)端:單片機(jī)實(shí)訓(xùn)總結(jié)

單片機(jī)實(shí)訓(xùn)總結(jié)

單片機(jī)心得總結(jié)

通過這一個(gè)學(xué)期的單片機(jī)學(xué)習(xí),我收獲了很多關(guān)于單片機(jī)的知識(shí),并且這些知識(shí)和日常的生活息息相關(guān)。了解了一些簡單程序的錄入,LED顯示器、鍵盤、和顯示器的應(yīng)用和原理。

LED顯示器:LED顯示器是由發(fā)光二管組成顯示字段的器件。通常的8段LED顯示器是由8個(gè)發(fā)光二極管組成,LED顯示器分共陽極和共陰極兩種。有段選碼和和位選碼。當(dāng)LED顯示器每段的平均電流位5MA時(shí),就有較滿意的亮度,一般選擇斷碼5-10MA電流;位線的電流應(yīng)選擇40-80MA。LED顯示器的顯示方式有動(dòng)態(tài)和靜態(tài)兩種。7289A芯片是具有SPI串行接口功能的顯示鍵盤控制芯片,它可同時(shí)取得8位共陰極數(shù)碼管和64個(gè)鍵的鍵盤矩陣。7289A的控制指令分為兩類:8位寬度的單字節(jié)指令和16位寬度雙字節(jié)指令;還有閃爍指令和消隱指令。7289A采用串行方式SPI總線與微處理器通信;7289A與AT89C52接口電路,在實(shí)際電路中無論接不接鍵盤,電路中連接到其各段上的8個(gè)100千歐的下拉電阻均不可以省去,如果不接鍵盤而只接顯示器可以省去8個(gè)10千歐電阻,若僅接鍵盤而不接顯示器,可省去串入DP及SA-SG連線的8個(gè)220歐電阻,7289A還需要外接晶體振蕩電路。液晶顯示器簡稱LCD,其顯示原理是用經(jīng)過處后的液晶具有能改變光線傳輸方向的特性,達(dá)到顯示字符和圖形的目的。最簡單的筆段式液晶顯示器類似于LCD顯示器,可以顯示簡單的字符和數(shù)字,而目前大量使用的是點(diǎn)陣式LCD顯示器,既可以顯示字符和數(shù)字也可以顯示漢字和圖形。如果把LCD顯示屏、背光可變電源、接口控制邏輯、驅(qū)動(dòng)集成芯片等部件構(gòu)成一個(gè)整體,是的與CPU接口十分方便。

鍵盤:鍵盤是最常見的計(jì)算機(jī)輸入設(shè)備,它廣泛應(yīng)用于微型計(jì)算機(jī)和各種終端設(shè)備上。計(jì)算機(jī)操作者通過鍵盤向計(jì)算機(jī)輸入各種指令、數(shù)據(jù),指揮計(jì)算機(jī)的工作。按照鍵盤的工作原理和按鍵方式的不同,可以劃分為四種:機(jī)械式鍵盤采用類似金屬接觸式開關(guān),工作原理是使觸點(diǎn)導(dǎo)通或斷開,具有工藝簡單、噪音大、易維護(hù)的特點(diǎn)。塑料薄膜式鍵盤鍵盤內(nèi)部共分四層,實(shí)現(xiàn)了無機(jī)械磨損。其特點(diǎn)是低價(jià)格、低噪音和低成本,已占領(lǐng)市場絕大部分份額。導(dǎo)電橡膠式鍵盤觸點(diǎn)的結(jié)構(gòu)是通過導(dǎo)電橡膠相連。鍵盤內(nèi)部有一層凸起帶電的導(dǎo)電橡膠,每個(gè)按鍵都對應(yīng)一個(gè)凸起,按下時(shí)把下面的觸點(diǎn)接通。這種類型鍵盤是市場由機(jī)械鍵盤向薄膜鍵盤的過渡產(chǎn)品。無接點(diǎn)靜電電容式鍵盤使用類似電容式開關(guān)的原理,通過按鍵時(shí)改變電極間的距離引起電容容量改變從而驅(qū)動(dòng)編碼器。特點(diǎn)是無磨損且密封性較好。

按照按鍵方式的不同鍵盤可分為接觸式和無觸點(diǎn)式兩類。接觸式鍵盤就是我們通常所說的機(jī)械式鍵盤,它又分為普通觸點(diǎn)式和干簧式。普通觸點(diǎn)式的兩個(gè)觸點(diǎn)直接接觸,從而使電路閉合,產(chǎn)生信號(hào);而干簧式鍵盤則是在觸點(diǎn)間加裝磁鐵,當(dāng)鍵按下時(shí),依靠磁力使觸點(diǎn)接觸,電路閉合。與普通觸點(diǎn)式鍵盤相比,干簧式鍵盤具有響應(yīng)速度快、使用壽命長、觸點(diǎn)不易氧化等優(yōu)點(diǎn)。無觸點(diǎn)式鍵盤又分為電容式、霍爾式和觸摸式三種。其中電容式是我們最常用到的鍵盤類型,它的觸點(diǎn)之間并非直接接觸,而是當(dāng)按鍵按下時(shí),在觸點(diǎn)之間形成兩個(gè)串聯(lián)的平板電容,從而使脈沖信號(hào)通過,其效果與接觸式是等同的。電容式鍵盤擊鍵時(shí)無噪聲,響應(yīng)速度快,但是價(jià)格很高一些。

顯示器:按照顯示器的顯示管分類CRT、LCD。按顯示色彩分類單色顯示器、彩色顯

示器。按大小分類通常有14寸、15寸、17寸和19寸,或者更大。顯示管的屏幕上涂有一層熒光粉,電子槍發(fā)射出的電子擊打在屏幕上,使被擊打位置的熒光粉發(fā)光,從而產(chǎn)生了圖像,每一個(gè)發(fā)光點(diǎn)又由“紅”“綠”“藍(lán)”三個(gè)小的發(fā)光點(diǎn)組成,這個(gè)發(fā)光點(diǎn)也就是一個(gè)象素。由于電子束是分為三條的,它們分別射向屏幕上的這三種不同的發(fā)光小點(diǎn),從而在屏幕上出現(xiàn)絢麗多彩的畫面。顯示器顯示畫面是由顯示卡來控制的。若仔細(xì)觀察顯示器上的文本或圖像是由點(diǎn)組成的,屏幕上點(diǎn)越多越密,則分辨率越高。

屏幕上相鄰兩個(gè)同色點(diǎn)的距離稱為點(diǎn)距,常見點(diǎn)距規(guī)格有0.31mm、0.28mm、0.25mm

等。顯示器點(diǎn)距越小,在高分辨率下越容易取得清晰的顯示效果。電子束采用光柵掃描方式,從屏幕左上角一點(diǎn)開始,向右逐點(diǎn)進(jìn)行掃描,形成一條水平線;到達(dá)最右端后,又回到下一條水平線的左端,重復(fù)上面的過程;當(dāng)電子束完成右下角一點(diǎn)的掃描后,形成一幀。此后,電子束又回到左上方起點(diǎn),開始下一幀的掃描。這種方法也就是常說的逐行掃描顯示。而隔行掃描指電子束在掃描時(shí)每隔一行掃一線,完成一屏后再返回來掃描剩下的線,這與電視機(jī)的原理一樣。隔行掃描的顯示器比逐行掃描閃爍得更厲害,也會(huì)讓使用者的眼睛更疲勞。完成一幀所花時(shí)間的倒數(shù)叫垂直掃描頻率,也叫刷新頻率,比如60Hz、75Hz等。

通過這幾天的單片機(jī)的實(shí)訓(xùn),我在理論的基礎(chǔ)上更深刻的掌握了單片機(jī)的深層內(nèi)容及實(shí)際生活中的應(yīng)用,實(shí)訓(xùn)鍛煉了自己動(dòng)手能力和思維能力,還有在軟件方面的編程能力,讓我受益匪淺,同時(shí)也暴露出一些平時(shí)學(xué)習(xí)上的問題,讓我深刻反思。這些問題的發(fā)現(xiàn)將為我以后的學(xué)習(xí)和工作找明道路,查漏補(bǔ)缺為進(jìn)一步學(xué)習(xí)作好準(zhǔn)備。通過實(shí)訓(xùn),讓我懂得了如何編寫一些簡單的程序,學(xué)會(huì)了如何制作單片機(jī)應(yīng)用程序,并且可以在今后的日常生活中靈活運(yùn)用。

擴(kuò)展閱讀:單片機(jī)實(shí)習(xí)總結(jié)

專業(yè)綜合實(shí)習(xí)總結(jié)

201*-201*(2)

專業(yè)班級(jí):電子信息工程0802學(xué)生學(xué)號(hào):0414080224學(xué)生姓名:

指導(dǎo)教師:張?jiān)啤L春、馬崇霄、杜殿會(huì)實(shí)習(xí)時(shí)間:201*.6.20201*.7.15

機(jī)電工程學(xué)院

一、實(shí)習(xí)目的和意義

1、實(shí)習(xí)目的:

(1)利用單片機(jī)小系統(tǒng)實(shí)習(xí)板,掌握電路原理圖;

(2)通過對系統(tǒng)板的測試,了解系統(tǒng)板的工作原理及性能,掌握元器件及系統(tǒng)故障的排除方法;

(3)掌握程序編制及調(diào)試方法,完成系統(tǒng)初始化、存儲(chǔ)器操作、端口操作、模擬量采集、模擬量輸出、串口通訊、IIC、日歷時(shí)鐘芯片、鍵盤顯示等程序的編制及調(diào)試。

(4)通過單片機(jī)系統(tǒng)的調(diào)試、程序編制及運(yùn)行,掌握單片機(jī)系統(tǒng)的工作原理、開發(fā)方法和操作方法。2、實(shí)習(xí)意義:

電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,促進(jìn)了微型計(jì)算機(jī)測量和控制技術(shù)的迅速發(fā)展和廣泛應(yīng)用。微機(jī)測控技術(shù)的應(yīng)用已滲透到國民經(jīng)濟(jì)的各個(gè)部門?梢哉f,微機(jī)測控技術(shù)的應(yīng)用是產(chǎn)品提高檔次和推陳出新的有效途徑。創(chuàng)新精神和實(shí)踐能力是對新時(shí)期高素質(zhì)人才的基本要求。通過本實(shí)習(xí)不但可以掌握單片機(jī)軟、硬件的綜合調(diào)試方法,而且可以熟練掌握電路原理圖,激發(fā)對單片機(jī)智能性的探索精神,提高學(xué)生的綜合素質(zhì),培養(yǎng)學(xué)生應(yīng)用單片機(jī)實(shí)現(xiàn)對工業(yè)控制系統(tǒng)的設(shè)計(jì)、開發(fā)與調(diào)試的能力。在制作學(xué)習(xí)過程中,不但可以掌握軟、硬件的綜合調(diào)試方法,而且可以使學(xué)生對單片機(jī)智能性產(chǎn)生強(qiáng)烈的欲望。達(dá)到最大限度地掌握微機(jī)應(yīng)用技術(shù),軟件及接口設(shè)計(jì)和數(shù)據(jù)采集與處理的技能,培養(yǎng)電綜合實(shí)踐素質(zhì)的目。

二、實(shí)習(xí)內(nèi)容

1.熟悉“單片機(jī)課程實(shí)習(xí)”電路板,領(lǐng)會(huì)、掌握該電路板的設(shè)計(jì)原理及硬件布局。2.掌握單片機(jī)技術(shù)應(yīng)用平臺(tái)keil軟件的學(xué)習(xí)。

3.借助平臺(tái)軟件,學(xué)習(xí)開發(fā)板的使用,按照要求編制、調(diào)試出正確的匯編語言程序。4.學(xué)習(xí)適合本開發(fā)平臺(tái)軟件STC-ISP的在線單片機(jī)燒錄。

5.針對實(shí)習(xí)電路板的功能,編制、調(diào)試、編譯匯編語言程序,下載燒錄并在實(shí)驗(yàn)板上運(yùn)行,或利用軟件proteus進(jìn)行軟件仿真。

實(shí)現(xiàn)的功能:

1.led顯示模塊:單向循環(huán)流水led顯示、雙向循環(huán)流水led顯示、花樣流水燈的顯示,使用查表方法編制任意點(diǎn)亮歷程的實(shí)現(xiàn),使用軟件延時(shí);

2.數(shù)碼管顯示模塊:一位靜態(tài)數(shù)碼管顯示0到9和0到F、二位靜態(tài)數(shù)碼管顯示0到99、三位靜態(tài)數(shù)碼管顯示0到999、四位靜態(tài)數(shù)碼管顯示0到9999;陰極和陽極四位動(dòng)態(tài)數(shù)碼管顯示;74LS驅(qū)動(dòng)4位靜態(tài)數(shù)碼管顯示;利用74HC595四位靜態(tài)數(shù)碼管顯示;使用串行靜態(tài)顯示和動(dòng)態(tài)掃描顯示兩種方式;

3.鍵盤模塊:利用4×4矩陣鍵盤按鍵對應(yīng)置數(shù)顯示“0~F”;使用鍵盤的行列掃描方式;

三、硬件介紹

(一)LED顯示模塊:

C21930pFU1XTAL1X1CRYSTALC118XTAL29RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617R11kC31uF29303130pF12345678PSENALEEAR251kP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51D7LED-REDD6LED-REDD5LED-REDD4LED-REDD3LED-REDD2LED-REDD1LED-REDD0LED-RED圖1流水燈顯示

C130pX1CRYSTALVCCC230pU119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617D1D2D3D4D5D6D7D8LED-REDR3R4200R5201*8XTAL2C31uF9LED-GREENRSTR21kLED-REDLED-REDR6201*00R151k293031PSENALEEAR7R8200LED-RED12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51LED-REDR9R10200LED-REDLED-RED200圖2鍵盤控制循環(huán)燈(二)數(shù)碼管顯示模塊:

R10R4R3R5R6R7R8R910k10k10k10k10k10k10k10kC21930pFU1XTAL1X1CRYSTALC118XTAL29RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617R11kC31uF29303130pF12345678PSENALEEAR251kP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51圖31位靜態(tài)數(shù)碼管顯示

VCCVCCC21930pFR10R4R3R5R6R7R8R9R14R13R12R11R15R16R18R17R22R21R20R19R23R24R26R25R34R33R32R27R28R29R30R31U1XTAL110k10k10k10k10k10k10k10kP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161710k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10kX1CRYSTAL18XTAL29RSTR11kC31uF293031PSENALEEAR251k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51圖44位靜態(tài)數(shù)碼管顯示P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.3P2.2P2.1P2.0VCCC1U130PF191P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RXDTXDINT0INT1T0T1WRRDP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.723456789XTAL1RP1X1CRYSTAL18C230PFXTAL2C3910uRSTVCCRESPACK-8R110kVCC293031PSENALEEAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51圖54位動(dòng)態(tài)數(shù)碼管顯示VCCRP1U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617D0D1D2D3D4D5D6D7123456789RESPACK-8D0D1D2D3D4D5D6D7WE1WE2WE3WE4WE5WE6abcdefghU223456789D0D1D2D3D4D5D6D7LEOE74HC573Q0Q1Q2Q3Q4Q5Q6Q71918171615141312abcdefgh18XTAL2DULA1119RSTU3D0D1D2D3D4D5D6D723456789D0D1D2D3D4D5D6D7LEOE74HC573WRQ0Q1Q2Q3Q4Q5Q6Q71918171615141312WE1WE2WE3WE4WE5WE6293031PSENALEEADULAWELA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C51T0T0T1WRRDT1WELA111RD圖6獨(dú)立鍵盤加減清零數(shù)碼管顯示U274LS164U374LS16413121110131211101312111013121110654365436543654U41DSRG81D74LS1643U574L1DSRG81DSRG8C1/->C1/->C1/->RRRC1/->8&&&&21821821899921RXDC1U130PF19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RXDTXDINT0INT1T0T1WRRDTXDVCCRP11P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.723456789RESPACK-8X1CRYSTALC230PF18XTAL2C39RSTVCCR110k10uVCC293031PSENALEEAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C519RVCCSRG8圖74位74LS驅(qū)動(dòng)靜態(tài)數(shù)碼管顯示

161514131211109161514131211109161514131211109RN110kRN210kRN310k161514131211109RN410k123456781234567812345678976543211597654321159765432115Q7Q7Q6Q5Q4Q3Q2Q1Q0Q7Q7Q6Q5Q4Q3Q2Q1Q0Q7Q7Q6Q5Q4Q3Q2Q1Q074HC59574HC59574HC595Q7Q7Q6Q5Q4Q3Q2Q1Q0131012U2U3U4976543211512345678U574HC595DSSH_CPDSSH_CPDSSH_CP131012141113101214111310121411P1.0RXDTXDC130pFX1CRYSTALU119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39P0.038P0.137P0.236P0.335P0.434P0.533P0.632P0.721222324252627281011121314151617P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RXDTXDINT0INT1T0T1WRRDC2C330pF10u18XTAL2RP11P0.02P0.13P0.24P0.35P0.46P0.57P0.68P0.79RESPACK-89RSTR110k293031PSENALEEAP1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C511411DSSH_CPST_CPST_CPST_CPST_CPOEMROEMROEMROEMR圖84位74HC595靜態(tài)顯示(三)鍵盤顯示模塊:

C1191nFCRYSTALU1XTAL1X1C2GNDVCC18XTAL21nFC39100uR110kVCCRSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RXDTXDINT0INT1T0T1WRRDGND293031PSENALEEAVCCP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51R3R4R5R6R7R8R9R1010k10k10k10k10k10k10k10kP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0VCCRP11P1.1P0.02P0.13P0.24P0.35P0.46P0.57P0.68P0.79RESPACK-8P1.2P1.3P1.7P1.6P1.5P1.4圖90到F矩陣鍵盤

四、軟件程序流程圖

流水燈循環(huán)左移右移程序框圖:開始運(yùn)行主程序給P1口賦初值80HA循環(huán)左移,并在P1口輸出否調(diào)用延時(shí)程序判別A與80H是否相等是A循環(huán)右移,并在P1口輸出否調(diào)用延時(shí)程序判別A與01H是否相等結(jié)束

是1、

、0到F一位靜態(tài)顯示程序框圖:開始1.建0F的字形碼表2.用累加器A控制P0口并傳遞參數(shù)3.R0記錄目前顯示的字型碼R0=0A=R0查字型碼表,顯示0延時(shí)INCR0是R0=16?否繼續(xù)查表,顯示下一個(gè)字型延時(shí)

3、0到9一位靜態(tài)顯示程序框圖:

開始(P0)=0A=P0查字型碼表,取得段驅(qū)動(dòng)碼段驅(qū)動(dòng)碼送P0口延時(shí)(R0)+1NR0=10?YR0=02

4、動(dòng)態(tài)數(shù)碼顯示程序框圖:

開始P0口,P2口初始化置相應(yīng)的使能位查表顯示延時(shí)N顯示完Y置使能位處值返回

5、4×4矩陣矩陣鍵盤數(shù)碼顯示程序框圖:主程序圖:

開始掃描N是否有鍵按下YY識(shí)別是哪一個(gè)鍵按下通過P0口查詢顯示該序號(hào)

判別是否有鍵按下程序:

開始P1=FFH,P1.2=0P1=FFH,P1.0=0有鍵按下嗎?有鍵按下嗎?延時(shí)去抖動(dòng)延時(shí)10ms真的有鍵按下?真的有鍵按下?根據(jù)當(dāng)前狀態(tài)識(shí)別按鍵根據(jù)當(dāng)前狀態(tài)識(shí)別按鍵P1=FFH,P1.1=0P1=FFH,P1.3=0有鍵按下嗎?有鍵按下嗎?延時(shí)10ms延時(shí)10ms真的有鍵按下嗎?真的有鍵按下嗎?根據(jù)當(dāng)前狀態(tài)識(shí)別按鍵根據(jù)當(dāng)前狀態(tài)識(shí)別按鍵

五、實(shí)習(xí)的心得體會(huì)

本次單片機(jī)實(shí)習(xí)我們一共完成了三個(gè)模塊的程序設(shè)計(jì),包括:led顯示模塊、數(shù)碼管顯示模塊和鍵盤模塊。分別實(shí)現(xiàn)了流水燈的循環(huán)點(diǎn)亮控制、數(shù)碼管的靜態(tài)和動(dòng)態(tài)計(jì)數(shù)顯示,還有矩陣鍵盤按鍵控制數(shù)碼管顯示的程序設(shè)計(jì)。然后我們分別用protues系統(tǒng)仿真軟件對各個(gè)模塊進(jìn)行了模擬仿真,用keil軟件編制了匯編語言程序,驗(yàn)證了我們所設(shè)計(jì)的程序。

這次實(shí)習(xí)還使我理解了編寫程序的一些技巧。單片機(jī)應(yīng)用系統(tǒng)一般由包含多個(gè)模塊的主程序和由各種子程序組成。每一模塊都要完成一個(gè)明確的任務(wù),實(shí)現(xiàn)某個(gè)具體的功能,如計(jì)算、接受、發(fā)送、延時(shí)、顯示等。采用模塊化程序設(shè)計(jì)方法,就是將這些具體功能程序進(jìn)行獨(dú)立設(shè)計(jì)和分別調(diào)試,最后將這些模塊程序裝配成整體程序并進(jìn)行聯(lián)合調(diào)試。模塊化程序設(shè)計(jì)方法的優(yōu)點(diǎn):一個(gè)模塊可以為多個(gè)程序所共享;單個(gè)功能明確的程序模塊的設(shè)計(jì)和調(diào)試比較方便,容易完成;利用已經(jīng)編好的成熟模塊,將大大縮短開發(fā)程序的時(shí)間,降低開發(fā)成本。采用循環(huán)結(jié)構(gòu)和子程序結(jié)構(gòu)可以使程序的容量大大減少,提高程序的效率,節(jié)省內(nèi)存。對于多重循環(huán),要注意各重循環(huán)的初值和循環(huán)結(jié)束的條件,避免出現(xiàn)程序無休止循環(huán)的“死循環(huán)”現(xiàn)象;

通過這次的實(shí)習(xí)我發(fā)現(xiàn),只有理論水平提高了,才能夠?qū)⒄n本知識(shí)與實(shí)踐相結(jié)合,理論知識(shí)服務(wù)于教學(xué)實(shí)踐,以增強(qiáng)自己的動(dòng)手能力。這次實(shí)習(xí)十分有意義,這次實(shí)習(xí)我們知道了理論和實(shí)踐的距離,也知道了理論和實(shí)踐相結(jié)合的重要性。

回顧起此次課程設(shè)計(jì),感覺受益匪淺,從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,學(xué)到很多很多的課堂理論中沒學(xué)到過的東西,不僅對鍵盤的識(shí)別技術(shù)這一章節(jié)的知識(shí)點(diǎn)有了深刻的認(rèn)識(shí),而且對這學(xué)期開設(shè)的單片機(jī)這門課程有了更全面的了解,尤其是在學(xué)習(xí)使用proteus軟件片編程和仿真時(shí)收獲良多。通過這次單片機(jī)課程設(shè)計(jì),還使我懂得了實(shí)踐的重要性。同時(shí)在程序調(diào)試的過程中提高自己的發(fā)現(xiàn)問題、解決問題、實(shí)際動(dòng)手和獨(dú)立思考的能力。

這次課程設(shè)計(jì)能順利的完成,除了我們的努力外,當(dāng)然也離不開指導(dǎo)老師申老師的辛勤指導(dǎo),致使我在設(shè)計(jì)的過程中學(xué)到了很多實(shí)用性的知識(shí)。同時(shí),對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師表示忠心的感謝!

附錄:程序清單

P1口閃亮:

ORG0000HLOOP:MOVP1,#01HACALLDELAYMOVP1,#00HACALLDELAYSJMPLOOPDELAY:MOVR7,#250DEL1:MOVR6,#250DJNZR6,$DJNZR7,DEL1RETEND

流水燈循環(huán)左移右移:方法一:

ORG0000HMOVA,#01HLOOP:MOVP1,AMOVR5,#10LOOP1:ACALLDELAYDJNZR5,LOOP1RLA

JBACC.7,LOOP2SJMPLOOPLOOP2:MOVP1,AMOVR5,#10LOOP3:ACALLDELAYDJNZR5,LOOP3RRA

JBACC.0,LOOPSJMPLOOP2DELAY:MOVR7,#250DEL1:MOVR6,#250DJNZR6,$DJNZR7,DEL1RETEND方法二:

ORG0000HMOVA,#80HLOOP:RLA

MOVP1,AACALLDELAY

CJNEA,#80H,LOOP

LOOP1:RRAMOVP1,AACALLDELAY

CJNEA,#01H,LOOP1SJMPLOOP

DELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND方法三:

ORG0000HMOVA,#80HMOVR0,#08HLOOP:RLAMOVP1,AACALLDELAY

DJNZR0,LOOPMOVR0,#07HLOOP1:RRAMOVP1,AACALLDELAYDJNZR0,LOOP1MOVR0,#07HSJMPLOOP

DELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND方法四:

ORG0000HMOVA,#00HSETBCYLOOP:RLCAJCLOOP1MOVP1,A

ACALLDELAY

SJMPLOOPLOOP1:RRCAJCLOOPMOVP1,AACALLDELAYSJMPLOOP1DELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND

從中間向兩邊,再從兩邊向中間循環(huán)點(diǎn)亮:

ORG0000HSTAR:MOVR0,#00HMOVR1,#07MOVA,R0

MOVDPTR,#TABLOOP:MOVCA,@A+DPTRMOVP1,AMOVR5,#10LOOP1:ACALLDELDJNZR5,LOOP1INCR0MOVA,R0DJNZR1,LOOPSJMPSTARDEL:MOVR7,#200DEL1:MOVR6,#250DJNZR6,$DJNZR7,DEL1RETTAB:DB

18H,24H,42H,81H,42H,24H,18HEND

鍵盤控制流水燈循環(huán)點(diǎn)亮:

按鍵P1.5P1.6控制循環(huán)燈移動(dòng)方向ORG0000HAJMPMAINORG0003HAJMPETORG0030HMAIN:MOVSP,#60HSETBEASETBIT0SETBEX0CLRC

MOVA,#0FFHMOVP2,ALCALLDEL

LOOP:JNB21H.1,L;檢測標(biāo)志RRCA;右移動(dòng)MOVP2,AAJMPDEE

L:RLCA;左移動(dòng)MOVP2,ADEE:LCALLDELAJMPLOOPET:CLREAPUSHACCPUSHPSWLCALLDELAYMOVA,#0FFHMOVP1,ANOPNOP

MOVA,P1;讀鍵值A(chǔ)NLA,#0F0H

CJNEA,#0F0H,NEXT1AJMPNEXT

NEXT1:JBACC.5,NEXT2

CLR21H.1;按鍵后產(chǎn)生標(biāo)志AJMPNEXT

NEXT2:JBACC.6,NEXT

SETB21H.1;按鍵后產(chǎn)生標(biāo)志NEXT:SETBEAPOPPSWPOPACCHHH:RETI

DEL:MOVR6,#250DEL11:MOVR5,#250DJNZR5,$DJNZR6,DEL11RET

DELAY:MOVR6,#10DEL1:MOVR5,#200DEL2:DJNZR5,$DJNZR6,DEL1RETEND花樣流水燈:

ORG0000HSTART:MOVR0,#00HMOVP1,#00HLOOP:MOVA,R0ADDA,#0CHMOVCA,@A+PCCJNEA,#01H,XSHSJMPSTARTXSH:MOVP1,AACALLDELAYINCR0SJMPLOOP

DB0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0FH,0F0H,0FH,0F0H,0FH,0F0H,0FH

DB0F0H,0FH,0F0H,0AAH,55H,0AAH,55H,0AAH,55H,0AAH,55H,0AAH,55H,81H,42H

DB24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H

DB42H,24H,18H,24H,42H,81H,03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH

DB06H,03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH,06H,03H,01HDELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND

1位靜態(tài)數(shù)碼顯示:ORG0000HMOVR0,#0FFHDISPLY:INCR0

CJNER0,#0AH,DISPLY1MOVR0,#0FFHSJMPDISPLYDISPLY1:MOVA,R0ADDA,#06HMOVCA,@A+PCMOVP0,AACALLDELAYSJMPDISPLY

DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHDELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RET

2位靜態(tài)數(shù)碼顯示:ORG0000HMOVR0,#0FFHMOVR1,#00HDISPLY:INCR0

CJNER0,#0AH,DISPLY1INCR1

CJNER1,#0AH,DISPLY2MOVR0,#0FFHMOVR1,#00HMOVP0,#0FFHAJMPDISPLYDISPLY2:MOVA,R1ADDA,#10HMOVCA,@A+PCMOVP0,AMOVR0,#0FFHAJMPDISPLYDISPLY1:MOVA,R0ADDA,#06HMOVCA,@A+PCMOVP2,AACALLDELAYAJMPDISPLYDTAB:DB

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHDELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND

3位靜態(tài)數(shù)碼顯示:ORG0000HSTART:MOVR0,#0FFHMOVR1,#00HMOVR2,#00HMOVP3,#0FFHMOVP2,#0FFHMOVP0,#0FFHDISPLY:INCR0

CJNER0,#0AH,DISPLY1MOVR0,#0FFHINCR1

CJNER1,#0AH,DISPLY2MOVR1,#00HMOVP2,#0C0HINCR2

CJNER2,#0AH,DISPLY3SJMPSTARTDISPLY3:MOVA,R2ADDA,#16HMOVCA,@A+PCMOVP0,ASJMPDISPLYDISPLY2:MOVA,R1ADDA,#0EHMOVCA,@A+PCMOVP2,A

SJMPDISPLYDISPLY1:MOVA,R0ADDA,#06HMOVCA,@A+PCMOVP3,AACALLDELAYSJMPDISPLY

DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHDELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND

4位靜態(tài)數(shù)碼顯示:ORG0000HSTART:MOVR0,#0FFHMOVR1,#00HMOVR2,#00HMOVR3,#00HMOVP1,#0FFHMOVP3,#0FFHMOVP2,#0FFHMOVP0,#0FFHDISPLY:INCR0

CJNER0,#0AH,DISPLY1MOVR0,#0FFHINCR1

CJNER1,#0AH,DISPLY2MOVR1,#00HMOVP3,#0C0HINCR2

CJNER2,#0AH,DISPLY3MOVR2,#00HMOVP2,#0C0HINCR3

CJNER3,#0AH,DISPLY4SJMPSTARTDISPLY4:MOVA,R3ADDA,#1EHMOVCA,@A+PCMOVP0,ASJMPDISPLYDISPLY3:MOVA,R2ADDA,#16HMOVCA,@A+PCMOVP2,ASJMPDISPLYDISPLY2:MOVA,R1ADDA,#0EHMOVCA,@A+PCMOVP3,A

SJMPDISPLYDISPLY1:MOVA,R0ADDA,#06HMOVCA,@A+PCMOVP1,AACALLDELAYSJMPDISPLY

DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHDELAY:MOVR7,#0AHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND

74HC595四位穩(wěn)定顯示:1)最大數(shù)為9999的計(jì)數(shù)器ORG0000HAJMPMAINORG000BHAJMPCRT0ORG0020HMAIN:MOVR1,#33HMOVR2,#04HCLEAR:MOV@R1,#33HDECR1

DJNZR2,CLEARMOVSP,#60HMOVTMOD,#01HMOVTH0,#3CH

MOVTL0,#0B0HSETBEA

SETBET0SETBTR0

MOVR7,#1

MOVDPTR,#DTABLOOP:MOVR1,#33HMOVR2,#04HMOVR3,#08HMOVR4,#01HLOOP1:MOVA,R3MOVP2,ARRA

MOVR3,AMOVA,@R1

CJNER4,#00H,MODEXSH:LCALLDISLCALLDEL

DECR1

DJNZR2,LOOP1

AJMPLOOP

MODE:CJNEA,#00H,FHMOVR4,#01HMOVA,#0AHSJMPXSHFH:MOVR4,#00HSJMPXSHCRT0:DJNZR7,RRRMOVR7,#1INC30HMOVR0,30H

CJNER0,#0AH,RRRMOV30H,#00HINC31HMOVR0,31H

CJNER0,#0AH,RRRMOV31H,#00HINC32HMOVR0,32H

CJNER0,#0AH,RRRMOV32H,#00HINC33HMOVR0,33H

CJNER0,#0AH,RRRMOV33H,#00HRRR:MOVTH0,#3CHMOVTL0,#0B0HRETI

DIS:MOVCA,@A+DPTRMOVP0,ARET

DEL:MOVR6,#20DEL1:MOVR5,#150DEL2:DJNZR5,$DJNZR6,DEL1RETDTAB:DB

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFHDB

88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHEND

2)最高位為零時(shí),最高位不顯示ORG0000HAJMPMAINORG000BHAJMPCRT0ORG0020HMAIN:MOVR1,#33HMOVR2,#04HCLEAR:MOV@R1,#00HDECR1

DJNZR2,CLEARMOVSP,#60HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBEASETBET0SETBTR0MOVR7,#1

MOVDPTR,#DTABLOOP:MOVR1,#33HMOVR2,#04HMOVR3,#08HLOOP1:MOVA,R3MOVP2,ARRAMOVR3,AMOVA,@R1LCALLDISLCALLDELDECR1

DJNZR2,LOOP1AJMPLOOPCRT0:DJNZR7,RRRMOVR7,#1MOVR0,#30HMOVR4,04HCON:INC@R0

CJNE@R0,#0AH,RRRMOV@R0,#00HINCR0

DJNZR4,CONRRR:MOVTH0,#3CHMOVTL0,#0B0HRETI

DIS:MOVCA,@A+DPTRMOVP0,ARET

DEL:MOVR6,#20DEL1:MOVR5,#150DEL2:DJNZR5,$DJNZR6,DEL1RET

DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHEND

3)最大數(shù)為256的計(jì)數(shù)器DATDATA30HBWDATA31HSHWDATA32HGWDATA33HORG0000HAJMPMAINORG000BHAJMPCOUNTORG0030HMAIN:MOVSP,#60HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBEASETBET0SETBTR0MOVR7,#2MOVDAT,#00HLOOP:LCALLCHANGEMOVP2,#01HMOVA,GWLCALLDISLCALLDELMOVP2,#02HMOVA,SHWLCALLDISLCALLDELMOVP2,#04HMOVA,BWLCALLDISLCALLDELMOVP2,#08HMOVA,#0AHLCALLDISLCALLDELAJMPLOOPCOUNT:DJNZR7,RRRMOVR7,#2INCDAT

RRR:MOVTH0,#3CHMOVTL0,#0B0HRETI

CHANGE:MOVA,DATMOVB,#100DIVABMOVBW,AMOVA,#10XCHA,BDIVABMOVSHW,AMOVGW,BRET

DIS:MOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ARET

DEL:MOVR6,#20DEL1:MOVR5,#150DEL2:DJNZR5,$DJNZR6,DEL1RET

TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFHEND

74LS4位靜態(tài)數(shù)碼顯示:方法一:ORG0000HMOVR3,#04HMOVR0,#20HSTART:LCALLDISPLAYLCALLCOUNTLCALLDELAYSJMPSTARTCOUNT:INC@R0

CJNE@R0,#0AH,DONMOV@R0,#00HSHW:INCR0INC@R0

CJNE@R0,#0AH,DE1

MOV@R0,#00HBW:INCR0INC@R0

CJNE@R0,#0AH,DE2MOV@R0,#00HQW:INCR0INC@R0

CJNE@R0,#0AH,DE3MOV@R0,#00HDE3:DECR0DE2:DECR0DE1:DECR0DON:RET

DISPLAY:MOVSCON,#00HLOOP:MOVA,@R0ADDA,#0FHMOVCA,@A+PCMOVSBUF,AJNBTI,$CLRTIINCRDJNZR3,LOOPMOVR3,#04HMOVR0,#20HDON1:RET

DTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H,71H,00H,0F3H,76H,80H,40HDELAY:MOVR7,#50DELAY1:MOVR6,#100DELAY2:MOVR5,#20DJNZR5,$DJNZR6,DELAY2DJNZR7,DELAY1RETEND

方法二:ORG0000HAJMPMAINORG000BHAJMPCOUNTORG0020HMAIN:MOVR1,#30HMOVR2,#04HCLEAR:MOV@R1,#00HINCR1

DJNZR2,CLEARMOVSP,#60HMOVTMOD,#01HMOVTH0,#0B0HSETBEASETBET0SETBTR0MOVR3,#3

MOVDPTR,#DTABMOVSCON,#00HDISPLY:MOVR1,#30HMOVR2,#04HLOOP:MOVA,@R1

MOVCA,@A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR1

DJNZR2,LOOPACALLDELSJMPLOOPCOUNT:DJNZR3,RRRMOVR3,#3MOVR0,#30HMOVR4,#04HCON:INC@R0

CJNE@R0,#0AH,RRRMOV@R0,#00HINCR0

DJNZR4,CONRRR:MOVTH0,#3CHMOVTL0,#0B0HRETI

DEL:MOVR6,#250DEL1:MOVR5,#250DEL2:DJNZR5,$DJNZR6,DEL1RET

DTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H,71H,00H,0F3H,76H,80H,40HEND

動(dòng)態(tài)數(shù)碼顯示:

ORG0000HACALLSTART

START1:MOV@R0,#00HINCR0

DJNZR2,START1ACALLSTART2

COUNT:CJNE@R0,#0AH,ACALLDISMOV@R0,#00HINCR0INC@R0

CJNER0,#34H,COUNTACALLSTARTAJMPSTART1ACALLDIS:ACALLDISPLAYINC@R0AJMPCOUNTDISPLAY:ACALLSTARTMOVR4,#01HDISPLAY1:MOVA,@RMOVDPTR,#DTABMOVCA,@A+DPTRMOVP0,AINCR0MOVA,R3MOVP2,ARLA

MOVR3,AACALLDELAY

DJNZR2,DISPLAY1ACALLSTART

DJNZR4,DISPLAY1RETDTAB:DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H,71H,00H,0F3H,76H,80H,40HSTART:MOVR3,#0FEHSTART2:MOVR0,#34HMOVR2,#04HRET

DELAY:MOVR7,#088HDEL1:MOVR6,#88HDEL2:MOVR5,#01HDEL3:DJNZR5,DEL3DJNZR6,DEL2DJNZR7,DEL1RETEND

獨(dú)立鍵盤加減清零數(shù)碼顯示:#include

#defineucharunsignedchar#defineuintunsignedintsbitkey1=P3^4;sbitkey2=P3^5;sbitkey3=P3^6;sbitkey4=P3^7;sbitdula=P2^6;sbitwela=P2^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms(uint);ucharnumt0,num;voiddisplay(numdis){ucharshi,ge;shi=numdis/10;ge=numdis%10;wela=1;P0=0xfe;wela=0;dula=1;

P0=table[shi];dula=0;P0=0xff;delayms(5);wela=1;P0=0xfd;wela=0;dula=1;

P0=table[ge];dula=0;P0=0xff;

delayms(5);}

voiddelayms(uintx){uinti,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);}voidinit(){TMOD=0x01;

TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;}

voidkeyscan(){if(key1==0){delayms(10);if(key1==0){num++;

if(num==60)num=0;

while(!key1);}}if(key2==0){delayms(10);if(key2==0){if(num==0)num=60;num--;

while(!key2);}}if(key3==0){delayms(10);if(key3==0){num=0;

while(!key2);}}if(key4==0){delayms(10);if(key4==0)

{while(!key4);TR0=~TR0;}}}voidmain(){init();while(1){keyscan();

display(num);}}

voidT0_time()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;numt0++;

if(numt0==20){numt0=0;num++;

if(num==60)num=0;}}

矩陣鍵盤0到F顯示:KEY_DATADATA30HORG0000H

MOVKEY_DATA,#10HAJMPMAINORG0030HMAIN:MOVSP,#60HLOOP:LCALLSCANMOVA,KEY_DATAMOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ALCALLDELAJMPLOOP

SCAN:MOVA,#0FHMOVP1,AMOVA,P1

CJNEA,#0FH,KEYSCANRET

KEYSCAN:LCALLDELMOVR2,#7FHMOVR3,#4MOVR0,#00HKEYSM1:MOVA,R2MOVP1,ARRAMOVR2,AMOVA,P1ANLA,#0FH

CJNEA,#0FH,JSADDINCR0

DJNZR3,KEYSM1RET

JSADD:JBACC.0,JSADD1MOVA,#0AJMPJSADD4

JSADD1:JBACC.1,JSADD2MOVA,#4AJMPJSADD4

JSADD2:JBACC.2,JSADD3MOVA,#8AJMPJSADD4

JSADD3:JBACC.3,JSADD4MOVA,#12JSADD4:ADDA,R0

MOVKEY_DATA,ADEL:MOVR6,#50DEL1:MOVR5,#200DJNZR5,$DJNZR6,DEL1RET

TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHEND

友情提示:本文中關(guān)于《單片機(jī)實(shí)訓(xùn)總結(jié)》給出的范例僅供您參考拓展思維使用,單片機(jī)實(shí)訓(xùn)總結(jié):該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時(shí)刪除。


單片機(jī)實(shí)訓(xùn)總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.weilaioem.com/gongwen/522669.html