求51单片机按键点灯汇编程序,按一下按键灯亮(一直亮),再按一下灭

求51单片机按键点灯汇编程序,按一下按键灯亮(一直亮),再按一下灭,第1张

以下为一个按键控制一个灯的程序!!!

ORG 0000H

SETB P1.0

START:

JB P1.0,NEXT ;设按键为低电平有效。

JNB P1.0,$

CPL P3.0

NEXT:

SJMP START

END

C51独立按键的识别示例程序

每按一次独立键盘的S2键,与P1口相连的一个发光二极管往下移动一位。

#include <reg52.h>

sbit BY1=P3^4 //定义按键的输入端S2键

unsigned char count//按键计数,每按一下,count加1

unsigned char temp

unsigned char a,b

void delay10ms(void) //延时程序

{

unsigned char i,j

for(i=20i>0i--)

for(j=248j>0j--)

}

key() //按键判断程序

{

if(BY1==0) //判断是否按下键盘,当单片机上电时所有IO口为//高电平,S2键一端接地另一端接P3.4,所以当键被按下时P3.4口//直接接地,此时检测P3.4肯定为低电平。

{

delay10ms()//延时,软件去干扰

if(BY1==0) //确认按键按下

{

count++ //按键计数加1

if(count==8) //计8次重新计数

{

count=0 //将count清零

}

}

while(BY1==0)//等待按键释放,如果键未释放则一直在此等待。

}

}

move()//广告灯向下移动移动函数

{

a=temp<<count //这三句为一个循环移位,相当于前面提到的

b=temp>>(8-count)// _crol_()函数

P1=a|b

}

main()

{

count=0 //初始化参数设置

temp=0xfe

P1=0xff

P1=temp

while(1) //永远循环,扫描判断按键是否按下

{

key() //调用按键识别函数

move() //调用广告灯移动函数

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11433462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存