導航:首頁 > 操作系統 > 單片機獨立按鍵開關代碼

單片機獨立按鍵開關代碼

發布時間:2023-09-17 05:11:43

A. 我想要一個按鈕用單片機實現開關功能!請問怎麼編程

51單片機嗎?這個不是很難!
硬體連接:P1.0接按鍵,P1.1接LED
org 0
ajmp start
org 30h
start:mov p1,#0ffh
main: mov a,p1
jnb p1.0,next
ajmp main
next: lcall dely
mov a,p1
jnb p1.0,huan
ajmp main
huan: cpl p1.1
ajmp main
dely: mov r7,#100
dl1: mov r6,#100
dl2: mov r5,#5
djnz r5,$
djnz r6,dl2
djnz r7,dl1
ret
end

B. 單片機 匯編語言編寫 獨立鍵盤 控制小燈

單片機的P1.0-P1.3接四個發光二極體L1-L4的陰極,P1.4-P1.7接四個開關K1-K4
程序:
ORG 00H
START: MOV A,P1
ANL A,#0F0H
RR A
RR A
RR A
RR A
ORl A,#0F0H
MOV P1,A
SJMP START
可以檢測單個按鍵,也可以同時檢測多個按鍵
過程:開始——讀P1口數據到A——A中的數據右移4次——A中的內容和F0H相或——A中的數據送到P1口——回到開始

C. 請問單片機怎麼用獨立按鍵按一下實現一個功能,按另一個按鍵實現另一個功能 這個代碼要怎麼寫啊

如果這兩個功能都是一個死循環,可以考慮用中斷,這樣就不必在兩個獨立的功能中插入按鍵檢測了
while(1)
{
while(flag==1){死循環1}
while(flag==2){死循環2}
}
如果這兩個功能不是死循環,就 簡單了
while(1)
{
if(key1==0) {延時消抖 功能1}
if(key2==0) {延時消抖 功能2}
}

D. 51單片機匯編語言編程獨立按鍵

四個按鍵,定義如下:

KEY1 BIT P3.0
KEY2 BIT P3.1
KEY3 BIT P3.2
KEY4 BIT P3.3

按鍵處理程序:
;-----------------------------------
READ_KEY:

JB KEY1, K2
CALL DELAY
JB KEY1, K2
JNB KEY1, $

PUSH ACC
INC 75H
MOV A, 75H
CJNE A, #10, ZINT01
MOV 75H, #0
ZINT01:
POP ACC

JMP K_EXIT
;---------------
K2: JB KEY2, K3
CALL DELAY
JB KEY2, K3
JNB KEY2, $

PUSH ACC
INC 76H
MOV A, 76H
CJNE A, #10, ZINT01
MOV 76H, #0
ZINT01:
POP ACC

JMP K_EXIT
;---------------
K3: JB KEY3, K4
CALL DELAY
JB KEY3, K4
JNB KEY3, $

PUSH ACC
DEC 75H
MOV A, 75H
CJNE A, #255, ZINT03
MOV 75H, #9
ZINT03:
POP ACC

JMP K_EXIT
;---------------
K4: JB KEY4, K_EXIT
CALL DELAY
JB KEY4, K_EXIT
JNB KEY4, $

PUSH ACC
DEC 76H
MOV A, 76H
CJNE A, #255, ZINT04
MOV 76H, #9
ZINT04:
POP ACC

K_EXIT:
RET
;---------------
DELAY:
DJNZ R7, $
DJNZ R7, $
RET
;-----------------------------------

E. 求51單片機獨立按鍵的代碼。功能:類似設置電子表時間。見補充

