




版權(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)三次;再從中間往兩邊流動(dòng)三次;不過這個(gè)程序?qū)崿F(xiàn)的 應(yīng)該是這樣的 先奇數(shù)亮再偶數(shù)亮,循環(huán)三次;一個(gè)燈上下循環(huán)三次;兩個(gè)分別從兩邊往中間流動(dòng);再從中間往兩邊流動(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語言程序如下:/* 該實(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ù)值,接下來就是中斷時(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小吃品牌連鎖管理制度
- 城市能量轉(zhuǎn)讓方案(3篇)
- 貨物施工方案(3篇)
- 學(xué)校防疫網(wǎng)格管理制度
- 養(yǎng)殖物資存放管理制度
- 醫(yī)院采購中心管理制度
- 印刷車間設(shè)備管理制度
- 醫(yī)院防火防爆管理制度
- DB62T 4411-2021 隴東地區(qū)萬壽菊栽培技術(shù)規(guī)程
- 罰款繳納方案(3篇)
- 院感質(zhì)量管理考核標(biāo)準(zhǔn)
- 安全文明施工措施費(fèi)(終版)
- 2021年湖南省普通高中學(xué)業(yè)水平考試數(shù)學(xué)試卷及答案
- DL-T5588-2021電力系統(tǒng)視頻監(jiān)控系統(tǒng)設(shè)計(jì)規(guī)程
- 四川省成都市 2024年高一下數(shù)學(xué)期末考試試題含解析
- DZ∕T 0382-2021 固體礦產(chǎn)勘查地質(zhì)填圖規(guī)范(正式版)
- 《研學(xué)旅行課程設(shè)計(jì)》課件-研學(xué)課程方案設(shè)計(jì)
- 開票申請(qǐng)表模板
- MOOC 通信電路與系統(tǒng)-杭州電子科技大學(xué) 中國(guó)大學(xué)慕課答案
- 企業(yè)EHS風(fēng)險(xiǎn)管理基礎(chǔ)智慧樹知到期末考試答案2024年
- 紅旗E-HS3保養(yǎng)手冊(cè)
評(píng)論
0/150
提交評(píng)論