<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

51單片機流水燈制作

小黃1176 ? 來源: 小黃1176 ? 作者: 小黃1176 ? 2024-02-26 10:06 ? 次閱讀

?流水燈是學習51單片機的一個基本項目,是我們對單片機IO口輸出認識的基本項目。當然學會了花樣流水燈也很好玩。

下面就分享一種51單片機流水燈制作的方法。

一、流水燈原理圖

wKgaomXb8VyASKTsAACFYv8Crn0012.png

二、相關知識

1、while語句

書寫格式:while(表達式) { 語句; //循環體 。。。 }

備注:當while語句中的()里的值為非零值是,while所帶的語句就會執行,為0時程序不執行(只有為0值時不執行),括號里可以是常量,可以是變量,也可以是一個公式。

我們常用寫法:

(1)while(1){ 語句; } //這樣寫代表了這是一個死循環,{ }中的程序會一直循環執行

(2)while(a--){ 語句; } //這樣寫就是當a每執行一次循環會自減一個數,當a的值減到0了,就不執行了。

2、for循環語句

除了while語句語句之外,c語言還有一個for循環語句。

書寫格式:for(初始化表達式;條件表達式;增量表達式) { 語句; 。。。 }

常用寫法:

for(i=0;i<8;i++) ?{ ? ? 語句:。。。 ?}

//這樣寫代表了,for語句的{}中的程序循環執行,循環的次數由()的內容決定,()中的意思是i變量從0開始,到8結束(不含8),i每次自加1,加到8 了跳出循環。

3、左移右移指令

運算符 意義 示例(設j=0x10)
<< 左移(各位同時左移若干位,高位舍棄,低位補零) k=j<<1;//k=0x20 wKgaomXb8OyAOk9nAAAxdleDWKw360.png
>> 右移(各位同時右移若干位,低位舍棄,高位補零) k=j>>1;//k=0x08

wKgaomXb8PGAOFG-AAAxgSp2o54508.png

4、位取反指令

運算符 意義 示例(設a=0x25)
~ 按位取反 c=~a; //c=0xda

wKgaomXb8RWAfCPXAAAJHpseGW4808.png

5、延時函數

/*--------微秒延時--------*/
void delay_us(uint z)
{
uint x;
for(x=z;x>0;x--);
}

第一個延時函數是微秒級延時,程序原理是for語句每循環一次,單片機執行一次空語句,51單片機(接12M晶振)執行每次空語句實際不止1us,一般會是幾微秒。
/*--------毫秒延時--------*/
void delay_ms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

第二個延時函數是毫秒級延時,其中的兩個for語句成為嵌套訓話語句,下面的for嵌套在上面的for里面執行。下面的for代表了循環執行110次空語句,得到一個1ms延時,此時上面的for循環多少次就延時多少毫秒,而延時多少毫秒由,變量z決定。

三、例程

 
/*---------------------------
流水燈接口:P1    
------------------------------*/
 
 
#include
 
#define uint unsigned int
#define uchar unsigned char
 
 
 
/*--------微妙延時--------*/
void delay_us(uint z)
{
	uint x;
	for(x=z;x>0;x--);
}
/*--------毫秒延時--------*/
void delay_ms(uint z)
{
  uint x,y;
	for(x=z;x>0;x--)
	   for(y=110;y>0;y--); 
}
 
/*----------主函數-----------*/
void main()
{
	
	P0=0x00;P1=0xff;P2=0x00;P3=0x00;//端口初始化,熄滅所有LED燈
	uchar i,j;
	while(1)
	{
	  j=0x01;
	  for(i=0;i

審核編輯 黃宇

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 51單片機
    +關注

    關注

    270

    文章

    5648

    瀏覽量

    121086
  • C語言
    +關注

    關注

    180

    文章

    7542

    瀏覽量

    130986
  • 流水燈
    +關注

    關注

    21

    文章

    432

    瀏覽量

    59206
收藏 人收藏

    評論

    相關推薦

    單片機POV LED流水燈制作

    電子發燒友網站提供《單片機POV LED流水燈制作.docx》資料免費下載
    發表于 05-28 14:34 ?0次下載

    51單片機定時器定時1秒程序流水燈結果分析

    流水燈的設計原理、實現步驟和結果分析。 一、設計原理 在51單片機中,定時器常用的工作方式有兩種:定時器模式和計數器模式。定時器模式是指定時器的計數值遞增至最大值后重新計數,從而周期性產生中斷;計數器模式是指定時器的
    的頭像 發表于 12-26 14:57 ?3094次閱讀

    基于51單片機無線遙控流水燈電路圖及程序

    本資源內容概要: 這是基于51單片機的無線遙控流水燈設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開) 。 本資源適合人群: 單片機
    發表于 11-06 18:15 ?0次下載

    基于單片機流水燈電路設計

    前面一課掌握了嵌入式程序源代碼級調試,為復雜單片機實驗程序的調試做好了準備工作。本次實驗完成流水燈電路模型設計和編程,在實驗過程中,學習流水燈電路設計、編寫延遲函數、循環移位宏定義。
    的頭像 發表于 10-31 14:56 ?1624次閱讀
    基于<b class='flag-5'>單片機</b>的<b class='flag-5'>流水燈</b>電路設計

    求分享c語言的51單片機流水燈循環流水程序

    [i][i][i][i] c語言 的51單片機流水燈循環流水程序
    發表于 10-18 06:57

    八只流水燈當開關k1按下時流水燈循環,開關k2按下時停止循環是為什么?

    單片機proteus仿真:八只流水燈當開關k1按下時流水燈循環,開關k2按下時停止循環
    發表于 09-27 06:15

    51單片機POV趣味制作解析

    ISP下載線的自制資料及萬用板使用經驗,作為進一步補充。u3000u3000將單片機控制的LED流水燈設備稍作改進,讓它動起來,就能神奇地顯示各種字符或圖案,其效果如漂浮在空中一般。之所以能如此,這得
    發表于 09-26 07:32

    如何使用51單片機制作一個心形流水燈

    使用 51 單片機制作一個心形流水燈 心形流水燈,顧名思義,成品肯定是一個心形。隨著程序的改變,通過單片機控制單個燈的亮滅達到不同的流動圖案
    的頭像 發表于 09-11 10:27 ?2955次閱讀
    如何使用<b class='flag-5'>51</b><b class='flag-5'>單片機制作</b>一個心形<b class='flag-5'>流水燈</b>

    利用51單片機流水燈和LCD1602實現表白功能

    利用51單片機流水燈和LCD1602實現表白功能。
    的頭像 發表于 08-17 09:45 ?901次閱讀

    51單片機的8位按鍵流水燈設計

    本資源內容概要: 這是基于51單片機的8位按鍵流水燈設計包含了C語言程序源代碼(keil軟件打開)。 本資源適合人群: 單片機愛好者、電子類專業學生、電子diy愛好者。 本資源能學到什
    發表于 07-24 14:36 ?0次下載

    流水燈單片機解決方案,多種燈光效果可變

    的燈光效果是在控制系統的控制按照設定的順序和時間來發亮和熄滅。通過單片機引腳輸出低電平,LED燈導通發亮,單片機引腳輸出高電平,LED燈截止熄滅。 流水燈方案工作原理: 流水燈控制原理
    的頭像 發表于 07-20 17:45 ?578次閱讀

    基于51單片機的LED流水燈設計

    前面的幾個教程我們實現了點亮LED燈并實現了閃爍,而本教程我們要進一利用開發板的LED&交通燈模塊實現LED的流水燈設計,將采用位移循環和庫函數的調用實現該功能。
    發表于 07-17 14:20 ?1013次閱讀

    流水燈單片機解決方案,多種燈光效果可變

    流水燈,即LED從一邊依次亮至另一邊,光像流水一樣流動,形成一定視覺效果的一組燈。流水燈在生活中的應用也是非常的廣泛,常被安裝于店面、招牌、夜間建筑物等地方,可以讓門面或建筑變得更加美觀顯眼。
    的頭像 發表于 07-15 16:36 ?862次閱讀

    基于FPGA開發板流水燈的設計實現

    流水燈,有時候也叫跑馬燈,是一個簡單、有趣又經典的實驗,基本所有單片機的玩家們在初期學習的階段都做過。本次我們也來介紹一下如何通過小腳丫FPGA實現一個流水燈。
    發表于 06-20 17:10 ?1000次閱讀
    基于FPGA開發板<b class='flag-5'>流水燈</b>的設計實現

    基于51單片機設計的花樣流水燈設計

    花樣流水燈是一種常見的LED燈效果,被廣泛應用于舞臺表演、節日慶典、晚會演出等場合。
    的頭像 發表于 06-11 10:00 ?2815次閱讀
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>設計的花樣<b class='flag-5'>流水燈</b>設計
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>