typora-root-url: ./
【毕业设计】65-基于单片机的智能抢答器系统设计(原理图工程+仿真工程+源代码+答辩论文+visio流程图+实物图)
资料要求
资料包含:毕业设计全套资料(精品)
资料包含:毕业设计全套资料(精品)
原理图工程文件
原理图截图
PCB工程文件
仿真模型工程文件
源代码工程
仿真截图
实物图片
答辩论文低重复率文档,21947字
英文文献及翻译
答辩PPT
visio流程图工程
详情请私信!
任务书
设计说明书
摘要
计算机科学的不断提供,微型计算机的生产制作以及相关研究与应用开始得到了广泛的使用。单片机的使用开始慢慢进入到了人们的生活中,单片机的应用现在已经被使用在工业控制场合、家庭家电以及消费电子中。现在已经成为了日常中使用较多的核心控制器件。
本次设计基于单片机的智能抢答器系统的设计,主要是针对目前社会上的日益剧增的竞争通过抢答器可以选择优秀人才并且通过评选选出优胜者。在许多电子竞赛以及知识竞赛中均经常使用抢答器作为选拔人才的的重要设备。现在抢答器在使用上有传统的模拟线路抢答,现在已经有先进的数字式抢答器。本文针对此系统进行研究,设计上通过对抢答器的研究背景以及国内外的研究情况分析当前抢答器的使用功能与应用场景。本文设计的抢答器主要由单片机最小系统电路、按键电路、数码管显示电路、蜂鸣器报警电路、总电路以及PCB板进行设计。根据需求确认系统的软件功能绘制出系统的软件运行流程图,根据各个电路的引脚接口实现对系统功能驱动编写完成系统的软件系统设计。使用EDA仿真软件Proteus搭建系统的仿真电路图,并且通过仿真软件测试系统的功能验证系统的完整性以及系统的软件与硬件的功能性、稳定性。
最后通过制作实物,对基于单片机的智能抢答器系统进行验证,使用实物再次对系统的功能性与稳定性进行测试,最后测试完成,完成整个系统的设计。
设计框架架构
设计说明书及设计文件
源码展示
#include<reg51.h>
#include<intrins.h>
sbit smg1=P2^0; //定义数码管第一位
sbit smg2=P2^1; //定义数码管第二位
sbit smg3=P2^2; //定义数码管第三位
sbit keyks=P3^0; //定义开始按键
sbit keytz=P3^1; //定义停止按键
sbit keyqc=P3^2; //定义清除按键
sbit key1=P1^0; //定义1号抢答选手
sbit key2=P1^1; //定义2号抢答选手
sbit key3=P1^2; //定义3号抢答选手
sbit key4=P1^3; //定义4号抢答选手
sbit spk=P3^7; //定义蜂鸣器
int djs=60,js=0; //djs和bt是初始倒计时时间,可修改
//int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x40};
void delayms(int x) //延时函数
{
char i;
while(x--)
{
for(i=500;i>0;i--);
}
}
void Timer0_init() //定时器0初始化
{
js=0;
TMOD=0x01; //T0为定时器方式1
TH0=0x3c;
TL0=0xb0;
//TR0=1;//IT1=1;
ET0=1;//EX1=1;
EA=1;
}
void timer0() interrupt 1 using 1 //定时器0中断服务函数
{
// TF0=0;
TH0=0x3c;
TL0=0xb0; //赋初值
js++;
if(js>=20)
{ js=0;
djs--; //产生1s的倒计时
//led1=~led1;
}
}
void djsxs() //显示倒计时函数
{ int b1,b2;
b1=djs/10;
b2=djs%10; // 将倒计时时间分成高低位
P0=table[b1];
smg2=0;
delayms(3);
smg2=1; //显示十位数字
P0=table[b2];
smg3=0;
delayms(3); //显示个位数字
smg3=1;
}
void djsxs22()
{
P0=0x40;
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示-
P0=0x40;
smg2=0;
delayms(3); //第三位数码管显示-
smg2=1;
P0=0x40;
smg3=0;
delayms(3);
smg3=1; //第四位数码管显示-
}
void djsxs1()
{
P0=table[1];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示1
}
void djsxs2()
{
P0=table[2];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示2
}
void djsxs3()
{
P0=table[3];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示3
}
void djsxs4()
{
P0=table[4];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示4
}
void djsxs5()
{
P0=table[5];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示5
}
void djsxs6()
{
P0=table[6];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示6
}
void djsxs7()
{
P0=table[7];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示7
}
void djsxs8()
{
P0=table[8];
smg1=0;
delayms(3);
smg1=1; //第一位数码管显示8
}