标题:
8路抢答器仿真设计
[打印本页]
作者:
1130555300
时间:
2017-5-15 13:23
标题:
8路抢答器仿真设计
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
仿真图.png
(121.33 KB, 下载次数: 106)
下载附件
2017-5-15 13:20 上传
单片机源程序:
#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++);
}
0.png
(51.72 KB, 下载次数: 94)
下载附件
2017-5-15 17:11 上传
全部资料下载地址:
8路抢答器.rar
(42.12 KB, 下载次数: 36)
2017-5-15 13:23 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
且听风吟张
时间:
2017-6-15 22:54
谢谢啦
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1