标题:
单片机按键控制8位led灯的亮灭程序+电路图
[打印本页]
作者:
qqqqaqqqq
时间:
2019-7-8 12:02
标题:
单片机按键控制8位led灯的亮灭程序+电路图
用两个按键控制八灯的亮灭,一次加一或减一
led.jpg
(97.57 KB, 下载次数: 39)
下载附件
仿真图
2019-7-8 11:58 上传
以下为原程序:
#include <REGX52.H>
#define LED P0 // LED 接 P0口
typedef unsigned int u16;
typedef unsigned char u8;
u16 num = 0;
sbit key_jia = P2^0; //按键加
sbit key_jian = P2^1; //按键减
/***** 0000 0001 0000 0011 0000 0111 0000 1111 0001 1111 0011 1111 0111 1111 1111 1111 *****/
u8 code table[] = {0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
/*******************************延时********************************/
void delay(u16 i)
{
while(i--);
}
/******************************按键**********************************/
void key(void)
{
if(key_jia == 0) // 按键加
{
delay(1000); // 消抖
if(key_jia == 0)
{
num++; // 加一
if(num == 9)
{
num = 8; // 最多到7
}
}
while( !key_jia ); // 检测按键加是否松开
}
if(key_jian == 0) //按键减
{
delay(1000);
if(key_jian == 0)
{
if(num != 0) // 判断是否到0
{
num--; // 减一
}
else
{
num = 0; // 到0停
}
}
while( !key_jian ); // 检测按键减是否松开
}
}
/******************************main************************/
void main(void)
{
LED = table[0]; // 8灯为灭
while(1)
{
key(); // 按键
LED = table[num]; // led
}
复制代码
全部资料51hei下载地址:
按键led及仿真.zip
(56.21 KB, 下载次数: 36)
2019-7-8 12:01 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1