找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2908|回复: 1
打印 上一主题 下一主题
收起左侧

8路抢答器仿真设计

[复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序:

#include <reg51.h>            //包含头文件reg51.h
void delay(unsigned int i);   //延时函数声明
void main()                             //主函数
{
   unsigned char button;      //保存按键信息
   unsigned char code disp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xbf};  
        //定义数组led,依次存储包括0~7和" "的共阳极数码管显示码表
   P0=0xff;                   //读引脚状态,需先置1
   P1=disp[8];                //显示" "
   while(1)
   {
             button=P0;          //第一次读按键状态
          delay(1200);              //延时消抖
          button=P0;          //第二次读按键状态                    
           switch(button)      //根据按键的值进行多分支跳转
            {
        case 0xfe: P1=disp[0];delay(10000);while(1);break;  //0按下,显示0,待机
        case 0xfd: P1=disp[1];delay(10000);while(1);break;  //1按下,显示1,待机
        case 0xfb: P1=disp[2];delay(10000);while(1);break;  //2按下,显示2,待机
        case 0xf7: P1=disp[3];delay(10000);while(1);break;  //3按下,显示3,待机
        case 0xef: P1=disp[4];delay(10000);while(1);break;  //4按下,显示4,待机
           case 0xdf: P1=disp[5];delay(10000);while(1);break;  //5按下,显示5,待机
        case 0xbf: P1=disp[6];delay(10000);while(1);break;  //6按下,显示6,待机
        case 0x7f: P1=disp[7];delay(10000);while(1);break;  //7按下,显示7,待机
        default: break;
        }                                                                                          }
}
//delay
//函数功能:实现软件延时
//形式参数:无符号整型变量i,控制空循环的循环次数
//返回值:无
void     delay(unsigned int i)            //延时函数
{
  unsigned int k;
        for(k=0;k<i;k++);
}


全部资料下载地址:
8路抢答器.rar (42.12 KB, 下载次数: 36)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:211728 发表于 2017-6-15 22:54 | 只看该作者
谢谢啦
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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