在Keil C51中通过使用按键来控制LED灯的闪烁,在Proteus中运行观察结果。

***/名称:通过使用按键来控制LED灯的闪烁。***/

#include <reg51.h>
/*************软件延时*******/
void delay(unsigned int uMs)
{
	unsigned int i, j;
	for(i = 0; i < uMs; i++)
	 {
	 for(j = 0; j < 1000; j++);
	 }
}
//****主函数*******//
main()
{
 unsigned char temp, KeyNum;
	KeyNum = P1;								//读取KeyNum的值传递给P1;
	if (KeyNum != 0xFF)					//判断是否有键被按下;
	{
		delay(50);								//延时消除抖动。
		temp = P1;								//再次读取KeyNum的值;
		if (KeyNum == temp)				//判断两次数值是否相等;
		{
				KeyNum = KeyNum;			//相等则说明有按键被按下不是误操作,
				P0 = KeyNum;					//将被按下的键的信息传递给P0口输出,通过查看LED的显示状态判断是否与被按下键一致。
		}
		else
		{
		KeyNum = 0x00;						//不相等说明有抖动产生,直接赋值消除抖动。
		}
	}
	return 0;        //该句可不加。
}

/**********************************************************/
Proteus仿真电路图如下:
在这里插入图片描述
将Keil C51程序的hex文件导入单片机中,通过按下P1口的按键,观察P0口二极管的显示状态来对照运行结果是否正确。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值