[接口期末论文提交格式]论文提交了格式有一点错误
时间:2022-01-18 16:26:00 浏览次数:次
论文题目
学院:计算机科学技术与信息工程专业:计算机科学与技术
学号:
姓名:
日期:2013.1.4
N人抢答器设计
一、设计要求及目的
通过这次设计,掌握51单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握多功能抢答器的调整及测试方法。提高动手能力和排除故障的能力。
二、实验环境
抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机(如MCS-51型)和数字集成电路,并增加了许多新功能,如选手号码显
示、抢按前或抢按后的计时、选手得分显示等功能。
本课题利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间和选手号码。用开关做键盘输出,扬声器发生提示。系统达到要求:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间可是在1-99s设定;可以显示是哪位选手有效抢答和无效抢答,正确按键后有音乐提示;抢答时间和回答问题时间倒记时显示,时间完后系统自动复位;按键锁定,在有效状态下,按键无效非法。
三、元器件列表
器件名称规格型号数量
微处理器AT89C51 1
芯片74LS04 1
74HC30 1
电阻3WTT10K 8
电容20PF 3
晶振12MHZ 1
按钮11
7段数码管7SEG-MPX4-CA 4
扬声器 1
四、实验原理
图中U1为单片机AT89C51,U2为芯片74HC30,U3为芯片74LS04。K1~K8分别为8路抢答按键,分别接到单片机的P1.0~P1.7中。开始按键与结束按键分别接到单片机的10、11脚,由于单片机的10、11脚既有串行接口RXD、TXD 功能,又有P3.0、P3.1的IO端口功能,此处按键用到单片机10、11脚的IO端口功能。抢答时间调整按键和回答时间调整按键分别接到单片机的13、14管脚,加一按键和减一按键分别接到单片机的15、16管脚。4位七段数码管段选P0口。4位七段数码管的位选接P2口低3位,蜂鸣器输出为P3.7口。
五、程序源代码
#include
#define uchar unsigned char;
#define uint unsigned int;
sbit m1=P3^1; //主持人按键答对加分,按一下加一分
sbit m2=P3^2; //答错减分
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
sbit k7=P1^6;
sbit k8=P1^7; //选手按键
sbit k=P3^0; //主持人按键开始
sbit beep=P3^7; //蜂鸣器
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77 }; //0-9代码
uchar shiwei,gewei,xuanshou,count,i,second;
uchar score1,score2,score3,score4,score5,score6,score7,score8;// uint t,m,n,a,a1,a2,a3,a4,a5,a6,a7,a8;
void Timer()
{ TMOD|=0x01;
TH0=0xd8; TL0=0xf0;
IE=0x82; TR0=1; }
void tim(void) interrupt 1 using 1 //为定时中断TR0
{ TH0=0xd8; //重新赋值
TL0=0xf0;
count++;
if(count==100) //100*10ms=1秒
{ count=0;
second--; //秒减1 }
}
void delay(uint z) //延时函数
{ uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--); }
void display (uchar shiwei,gewei,xuanshou) //显示函数
{ P2=0xfe; //打开显示时间十位的位选
P0=shiwei; //显示十位
delay(5);
P2=0xfd; //个位位选
P0=gewei;
delay(5);
P2=0xf7; //选手位选
P0=xuanshou;
delay(5);
}
void dis(void)
{ shiwei=tab[second/10];
gewei=tab[second%10];
xuanshou=tab[i];
display (shiwei,gewei,xuanshou); }
void init() //初始化函数
{ P2=0x04;
P0=0x3f;
t=0;
beep=0;
i=0;
second=29;
score1=60;
score2=60;
score3=60;
score4=60;
score5=60;
score6=60;
score7=60;
score8=60;
a1=1;
a2=1;
a3=1;
a4=1;
a5=1;
a6=1;
a7=1;
a8=1;
}
void main()
{ init();
if(k==0) //主持人按下开始键
{ Timer();
delay(10);
while(!k);
while(1)
{ dis();
m=0;
n=0;
if(second==10){beep=1;delay(500);beep=0;}
if(second==0) {TR0=0;n=1;
if(k==0)
{beep=1;delay(500);beep=0;second=29;TR0=1;m=1;}
}
if(n==0)
{ if(k1==0) {delay(5);if(k1==0);while(!k1);t=1;}
else if(k2==0) {delay(5);if(k2==0);while(!k2);t=2;}
else if(k3==0) {delay(5);if(k3==0);while(!k2);t=3;}
else if(k4==0) {delay(5);if(k4==0);while(!k2);t=4;}
else if(k5==0) {delay(5);if(k5==0);while(!k2);t=5;} else if(k6==0) {delay(5);if(k6==0);while(!k2);t=6;}
else if(k7==0) {delay(5);if(k7==0);while(!k2);t=7;}
else if(k8==0) {delay(5);if(k8==0);while(!k2);t=8;}
else if(k==0) {delay(5);if(k==0);while(!k);t=0;i=0;second=29;beep=1;delay(500);b eep=0;TR0=1;}
}
while(t)
{ if(m==0) //开关,保证程序只执行一次
{ switch(t)
{ case 1:
{ TR0=0;i=1;second=0;beep=1;delay(500);beep=0;
a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
}
case 2:
{ TR0=0;i=2;second=0;beep=1;delay(500);beep=0;
a2=0;a1=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
}
case 3:
{ TR0=0;i=3;second=0;beep=1;delay(500);beep=0;
a3=0;a1=1;a2=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
}
case 4:
{ TR0=0;i=4;second=0;beep=1;delay(500);beep=0;
a4=0;a1=1;a2=1;a3=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
}
case 5:
{ TR0=0;i=5;second=0;beep=1;delay(500);beep=0;
a5=0;a1=1;a2=1;a3=1;a4=1;a6=1;a7=1;a8=1;m=1;break;
}
case 6:
{ TR0=0;i=6;second=0;beep=1;delay(500);beep=0;
a6=0;a1=1;a2=1;a3=1;a4=1;a5=1;a7=1;a8=1;m=1;break;
}
case 7:
{ TR0=0;i=7;second=0;beep=1;delay(500);beep=0;
a7=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a8=1;m=1;break;
}
case 8:
{ TR0=0;i=8;second=0;beep=1;delay(500);beep=0;
a8=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;m=1;break;
}
}
}
if(a1==0) //选手1的分数
{ second=score1;
dis();
if(m1==0)
{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score1+ =1;if(score1==99)score1=60;}
六、else if(m2==0)
{delay(5);if(m2==0);while(!m2);beep=1;delay(100)
;beep=0;score1-=1;if(score1==0)score1=60;}
dis();
}
else if(a2==0)
{ second=score2;
dis();
if(m1==0)
{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score2+=1;i f(score2==99)score2=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score2-=1;if (score2==0)score2=60;}
dis();
}
else if(a3==0)
{ second=score3;
dis();
if(m1==0)
{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score3+=1;i f(score3==99)score3=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score3-=1;if (score3==0)score3=60;}
second=score3;
dis();
}
else if(a4==0)
{ second=score4;
dis();
if(m1==0)
{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score4+=1;i f(score4==99)score4=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score4-=1;if (score4==0)score4=60;}
second=score4;
dis();
}
else if(a5==0)
{ second=score5;
dis();
if(m1==0)
{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score5+=1;i f(score5==99)score5=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score5-=1;if (score5==0)score5=60;}
second=score5;
dis();
}
else if(a6==0)
{ second=score6;
dis();
if(m1==0)
{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score6+=1;i f(score6==99)score6=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score6-=1;if (score6==0)score6=60;}
second=score6;
dis();
}
else if(a7==0)
{ second=score7;
dis();
if(m1==0)
{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score7+=1;i f(score7==99)score7=60;}
else if(m2==0)
{delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score7-=1;if (score7==0)score7=60;}
second=score7;
dis();
}
else if(a8==0)
{ second=score8;
dis();
if(m1==0)
{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score8+=1;if(scor e8==99)score8=60;}
else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score8-=1;if(scor e8==0)score8=60;}
second=score8;
dis();
}
if(k==0){i=0;t=0;second=29;beep=1;delay(500);beep=0;TR0=1;} while(!k);
}
}
}
七、实验结果
八、总结
本文研究设计的八路抢答器采用了通用的电子元器件,利用AT89C51单片机及外围接口实现强大系统,利用单片机的定时器、计数器定时和计数的原理,将软‘硬件有机的结合起来。理论联系时间,体现出大学生的动手能力。通过查资料和收集有关的文献,培养了自学能力和动手能力。并且有原先的被动接受只是转换为主动寻求只是,这可以收拾学习方法上的一个很大突破。在以往的传统学习模式下,我们可能会记住很多书本知识,但是通过毕业设计,我们学会了如何将学到的知识化为自己的东西,学会了怎么跟好的处理只是和实践相结合的问
题,把握重点,攻克难关,学到用到活学活用。在设计过程中由于时间仓促有很多地方难免存在不足之处,硬件设计已经完成,在软件设计中有些功能还尚未能开发出来。但在以后的工作中,我们会严格要求自己最求完美。
整个设计通过软件和硬件上的调试,仿真。我想这些对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到很多实际性的问题,在实际设计中才发现,书本上德尔理论性的东西与实际运用中的还是有一定的出入的,所以有些问题不但要深入的理解,而且要不断的更正以前的错误思维。对于单片机设计,器硬件电路时比较简单的,主要是解决程序设计中的问题。而程序设计师一个很灵活的东西,他反应了你解决问题的逻辑思维和创新能力。它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借签书本上的,但怎样衔接各个子程序才是关键的问题坐在,这需要对单片机的节后很熟悉。因此可以说单片机的设计师软件和硬件的结合,二者是密不可分的。
但是,通过这次设计我也发现自己的很多不足之处。在设计过程中我发现自己考虑问题很不全面,自己的专业知识掌握的很不牢靠,所掌握的计算机软件还不够,我希望自己的这些不足之处能在今后的工作和靴子中得到改善。而且,通过这次设计,我懂得了学习的重要性,学会了坚持和努力,这将为以后的学习做出了最好的榜样!
回头再看看该设计,还可以将设计的扩展功能增强:1可以设计声控装置,在主持说开始时,系统自动完成清零并开始时的功能。2 增加积分模块,可以设定初始积分,并记录每次抢答完成后的积分。3 将抢答按键使用无线实现,如红外线,是抢答者可以远距离进行抢答,并简化按键模块的线路布置。如果提供相应的器材及时间上的宽限,硬顶可以完成上述扩展功能,进一步完善作品。
推荐访问:太原理工大学论文提交平台 期末 接口 提交
[[接口期末论文提交格式]论文提交了格式有一点错误]相关文章
- 【太原理工大学学位论文格式】太原理工大学
- 【毕业论文提交前,花点钱先“检测”】
- [1210317609263工程硕士学位论文提交申请表]
- [太原理工大学硕士论文写作规范]参考文献
- [长春理工大学论文要求]长春理工大学毕业学分
- 【太原理工大学毕业论文答辩模板】
- 太原理工大学研究生官网【太原理工大学离校申请书.】
- [2015年太原理工大学教师专业技术职务聘任条件]中国考研十大黑校
- 论文写作的注意事项【学位论文提交注意事项】
- 太原理工大学论文答辩PPT
- 期末自评报告锦集四篇
- 期末考试学生三分钟发言大全四篇
- 期末教师学生评语借鉴
- 中学期末自评报告
- 历史教师个人期末述职报告范文大全
- 期末教学总结工作汇报
- 班干部期末工作汇报3篇
- 期末考试学习计划借鉴
- 期末总结工作汇报3篇
- 期末放假安全主题教育教学案例四篇