版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 單片機(jī)控制LED流水燈從中間向兩邊,從兩邊向中間 這個(gè)就是把 先奇數(shù)亮再偶數(shù)亮,循環(huán)三次;一個(gè)燈上下循環(huán)三次;兩個(gè)分別從兩邊往中間流動(dòng)三次;再?gòu)闹虚g往兩邊流動(dòng)三次;不過這個(gè)程序?qū)崿F(xiàn)的 應(yīng)該是這樣的 先奇數(shù)亮再偶數(shù)亮,循環(huán)三次;一個(gè)燈上下循環(huán)三次;兩個(gè)分別從兩邊往中間流動(dòng);再?gòu)闹虚g往兩邊流動(dòng);#include< reg52.h>#include< intrins.h>#define uint unsigned int#define uchar unsigned char void delay();void main() uchar temp,temp1,temp2,a,
2、b; P3=0xff; while(1) for(b=3;b>0;b-) temp=0xaa; P1=temp; delay(); temp=0x55; P1=temp; delay(); for(a=3;a>0;a-) temp=0xfe; for(b=7;b>0;b-) P1=temp; temp=_crol_(temp,1); delay(); P1=temp; delay(); temp1=0xfe; temp2=0x7f; for(a=8;a>0;a-) temp=temp1&temp2; P1=temp; delay(); temp1=_crol_(
3、temp1,1); temp2=_cror_(temp2,1); void delay() uint a,b; for(a=100;a>0;a-) for(b=600;b>0;b-); 程序?qū)崿F(xiàn)的第2種方法:下面是單片機(jī)12群里的朋友木信大俠提出的,實(shí)現(xiàn)單片機(jī)led流水燈從中間向兩邊,從兩邊向中間的效果,下面的程序就是實(shí)現(xiàn)思路,這個(gè)是直接調(diào)用,應(yīng)該明白吧,數(shù)組那其實(shí)也可以改一下,如采用一維數(shù)組,在多次調(diào)用;也可以采用二維數(shù)組。主要看個(gè)人喜好.-#include< reg52.h> unsigned char code TABLE= 0xFF,0xE7,0xC3,0x81
4、,0x00, /從中間向兩側(cè)點(diǎn)亮0xFF,0xE7,0xC3,0x81,0x00, 0xFF,0xE7,0xC3,0x81,0x00, 0xFF,0x7E,0x3C,0x18,0x00, /從兩側(cè)向中間點(diǎn)亮 0xFF,0x7E,0x3C,0x18,0x00, 0xFF,0x7E,0x3C,0x18,0x00; unsigned char i; DELAY() unsigned int s; for(s=0;s<30000;s+); main() while(1) if(TABLEi!=0x01) P1=TABLEi; i+; DELAY(); else i=0; 匯編程序如下:; 花樣流
5、水燈(8個(gè)發(fā)光二極管以各種形式循環(huán)點(diǎn)亮); 功能:流水燈(8個(gè)發(fā)光二極管循環(huán)以1S間隔以各種形式循環(huán)點(diǎn)亮) ORG 0000H ;偽指令,指定程序從0000H開始存放 LJMP MAIN ;跳轉(zhuǎn)指令,程序跳轉(zhuǎn)至MAIN處執(zhí)行 ORG 0030H ;偽指令,指定程序從0030H開始存放MAIN: MOV SP, #60H ;給堆棧指針賦初值 MOV P1,#0FFH ;給P1口賦值 MOV DPTR,#TABLE;查表LIGHT: MOV R4,#42 ;設(shè)置循環(huán)次數(shù)LOOP: MOV A,#42 ;給A賦初值 SUBB A,R4 ;將A的值與R4的值相減,結(jié)果存在A中 MOVC A,A+DPT
6、R ;將A+DPTR的值所對(duì)應(yīng)的TABLE中的值賦給A MOV P1,A ;將A的值賦給P1口 LCALL DEL1S ;調(diào)用1S延時(shí)子程序 DJNZ R4,LOOP ;判斷R4是否為0,不為0跳轉(zhuǎn),為0順序執(zhí)行 LJMP LIGHT ;跳轉(zhuǎn)指令,跳轉(zhuǎn)至LIGHT處繼續(xù)執(zhí)行;1S延時(shí)子程序(11.0592MHz晶振,誤差0微秒)DEL1S: MOV R5, #089HDL1S0: MOV R6, #0A4HDL1S1: MOV R7, #013H DJNZ R7, $ DJNZ R6, DL1S1 DJNZ R5, DL1S0 RETTABLE: ;定義表格數(shù)據(jù)DB 0FFH ;全滅DB 0F
7、EH 0FDH 0FBH 0F7H 0EFH 0DFH 0BFH 07FH ;依次逐個(gè)點(diǎn)亮DB 0FEH 0FCH 0F8H 0F0H 0E0H 0C0H 080H 000H ;依次逐個(gè)疊加DB 080H 0C0H 0E0H 0F0H 0F8H 0FCH 0FEH 0FFH ;依次逐個(gè)遞減DB 07EH 0BDH 0DBH 0E7H 0E7H 0DBH 0BDH 07EH ;兩邊靠攏后分開DB 07EH 03CH 018H 000H 000H 018H 03CH 07EH ;兩邊疊加后遞減DB 000H ;全亮 END ;程序結(jié)束指令C語(yǔ)言程序如下:/* 該實(shí)驗(yàn)是花樣流水燈(8個(gè)發(fā)光二極管以各
8、種方式循環(huán)點(diǎn)亮),功能是花樣流水燈(8個(gè)發(fā)光二極管以1S間隔以各種方式循環(huán)點(diǎn)亮) */#include/包含reg.52文件#define uint unsigned int/宏定義#define uchar unsigned char/宏定義void delay(uint z);/聲明延時(shí)函數(shù)uint a;/定義循環(huán)用變量uchar code table=0xff,/全滅0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,/依次逐個(gè)點(diǎn)亮0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,/依次逐個(gè)疊加0x80,0xc0,0xe0,0xf
9、0,0xf8,0xfc,0xfe,0xff,/依次逐個(gè)遞減0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e,/兩邊靠攏后分開0x7e,0x3c,0x18,0x00,0x00,0x18,0x3c,0x7e,/兩邊疊加后遞減0x00,/全亮;/定義循環(huán)用數(shù)據(jù)表格/*亮的現(xiàn)象:先是全滅,然后依次逐個(gè)點(diǎn)亮,然后依次逐個(gè)疊加,然后依次逐個(gè)遞減,然后兩邊靠攏后分開,然后兩邊疊加后遞減,最后全亮。循環(huán)!*/void main()/main函數(shù) a=0;/給a賦初值 while(1)/while循環(huán) P1=tablea;/將a所在的table中的值賦給P1口 delay(1000
10、);/1S延時(shí)子程序 a+;/a的值加一 if(a=42)/測(cè)試a是否等于42 a=0;/給a賦值 void delay(uint z)/1ms延時(shí)子程序,通過z值改變延時(shí)時(shí)間 uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);/*動(dòng)態(tài)數(shù)顯的設(shè)計(jì)思路,首先是我們要先知道怎樣才能使哪個(gè)位亮,顯示的段是什么數(shù)值,接下來(lái)就是中斷時(shí)間的問題了,設(shè)計(jì)步驟如下,如果要讓八個(gè)數(shù)碼管靜態(tài)顯示1到8,我們可以修改中斷時(shí)間,如把50000改成100或更低*/#include<reg52.h> #include<intrins.h>#defi
11、ne uint unsigned int#define uchar unsigned charsbit duan=P26; sbit wei=P27;uchar a,numw,numd;uchar code tabled=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /*第二步驟,創(chuàng)建段顯數(shù)值的對(duì)碼表09數(shù)值.如果要顯示18數(shù)值,最好多加前后兩位數(shù)0跟9, 因?yàn)楹竺?移位時(shí)就能按我們常規(guī)順序亮下去,至于如何顯示對(duì)應(yīng)數(shù)值請(qǐng)先看數(shù)碼顯示電路圖*/ uchar code tablew=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,
12、0xbf,0x7f; /第二步驟,創(chuàng)建位顯,就是顯示的位置,這個(gè)碼表相對(duì)簡(jiǎn)單,用二進(jìn)制表示1111111001111111,是0的為八位數(shù)顯管的位置void main() a=0; /定義個(gè)時(shí)間函數(shù) numw=0; /附位顯初值為0位 numd=0; /附段顯初值為0位 TMOD=0X01; /第四步驟,附中斷暫存器初值 TH0=(65535-50000)/256; /附中斷請(qǐng)求時(shí)間初值,高8位 TL0=(65536-50000)%256; /附中斷請(qǐng)求時(shí)間初值,低8位 EA=1; /開啟總中斷 ET0=1; /開啟定時(shí)中斷 TR0=1; /啟動(dòng)定時(shí)中斷 while(1) if(a=10) /
13、第三步驟,執(zhí)行速度,如果等20差不多是1秒,則往下執(zhí)行,相當(dāng)于單位數(shù)值亮的時(shí)間 a=0; /重新附值初值0 numd+; /段顯值+ if(numd=9) /如果段值在對(duì)碼表第9位則轉(zhuǎn)下執(zhí)行 numd=1; /*重新附值段顯值對(duì)應(yīng)對(duì)碼表第1位,因?yàn)?所以0位并不在數(shù)碼管中顯示. 如果要顯示,也會(huì)因?yàn)?而在第二輪中顯示出*/ duan=1; /開啟段顯端 P0=tablednumd;/附段顯P0值對(duì)應(yīng)段顯值對(duì)碼表 duan=0; /鎖存 wei=1; /開啟位顯端 P0=tablewnumw;/附位顯P0值對(duì)應(yīng)位顯值對(duì)碼表 wei=0; /鎖存 numw+; /相當(dāng)于位顯移位 if(numw=8
14、) /如果位顯值到對(duì)應(yīng)位顯對(duì)碼表第八位則轉(zhuǎn)下執(zhí)行 numw=0; /重新附值位顯值對(duì)應(yīng)對(duì)碼表第0位起/*下面是簡(jiǎn)單的單個(gè)數(shù)碼管顯示例證 第一驟, 修改后在第三步驟內(nèi)#include"reg52.h"#include"intrins.h"sbit duan=P26; /段顯端口sbit wei=P27; /位顯端口void main() /P0=0xff; 數(shù)碼管不顯示任何信號(hào),默認(rèn)情況下通電本身就不顯示,可以不寫 duan=1; /開啟段顯端口 P0=0x06; /附值段顯數(shù)值為1,可以查閱數(shù)碼管電路圖相對(duì)應(yīng)顯示的對(duì)碼表 duan=0; /鎖存,保持上一步段顯狀態(tài),硬件說明請(qǐng)查閱74HC573功能 wei=1; /開啟位顯端口
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人舊房屋翻新改造工程承包合同3篇
- 2025年度個(gè)人理財(cái)產(chǎn)品分紅協(xié)議
- 二零二四全新打印機(jī)租賃合作協(xié)議書范本3篇
- 2025年度鋰電池電芯代工合作協(xié)議書4篇
- 二零二五年度美容院品牌形象設(shè)計(jì)及使用權(quán)授權(quán)合同
- 二零二五年度特殊面料窗簾定制合同3篇
- 2025年度實(shí)習(xí)生勞動(dòng)合同終止及培訓(xùn)費(fèi)用退還協(xié)議4篇
- 二零二五年度木板電商平臺(tái)入駐及銷售合同4篇
- 2024項(xiàng)目部治理人員安全培訓(xùn)考試題(各地真題)
- 2023年-2024年崗位安全教育培訓(xùn)試題(答案)
- 國(guó)際貿(mào)易地理 全套課件
- GB/T 20878-2024不銹鋼牌號(hào)及化學(xué)成分
- 診所負(fù)責(zé)人免責(zé)合同范本
- 2024患者十大安全目標(biāo)
- 印度與阿拉伯的數(shù)學(xué)
- 會(huì)陰切開傷口裂開的護(hù)理查房
- 實(shí)驗(yàn)報(bào)告·測(cè)定雞蛋殼中碳酸鈣的質(zhì)量分?jǐn)?shù)
- 部編版小學(xué)語(yǔ)文五年級(jí)下冊(cè)集體備課教材分析主講
- 電氣設(shè)備建筑安裝施工圖集
- 《工程結(jié)構(gòu)抗震設(shè)計(jì)》課件 第10章-地下建筑抗震設(shè)計(jì)
- 公司法務(wù)部工作細(xì)則(草案)
評(píng)論
0/150
提交評(píng)論