导航:首页 > 编程知识 > 单片机编程怎么加按钮

单片机编程怎么加按钮

发布时间:2023-01-16 19:33:26

『壹』 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
;-----------------------------------

『贰』 我想要一个按钮用单片机实现开关功能!请问怎么编程

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

『叁』 单片机的独立按键

#include<reg51.h> // 4*4 按键+数码管仿真,可以参考。

#define uchar unsigned char

uchar temp;

int key1,key,disbuf;// 此表为 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f

unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

unsigned char ledx[8];

bit s0,s1;

void delay(uchar z)

{

uchar i,j;

for(i=0;i<120;i++)

for(j=0;j<z;j++);

}

void scan() //要是按键了,扫描键盘编码值

{

P1=0xF0;

delay(1);

temp=P1;

switch(temp)

{

case 0xe0: key1=0;

break;

case 0xd0: key1=1;

break;

case 0xb0: key1=2;

break;

case 0x70: key1=3;

break;

}

P1=0x0f;

delay(1);

temp=P1;

switch(temp)

{

case 0x0E: key=key1+0;

break;

case 0x0D: key=key1+4;

break;

case 0x0B: key=key1+8;

break;

case 0x07: key=key1+12;

break;

default : key=-1;

}

if((key1+1)&&(key+1)) disbuf=key;

}

void ejjc() //判断是否按键

{

P1=0xF0;

if(P1!=0xF0) { scan();s0=1;}

else { s0=0; s1=1;}

}

void main()

{

uchar i;

while(1)

{

ejjc();

if(s0==1 && s1==1)

{

s0=0;s1=0;

for(i=0;i<8;i++)

{ ledx[i]=ledx[i+1]; ledx[8]=disbuf; }

}

P0=0xff;

P2=LED7Code[ledx[0]];

P0=0xfe;

delay(5);

P0=0xff;

P2=LED7Code[ledx[1]];

P0=0xfd;

delay(5);

P0=0xff;

P2=LED7Code[ledx[2]];

P0=0xfb;

delay(5);

P0=0xff;

P2=LED7Code[ledx[3]];

P0=0xf7;

delay(5);

P0=0xff;

P2=LED7Code[ledx[4]];

P0=0xef;

delay(5);

P0=0xff;

P2=LED7Code[ledx[5]];

P0=0xdf;

delay(5);

P0=0xff;

P2=LED7Code[ledx[6]];

P0=0xbf;

delay(5);

P0=0xff;

P2=LED7Code[ledx[7]];

P0=0x7f;

delay(5);

}

}

『肆』 单片机C语言按键开关程序

#include<reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
voiddelay_ms(uint);
sbitled0=P0^0;
sbitled1=P0^1;
sbitkey1=P3^2;
sbitkey2=P3^3;
voidmain()
{
uchari=0;
ucharj=0;
while(1)
{
if(key1==0)//按键1
{
delay_ms(10);
if(key1==0)
{
i++;
i=i%2;
switch(i)
{
case0:led0=1;break;//关小灯
case1:led0=0;break;//开小灯
default:break;
}
}
while(!key1);
}

if(key2==0)//按键2
{
delay_ms(10);
if(key2==0)
{
j++;
j=j%2;
switch(j)
{
case0:led1=1;break;//关小灯
case1:led1=0;break;//开小灯
default:break;
}
}
while(!key2);
}
}
}
voiddelay_ms(uintz)//延时子程序
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

『伍』 怎么让正在运行的单片机程序暂停,其实就是要加个按键,当有键按下就暂停或运行。

开一个外部中断,接按键
按键触发后进入中断,循环判断按键,程序暂停,释放按键中断返回,程序继续运行

如果是按一下暂停,再按一下运行的话:
开一个外部中断,接按键
按键触发后进入中断,循环判断按键,释放按键后,等待按键再次触发,程序暂停,再次触发并释放后中断返回,程序继续运行

『陆』 跪求单片机高手 我想加多3个按钮,一个按钮控制一个数码管, 例如第一个按钮按一次,0那数码管加1

dis[]这个里面的前三个位元就是你现在显示的0,1,2
dis[0]---就是第一个数码管的显示数据
dis[1]---就是第二个数码管的显示数据
dis[2]---就是第三个数码管的显示数据
所以,想在第一个数据管显示1就跟dis[0]=1; 显示2就dis[1]=2;
写个按键对应程序就可以了

阅读全文

与单片机编程怎么加按钮相关的资料

热点内容
无法找到文件中可删除的图片 浏览:739
dnf90版本副职业 浏览:848
c只读打开文件 浏览:575
如何在电脑文件上添加图片 浏览:297
xslist网站怎么登录 浏览:735
ftp不能直接打开文件 浏览:145
ps调整后的xps文件 浏览:572
小米如何取消wifi和数据同时使用 浏览:347
微信数据6个g怎么清理 浏览:533
找厂房去哪个app 浏览:881
linuxmini 浏览:997
如何找编程类的工作 浏览:286
jsp从mysql读取时间 浏览:680
有什么app可以存app 浏览:603
游戏编程从哪里学的 浏览:738
win8文件布局 浏览:308
数据存储参数配置文件 浏览:122
面膜去哪个网站买好 浏览:627
天下游旧版本 浏览:622
iphone6按键震动 浏览:528

友情链接