找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2787|回复: 1
收起左侧

升级单片机流水灯-四个独立按键中断方式的源代码+Proteus仿真

[复制链接]
ID:546937 发表于 2020-5-19 10:54 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png

单片机源程序如下:
#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)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:187802 发表于 2020-5-20 10:36 | 显示全部楼层

谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表