抢答器.docx

上传人:b****6 文档编号:7840896 上传时间:2023-01-26 格式:DOCX 页数:12 大小:118.04KB
下载 相关 举报
抢答器.docx_第1页
第1页 / 共12页
抢答器.docx_第2页
第2页 / 共12页
抢答器.docx_第3页
第3页 / 共12页
抢答器.docx_第4页
第4页 / 共12页
抢答器.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

抢答器.docx

《抢答器.docx》由会员分享,可在线阅读,更多相关《抢答器.docx(12页珍藏版)》请在冰豆网上搜索。

抢答器.docx

抢答器

 

单片机课程设计报告

 

抢答器

 

姓名:

李加帅

班级:

自动化

学号:

20123024241

指导老师:

蔡文龙

日期:

2014.6.16~2014.6.20

 

北华航天工业学院

一、设计目的

单片机课程设计要求学生进一步了解单片机的硬件结构。

根据设计任务和单片机的功能,分析用单片机的功能实现设计任务的方法,充分考虑单片机的各种功能,最大限度的利用单片机软件、硬件资源,考虑硬件、软件资源的分配,力求以最低的成本实现设计任务要求的功能。

通过单片机课程设计要求学生能够更好的理解单片机的组成,理解单片机各个组成部分的功能和应用,了解单片机的广泛应用,学习单片机的应用方法。

二、设计任务和要求

1、4路输入抢答,1路开始、1路结束(由主持人控制)

2、正常开始抢答:

①、15S抢答时间,在最后5S会有提醒响铃,每一秒响一次,持续5S。

如15S内没抢答,回到最初状态FFF;②、如15S内抢答,则有8S回答时间,在最后5S也会有提醒响铃,每一秒响一次,持续5S,答题结束回到最初状态FFF

3、非正常抢答:

未按开始键就进行抢答,LED数码显示管会记下抢答号,并进行闪烁,同时报警。

4、不管如何抢答,按下结束键,抢答结束,回到FFF

三、设计原理分析

硬件电路的设计 

本设计分为硬件设计和软件设计,这两者相互结合,不可分离;从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。

只要技术准备充分,硬件设计的大返工是比较少的,软件设计的任务贯彻始终,到中后期基本上都是软件设计任务,随着集成电路技术的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中的所占的比重逐渐下降。

为使硬件电路设计尽可能合理,应注意以下几方面[7]:

 

