導航:首頁 > 操作系統 > 51單片機流水燈依次熄滅位移法

51單片機流水燈依次熄滅位移法

發布時間:2022-08-21 00:50:50

㈠ 51單片機流水燈,一開始全亮然後逐個熄滅,怎麼編程序,大一c語言

#include<reg51.h>
void delay(int a)
{
while(a--);
}
main()
{
unsigned char i;
while(1)
{
P0=0xff;
for(i=0;i<8;i++){P0=P0<<1;delay(30000);}
P0=0x00;
for(i=0;i<8;i++){P0=(P0>>1)|0x80;delay(30000);}
}
}

㈡ 單片機c51流水燈一亮一閃依次左移編程

下面是採用定時器定時1S(時鍾晶振是11.0592MHz)的流水燈程序。採用左移函數_crol_(),此函數包含在intrinsic.h的頭文件內。有不懂得再問,需要匯編的話,留言,再寫給你。
#include<reg52.h>
#include<intrins.h>
unsigned
int
a,temp;
void
main()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
temp=0xfe;
while(1)
{
if(a==20)
{
a=0;
P1=temp;
temp=_crol_
(temp,1);
}
}
}
void
T0_time0()interrupt
1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
a++;
}

㈢ 請運用位移法利用單片機的P2口實現的8個LED流水燈功能。要求:1.流水的順序是從左到右 2.每次只亮一盞燈

用紅色的替換對應語句,即可得反方向了,去試試吧;

㈣ 51單片機編程:先循環一遍流水燈,然後熄滅後蜂鳴器響三下停止

就拿三個燈來說吧
#include"reg52.h"

#include"intrins.h"

sbit led1=P2^0;

sbit led2=P2^1;
sbit led3=P2^2;//led燈
sbit ring=P2^3;//蜂鳴器
void Delay1000ms() //@11.0592MHz

{

unsigned char i, j, k;

_nop_();

_nop_();

i = 43;

j = 6;

k = 203;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}
void main(){
led1=0;led2=0;led3=0;//初始化為零
//下面開始
goto B:
A:while(1){;}//跑完一遍程序後執行死循環
B:
led1=1;Delay1000ms();led1=0;
led2=1;Delay1000ms();led2=0;
led3=1;Delay1000ms();led3=0;//流水燈
ring=1;Delay1000ms();ring=0;
ring=1;Delay1000ms();ring=0;
ring=1;Delay1000ms();ring=0;//蜂鳴
goto A;//跳轉到死循環執行

}

㈤ 單片機,讓流水燈逐個滅怎麼辦

你流水燈都寫好了
全亮全滅還不簡單啊,設置
p0=0x00
(假設低電平亮,高電平滅)
在延遲一下
在p0=0xff
在延時
不就ok了
把這幾個指令打包下放到一個子程序里
你用按鍵控制的時候就讓按鍵執行這個子程序
如果是
主程序循環的
話就放進主程序

㈥ 單片機,流水燈

下圖為主控晶元和流水燈模塊的原理圖。流水燈模塊接在單片機的P1口,由原理圖可以知道,在P1口給一個低電平即可點亮LED燈。相反,如果要LED燈熄滅,就要把P1口的電平變為高電平即可。要實現流水燈功能,我們只要將LED1~LED8依次點亮、熄滅,依始類推,8隻LED變會一亮一暗的做流水燈了。

基於單片機的流水燈介紹_51單片機流水燈的五種實現方法

基於單片機的流水燈介紹_51單片機流水燈的五種實現方法

實現8個LED流水燈程序用中文表示為:P1.0低、延時、P1.0高、P1.1低、延時、P1.1高、P1.2低、延時、P1.2高、P1.3低、延時、P1.3高、P1.4低、延時、P1.4高、P1.5低、延時、P1.5高、P1.6低、延時、P1.6高、P1.7低、延時、P1.7高、返回到開始、程序結束。

