電燈的c語言
A. 用c語言編寫單片機流水燈程序,(8個發光二極體從左至右循環點亮)
#include<reg51.h>
voiddelay(void)
{
unsignedinti,j;
for(i=0;i<200;i++)
for(j=0;j<1000;j++)
;
}
voidmain(void)
{
while(1)
{
P3=0xfe;//第一個燈亮
delay();//延時
P3=0xfd;//第二個燈亮
delay();
P3=0xfb;//第三個燈亮
delay();
P3=0xf7;//第四個燈亮
delay();
P3=0xef;//第五個燈亮
delay();
P3=0xdf;//第六個燈亮
delay();
P3=0xbf;//第七個燈亮
delay();
P3=0x7f;//第八個燈亮
delay();
}
}
(1)電燈的c語言擴展閱讀
單片機C語言16種方式流水燈
voidmain()
{
while(1)
{
P1=0xfe;//點亮第一個發光管
Delay(5000);
P1=0xfd;//點亮第二個發光管
Delay(5000);
P1=0xfb;
Delay(5000);
P1=0xf7;
Delay(5000);
P1=0xef;
Delay(5000);
P1=0xdf;
Delay(5000);
P1=0xbf;
Delay(5000);
P1=0x7f;//點亮第八個發光管
}
}
B. c語言關燈問題 怎樣表示燈的開關呢 最好寫出代碼~
#include<stdio.h>
void main()
{ int n,b,s; //n總燈數,b開始數的燈號,s間隔
int a[256],i,k,m,p; //a存放燈號,k當前數到位置,m當前數到亮燈計數,p熄滅燈數
scanf("%d%d%d",&n,&b,&s); if ( n>256 ) n=256; //約數最多256盞燈
for ( i=0;i<n;i++ ) a[i]=i; //燈號賦值
k=b; m=s; p=0;
while ( p<n ) //當還有燈祥握沒有熄滅時循環
{ if ( m==s ) { printf("%d ",a[k]); a[k]=(-1); p++; m=0; } //數到了,謹拿慶輸出位置,標記熄滅
else { do { k++; k%=n; } while ( a[k]<0 ); m++; } //向敏扮後數並折返,只有亮的燈m才計數
}
printf("\n");
}
C. 寫出點亮2盞LED燈的c語言程序
單片機的話,如埠上電默認高電平,那直接led一頭接電源一頭接埠,一個led對應一個埠。
一、簡單講:想要燈亮,就將對應埠置0。反之就是燈滅。
二、詳細講:假設用keil編寫,新建工程->選擇單片機型號->新建源文件->設置output(點魔術棒圖標勾選create hex file)。
我們用P2^0埠連接一個led(led另一端連電源)。先給埠起別名sbit led1=P2^0;之後代碼中需要燈亮就寫led1=0;即可。(頭文件自行導入)。
程序寫好,編譯後將生成的hex(路徑在之前的設置中)寫入單片機或載入到模擬電路中運行。
D. C語言:開關燈
#include"stdio.h"
intmain(intargc,char*argv[]){
charlmp[5001];
inti,j,N,M;
printf("PleaseenterN&M(int0<N<5001,0<M<=N)... ");
if(scanf("%d%d",&N,&M)!=2||N<1||N>5000||M<1||M>N){//保證輸入的N,M符合要求,否則退出
printf("Inputerror,exit... ");
return0;
}
for(i=1;i<=N;lmp[i++]=1);//N盞燈全開啟(原始狀態)
for(i=1;i<=M;i++)//遍歷M個人
for(j=1;j<=N;lmp[j++]^=!(j%i));//每個人把與自己編號成整數倍的燈作相反操作
for(j=0,i=1;i<=N;i++)//輸出,從編號小至大遍歷所有燈
if(!lmp[i])//輸出已被關閉的燈的編號
printf(j++?",%d":"%d",i);
printf(" ");
return0;
}
運行樣例: