常裕文档网    > 范文大全 > 公文范文 >

[接口期末论文提交格式]论文提交了格式有一点错误

时间: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 将抢答按键使用无线实现,如红外线,是抢答者可以远距离进行抢答,并简化按键模块的线路布置。如果提供相应的器材及时间上的宽限,硬顶可以完成上述扩展功能,进一步完善作品。

推荐访问:太原理工大学论文提交平台 期末 接口 提交