A. 51單片機二極體延時點亮的室驗原理
51單片機控制二極體延時點亮的實驗原理是基於51單片機的內部計時器和IO口控制二極體的電流流動。具體步驟如下:
將一個二極體連接到51單片機的IO口上,使得該IO口可以控制二極體的電流開關狀態。
使用51單片機的內部計時器來延時,計時器可以通過編寫程序控制其開始和結束的時間。
在程序中設定一個時間延時,然後將IO口設置為高電平,使得電流可以通過二極體流動,點亮二極體。
延時結束後,將IO口設置為低電平,關閉電流,二極體熄滅。
通過這種方法,可以控制二極體的電流開關狀態和延時時間,從而實現延時點亮二極體的效果。同時,由於51單片機的計時器具有較高的精度和可編程性,因此可以實現各種不同的延時效果。
B. 用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();
}
}
(2)單片機二極體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;//點亮第八個發光管
}
}
C. 單片機中怎樣根據匯編代碼判斷二極體是共陰極還是共陽極的
程序中紅線標出的,是共陽極LED的段碼表,對應的字元依次是0~9。
例如,首個段碼是 C0h =1100 0000b,
即a,b,c,d,e,f,腳低電平,對應"筆畫"亮,顯示「0」字元。
請參閱下圖:
D. 設計一個節目彩燈控制器,在單片機的p0口接有8個發光二極體作為指示燈,p1.0~p1.3接有4個按鍵開關。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar led=0xfe,led1=0x00;
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
main()
uchar keyval=0;
{
while(1)
{
if(key1==0);
{
while(key1==0);
keyval=1;
}
if(key2=0);
{
while(key2==0);
keyval=2;
}
if(key3==0);
{
while(key3==0);
keyval=3;
}
if(key4==0);
{
while(key4==0);
keyval=4;
}
switch(keyval)
{
case 1:
P0=led1;
led1=~led1;
delay(100);
break;
case 2:
P0=0xff;
break;
case 3:
P0=led;
led=_crol_(led,1);
delay(100);
break;
case 4:
P0=led;
led=_cror_(led,1);
delay(100);
break;
}
}
}