标题: 升级单片机流水灯-四个独立按键中断方式的源代码+Proteus仿真 [打印本页]

作者: 硕夜    时间: 2020-5-19 10:54
标题: 升级单片机流水灯-四个独立按键中断方式的源代码+Proteus仿真
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
#include<reg51.h>
sbit S1=P1^0;              
sbit S2=P1^1;         
sbit S3=P1^2;         
sbit S4=P1^3;         
unsigned char keyval;        //定义键值储存变量单元
void key_scan(void);   //函数:键盘扫描
void forward(void);          //函数:正向流水点亮LED
void backward(void);      //函数:反向流水点亮LED
void Alter(void);          //函数:交替点亮高4位与低4位LED
void blink(void);          //函数:闪烁点亮LED
void led_delay(void);   //函数:延时
void delay10ms(void);   //函数:软件消抖延时10ms

void main(void)   
{
keyval=0;               
while(1)
{
  key_scan();     //调用键盘扫描函数
  switch(keyval)
  {
  case 1:
   forward();        //键值为1,调用正向流水点亮函数
   break;
  case 2:
   backward();        //键值为2,调用反向流水点亮函数
   break;
  case 3:
   Alter();        //键值为3,调用高、低4位交替点亮函数
   break;
  case 4:
   blink ();        //键值为4,调用闪烁点亮函数
   break;
  }
}
}
void key_scan(void)   //函数功能:键盘扫描
{
P1=0xff;
if((P1&0x0f)!=0x0f)    //检测是否有键按下
{
  delay10ms();    //延时10ms再去检测
  if(S1==0)        
   keyval=1;
  if(S2==0)        
   keyval=2;
  if(S3==0)        
   keyval=3;
  if(S4==0)        
   keyval=4;
}
}

全部资料51hei下载地址:
升级流水灯-四个独立按键中断方式.zip (65 KB, 下载次数: 54)

作者: xllin    时间: 2020-5-20 10:36

谢谢分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1