1、通過改變賦值實現流水燈

void main()

{ while(1) {

P2=0xfe;

delay1ms(500); P2=0xfd; delay1ms(500); P2=0xfb;

delay1ms(500); P2=0xf7; delay1ms(500); P2=0xef; delay1ms(500); P2=0xdf;

delay1ms(500); P2=0xbf; delay1ms(500); P2=0x7f;

delay1ms(500); } }

2、通過公式運算實現流水燈

void main() {

while(1) {

uinta,b=1; P2=0xfe; delayms(500); for(a=0;a<7;a++)

P2-=b; // P2=P2-b delayms(500); b=b*2; //都化為同一類型進制運算 } } }

3、通過操作符<<與「|」實現流水燈 (通過移位實現流水燈)

void main() {

uchara,i;

while(1) {

a=0xfe; //點亮第一位LED燈 for(i=0;i<8;i++)

{ P2=a;

a=a<<1; //左移一位

a=a|0x01; //左移一位後與0x01相或,保證左移後最低位為1 delay_ms(500); } } }

4、通過庫函數_crol_(字元左移)實現流水燈

void main()

{

uint a; a=0xfe; while(1) {

P2=a;a=_crol_(a,1); delay_ms(500); } }

5、採用數組實現流水燈

uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void main(void) {

uchari;

while (1) {

for(i=0;i<8;i++) //循環點亮8隻LED燈 {

P2=table[i];

delay_ms(500); //延時500毫秒 } } }

㈦ 51單片機,16個燈依次點亮後依次熄滅,跪求!!!

#include "REG52.H"

#define LEDH8 = P1;//所有LED 陽極接電源
#define LEDL8 = P2;//所有LED 陽極接電源

u8 LED_Status = 0xfe; // LED燈指示狀態
u8 LED_bit = 0; //LED指示燈位 0-15

void Init_GPIO()
{
LEDH8 = 0xff; LEDL8 = 0xff; //熄滅所有LED
}
void Delay( u16 dat )
{
u16 i, j ;
for( i = dat; i>0; i-- )
for( j=100; j>0; j--);
}
int main ()
{
Init_GPIO();
while(1)
{
switch (LED_bit)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7: LEDL8 &= LED_Status ; break ;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15: LEDH8 &= LED_Status ; break ;
default : break;
}
Delay( 1000);
LED_bit++;
LED_Status = (LED_Status <<1);
}
}

㈧ 51單片機控制16個led燈,要求16個燈依次點亮後依次熄滅

假設16個燈接P0和P1,高電平點亮,每次亮一個燈
程序大致這樣:
uint b;//16位變數對應16個燈
uchar i;
while(1)
{
for(i=0;i<16;i++)
{
b=0x01<<i;
P0=b;//自動取低8位

P1=b<<8;//取高8 位
delayms(200);
}
}

閱讀全文

與51單片機流水燈依次熄滅位移法相關的資料

熱點內容
方舟伺服器怎麼玩才好玩 瀏覽:557
單片機的部件 瀏覽:621
編譯原理遍的過程 瀏覽:252
python讀取json字元串 瀏覽:62
ubuntu1404安裝php 瀏覽:628
lua能編譯嗎 瀏覽:116
思仙怎麼看伺服器 瀏覽:658
php微信圖片防盜鏈 瀏覽:798
安卓1怎麼讀音 瀏覽:291
農業app怎麼開通快捷支付 瀏覽:910
pythonredisdict 瀏覽:385
如何攻擊別人網賭伺服器 瀏覽:880
隱私與應用加密的圖案密碼 瀏覽:38
陳情令王一博解壓 瀏覽:39
c編譯器使用說明 瀏覽:707
鄭州前端程序員私活有風險嗎 瀏覽:14
小型螺桿機壓縮機 瀏覽:520
成人解壓最好的方法 瀏覽:52
最小製冷壓縮機 瀏覽:492
xampp支持python 瀏覽:371