stc89c51單片機流水燈程序_第1頁
stc89c51單片機流水燈程序_第2頁
stc89c51單片機流水燈程序_第3頁
stc89c51單片機流水燈程序_第4頁
stc89c51單片機流水燈程序_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、51 單片機流水燈程序程序一(用 C 語言編的最基礎的程序)#include<>while(1)/建立大的死循環。#include<>sbit D0=PU0;位定義,把P1 口的第一個管腳定義為D0sbit D仁 P1A1;/位定義,把P1 口的第二個管腳定義為D1sbit D2=P1A2;位定義,把P1 口的第3 個管腳定義為D2sbit D3=P1A3;/位定義,把P1 口的第4 個管腳定義為D3sbit D4=P1A4;/位定義,把P1 口的第5 個管腳定義為D4sbit D5=P1A5;/位定義,把P1 口的第6 個管腳定義為D5sbit D6=P1A6;/位定

2、義,把P1 口的第7 個管腳定義為D6sbit D7=P1A7;/位定義,把P1 口的第8 個管腳定義為D7void main()unsigned int i,j;D0=0,D7=1;/ 亮燈 1,關燈 8兩個FOF組成的延時for(i=50;i>0;i-)for(j=200;j>0;j-);/D0=1,D1=0;/ 亮燈 2,關燈 1 for(i=50;i>0;i-) for(j=200;j>0;j-);D1=1,D2=0;for(i=50;i>0;i-)for(j=200;j>0;j-);D2=1,D3=0;for(i=50;i>0;i-) for

3、(j=200;j>0;j-);D3=1,D4=0;for(i=50;i>0;i-) for(j=200;j>0;j-);D4=1,D5=0;for(i=50;i>0;i-)for(j=200;j>0;j-);D5=1,D6=0;for(i=50;i>0;i-) for(j=200;j>0;j-);D6=1,D7=0;for(i=50;i>0;i-) for(j=200;j>0;j-);程序二(用 swich case 語句編的) #include<>/51 單片機的頭文件。sbit d1=P1A0;/sbit d2=P"

4、;l;sbit d3=P1A2;sbit d4=P1A3; sbit d5=P1A4; sbit d6=P1A5;sbit d7=P1A6;sbit d8=P1A7;void main()unsigned int i=1,a,b;while(1)/ 大循環for(i=1;i<15;i+)延時。for(a=0;a<80;a+)/ for(b=0;b<200;b+); switch(i)case 1:d2=1,d1=0,d8=1;break;case 2:d1=1,d2=0;break;case 3:d2=1,d3=0;break;case 4:d3=1,d4=0;case 5:

5、d4=1,d5=0; break; case 6: d5=1,d6=0; break; case 7: d6=1,d7=0; break; case 8: d7=1,d8=0; break; case 9: d8=1,d7=0; break; case 10: d7=1,d6=0; break; case 11: d6=1,d5=0; break; case 12: d5=1,d4=0; break; case 13: d4=1,d3=0;break;case 14:d3=1,d2=0;break;程序三(最簡潔的) :#include<>#include<>/_cro

6、l_ 和 _cror_ 的頭文件。 void delay(unsigned int z)/建立延時子函數。unsigned int i,j;for(i=0;i<z;i+)for(j=0;j<200;j+);void main()unsigned char d;d=0xfe;while(1)/for(;d>0x7f;)P1=d;delay(100);/ 調用延時子函數延時。d=_crol_(d,1);/ 循環左移。for(;d<0xfe;)P1=d;delay(100);d=_cror_(d,1);/ 循環右移,讓燈倒回去。數碼管流水燈:#include<>#

7、include<>void delay(unsigned int a)unsigned int b;b=a;while(b>0)b-;void main()unsigned int i,j;unsigned code A=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,為 0 ,即數碼管亮“ 0”。0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0x3f:P2=0;/ 打開數碼管的第一個,P0=j;/ 對數碼管進行賦值while(1)i=0;for(j=0;j<16;j+)P2=i;P0=Aj;delay

8、(50000);i+;數碼管程序二 :#include<>void delay(unsigned int a)unsigned int b;b=a;while(b>0)b-;void main()int i,j;unsigned code A=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;P2=0;P0=j;while(1)j=0;for(i=0;i<8;i+)P2=i;P0=Aj;delay(50000);j+;for(i=7;i>=0;i-)P2=

9、i;P0=Aj;delay(50000);j+;中斷程序#include<>#include<>void delay(unsigned int a)unsigned int b;b=a;while(b>0)b-;void main()int i,j;unsigned code A=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;EA=1;/ 打開總中斷EX0=1;/ 打開外部中斷 0。中斷ITO=O;選擇其為低電平有效有效。當CPU檢測到引腳上出現有效的

10、中斷信號時,標志IE1置1,向CPU申請中斷。P2=0;P0=j;P1=0xfe;while(1)j=0;for(i=0;i<8;i+)P2=i;P0=Aj;delay(50000);j+;for(i=7;i>=0;i-)P2=i;P0=Aj;delay(50000);j+;0”為外部中斷的序號void exist() interrupt 0/中斷子程序,其中“P1=_crol_(P1,1);delay(50000);定時程序 ;include<> unsigned int i=0,j=0,t; unsigned code a=0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void main()TMOD=0x01;對TMO賦值,以確定 TO和T1的工作方式。TH0=(65536-50000)/256;TLO=(65536-5OOOO)%256;/ 定時/計數器的實質是加 1 計數器( 16位),由高 8位和低 8 位 兩個寄存器組成。對高 8 位和低 8 位賦值。EA=1;/ 開總中斷ETO=1;/ 則對 IE 賦值,開放中斷TR0=1;使TR0或TR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論