ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:145.29KB ,
资源ID:4402141      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4402141.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计抢答器的设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理课程设计抢答器的设计.docx

1、微机原理课程设计 抢答器的设计微机原理及接口技术课程设计报告题目:竞赛抢答器的设计学 院: 中北大学信息与通信工程 专 业: 通信工程 小组成员: 指导教师: 丁永红 2008 年 06 月 23 日1、设计目的1)了解竞赛抢答器的设计原理和方法。 2)掌握定时/计数器、并行接口芯片和中断控制的工作原理与使用方法。2、所用元器件1)80X86系列微机一台。2)定时、计数器、并行接口芯片。3)基本TTL电路芯片,七段数码管。3、设计内容及步骤1)设计要求(1)可供4组同时抢答,由按钮控制。(2)能显示出最先抢答的组号,而对其他组的抢答不予理睬。(3)对主持人未曾按启动扭之前就按抢答按钮的犯规组,

2、亮红灯警告。(4)对抢答后的回答时间进行计时控制,如回答超时,则以音响报警。 2) 撰写设计报告(1)各个硬件模块设计和原理图(2)各个软件模块设计和流程图4、硬件设计1)总体设计由于本次实验要用到数码显示、中断控制、倒计时等功能,故初步分析,需要8255、8253等芯片。经过小组成员讨论,认为本实验的关键是准确判断出最先抢答者的信号并锁存,而同时不理睬其他抢答者的信号。为此,可将4个抢答按钮信号通过一个4位并行输入口接至微机中。当主持人启动抢答过程后,微机通过该并行输入口循环对4路抢答信号进行采样。当采样到那一组的抢答信号已经发出,则立即停止采样,并记录下该组的组号,每路抢答按钮电路可以参考

3、下图进行设计。 图1 路抢答按钮电路由图可知,当4组均未按下抢答按钮时,送入到并行接口的4位抢答状态都是0,而当微机采样到这4位数据不为0时,则表示有一组获得了抢答机会,然后通过逐位口查询个位口状态,即可判断出哪一组抢答成功,最后利用并行输出接口将抢答成功的组号现实出来.在实验中,可以仅用一位7段数码管来显示抢答选手的组号.为了对抢答后的回答时间进行计时控制,可以利用一个可编程定时计时器,先置计数初值,再计时,当计时时间到后,由并行接口输出一个响铃信号提示抢答选手的回答时间已到。由于本系统要求对犯规的组亮红灯警告,所以要设置一个启动按键,在主持人按下启动按键之前,如果有抢答钮被按下,则该抢答选

4、手犯规,可以通过并行接口输出一个信号使该组的红色发光二级管点亮以示该组选手犯规。综上所述,本实验的硬件电路可参考下图3示的硬件结构示意图进行设计。图2 硬件结构示意图其中8255与8086连接图如下图4图3 8086与8255连接图实验原理图见附录一。2)芯片介绍(1)8255芯片8255A内部有3个相互独立的8位数据端口,即端口A端口B端口C。设计人员可以用程序是他们分别作为输入端口或输出端口。不过,每个端口有着各自的特点。端口A对应1个8位数据输入锁存器/缓冲器和1个8位数据输出锁存器/缓存器。所以,用端口A作为输入或输出时,数据均可以受到锁存。端口B对应1个8位数据输入锁存器/缓冲器和1

5、个8位数据输出锁存器/缓存器。端口C对应1个8位数据输入锁存器/缓冲器和1个8位数据输出锁存器/缓存器。这样,当端口C作为输入端口时,对数据不作锁存,而作为输出端口时,对数据进行锁存。在使用中,端口A端口B和端口C可以相互独立,分别作为输入或者输出端口,也可以由端口C配合端口A端口B作输入端口或者输出端口,此时,端口A和端口B作为独立的输入端口或输出端口,而端口C则配合端口A和端口B工作。具体得讲,端口C常常通过控制命令被分成两个4位端口,每个4位端口包含1个4位的输入缓冲器和1个4位的输出锁存器/缓冲器,他们分别用来位端口A和端口B提供控制信号和状态信号。方式选择控制字D7D6D5D4D3D

6、2D1D0A组方式A口1 输入0输出PC7PC41输入0输出B组方式0方式01方式1B口1输入0输出PC3PC01输入0输出1有效标志位00方式001方式11方式2(2)8253芯片8253的主要性能:8253可编程定时/计数器芯片时Intel公司生产的微型计算机通用外围芯片之一。采用24个引脚,双列直插式封装,其主要特性如下:采用NMOS工艺,用单一的5V电源供电。片内有3个独立的16位减法计数器(或计数通道),每个计数器又可分为两个8位的计数器。计数频率为05MHz。两种计数方式,即二进制和BCD方式计数。6种工作方式,即可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。可由软件或硬件

