欢迎来到天天文库
浏览记录
ID:42526241
大小:141.50 KB
页数:4页
时间:2019-09-16
《实验2选作:竞赛抢答器》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、微机实验报告书学号:姓名:班级:同组名单:实验日期:2012.12.26实验题目:实验目标:竞赛抢答器了解微机化竞赛抢答器的基本原理2•进一步学习使用并行接口(功能:逻辑开关K0-K7代表竞赛抢答器0-7号,当某个逻辑开关置“1”时,在七段数码管上显示其组号(0-7),并使PC扬声器响一下。)解题思路:IJ1?74LS244R918)
2、>Pft16~4abcdi3、9ad®oa-QdNocmodSQd9Qdrua1.按图12接线,图12为竞赛抢答器的原理图,逻辑开关K0-K7代表竞赛抢答按钮0-7号,当某个逻辑开关电平为高时,相当于某组按下下按钮,在七段数码管上将其组号0-7显示出来,使得指示灯亮。程序框图:见右侧图(13)关键问题分析各个逻辑开关是如何对应指示灯的?在程序中,只需用查表转换指令“XLAT”即可实现。前提是必须将七段码字型编成数码表以字符串的形式写进程序中。程序清单:datasegmentleddb3fh,06h,5bh,4fh,66h,6dh,7dh,07hdat4、aendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,28bhmovax,89houtdx,almovbx,offsetled开始罔13漁殍图PA输入,为方式0;选择8255a的控制字地址J0001001B,控制字,PC输岀,;设置bx指向zby:movdx,28ahinal,dxoral,aljczbymovcl,Offhrr:shral,1inccl;输入数据旧1与本身做或运算;如若等于0,则重新执行本程序段;al逻辑右移一位;cl自加15、jncrrmoval,clxlatmovdx,288houtdx,almoval,7movah,2int21hwai:movah,1int21hcmpal,20hjneeeemoval,0movdx,288houtdx,aljmpssseee:movah,4chint21hcodeendsendstart运行结果:任意按下一个逻辑开关,都会将相应数字(0-7)显示在数码管上,也即组号显示出来。但是蜂鸣器并不响,咨询老师说声音太小听不见,做出这样的效果即可问题与讨论:1、用8255的其他端口输出怎么处理?由于其他端口输出并6、没有用到,控制字中写成0或者1都行,一般习惯上不用到填0即可。2、在两位七段数码管间切换显示怎么处理?通过硬件连线即可实现。七段数码管连接和S1连接不变。将SO不接地,接到+5V,并同时将S1和SO接到两个不同的逻辑开关。程序LINK运行完毕。当S1逻辑开关为高电平时(SO逻辑开关为低电平),在第一个数码管显示;当SO逻辑开关为高电平时(S1逻辑开关为低电平),在第二个数码管显示,这样便实现了在两位数码管间的切换。小结(体会和收获)这次选作实验确实很难的。程序我们几乎就写出了框架,其他的具体程序段和功能的实现都是通过同学7、和老师的帮助达到的。并且实验的接线特别复杂,一个实验台的导线数目根本不够,并且线路多交错,很容易弄错。虽然很多程序并不是岀自自己的手,但是通过这次实验,确实加深了我们对于并行端口的熟练程度,了解了微机化的竞赛抢答器的基木原理,并且意识到我们学习微机原理能做的事情的确很多很多。在以后如果想要进步,还需要努力好好学习。
3、9ad®oa-QdNocmodSQd9Qdrua1.按图12接线,图12为竞赛抢答器的原理图,逻辑开关K0-K7代表竞赛抢答按钮0-7号,当某个逻辑开关电平为高时,相当于某组按下下按钮,在七段数码管上将其组号0-7显示出来,使得指示灯亮。程序框图:见右侧图(13)关键问题分析各个逻辑开关是如何对应指示灯的?在程序中,只需用查表转换指令“XLAT”即可实现。前提是必须将七段码字型编成数码表以字符串的形式写进程序中。程序清单:datasegmentleddb3fh,06h,5bh,4fh,66h,6dh,7dh,07hdat
4、aendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,28bhmovax,89houtdx,almovbx,offsetled开始罔13漁殍图PA输入,为方式0;选择8255a的控制字地址J0001001B,控制字,PC输岀,;设置bx指向zby:movdx,28ahinal,dxoral,aljczbymovcl,Offhrr:shral,1inccl;输入数据旧1与本身做或运算;如若等于0,则重新执行本程序段;al逻辑右移一位;cl自加1
5、jncrrmoval,clxlatmovdx,288houtdx,almoval,7movah,2int21hwai:movah,1int21hcmpal,20hjneeeemoval,0movdx,288houtdx,aljmpssseee:movah,4chint21hcodeendsendstart运行结果:任意按下一个逻辑开关,都会将相应数字(0-7)显示在数码管上,也即组号显示出来。但是蜂鸣器并不响,咨询老师说声音太小听不见,做出这样的效果即可问题与讨论:1、用8255的其他端口输出怎么处理?由于其他端口输出并
6、没有用到,控制字中写成0或者1都行,一般习惯上不用到填0即可。2、在两位七段数码管间切换显示怎么处理?通过硬件连线即可实现。七段数码管连接和S1连接不变。将SO不接地,接到+5V,并同时将S1和SO接到两个不同的逻辑开关。程序LINK运行完毕。当S1逻辑开关为高电平时(SO逻辑开关为低电平),在第一个数码管显示;当SO逻辑开关为高电平时(S1逻辑开关为低电平),在第二个数码管显示,这样便实现了在两位数码管间的切换。小结(体会和收获)这次选作实验确实很难的。程序我们几乎就写出了框架,其他的具体程序段和功能的实现都是通过同学
7、和老师的帮助达到的。并且实验的接线特别复杂,一个实验台的导线数目根本不够,并且线路多交错,很容易弄错。虽然很多程序并不是岀自自己的手,但是通过这次实验,确实加深了我们对于并行端口的熟练程度,了解了微机化的竞赛抢答器的基木原理,并且意识到我们学习微机原理能做的事情的确很多很多。在以后如果想要进步,还需要努力好好学习。
此文档下载收益归作者所有