❶ 用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;//點亮第八個發光管
}
}
❷ 實現單片機信號燈1-8依次循環點亮的程序怎麼寫
電路很簡單八個led燈接在p1口.運行後看到的效果是 從第一個燈開始 隨著時間變化 二進制數的遞減 所有的燈都會依次的點亮,當全部的燈都被點亮後再重新開始這個過程 一直循環下去 單片機是不是很有趣?
下面是c語言程序源碼
#include <reg51.h>
void delay100ms(); //如果函數是在主函數後面定義,那麼一定要在主函數前面聲明
void main()
{
int i;
i=0xfe;
while(1)
{P1=i;
i--;
delay100ms();
if(i==0)
i=0xfe;
}
}
void delay100ms(void)//
{
unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=230;a>0;a--)
❸ 單片機C語言編程點亮LED燈
可以通過左移函數_crol_()和右移函數_cror_()來實現LED等的來迴流動。 具體實現方法可以參考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a);void main(){ P1=0xfe; while(1) { // 向左循環點亮LED for(i=0; i<7; i++) { P1=_crol_(P1,1); // 左移一位,點亮下一位LED delay(55); } // 向右循環點亮LED for(i=0; i/ 右移一位,,點亮上一位LED delay(55); } }}// 延時函數,延時a毫秒void delay(uint a){ uint x,y; for(x=a;x>0;x--) for(y=110;y>0;y--);}
❹ 誰能幫我寫一個循環流水燈的c語言編程
#include<reg51.h>//51系列單片機定義文件
#defineucharunsignedchar//定義無符號字元
#defineuintunsignedint//定義無符號整數
voiddelay(uint);//聲明延時函數
voidmain()
{
uinti;
uchartemp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++)//8個流水燈逐個閃動
{
P2=~temp;
delay(500);//調用延時函數
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++)//8個流水燈反向逐個閃動
{
P2=~temp;
delay(500);//調用延時函數
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++)//8個流水燈依次全部點亮
{
P2=temp;
delay(500);//調用延時函數
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++)//8個流水燈依次反向全部點亮
{
P2=temp;
delay(500);//調用延時函數
temp>>=1;
}
}
}
voiddelay(uinta)//延時函數,毫秒級別
{
uinti;
while(--a!=0)//執行空操作循環,其中a為形參,由調用該函數的函數語句提供值
{
for(i=0;i<125;i++);//執行當0加到125時,大約會用掉1ms的時間
}
}
❺ 如何用C語言寫一個循環彩燈的程序,採用定時器方式1工作。
unsigned char lights = 0; //lights到各位分別表示P1.0~P1.7
int i=0;
while (1)
{
//①L1、L2、…L8依次點亮
lights = 0x01;
for (i=0; i<7; i++)
{
delay(500);
lights = lights << 1;
}
delay(500);
//②L1、L2、…L8依次熄滅
lights = 0xfe;
for (i=0; i<7; i++)
{
delay(500);
lights = (lights << 1) + 0x01;
}
delay(500);
//③L1、L2、…L8全亮
lights = 0xff;
delay(500);
//全滅
lights = 0x00;
delay(500);
}
❻ 單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)
單片機流水燈C語言程序的源代碼如下:
#include //51系列單片機定義文件
#define uchar unsigned char //定義無符號字元
#define uint unsigned int //定義無符號整數
void delay(uint); //聲明延時函數
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8個流水燈逐個閃動
{
P1=~temp;
delay(100); //調用延時函數
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8個流水燈反向逐個閃動
{
P1=~temp;
delay(100); //調用延時函數
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8個流水燈依次全部點亮
{
P1=temp;
delay(100); //調用延時函數
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8個流水燈依次反向全部點亮
{
P1=temp;
delay(100); //調用延時函數
temp>>=1;
}
void delay(uint t) //定義延時函數
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
(6)循環彩燈的c語言單片機程序擴展閱讀
51單片機流水燈的源代碼如下
#include<reg51.h>
#include<intrins.h>
voiddelay(inta)
{
inti;
while(a--)for(i=0;i<110;i++);
}
main()
{
inti;
while(1)
{
P0=0xfe;
for(i=0;i<8;i++)
{
P0=_crol_(P0,1);
delay(500);
}
}
}
❼ 用C語言編寫一個單片機控制LED燈閃爍變化的編程 急用!!!!!!!!!
C語言實現LED燈閃爍控制配套51單片機開發板。
#include //包含單片機寄存器的頭文件
/****************************************
函數功能:延時一段時間
*****************************************/
void delay(void) //兩個void意思分別為無需返回值,沒有參數傳遞。
{
unsigned int i; //定義無符號整數,最大取值范圍65535。
for(i=0;i<20000;i++) //做20000次空循環。
; //什麼也不做,等待一個機器周期。
}
/*******************************************************
函數功能:主函數 (C語言規定必須有也只能有1個主函數)。
********************************************************/
void main(void)
{
while(1) //無限循環。
{
P0=0xfe; //P1=1111 1110B, P0.0輸出低電平。
delay(); //延時一段時間。
P0=0xff; //P1=1111 1111B, P0.0輸出高電平。
delay(); //延時一段時間。
}
}
單片機驅動LED燈的源程序:
#include<reg52.h> //頭文件。
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P1^7; //位定義。
void delay_ms(uint);//mS級帶參數延時函數。
void main()
{
while(1)
{
LED1=0;
delay_ms(1000);
LED1=1;
delay_ms(1000);
}
}
void delay_ms(uint z) //延時子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
(7)循環彩燈的c語言單片機程序擴展閱讀:
單片機應用分類:
通用型:
這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。
匯流排型:
這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接。
另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。
控制型:
這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型。
通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。
參考資料來源:網路-單片機
❽ 求單片機彩燈循環控製程序
ORG0000H
AJMPMAIN
ORG0100H
MAIN:JBP2.0,m1
JBP2.1,m2
JBP2.2,m3
JBP2.3,m4
JBP2.4,m5
JBP2.5,m6
JBP2.6,m7
JBP2.7,m8
SJMPMAIN
m1:MOVR1,#02H;四亮四閃
LOOP:MOVP1,#00H
XRLA,#0AAH
MOVP1,A
CALLDELAY
DJNZR1,LOOP
SJMPMAIN
m2:MOVR1,#08H;向右閃爍
MOVA,#0FEH
LOOP1:MOVP1,A
CALLDELAY
RLA
DJNZR1,LOOP1
SJMPMAIN
m3:MOVR1,#02H;整體閃爍
LOOP2:MOVP1,#00H
CALLDELAY
MOVP1,#0FFH
CALLDELAY
DJNZR1,LOOP2
SJMPMAIN
m4:MOVR1,#08H;奇數向右閃爍
MOVA,#0AAH
LOOP3:MOVP1,A
RRA
CALLDELAY
DJNZR1,LOOP3
SJMPMAIN
m5:MOVR1,#08H;兩邊中間
LOOP4:MOVP1,#3CH
CALLDELAY
MOVP1,#0C3H
CALLDELAY
;MOVP1,#7EH
;CALLDELAY
;MOVP1,#0BDH
;CALLDELAY
;MOVP1,#0DBH
;CALLDELAY
;MOVP1,#0E7H
;CALLDELAY
DJNZR1,LOOP4
SJMPMAIN
m6:MOVR1,#04H
LOOP5:MOVP1,#0F0H;亮一半滅一半
CALLDELAY
MOVP1,#0FH
CALLDELAY
DJNZR1,LOOP5
JMPMAIN
m7:MOVR1,#02H;中間往兩邊滅
LOOP6:MOVP1,#00H
CALLDELAY
MOVP1,#18H
CALLDELAY
MOVP1,#3CH
CALLDELAY
MOVP1,#7EH
CALLDELAY
MOVP1,#0FFH
CALLDELAY
DJNZR1,LOOP6
LJMPMAIN
m8:MOVR1,#01H;雙燈循環
LOOP7:MOVP1,#3FH
CALLDELAY
MOVP1,#0FCH
CALLDELAY
MOVP1,#0CFH
CALLDELAY
MOVP1,#0F3H
CALLDELAY
DJNZR1,LOOP7
JMPMAIN
DELAY:MOVR5,#10
DEL1:MOVR7,#200
DEL:MOVR6,#123
NOP
NOP
DJNZR6,$
DJNZR7,DEL
DJNZR5,DEL1
RET
就是沒有數碼管顯示!一共八種模式!