CPU 控制器 集成电路 运算器 主频 内存
主页 正文

51单片机实现按键控制数码管加减及切换教程

汇编语言51单片机怎么实现用KEY 1控制数码管上显示的数字加1 KEY2控制数码管上显示数字减1?

原密钥1为P3.4,添加密钥2为P3.5;

1. 如下:

TAB:DB00H,3F H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H

> 即数据的开头和结尾都是0(这是Attend only),中间是七段码中的数据显示 0--F;

2.

3.显示的节目也发生了变化,只是节目有延迟。
改变;

MOVR5,#0 1H

CLRA

LCALLDISPLAY

循环:

LCALLKEYDOWN

LCALLD ISPLAY

SJMPLOOP

KEYDOWN:

JBP3.4,CK11 ;如果key1没有按下,则转到key2

LCALLDS1MS ;P3.4=0表示Key1被按下

JBP3.4,CK11 ; 但是 key1 无法释放

MOVR5, #01H

INCR4 ; 然后转到key1

LCALLDS1MS ;P3.5=0表示Key2被按下

JBP3.4, KEYDOWN ; key2 还不能释放

MOVR5, #10H

DECR4 ; MOVR4,R5

播放:

MOVE,R4

MOVCA,@A+DPTR

JZD1//累加器(A)= 0转

MOVP0,A

SETBP2.6

CLRP2.6

MOVP0,#0FEH

SETBP2.7

CLRP2.7

LCALLDS1MS ;等待

LCALLKEYUP

RET

KE YUP:

JNBP3.4,KEYUP ;转P3.4=0

JNBP3.5,KEYUP ; 等待按钮松开

LCALLDS1MS

JNBP3.4,KEYUP

JNBP3.5,KEYUP

RET

选项卡:DB00H、3FH、 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H

END

单片机计数器实现减一

要清除 0, 总共应包含 3 个密钥

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitk 1=P1 ^0;//清0

sbitk2=P1^4;//减少1

sbitk3=P1^7;//添加 1

ucharseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

ucharcounter;

voiddelay(uintm)

{

uinti,j;

for(i=0;i

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

}

voiddisplay(void )

{

P3=0x01;

P2=seg[ counter/10];//显示十位

delay( 20);

P3=0x02;

P2=seg[counter%10];//显示数字个位

delay(20);

}

voidmain( )

{

while(1)

{

display( );

if(k1= =0) // 清除 0

{

counter=0;

while(k1= =0)display();//等待按键释放

}

if(k2==0)//减1

{

counter--;

if(counter ==0xff)counter=99;

while(k2==0)display();

}

if(k3==0)//加1

{

counter++;

99)counter=0;

while(k3==0)display();

}

}

}

图示如下

单片机 c语言 一个按键按一下加一 一个按键按一下减一 一个按键an'yi'x切换

#includesbitkey1=P2^5; sbitkey2=P2^6; sbitkey3=P2^7; main(){bitflag=0;unsignedchara;while(1){if(key1==0){while(key1==0); if(==0)a++;elsea--;P0=a;}if(key2==0){while(key2==0);if(vex==0)a--;elsea++;P0=a ; }if(key3==0){while(key1==0);vex=~flag;}}}

热门资讯
时钟计算(时钟计算)
杭州宋城免费景点
清除手机缓存数据有什么影响
车载逆变器选购指南选购误区,避免购买陷阱
深度评测至强E5-2660CPU性能解析
计算机进行算术和逻辑运算的部件
内存条和主板不兼容怎么解决
中断类型码和中断类型号