一款基于单片机控制的多路数字抢答器_第1页
一款基于单片机控制的多路数字抢答器_第2页
一款基于单片机控制的多路数字抢答器_第3页
一款基于单片机控制的多路数字抢答器_第4页
一款基于单片机控制的多路数字抢答器_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录1 前言12 需求分析121原理122要求123任务124运行环境125开发工具13 概要设计231系统流程图232定时计数流程图333编号显示流程图434译码显示子程序535延时子程序536外部中断0程序64详细设计641设计思想642设计分析643设计实现源程序744设计测试结果125 课程设计的总结与体会15参考文献资料16致谢161前言现在社会中很多活动需要多个选手参加并竞争,其中抢答器是应用较多也较为广泛的工具之一。结合现实,设计一款基于单片机控制的多路数字抢答器,并满足一定得功能。2 需求分析21原理(1).74ls147译码器和80c51对选手的编号进行一一对应的显示(2)

2、.用80c51的内部时钟脉冲进行定时计数。(3).七段译码显示器显示时间和选手编号。(4).利用80c51的外部中断0来控制开启。22要求(1).抢答器可供多名(大于2)选手或队伍参加比赛。(2).抢答器分为选手控制端和主持人控制端。(3).主持人端控制抢答开始并进行系统清零。(4).当主持人启动开始键后,显示器上显示抢答倒计时。(5).参赛选手在设定的时间内进行抢答,抢答有效,显示器转而显示优先抢答的选手编号,同时亮灯提示。显示一直保持到主持人将系统清零为止。(6).如果设置的抢答时间已到,无人抢答,则本次抢答无效,系统报警并禁止抢答,显示器上显示00。(7).每次抢答完成后主持人可手动使系

3、统清零。23任务设计一款基于单片机控制的多路数字抢答器,并满足要求功能。24运行环境电子技术综合实验系统和电子通信与自动化创新实验系统。25开发工具个人计算机;proteus仿真软件、伟福软件等。3 概要设计31系统流程图 图 3.132定时计数流程图 图 3.233编号显示流程图图 3.334译码显示子程序loop: mov a,p1 ;读取p1口数据 cjne a,#0f0h,loop1 ;比较a与0f0h,相等执行下一条 ;否则,跳转至loop1处 sjmp start ;返回开始loop1: jb p3.6, loop2 ;判断p3.6口,p3.6口为0,执行下一条 ; 否则,跳转至l

4、oop2处 clr p3.3 ;点亮led anl a,#0fh ;屏蔽高4位 mov dptr,#tab ;建表 movc a,a+dptr ;查表loop12: mov p2,a ;将查表所得值赋给p2 jb p3.5,stop jnb p3.1,start ;时间过,停止 jb p3.6, loop2 sjmp loop1235延时子程序time: mov r3,#14h ;延时1秒lp1: mov tmod,#01h mov th0,#3ch mov tl0,#0b0h setb tr0lp2: jbc tf0,loop1 sjmp lp2loop1: djnz r3,lp1 ;循环2

5、0次,即1秒 ret ;子程序返回3. 6外部中断0程序org 0003h ljmp rest ;外部中断的调用setb ex0 ;外部中断0开启 setb it0 setb ea4详细设计41设计思想 多人抢答时,对其抢答者编号,根据显示的抢答编号确定抢答者。在有效时间内,抢答有效,有选手抢答时led点亮,显示优先按下抢答器对应的编号,同时屏蔽其他抢答按钮。时间到,扬声器报警,同时关闭抢答器。无效时间内,若有选手无规按钮,led一直亮以示提醒。42设计分析(1).多人对号抢答显示,用译码器74ls147。mov a,p1 ;读取p1口数据cjne a,#0f0h,loop1 ;比较a与0f0

6、h,相等执行下一条 ;否则,跳转至loop1处anl a,#0fh ;屏蔽高4位(2).显示编号和定时计数时间采用查表:mov dptr,#tab ;建表movc a,a+dptr ;查表tab: db 3h,06h,5bh,4fh, ;所建表 db 66h,6dh,7dh,07h,7fh (3).主持人开启键,采用外部中断法: setb ex0 ;外部中断0开启 setb it0 setb ea43设计实现源程序 (1). u180c51的功能是对抢答者编号显示,和控制整个抢答过程。其程序如下:org 0 ;程序执行开始地址 ljmp start ;跳至start执行 org 0003hlj