void delay(unsigned char);
void main()
{
....;
}
/************IndependentButtons*************/
char Button(void)
{
unsigned char state1,a = 1,mt = 1;
P1 = 0xff;
state1 = P1;
state1 = ~ state1;
if(state1 != 0x00)
{
delay10ms(5);
do{
if(mt > 1)
dealy10ms(100);
delay10ms(50);
a ++;
mt ++;
}while(P1 != 0xff);
}
return a;
}
為相應的獨立按鍵c代碼(為8個獨立按鍵,如果要4個獨立按鍵可以在上面程序該的),其他的只要用main調用,在main里製表,就行了。

F. 我為51單片機設計了一個用獨立按鍵控制LED的程序,求大神看看程序有沒有什麼能夠優化的地方。

#include<reg51.h>
#include<intrins.h>
sbitk1=P3^1;
sbitk2=P3^0;
sbitk3=P3^2;
sbitk4=P3^3;
bitflag=0;
typedefunsignedcharu8;
typedefunsignedintu16;
#defineledP2
voiddelay(u16i)
{
while(i--);
}//延時函數
u8keyscan(void)
{
u8keyval=0;
if(k1==0)
{
while(k1==0);
keyval=1;
}
if(k2==0)
{
while(k2==0);
keyval=2;
}
if(k3==0)
{
while(k3==0);
keyval=3;
flag=~flag;
}
if(k4==0)
{
while(k4==0);
keyval=4;
}
return(keyval);

}
main()
{
u8key1,key2,num=0;
u8led[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
while(1)
{
key1=keyscan();
if(key1!=0)key2=key1;
switch(key2)
{
case1:P0=led[num];delay(10000);P0=0xff;delay(10000);num++;num%=8;break;
case2:P0=led[num];delay(10000);P0=0xff;delay(10000);num--;if(num==0)num=7;break;
case3:if(flag)P0=led[num];elseP0=0xff;break;
case4:P0=led[num];while((key1=keyscan())!=4);P0=0xff;key1=key2=0;num=0;break;
default:break;
}
}
}

G. 51單片機獨立式按鍵程序

#include<reg52.h>
unsignedcharID;
sbitk1=P3^7;//定義按鍵埠
voiddelay()
{
TMOD=0x10;//定時器的工作方式
TH1=0xd8;
TL1=0xf0;
TR1=1;
while(!TF1);//這里錯了,是定時器1
TF1=0;
}
voidmain()
{
while(1)
{
if(k1==0)
{
delay();//去抖動
if(k1==0)//檢測按鍵確實按下,進行按鍵處理
{
ID++;
if(ID==0)
{
ID=0;
}
while(!k1);//這里錯了,多餘的加了==0
}
}
switch(ID)
{
case0:P1=0x3f;break;
case1:P1=0x06;break;
case2:P1=0x5b;break;
case3:P1=0x4f;break;
case4:P1=0x66;break;
case5:P1=0x6d;break;
case6:P1=0x7d;break;
case7:P1=0x07;break;
case8:P1=0x7f;break;
case9:P1=0x6f;break;
default:break;
}
}
}

閱讀全文

與單片機獨立按鍵開關代碼相關的資料

熱點內容
java獲取網頁url 瀏覽:622
怎麼做解壓神器泡泡版 瀏覽:964
自己動手做一個c編譯器 瀏覽:927
手機如何鏈接谷歌伺服器地址 瀏覽:135
廢掉一個程序員的武功 瀏覽:247
java樹形演算法 瀏覽:639
通達信加鎖指標源碼怎麼看 瀏覽:752
將同名文件移動到部分同名文件夾 瀏覽:401
擺盪指標加壓力線源碼 瀏覽:913
新一代單片機特徵 瀏覽:768
王者的伺服器什麼時候才修好 瀏覽:279
cad歷史命令 瀏覽:39
php博客源代碼 瀏覽:24
cng壓縮機功率 瀏覽:459
pdf批量列印怎麼設置 瀏覽:78
javamap底層 瀏覽:267
賣華為雲伺服器 瀏覽:111
中穎單片機燒錄器 瀏覽:848
pdf轉換成圖片免費軟體 瀏覽:469
編程語言怎麼做出來的 瀏覽:619