閃爍LED燈的程序_第1頁
閃爍LED燈的程序_第2頁
閃爍LED燈的程序_第3頁
閃爍LED燈的程序_第4頁
閃爍LED燈的程序_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、閃爍LED燈軟件描述:/*文件描述:使用的是P1.0口,可以用其他的端口,如果用其他的端口只需把程序里的P1.0改成相應(yīng)的端口,程序?qū)崿F(xiàn)的功能是單片機(jī)通過對端口高低電平的控制實(shí)現(xiàn)led燈的亮和滅。賦值1就是高電平,0是低電平,具體賦什么值才亮要結(jié)合硬件部分,看led燈的接法。這里是賦0就會(huì)亮。*/#includesbit LED=P10;/ 用sbit 關(guān)鍵字 定義 LED到P1.0端口, /LED是自己任意定義且容易記憶的符號void Delay(unsigned int t); /函數(shù)聲明 c語言有void main (void) while(1)LED =1; /P1.0口置1 led燈

2、滅Delay(50000); /延時(shí)50ms 更改數(shù)可以更改延時(shí)時(shí)間LED=0;/ P1.0口置0 led燈亮Delay(50000); /延時(shí)50ms 更改數(shù)可以更改延時(shí)時(shí)間void Delay(unsigned int t)/延時(shí)程序 t的值代表幾u(yù)s while(-t);程序編譯過程:下面就建立一個(gè)工程:點(diǎn)擊project菜單下的new project按鈕,出現(xiàn)下圖然后鍵入文件名(自己起名字)比如 流水燈。點(diǎn)擊保存按鈕。選擇單片機(jī)型號 一般選擇ATMEL下面的AT89C52.點(diǎn)擊確定就好了。之后就需要在工程里面添加文件了(就是寫程序代碼的地方)。點(diǎn)擊file菜單下的new按鈕就建立了新文

3、件;鍵入程序 點(diǎn)擊保存按鈕。鍵入文件名但必須以 .c為后綴,因?yàn)槟銓懙氖莄語言文件。如果是匯編就是.asm了。一般用c語言寫,這里我就用test1.了,點(diǎn)擊保存。然后就是設(shè)置了。右擊target1,選擇第一項(xiàng)的options for target “target1”。 選擇output在create HEX前勾上對號。點(diǎn)擊確定。之后就是添加文件了,就是把c語言文件添加到工程里面去。右擊上圖灰色的部分,再左擊Add files to source group 1,點(diǎn)擊文件名text1.c,點(diǎn)擊Add;文件添加完畢,關(guān)閉對話框就可以了。下面就是編譯了,就是安從左到右的3個(gè)按鍵即可。創(chuàng)建了hex文件

4、,這個(gè)文件就是燒寫到單片機(jī)的文件;下面就是燒寫程序了。打開燒寫程序選擇單片機(jī)型號一般不用該默認(rèn)c52.打開需要下載的文件即點(diǎn)擊open file按鈕;選擇下載的文件;點(diǎn)擊打開即可;選擇端口。一般這個(gè)電腦就是com1.點(diǎn)擊下載即可。給單片機(jī)上電;硬件描述:硬件部分就是一個(gè)led燈。但是需要串聯(lián)一個(gè)限流電阻,如果只加入一個(gè)led燈就是燒掉,限流電阻的選擇要合適,這個(gè)自己百度看看 很簡單的在這里就不必說了,應(yīng)該串聯(lián)個(gè)500R左右的電阻,因?yàn)檗k公室里沒有所以就用了2個(gè)1K的并聯(lián)。我建議同學(xué)自己焊下電路板,然后下載上程序看看。下載后的狀態(tài):定時(shí)器/*文件描述:這個(gè)led口用的也是是P1.0口,可以用其他

5、的端口,如果用其他的端口只需把程序里的P1.0改成相應(yīng)的端口,這個(gè)程序?qū)嵭械墓δ苁抢枚〞r(shí)器0的計(jì)數(shù)功能實(shí)現(xiàn)上面閃爍led燈的功能。*/#include sbit LED= P10;unsigned char Time=0; /計(jì)時(shí)次數(shù)int main(void)LED =1; /P1.0口置1 熄滅led燈TMOD=0x01; /定時(shí)器0工作方式1TH0=0xdb; /T0賦初值,延時(shí)0.01秒 (賦值有計(jì)算公式)TL0=0xff; ET0=1; /開定時(shí)器0中斷EA=1;/開總中斷TR0=1; /開始計(jì)數(shù)while(1) /等待定時(shí)器中斷 什么也不做 相當(dāng)與while(1);void ti

6、mer0_int() interrupt 1 /定時(shí)器0中斷TH0=0xdb; /T0賦初值,延時(shí)0.01秒 如果不賦值就會(huì)從0計(jì)數(shù) TL0=0xff;Time+;if(Time=100) /判斷是否計(jì)時(shí)到1秒Time=0; LED = LED;與上面的一樣,在這里就不必多說了。串口中斷/*文件描述:串口實(shí)現(xiàn)的功能就是對串口進(jìn)行測試,單片機(jī)發(fā)送字符到電腦,在由電腦發(fā)送回來,*/#include void main() TMOD= 0x20; /定時(shí)器工作方式2 TH1=0XFD; /有公式 TL1=0XFD; TR1=1; SCON= 0x50;/串口工作方式1 EA = 1; /*打開總中斷

7、*/ ES = 1; /*打開串口中斷*/ while(1); /等待串口中斷 void UART_SER (void) interrupt 4 /串行中斷服務(wù)程序 unsigned char Temp; /定義臨時(shí)變量 if(RI) /判斷是接收中斷產(chǎn)生 RI=0; /標(biāo)志位清零 Temp=SBUF; /讀入緩沖區(qū)的值 SBUF=Temp; /把接收到的值再發(fā)回電腦端 if(TI) /*如果是發(fā)送標(biāo)志位,清零 應(yīng)該是先接收了數(shù)據(jù)才可以發(fā)送 如果先發(fā)送的話沒有數(shù)據(jù)直接清零*/ TI=0; 程序的編譯跟燒寫跟上面的流水燈的類似在這不必在說了。請同學(xué)們仿照前面的例子。下面的是將程序燒寫在單片機(jī)上能

8、實(shí)現(xiàn)什么樣的功能。因?yàn)榘l(fā)送數(shù)據(jù)我們無法直接看到所以借助一個(gè)串口調(diào)試程序。上面的設(shè)置就默認(rèn)這樣就可以(注意波特率設(shè)定的值必須跟你程序中設(shè)定的那個(gè)波特率一致,否則發(fā)不過去。因?yàn)槌绦蚨际?600所以默認(rèn)為9600.還有串口號根據(jù)情況可以改變)。在下方寫入你要發(fā)送的字符看看上面的方框收到什么。寫入a得到了E1.這是為什么呢。這是因?yàn)榻邮諈^(qū)設(shè)置為十六進(jìn)制顯示。所以得到的是a的十六進(jìn)制代碼值。串口查詢/*文件描述:對串口進(jìn)行測試,單片機(jī)發(fā)送字符到電腦,在由電腦發(fā)送回來*/#include int main(void) /主函數(shù) unsigned char Temp; /定義變量用來發(fā)送或接收數(shù)據(jù) TMOD=0x20; /定時(shí)器T1使用工作方式2 TH1=253; /設(shè)置初值 TH0=253; TR1=1; /開始計(jì)時(shí) 定時(shí)器不能開中斷 PCON=0x00; /SMOD=0; SCON=0x50; /工作方式1,波特率9600bit/s,允許接收 TI=1; /T

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論