7、控制开始计数或停止计数。图4 8253引脚图5、软件设计1)主程序设计实验的软件设计可以分为主程序启动中断服务程序和定时中断服务程序三部分。启动中断服务程序完成的任务较单一,只需要对启动标志进行记录。例如,可以在主程序中设置一个启动标志并清0,当启动按钮被按下后,系统进入中断服务程序。这时,只需要在中断服务程序中将启动标志置1即可,系统在返回主程序后将查询该标志,以确定抢答是否开始。在主程序中,当判断有抢答钮被按下时,需要判断启动标志是否为1,如果系统还没有启动,则抢答结果为无效,且判断该抢答组犯规。此时,将通过并行接口送出点亮该组红色发光二极管的信号,提示有犯规行为。另外在主程序中,还要对抢

8、答回答时间进行初始化赋值,当回答开始后,如果回答超时,则要通过并行接口送出响铃警报信息以提示超时。在定时中断服务程序中,主要是完成对回答问题时间的计时操作时间计数器,当定时器每发一次定时中断时,时间计数器加1。图5 主程序流程图2)主程序显示最先抢答组号及是否犯规程序 AAA:MOV AL,85H ;8255A的方式控制字,A口输出,B口输入MOV DX,04A6H ;控制口的地址送DXOUT DX,AL ;初始化8255AAA:MOV DX,04A2HIN AH,DX ;读PC3是否为0 AND AH,40H ;如果为零,说明抢答开始 CMP AH,00H ;转到读PB口的程序 JZ AA0

9、 ;PB口低电平有效 JNZ AA6 AA0:MOV DX,04A2H ;读B口的数据IN AL,DX CMP AL,FFH ;读PB口值是否为FFHJZ AA0 ;如果是,表示没人抢答,继续等CMP AH,FEH ;1号抢答成功JZ AA1CMP AH,FDH ;2号抢答成功JZ AA2CMP AH,FDH ;3号抢答成功JZ AA3CMP AH,F7H ;4号抢答成功JZ AA4AA1:MOV DX,04A0HMOV AL,79H ;显示1JMP AA5AA2:MOV DX,04A0HMOV AL,24H ;显示2JMP AA5AA3:MOV DX,04A0HMOV AL,30H ;显示3

10、JMP AA5AA4:MOV DX,04A0HMOV AL,19H ;显示4JMP AA5AA5:MOV DX,04A6H IN AH,DX ;读PC3是否为1 OR AH,DFH ;如果为1说明已复位 CMP AH,FFH ;转到初始状态,否者等待 JZ AAA JNZ AA5AA6: MOV DX,04A2H ;读B口的数据IN AL,DX CMP AL,FFH ;读PB口值是否为FFHJZ AA ;如果是,表示没人抢答犯规,继续等CMP AH,FEH ;1号抢答犯规MOV DX,04A6HMOV AL,09H ;LED1亮CMP AH,FDH ;2号抢答犯规MOV DX,04A6HMOV

11、 AL,0AH ;LED2亮CMP AH,FDH ;3号抢答犯规MOV DX,04A6H MOV AL,0DH ;LED3亮 CMP AH,F7H ;4号抢答犯规MOV DX,04A6H MOV AL,0FH ;LED4亮8253初始化程序AA7:MOV AL,15H ;写方式控制字(设计数器0工作于方式2)MOV DX,04B6H ;控制口地址OUT DX,AL ;控制字送8253控制寄存器MOV DX,04B0H ;计数器0端口地址MOV AL,60 ;将计数初值N=60写入计数器0OUT DX,AH 6、心得体会在这一周的微机原理课程设计里,我们小组完成了竞赛抢答器的设计,基本实现所有功

12、能,通过这短短一周的实践,我们锻炼了自己动手设计软硬件的能力,大家分工明确,合作愉快,虽然我们每个人的分工很细致,但是在编写程序以及调试过程中还是遇到了很多问题,在同组同学和其他同学以及老师的帮助下,我们发现问题的所在,并进行修改,按时完成设计内容。通过这次课程设计,我们了解到,即使书本上的知识掌握的更好,在将它付诸实践时,还是会遇到各种各样的问题。这次课程设计就是一次对自己所学知识的总结和综合应用,使我们对微机原理这门课程有了更深的了解。7、参考文献1李顺增,微机原理及接口技术,机械工业出版社,2006年第一版2 冯博琴,微型计算机原理及接口技术,清华大学出版社3王远,模拟电子技术,机械工业