(1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。

 

(2) 留有设计余地。

在设计硬件电路时,要考虑到将来修改扩展的方便。

因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。

 

(3) 程序空间,选用片内程序空间足够大的单片机,本设计采用AT89C51单片机。

 (4)  RAM空间,AT89C51内部RAM不多,当要增强软件数据处理功能时,往往觉得不足。

如果系统配置了外部RAM,则建议多留一些空间。

如选用8155作I/O接口,就可以增强256字节RAM。

如果有大批数据需要处理,则应配置足够的RAM,如6264,62256等。

随着软件设计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。

只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留足够的RAM空间,哪怕多设计一个RAM的插座,暂不插芯片也好。

 

(5)  I/O端口:

在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。

如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。

如果在硬件电路设计就预留出一些I/O端口,虽然当时空着没用,那么用的时候就派上用场了。

四、硬件原理图

如图,P3.2~P3.5为抢答号1~4,P3.6为开始键,P3.7为结束键。

数码管段选为P2口,位选为P1口,蜂鸣器输出为P1.2

五、程序框图、流程图

六、程序清单

OKEQU20H

RINGEQU22H

ORG0000H

AJMPMAIN

ORG000BH

AJMPT0INT

ORG001BH

AJMPT1INT

ORG0040H

MAIN:

MOVR1,#0FH

MOVR2,#08H

MOVTMOD,#11H

MOVTH0,#0FDH

MOVTL0,#0FFH

MOVTH1,#21

MOVTL1,#168;0.06s

SETBEA

SETBET0

SETBET1

CLROK

CLRRING

SETBTR1

SETBTR0

;=====查询程序=====

START:

MOVR5,#0BH

MOVR4,#0BH

MOVR3,#0BH

ACALLDISPLAY

JBP3.6,NEXT

ACALLDELAY

JBP3.6,NEXT

ACALLBARK

MOVA,R1

MOVR6,A

SETBOK

MOVR3,#0BH

AJMPCOUNT

NEXT:

JNBP3.2,FALSE1

JNBP3.3,FALSE2

JNBP3.4,FALSE3

JNBP3.5,FALSE4

AJMPSTART

;=====非法抢答处理程序=====

FALSE1:

ACALLBARK

MOVR3,#01H

AJMPERROR

FALSE2:

ACALLBARK

MOVR3,#02H

AJMPERROR

FALSE3:

ACALLBARK

MOVR3,#03H

AJMPERROR

FALSE4:

ACALLBARK

MOVR3,#04H

AJMPERROR

;=====倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=====

COUNT:

MOVR0,#00H

MOVTH1,#21

MOVTL1,#168;0.06s

RECOUNT:

MOVA,R6

MOVB,#0AH

DIVAB

MOVR5,A

MOVR4,B

MOVA,R6

SUBBA,#07H

JNCLARGER;大于3s会跳到LARGET,小雨3s就会提醒

MOVA,R0

CJNEA,#0AH,FULL;1S中0.5s向下运行

CLRRING

AJMPCHECK

FULL:

CJNEA,#14H,CHECK;1S的情况响并显示号数并请0

SETBRING

MOVA,R6

JZQUIT;计时完毕

MOVR0,#00H

DECR6;1s标志减一

AJMPCHECK

LARGER:

MOVA,R0

CJNEA,#14H,CHECK;如果1s向下运行,否则跳到"查停或者显示"

DECR6

MOVR0,#00H

CHECK:

JNBP3.7,QUIT;如果按下停止退出

ACALLDISPLAY

JBOK,ACCOUT;如果是抢答倒计时时,如果是则差虚报抢答否则跳过查询继续倒数

AJMPRECOUNT

ACCOUT:

JNBP3.2,TRUE1

JNBP3.3,TRUE2

JNBP3.4,TRUE3

JNBP3.5,TRUE4

AJMPRECOUNT

QUIT:

CLROK

CLRRING

AJMPSTART

;=====正常抢答处理程序=====

TRUE1:

ACALLBARk

MOVR6,#0

MOVA,R2

MOVR6,A

MOVR3,#01H

CLROK

AJMPCOUNT

TRUE2:

ACALLBARK;

MOVR6,#0

MOVA,R2

MOVR6,A

MOVR3,#02H

CLROK

AJMPCOUNT

TRUE3:

ACALLBARK;

MOVR6,#0

MOVA,R2

MOVR6,A

MOVR3,#03H

CLROK

AJMPCOUNT

TRUE4:

ACALLBARK;

MOVR6,#0

MOVA,R2

MOVR6,A

MOVR3,#04H

CLROK

AJMPCOUNT

;=====犯规抢答程序=====

ERROR:

MOVR0,#0FFH

MOVTH1,#21

MOVTL1,#168;0.06s

MOV34H,R3;犯规号暂存在34h里面

HERE:

MOVA,R0

CJNEA,#0AH,FLASH;0.5s向下运行,灭并停响

SETBRING

ACALLDELAY1

ACALLDELAY1

CLRRING

SETBP1.4

SETBP1.5

SETBP1.6;三灯全灭

ACALLDELAY2

AJMPERROR

FLASH:

CJNEA,#14H,CHECK1;1s的情况响并显示号数并清除R0

SETBRING

MOVR0,#00H

MOVR3,34H

MOVR5,#0BH

MOVR4,#0BH;显示FF和犯规的选手

AJMPCHECK1

CHECK1:

JNBP3.7,QUIT1

ACALLDISPLAY

AJMPHERE

QUIT1:

CLRRING

CLROK

AJMPSTART

DISPLAY:

MOVP1,#11101111B

MOVA,R5

MOVDPTR,#DAT1

MOVCA,@A+DPTR

MOVP2,A

ACALLDELAY

MOVP1,#11011111B

MOVA,R4

MOVDPTR,#DAT1

MOVCA,@A+DPTR

MOVP2,A

ACALLDELAY

MOVP1,#10111111B

MOVA,R3

MOVDPTR,#DAT1

MOVCA,@A+DPTR

MOVP2,A

ACALLDELAY

RET

DAT1:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0c0h,8EH

;"灭","1","2","3","4","5","6","7","8","9","灭","F"

DAT2:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

;"0","1","2","3","4","5","6","7","8","9"

DELAY1:

MOV35H,#08H

LOOP0:

ACALLDISPLAY

DJNZ35H,LOOP0

RET

DELAY:

MOV32H,#12H

LOOP:

MOV33H,#0AFH

LOOP1:

DJNZ33H,LOOP1

DJNZ32H,LOOP

RET

DELAY2:

MOVR7,#2

L1:

MOV35H,#200

L2:

MOV36H,#200

L3:

MULAB

MULAB

DJNZ36H,L3

DJNZ35H,L2

DJNZR7,L1

RET

BARK:

SETBRING

ACALLDELAY1

ACALLDELAY1

CLRRING

RET

T0INT:

MOVTH0,#0ECH

MOVTL0,#0FFH

JNBRING,OUT

CPLP1.2

OUT:

RETI

T1INT:

MOVTH1,#21

MOVTL1,#168;0.06s

INCR0

RETI

END

 

七、调试运行

仿真完全正确,实物也完全正确,100%完成功能

八、设计心得体会

通过这次学习,让我深深的了解了单片机这个伟大的系统,它的功能是如此强大,利用它就可以做出各种各样的设备来,比如电子钟、交通灯控制系统,温度控制系统等等,自从学了单片机我对电脑也刮目相看了,电脑跟单片机联系在一起就是非常棒了。

下面说说我在做个系统的时候遇到的问题:

1.自己对单片机的程度设计还不是非常得心应手,应该努力恶补一下。

2.对电路不熟悉,对电路的不熟悉在设计过程中成为了我的绊脚石。

3.编程时不够仔细,往往一个小错误就导致了功能不能实现。

除了遇到的问题一一解决之外,我还学到了非常多的东西,我发现单片机的是非常强大啊,什么事情都能做,我还在设计之余学习了单片机的目前发展规律和市场,希望以后自己在这方面做做文章。

 

十、参考文献

[1]胡汉才单片机原理及其接口技术(第2版)清华大学出版社2004

[2]冀振燕LJML系统分析设计与应用案例人民邮电出版社2003

[3]王文峰数码显示六路抢答器的设计井冈山师范学院学报2000年05期20-21

[4]陈越等ISD全系列单片语音录放电路设计与应用电子工业出版社2005

[5]杨晓辉、张彤、姜俊海、智能抢答器的设计与制作长春大学学报2000年06期24-25

[6]沈庆阳、郭庭吉8051单片机实践与应用清华大学出版社2004

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1