实验2选作:竞赛抢答器.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验2选作:竞赛抢答器

微机实验报告书 学号: 姓名: 班级: 同组名单: 实验日期: 2012.12.26 实验题目: 竞赛抢答器 实验目标: 1.了解微机化竞赛抢答器的基本原理 2.进一步学习使用并行接口 (功能:逻辑开关K0-K7代表竞赛抢答器0-7号,当某个逻辑开关置“1”时,在七段数码管上显示其组号(0-7),并使PC扬声器响一下。) 解题思路: 1.按图12接线,图12为竞赛抢答器的原理图,逻辑开关K0-K7代表竞赛抢答按钮0-7号,当某个逻辑开关电平为高时,相当于某组按下下按钮,在七段数码管上将其组号0-7显示出来,使得指示灯亮。 程序框图:见右侧图(13) 关键问题分析 各个逻辑开关是如何对应指示灯的? 在程序中,只需用查表转换指令“XLAT”即可实现。前提是必须将七段码字型编成数码表以字符串的形式写进程序中。 程序清单: data segment led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h data ends code segment assume cs:code,ds:data start:mov ax, data mov ds,ax mov dx,28bh ;选择8255a的控制字地址 mov ax,89h ,控制字,PC输出,PA输入,为方式0 out dx,al mov bx,offset led ;设置bx指向 zby:mov dx,28ah in al,dx ;输入数据 or al,al ;al与本身做或运算 je zby ;如若等于0,则重新执行本程序段 mov cl,0ffh rr:shr al,1 ;al逻辑右移一位 inc cl ;cl自加1 jnc rr mov al,cl xlat mov dx,288h out dx,al mov al,7 mov ah,2 int 21h wai:mov ah,1 int 21h cmp al,20h jne eee mov al,0 mov dx,288h out dx,al jmp sss eee:mov ah,4ch int 21h code ends end start 运行结果: 任意按下一个逻辑开关,都会将相应数字(0-7)显示在数码管上,也即组号显示出来。但是蜂鸣器并不响,咨询老师说声音太小听不见,做出这样的效果即可 问题与讨论: 1、用8255的其他端口输出怎么处理? 由于其他端口输出并没有用到,控制字中写成0或者1都行,一般习惯上不用到填0即可。 2、在两位七段数码管间切换显示怎么处理? 通过硬件连线即可实现。七段数码管连接和S1连接不变。将S0不接地,接到+5V,并同时将S1和S0接到两个不同的逻辑开关。程序LINK运行完毕。当S1逻辑开关为高电平时(S0逻辑开关为低电平),在第一个数码管显示;当S0逻辑开关为高电平时(S1逻辑开关为低电平),在第二个数码管显示,这样便实现了在两位数码管间的切换。 小结(体会和收获) 这次选作实验确实很难的。程序我们几乎就写出了框架,其他的具体程序段和功能的实现都是通过同学和老师的帮助达到的。并且实验的接线特别复杂,一个实验台的导线数目根本不够,并且线路多交错,很容易弄错。虽然很多程序并不是出自自己的手,但是通过这次实验,确实加深了我们对于并行端口的熟练程度,了解了微机化的竞赛抢答器的基本原理,并且意识到我们学习微机原理能做的事情的确很多很多。在以后如果想要进步,还需要努力好好学习。

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档