7、mp rest ;外部中断的调用org 0030hstart: mov sp,#60h ;建立堆栈mov p2,#00h ;关闭显示器stop1: jnb p3.5,stop ;开启抢答器setb p3.0 ;关计时器setb p3.3 ; 熄灭ledsjmp startstop:clr p3.0 ;开计时器setb ex0 ;外部中断0开启setb it0setb eaclr p3.6 ;清零p3.6口jb p3.6, loop2 ;判断p3.6口,p3.6口为0,执行下一条; 否则,跳转至loop2处lcall loop ; 调用子程序loopsjmp start ; 返回开始loop:m

8、ov a,p1 ;读取p1口数据cjne a,#0f0h,loop1 ;比较a与0f0h,相等执行下一条 ;否则,跳转至loop1处sjmp start ;返回开始loop1:jb p3.6, loop2 ;判断p3.6口,p3.6口为0,执行下一条; 否则,跳转至loop2处clr p3.3 ;点亮ledanl a,#0fh ;屏蔽高4位mov dptr,#tab ;建表movc a,a+dptr ;查表loop12: mov p2,a ;将查表所得值赋给p2jb p3.5,stopjnb p3.1,start ;时间过,停止jb p3.6, loop2 ;判断p3.6口,p3.6口为0,执

9、行下一条; 否则,跳转至loop2处sjmp loop12loop2: setb p3.3 ; 熄灭ledjb p3.5,stop ;开启抢答器jnb p3.1,startsjmp startrest: cpl p3.6 ;将p3.6口取反reti ;中断调用返回tab: db 3fh,06h,5bh,4fh, ;所建表db 66h,6dh,7dh,07h,7fhsjmp startend ;结束程序(2). u480c51的功能是显示、控制时间。其程序如下:org 00h ;程序执行开始地址ljmp start ;跳至start执行org 30hstart: mov sp,#60hmov p

10、1,#00h ;熄灭显示时间mov p2,#00hjb p3.0,start ;开始计时mov p2,#3fh ;定时60秒mov p1,#7dhlcall timemov r4,#00hhao1: ;每十秒减一mov dptr,#tabmov a,#04hadd a, r4movc a,a+dptr ;查表mov p1,a ;显示十位inc r4cjne a,#01h, s1 ;计时时间判断ljmp stop1loop: ; 每一秒减一mov dptr,#tabs1: mov a,#00hmovc a,a+dptrcjne a,#01h,s2lcall hao1 ;调用延时ljmp loop

11、s2: mov p2,a ;显示个位jb p3.0,start ;判断计时lcall timeinc dptrljmp s1time: mov r3,#14h ;延时1秒lp1: mov tmod,#01hmov th0,#3chmov tl0,#0b0hsetb tr0lp2: jbc tf0,loop1sjmp lp2loop1: djnz r3,lp1rettab: db 6fh,7fh,07h,7dh,6dh,66h, ;表db 4fh,5bh,06h,3fh,01hstop1: clr p0.0 ;时间到报警clr p3.1 ;关抢答器mov p2,#3fh ;关显示器mov p1,

12、#3fhsjmp $end ;结束程序44设计测试结果 (1). 电路连接图根据设计要求,连接下图说明:只有开启键按下连通时,计数开始,同时选手抢答。图 4.1(2). 调试结果图 .有效时间内有选手抢答电路显示图 说明:当在有效时间内,有选手抢答时,对应的编号被显示,同时led亮。按复位键后重新开始。图 4.2. 有效时间内无选手抢答电路显示图说明:当有效时间过后,时间显示器显示00,扬声器报警,抢答无效。图 4.3. 无效时间内选手按抢答器电路显示图说明:在无效时间内,若有选手无规抢答,led会警告,一直亮。关掉开启键后复位。 图 4.45课程设计的总结与体会通过这次单片机课程设计,我学到

13、了许多新的知识,并且将这些知识应用在实践中,锻炼了自己的动手能力,但也发现了一些问题。(1).对于出现的调试错误要仔细分析错误原因,尤其是细节。只要做够细心,就一定能够找到错误所在。例如我在编程中有些问题没达到我理想的效果,我改了很久,就是没有找出错误,后来改变下程序的顺序,问题就解决了。(2).编程过程中加入必要的注释十分重要,这不仅是为了别人能够更容易看懂你的程序,更重要的是自己未来修改方便。在我的程序里面我就加入了不少注释,在后 来的调试和修改错误时很方便。(3).要善于利用各种资源,提高自己的编程效率。我在编程之前,我就仔细看了一遍教科书,对书中的知识点进行梳理,后来也上网查找了许多资料,大大丰富了我的编程思路。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论