版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、51單片機(jī)按鍵控制花樣燈時(shí)間:2012-09-1013:50:11來(lái)源:51hei作者:/* 本程序?qū)崿F(xiàn)用按鍵控制花樣燈。* 當(dāng)K1按下時(shí),燈從0xfe向左跑一遍;* 當(dāng)K2按下時(shí),LED燈從0x7f向右跑一遍到了0xfe右跑回到起始位置;* 當(dāng)K3鍵按下時(shí),LED燈從0xfe開(kāi)始作流水燈形式運(yùn)行一次,然后再流回來(lái)。* 當(dāng)K4鍵按下時(shí),LED燈先亮前四個(gè),接著再轉(zhuǎn)向亮后四個(gè)。* 當(dāng)K5按下時(shí),結(jié)束任意正在進(jìn)行的程序,使LED燈全部熄滅。*/*連接方法:P限獨(dú)立按鍵JP5;P2接LED燈接口JP1*/#include<reg52.h>/頭文件,函數(shù)聲明#include<intr
2、ins.h>/定義按鍵所在位sbitK1=P0A0;sbitK2=P0A1;sbitK3=P0A2;sbitK4=P0A3;sbitK5=P0A4;unsignedcharled;unsignedcharj;voiddelayms(unsignedcharms)/1ms標(biāo)準(zhǔn)延時(shí)while(ms-)for(j=0;j<110;j+);/還是無(wú)法設(shè)置比較標(biāo)準(zhǔn)的延時(shí),如1S等;所以應(yīng)該用定時(shí)器延時(shí)才最準(zhǔn)確voidmain()P2=led;unsignedinti;while(1)/*當(dāng)K1按下時(shí),燈從0xfe向左跑一遍;*/if(K1=0)delayms(10);/if(K1=0)led
3、=0xfe;for(i=0;i<7;i+)/i/led=0x7f;/PP2=led;/delayms(100);/要求。led=_crol_(led,1);消除鍵盤(pán)抖動(dòng)可以去8的倍數(shù),表示本電路執(zhí)行多少次端口的初定義要在循環(huán)外面,不然會(huì)使效果錯(cuò)亂由于這里已經(jīng)初設(shè)一個(gè)燈,所以for里面要加上這一個(gè)起初這里設(shè)置500Ms使按鍵每按一下燈彩走一個(gè),不能達(dá)到P2=led;delayms(100);while(!K1);/P2=led;/P2=led;/這里強(qiáng)調(diào)松開(kāi)就沒(méi)再次執(zhí)行程序說(shuō)明執(zhí)行完上面的程序的最后狀態(tài)如果把本行放在這里,雖然在開(kāi)頭中沒(méi)有說(shuō)明程序燒寫(xiě)好之后就先顯示一個(gè)燈,但由于本行在if外
4、面,所有最后還是會(huì)顯示/*當(dāng)K2按下時(shí),LED燈從0x7f向右跑一遍到了0xfe右跑回到起始位置*/if(K2=0)delayms(10);if(K2=0)led=0x7f;for(i=0;i<7;i+)P2=led;delayms(100);led=_cror_(led,1);P2=led;delayms(100);while(!K1);P2=led;delayms(100);for(i=0;i<7;i+)led=_crol_(led,1);P2=led;delayms(100);/跑回去怎么就那么快呀?/此時(shí)led=0x7f/*當(dāng)K3鍵按下時(shí),LED燈從0xfe開(kāi)始作流水燈形式
5、運(yùn)行一次,然后再流回來(lái)。*/if(K3=0)delayms(10);/消除抖動(dòng)if(K3=0)led=0xfe;delayms(200);for(i=0;i<7;i+)P2=led;delayms(200);led=led<<1;/備注led=_crol_(led,1)等于led<<1|led>>7;P2=led;delayms(200);if(led=0x00)break;/這里一定要有個(gè)break,跳出循環(huán),然后別忘了此時(shí)的狀態(tài)是00,而不是7fwhile(!K1);led=0x7f;P2=led;delayms(200);for(i=0;i<
6、;7;i+)led=led>>1;P2=led;delayms(200);/*當(dāng)K4鍵按下時(shí),LED燈先亮前四個(gè),接著再轉(zhuǎn)向亮后四個(gè)。*/if(K4=0)delayms(10);/消除抖動(dòng)if(K4=0)for(i=0;i<4;i+)/執(zhí)行四次led=0xf0;P2=led;delayms(500);led=0x0f;P2=led;delayms(500);/*當(dāng)K5鍵按下時(shí),結(jié)束任意正在進(jìn)行的程序,使LED燈全部熄滅。*/if(K5=0)delayms(10);if(K5=0)P2=0xff;*/時(shí)鐘十秒表+流水燈的單片機(jī)匯編程序時(shí)間:2012-09-1013:49:42來(lái)
7、源:作者:/HJSMSY-V1.0單片機(jī)開(kāi)發(fā)板測(cè)試程序/<<電腦鐘>>/=主函數(shù)=ORG0000HLJMPMAINORG000BHLJMPT00/ORG001BH/LJMPT11ORG0030H/=程序初始化=MAIN:MOVTMOD,#11HMOVTH0,#3CHMOVTL0,#0B0HMOVTH1,#0F0HMOVTL1,#0B0HSETBEASETBET0/SETBET1SETBTR0/SETBTR1CLRP3.4MOVR7,#00H;MOV30H,#00H;MOV31H,#00H;MOV32H,#00H;MOV33H,#00HMOV34H,#00H;MOV35H
8、,#00H;MOV44H,#00H;MOV45H,#00H;MOV46H,#00H;MOV47H,#00H;MOV48H,#00H;MOV49H,#00H;秒值秒個(gè)位值秒十位值分個(gè)位; 分十位時(shí)個(gè)位 時(shí)十位 秒表毫秒十位 秒表秒毫秒百位 秒表秒個(gè)位 秒表秒十位 秒表分個(gè)位 秒表分十位P2 口按鍵初始化MOVP2,#0F0H;MOV40H,#01H;數(shù)碼管休眠值/流水燈/秒表開(kāi)關(guān)數(shù)MOV41H,#08H;流水燈循環(huán)值MOV42H,#00H;秒表暫停/ACALLT11/MAIN1:MOVP0,#0FFHMOVP1,#0FFHMOVR0,40HCJNER0,#01H,ACL1ACALLMAIN2;時(shí)
9、鐘顯示ACL1:CJNER0,#02H,ACL2ACALLMAIN3;秒表ACL2:CJNER0,#03H,ACL3ACALLLED;流水燈ACL3:ACALLKEY;按鍵掃描/ACALLBAO;定時(shí)報(bào)警LJMPMAIN1/=報(bào)警子程序=BAO:MOVR4,33HCJNER4,#03H,YY1CLRP3.2ACALLKEYLJMPYY2YY1:CJNER4,#05H,YY2SETBP3.2ACALLKEYYY2:RET/=時(shí)鐘掃描子程序=MAIN2:MOVA,30HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.0ACALLDELAYMOVA,31HMOVDPTR,#
10、TABMOVCA,A+DPTRMOVP0,ACLRP1.1SETBP1.0ACALLDELAYMOVA,32HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.2SETBP1.1ACALLDELAYMOVA,33HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.3SETBP1.2ACALLDELAYMOVA,34HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.4SETBP1.3ACALLDELAYMOVA,35HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.5SETBP1.4ACALLDE
11、LAYMOVP0,#7FHMOVP1,#0EBHACALLDELAYMOVP1,#0FFHRET/=秒表掃描子程序=MAIN3:MOVA,44HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.0ACALLDELAYMOVA,45HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.1SETBP1.0ACALLDELAYMOVA,46HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.2SETBP1.1ACALLDELAYMOVA,47HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.3SETBP1
12、.2ACALLDELAYMOVA,48HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.4SETBP1.3ACALLDELAYMOVA,49HMOVDPTR,#TABMOVCA,A+DPTRMOVP0,ACLRP1.5SETBP1.4ACALLDELAYMOVP0,#7FHMOVP1,#0EBHACALLDELAYMOVP1,#0FFHRET:定時(shí)器T0中斷服務(wù)T00:MOVTH0,#0D8HMOVTL0,#0F0HINCR7CJNER7,#64H,AAMOVR7,#00H/時(shí)鐘跑值TK1:INC30H;每秒鐘秒個(gè)位增一MOVR6,30HCJNER6,#0AH,AAM
13、OV30H,#00HTK2:INC31HMOVR6,31HCJNER6,#06H,AAMOV31H,#00HTK3:INC32HMOVR6,32HCJNER6,#0AH,AAMOV32H,#00HTK4:INC33HMOVR6,33HCJNER6,#06H,AAMOV33H,#00HTK5:INC34HMOVR5,34HMOVR6,35HCJNER5,#04H,TK6CJNER6,#02H,TK6MOV34H,#00HMOV35H,#00HTK6:CJNER5,#0AH,AAMOV34H,#00HINC35H/秒表品g值A(chǔ)A:MOVR5,42HCJNER5,#01H,TK7INC44HTK7:
14、MOVR5,44HCJNER5,#0AH,AA1MOV44H,#00HINC45HMOVR5,45HCJNER5,#0AH,AA1MOV45H,#00HINC46HMOVR5,46HCJNER5,#0AH,AA1MOV46H,#00HINC47HMOVR5,47HCJNER5,#06H,AA1MOV47H,#00HINC48HMOVR5,48HCJNER5,#0AH,AA1MOV48H,#00HINC49HMOVR5,49HCJNER5,#06H,AA1MOV49H,#00HAA1:RETI/=定時(shí)器T1中斷服務(wù)子程序=/T11:MOVTH1,#0F0H/MOVTL1,#0B0H/RETI/*
15、定時(shí)時(shí)間調(diào)整子程序*/TBAO:MOV50H,#00HMOV51H,#00HMOV52H,#00HMOV53H,#00HMOV54H,#00HMOV55H,#00HMOVR3,50HDJNZ30H,RET1RET1:RET/=鍵盤(pán)掃描子程序=KEY:MOVP2,#0F0HMOVR3,P2CJNER3,#0F0H,KE0LJMPKK13;P2.4KE0:CJNER3,#0E0H,KE1MOVP2,#0EFHJBP2.3,KK1/ACALLDELAY1ACALLTK1KK1:JBP2.2,KK2;K14ACALLDELAY1ACALLTK2KK2:JBP2.1,KK3;K15ACALLDELAY1
16、ACALLTK3KK3:JBP2.0,KE1;K16ACALLDELAY1ACALLTK4KE1:MOVP2,#0DFHJBP2.3,KK4;K9ACALLDELAY1ACALLTK5KK4:JBP2.2,KK5;K10ACALLDELAY1INC35HMOVR3,35HCJNER3,#03H,HH0MOV35H,#00HLJMPKK5HH0:CJNER3,#02H,HH1LJMPKK5HH1:CJNER3,#01H,HH2LJMPKK5HH2:MOV35H,#00HKK5:JBP2.1,KK6ACALLDELAY1;K11CPLP3.2KK6:JBP2.0,KE2;K12MOV42H,#00
17、HKE2:MOVP2,#0BFH;P.6JBP2.3,KK7;K5ACALLDELAY1CPLET0KK7:JBP2.2,KK8;K6用作調(diào)定時(shí)時(shí)間 ;K13秒個(gè)位增秒十增一分個(gè)位增一分十位增一;P2.5 行時(shí)個(gè)位增一時(shí)十位增一開(kāi)/關(guān)蜂鳴器秒表暫停行時(shí)鐘暫停/取消暫停顯示/休眠/流水燈ACALLDELAY2INC40HMOVR3,40HCJNER3,#04H,KK8MOV40H,#01HKK8:JBP2.1,KK9/ACALLDELAY3;K7秒表清0MOV44H,#00HMOV45H,#00HMOV46H,#00HMOV47H,#00HMOV48H,#00HMOV49H,#00HKK9:JB
18、P2.0,KE3;K8秒表開(kāi)始跑MOV42H,#01HKE3:MOVP2,#7FH;P2.7行JBP2.3,KK10;K1秒十位減一ACALLDELAY1MOVR3,31HCJNER3,#00H,JA1LJMPKK10JA1:DEC31HKK10:JBP2.2,KK11;K2分個(gè)位減一ACALLDELAY1MOVR3,32HCJNER3,#00H,JA2LJMPKK11JA2:DEC32HKK11:JBP2.1,KK12;K3分十位減一ACALLDELAY1MOVR3,33HCJNER3,#00H,JA3LJMPKK12JA3:DEC33HKK12:JBP2.0,KK13;K4時(shí)個(gè)位減一ACALLDELAY1MOVR3,34HCJNE
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師師徒結(jié)對(duì)計(jì)劃
- 《材料成型工藝基礎(chǔ)A》教學(xué)大綱
- 玉溪師范學(xué)院《網(wǎng)球》2023-2024學(xué)年第一學(xué)期期末試卷
- 施工現(xiàn)場(chǎng)項(xiàng)目部管理制度
- 火山引擎·數(shù)據(jù)飛輪-行業(yè)實(shí)踐系列自皮書(shū)·銀行業(yè) -新一代全行級(jí)標(biāo)簽體系與標(biāo)簽應(yīng)用篇 2024
- 2024年細(xì)微射頻同軸電纜項(xiàng)目評(píng)估分析報(bào)告
- 2023年有機(jī)氟化工產(chǎn)品項(xiàng)目評(píng)估分析報(bào)告
- 投資學(xué)第7版 郎榮燊 思政大綱
- 2019粵教版 高中美術(shù) 選擇性必修1 繪畫(huà)《第二單元 練就創(chuàng)造美的巧手》大單元整體教學(xué)設(shè)計(jì)2020課標(biāo)
- 2024屆廣西梧州柳州高考數(shù)學(xué)試題命題比賽模擬試卷
- 材料力學(xué)內(nèi)部習(xí)習(xí)題集及問(wèn)題詳解
- 《電磁屏蔽技術(shù)》PPT課件
- 正常胃鏡圖片及常見(jiàn)病變
- 手機(jī)項(xiàng)目管理流程
- 金屬探測(cè)器使用規(guī)程及相關(guān)操作流程
- 儀隴縣先鋒鎮(zhèn)小學(xué)校迎國(guó)檢應(yīng)急預(yù)案
- 斷裂力學(xué)與斷裂韌性
- 彩鋼板圍擋施工方案
- 焊接方法代號(hào)(數(shù)字+字母)
- 淺談從閱讀、生活、作文中積累語(yǔ)言
- 酶解液的制備
評(píng)論
0/150
提交評(píng)論