13、出版社8、任务分工(具体到某些模块)0506240117 刘轩 负责用七段数码管显示出最先抢答组号0506240141 孟令章 负责用七段数码管显示出最先抢答组号0506240107 李影 负责犯规控制0506240120 葛晶 负责犯规控制0506240103 侯久俊 负责计时控制0506240110 于佳 负责计时控制附录程序2;程序名字:抢答器;功能:用户键(即抢答者):p32,p33;主持人键:p34,;用法:1.主持人按开启键,以示开始;2.用户抢答,若到了10秒还没有按键就退出;3.显示用户号;4.等待主持人清除显示;5.清除后蜂鸣,以示庆祝xsdat bit p1.4 ;定义驱动

14、74164的数据脚为p1.4xsclk bit p1.5 ;74164的时钟gw bit p1.0 ;个位显示控制脚sw bit p1.1 ;十位;#org 00hajmp mainorg 0bhajmp t0rup ;定时10秒钟,预防主持人已经按了开启键后无用户按键而死机org 1bhajmp t1rup ;用于喇叭响0.5秒钟org 30hmain: mov sp,#4fh mov r3,#0 ;用于显示 mov r4,#0 ;用于定时,r2:蜂鸣 mov p0,#0ffh mov p3,#0ffh mov ie,#8ah mov tmod,#11h mov th0,#3ch mov t

15、l0,#0b0h ;每50ms中断一次 mov th1,#3ch mov tl1,#0b0h ;每50ms中断一次 mov a,p3 orl a,#11110011b cjne a,#0ffh,main ;以免有一或多个用户一直按住键loop0:jb p3.4,loop0 mov p0,#0 ;主持开启键:p3.4,表示抢答开始 setb tr0 ;定时10秒钟,预防主持人已经按了开启键后无用户按键而死机loop1:cjne r4,#200,ll;检测用户按键,若定时10s时间到了,即结束本次抢答 ajmp main ll: mov a,p3 orl a, #11110011b cjne a,

16、#0ffh,ff ajmp loop1 ;等待用户按键 ff:clr tr0 ;若有用户按键,就清除定时 rrc a rrc aloop4:rrc a inc r3 jc loop4 ;将对应用户按键转化成用户号nn: acall display jb p3.4,nn ;等待主持人清除 acall delay kk: jnb p3.4,kk ;等待主持人放开,以免主持人开启键与清除键相混淆 acall delay acall fm ;蜂鸣,以做庆祝,同时将p0口全灭 mov p0,#0ffh ajmp main;#fm: ;蜂鸣 setb tr1 clr p3.7loop2:cjne r5,#

17、20,tt mov r5,#0 ;清零以备下次使用 setb p3.7 ;关闭扬声器,以免使它处于导通状态而不能发声 ;用 cpl 反转驱动三极管的通断来发声要注意, ;在停止发声时一定要关闭三极管,不要让三极管长期处在导通状态! ;否则耗电很大,三极管发热严重,从而引起声音变小或无声。 clr tr1 rettt: cpl p3.7 mov r1,#122 djnz r1,$ ; 蜂鸣器都有谐振频率,一般在2kHz左右,不在这个范围声音就很小 ajmp loop2;#t0rup:mov tl0,#0b0h ;用于防死机定时 mov th0,#3ch inc r4 reti;#t1rup: ;

18、用于蜂鸣定时 mov tl1,#0b0h mov th1,#3ch inc r5 reti;#display: MOV DPTR,#XSTAB MOV A,r3 ;取得数据 MOVC A,A+DPTR ;提取字模 ACALL DSOUT ;调用送出子程序 CLR GW ACALL DS1MS ;调用显示1MS延时程序 SETB GW MOV A,#0 MOVC A,A+DPTR ;提取字模 ACALL DSOUT ;送出 CLR SW ACALL DS1MS ;显示1MS SETB SW acall delay ret;#delay: mov r6,#00hdl1: mov r7,#00h d

19、jnz r7,$ djnz r6,dl1 ret;-送出循环-DSOUT: MOV R0,#8 ;传送一个字节8位DSLOOP: RLC A ;左移 MOV XSDAT,C ;送数据到数据口 SETB XSCLK ;送一时钟 CLR XSCLK DJNZ R0,DSLOOP RET ;-显示延时- DS1MS: MOV R1,#10DS1LO: MOV R2,#100 DJNZ R2,$ DJNZ R1,DS1LO RET ;延时返回;-;显示字表(共阴)XSTAB: DB 3FH,06H,5BH,4FH ;0,1,2,3 DB 66H,6DH,7DH,07H ;4,5,6,7 DB 7FH,6FH,77H,7CH ;8,9,A,B DB 39H,5EH,79H,71H ;C,D,E,F;*end

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

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