⑴ 單片機編程:P1口P1.1-P1.7接八個LED燈L0-L7。分別用查詢方式,中斷方式編寫一程序,使八個LED燈輪流點亮
點亮子函數:
#include"reg51.h"
#include"intrins.h"
#define uchar unsigned char
void dd()
{
uchar temp=0xfe,i;
for(i=0;i<8;i++)
{
P1=temp;
temp=_crol_(temp,1);//左移函數
delay();
}
}
然後你要什麼中斷你就在中斷函數裡面調用這個函數就可以
⑵ 單片機編程,用一個開關控制8個燈輪流亮,再用一個開關控制兩個燈一起亮一起滅
簡單的啊。思路:8個LED接在一個口,如P1口。再將另外兩個LED接在另外某個口(如P2)的兩個引腳。然後將兩個按鍵分別接在空閑的口的兩個引腳。
按下一個按鍵,使8個LED的輸出狀態變化,0xFE循環移位實現,LED低電平亮。另外的按鍵按下,兩個LED狀態翻轉。
⑶ 單片機編程,求高手指導,1個K1控制9個燈,輪流亮。K1一動燈亮到那盞就停在那盞!!邱編程急!!
先加qq:504111933
⑷ 三位燈輪流點亮間,每隔一秒循環5次,單片機程序設計
#include<reg51.h>
sbitled1=P1^0;
sbitled2=P1^1;
sbitled3=P1^2;
voiddelay(inta)
{
unsignedchari;
while(a--)for(i=0;i<120;i++);
}
main()
{
unsignedchari;
for(i=0;i<5;i++)
{
led1=0;
led2=1;
led3=1;
delay(1000);
led1=1;
led2=0;
led3=1;
delay(1000);
led1=1;
led2=1;
led3=0;
delay(1000);
}
}
⑸ 單片機實現小燈輪流點亮間隔閃亮
這個程序不難實現,很簡單,在網上隨便下載個教程都有流水燈的控製程序,自己改改就可以實現了!為什麼要來問呢!給你個方向,自己去研究吧!那樣東西才是你的,不然幫你就是害了你!!!
鍵控流水燈的程序
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
void mDelay(unsigned int DelayTime)
{ unsigned int j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++)
{;} }}
uchar Key()
{ uchar KeyV;
uchar tmp;
P3=P3|0x3c; //四個按鍵所接位置
KeyV=P3;
if((KeyV|0xc3)==0xff) //無鍵按下
return(0);
mDelay(10); //延時,去鍵抖
KeyV=P3;
if((KeyV|0xc3)==0xff)
return(0);
else
{ for(;;){ tmp=P3;
if((tmp|0xc3)==0xff)
break;}
return(KeyV);}}
void main()
{ unsigned char OutData=0xfe;
bit UpDown=0;
bit Start=0;
uchar KValue;
for(;;)
{ KValue=Key();
switch (KValue)
{ case 0xfb : //P3.2=0,Start
{ Start=1;
break; }
case 0xf7: //P3.3=0,Stop
{ Start=0;
break; }
case 0xef: //P3.4=0 Up
{ UpDown=1;
break; }
case 0xdf: //P3.5=0 Down
{ UpDown=0;
break; }
}
if(Start)
{ if(UpDown)
OutData=_crol_(OutData,1);
else
OutData=_cror_(OutData,1);
P1=OutData;
}
else
P1=0xff; //否則燈全滅
mDelay(1000);
}
}
⑹ 急需單片機高手幫忙用C語言寫一個單片機4個燈輪流閃亮的源程序。 詳細內容看補充。
/*對於個單片機的初學者,我希望用最直觀的方式來達到你要的要求,程序每一句我已經寫好備注,希望對你有幫助*/
#include<reg51.h> //使用51功能頭文件
sbit L1=P0^0; //L1對應P0.0,表示第一盞燈
sbit L2=P0^1; //L1對應P0.1,表示第二盞燈
sbit L3=P0^2; //L1對應P0.2,表示第三盞燈
sbit L4=P0^3; //L1對應P0.3,表示第四盞燈
void delay(unsigned int i) //延遲子程序,注意這里的unsigned int i,這里相當於限定了調用時候變數的類型
{
unsigned char j; //局部變數定義
while(i--) //循環i次,主程序main調用時候,i為100,這數值你可隨便該,但小於65355
for(j = 200; j > 0; j--) ; //這步的意思是空操作200次,也就是暫用CPU200次的工作時間
}
void main(void) //主函數,這里的viod是無類型,意思是沒有給這函數指定數據類型
{
P0=0x00; //將P0口初始化位高電平,如果沒有這句,初始化為低電平,這里可根據需要選擇
L1=1; //第一盞燈亮
delay(100); //調用延時子程序
L2=1; //第二盞燈亮
delay(100); //調用延時子程序
L3=1; //第三盞燈亮
delay(100); //調用延時子程序
L4=1; //第四盞燈亮
delay(100); //調用延時子程序
while(1); //這里我用了個死循環,目的程序只運行一次,如果需要自動重新運行,可以把這句刪掉
}
純手工書寫,並模擬調試過,記得加分喲~
⑺ 單片機:設計一個8燈閃爍控制電路,系統晶振為12HMz,編程實現8燈輪流閃爍,每盞燈點亮時間為2秒 求大神!
LED負極接單片機IO口,本程序接P1,低電平點亮
#include<reg52.h> //52系列單片機頭文件
#include<intrins.h>
#defineuintunsignedint //宏定義
#defineucharunsignedchar
voiddelayms(uint); //聲明子函數
ucharaa;
voidmain() //主函數
{
aa=0xfe; //賦初值11111110
while(1) //大循環
{
P1=aa;
delayms(2000); //延時2秒
aa=_crol_(aa,1); //將aa循環左移1位後再賦給aa
}
}
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--) //i=xms即延時約xms毫秒
for(j=110;j>0;j--);
}
⑻ 你好我有個單片機程序要求8個燈輪流亮,相隔1分鍾亮一個,就是亮一個滅掉等1分鍾亮第二個,
#include "reg51.h"
void delayls()
{
unsigned char i;
for(i = 0; i < 20; i++) { //延時1秒
TH1 = 0x3c;
TH1 = 0xb0;
TR1 = 1;
while(!TF1);
TF1 = 0;
}
}
void main()
{
unsigned char i, j, w;
TMOD = 0x10;
while(1){
w = 0x01;
for(i = 0; i < 8; i++) {
P1 = ~w; delayls(); //亮1秒
P1 = 255; //滅
for(j = 0; j < 60; j++) delayls() //60秒
w <<= 1;
}
}
}
試試這個程序,可以實現:
亮一秒、滅一分鍾、8個燈輪流循環。
⑼ 用51單片機(匯編語言寫)寫一個跑馬燈程序知道的幫個忙寫寫。
急用!請教!!!
用匯編語言程序,程序功能:實現方向可控的跑馬燈
編程要求:用八個LED發光二極體實現跑馬燈(即:8個燈依次輪流發光,每次只亮一個燈),系統啟動後,跑馬燈右向流轉,按下K1鍵,則反向流轉,再按則再反向……。接線方法:流水燈接P0口,按鍵K1可自選P1~P3任一引腳。