1. 用c語言編寫51單片機三個開關控制八個LED燈的點亮,開關接P3埠,LED接P1埠
雖然編程51單片機。而且讓每個LED燈都亮得非常好。這可太好了問題。這個技術應該有專門的負責人員來搞定。
2. 求51單片機C語言,一個板子上完成一部分三個開關分別控制三個led燈光亮滅(不是流水燈),
#include<reg51.h>
sbitled1=P1^0;
sbitled2=P1^1;
sbitled3=P1^2;
sbitkey1=P1^4;
sbitkey2=P1^5;
sbitkey3=P1^6;
main()
{
while(1)
{
led1=key1;
led2=key2;
led3=key3;
}
}
3. C語言兩個開關控制兩個燈,兩開關全部閉合燈都不亮,一開一關只有一個燈亮(開關相聯
if a=1&b=1
c =0 d= 0
else if a|b=1
c=0 d=1 (c=1 d=0)
else c=1 d= 1
switch((a<<1)|b)
case 00:
case 01:
case 10:
case 11:
4. 單片機c語言,用四個個開關控制led顯示0~f,這個怎麼寫啊
假設P0的低4位接4 個開關,P1接一個數碼管,程序大體如下:
include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar num=0;
//共陰數碼管七段碼
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,.......};
void delay1ms(uint i) //1ms延時程序
{uint j;
for(;i>0;i--){
for(j=0;j<164;j++)
{;} }
}
void main(void )//主程序
{
while(1)
{
num=table(0x0f&P0);
P1=num;
delay1ms(2);
}
}
5. 急求51單片機c語言四個開關控制四個燈!(單燈閃爍)
程序的思路如下:(假設你的LED依序連接到51的I/O口,鍵盤也連接到對應的I/O)
在51的主循環裡面加入一個判斷語句,是否有按鍵按下,之後軟體除抖,調用相應的子功能函數即可.
6. 單片機c語言多個開關優先選擇問題
整理如下:
當p0.1口輸入低電平(持續時間8秒左右)情況下,
如果p0.2出現低電平,即後面不做任何操作。
當p0.1口輸入低電平(持續時間8秒左右)情況下,
如果p0.2不出現低電平,
當p0.3出現低電平後,即進行p0.4的賦值和延時輸出操作;
p0.3不出現低電平即不對p0.4操作。
等到p0.1口的低電平消失後,又繼續進行下一次重復的。
程序結構如下:
START:
IF(P0.1 == 1)GOTOSTART;
延時次數 = 0;
LP1:
延時 10ms;
IF(P0.1 == 1)GOTOSTART;
延時次數++;
IF (延時次數 < 800)GOTOLP1;
//以上,就確認了:P0.1輸入低電平持續8秒左右
IF ((P0.2 == 1)AND(P0.3 == 0))
//如果p0.2不出現低電平,p0.3出現低電平後
P0.4 = 0;延時 10ms;
//即進行p0.4的賦值和延時輸出操作;
LP2:
IF(P0.1 == 1)GOTOLP2
//等到p0.1口的低電平消失,
GOTOSTART;
//又繼續進行下一次重復的
別忘了採納。
7. 兩個開關控制一盞燈用C語言或者使用匯編語言編寫怎麼寫 急急急急 非常感謝
不難啊,你要說出邏輯,怎麼控制才能用C語言實現啊。
我寫一段程序,來表示「任意開關按一下就亮,再按一下就滅」的吧
boolen switchA,switchB,preswitchA,preswitchB;
boolen Lightstatus;//1亮,2滅
void main()
{
while(1)
{
if(switchA ! = preswitchA)
{
Lightstatus = (!Lightstatus);
preswitchA = switchA ;
}
if(switchB ! = preswitchB)
{
Lightstatus = (!Lightstatus);
preswitchB= switchB;
}
}
8. C語言三開關控制一盞燈亮滅
在組成原理中,這個就是一個 觸發器 外面接一個開關……
寫真值表然後就很容易出來啊 !
觀樓主英俊瀟灑、風流倜儻,必當世之豪傑,誠邀樓主加入0x30網路貼吧,共商義舉,成千秋霸業。
s1s2s3f
0000
0010
0100
0110
1000
1110
1011
1101
這樣我們就可以寫出邏輯表達式來了。
#include<iostream>
usingnamespacestd;
intmain()
{
ints1,s2,s3;
constS1_BREAK=100;//用於跳出循環的
do{
cin>>s1>>s2>>s3;
if(s1&&((!s2&&s3)||(s2&&!s3))){
cout<<"on"<<endl;
}else{
cout<<"off"<<endl;
}
if(s1==S1_BREAK)break;
}while(true);
return0;
}
運算結果: