您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机课程设计报告抢答器
微机课程设计报告抢答器设计目录一.课程设计目的与要求……………………………………………………………………1二.方案论证与原理设计………………………………………………………………………2三.详细(机理)设计………………………………………………………………………3四.方案实现与测试(或调试)……………………………………………………………4五.分析与总结………………………………………………………………………………5一.课程设计目的与要求(含设计指标)1.课程设计目的(1)检验和提高在微机原理和接口综合应用方面分析问题和解决问题的能力;(2)锻炼系统级别汇编语言编程和硬件调试能力;(3)培养团队分工合作能力。2.设计要求和指标设计要求:设计一个用于智力竞赛的抢答器计时器,同时能测试人的反应时间。按启动键,测试开始,2个八段码倒计时开始(如从10秒或20秒倒计时),在随机时间内点亮抢答允许灯,参赛双方分别按各自的抢答按钮参与抢答。一旦其中一方按下按钮,相应的LED显示灯亮,此时若其他按钮按下均无效。若一直计数到零,均无人按下按钮,则抢答结束(以后再按抢答钮无效)。按测试钮,在PC机上显示反应时间XX.XX秒。指标要求:(1)编制一个随机数产生子程序,又随机数决定从按启动钮到点亮抢答允许灯的时间(如在3秒~15秒之间任意变动),使被测试者对LED亮的时间无法预见,以保证测试结果的可信性;(2)必须在见到LED点亮后按测试钮才有效,即一直按着按钮或提前按下按钮无效;(3)反应时间显示XX.XX秒,准确到百分之一。3.分工(1)核心代码编写:(2)代码编译、修改:(3)搭建、调试:(4)后期代码优化、修改:二.方案论证与原理设计(或基本原理)首先分析系统输入输出量,输入为一系列开关量和时钟,输出为数码管的7段码和LED显示以及计算机屏幕信息。所以使用8255并行输入输出功能实现这些数字量的输入输出,又由于要求倒计时和计算选手反应时间,所以采用8253的计时功能。在实现基本功能下,本系统的核心硬件为8255和8253.硬件框图为:CPU82538255数字量交换定时数字量输入数字量输出方案设计:8255设置为A口输入,BC口输出工作方式,A口检测按键状态。倒计时采用8253三个计数器级联方式,计数器0接实验箱上1MHz脉冲,从计数器2的OUT端口输出1Hz时钟,设其初值为20,则从20开始倒计时,从而用硬件实现倒计时功能。程序流程图:开始写8253、8255初始值关LED显示灯开始倒计时开始键=0YN随机数产生点亮抢答灯计算反应时间是否抢答?是否显示时间结束YYNN三.详细(机理)设计(1)随机数产生为确保从每次按启动键到LED点亮的时间是不同的(真正随机变化的),一开始可随机读取某100个RAM单元值求和作为初始值,这可以通过设置一个random变量,在程序初始化部分调用随机数产生子程序rand给其赋值实现:randprocpushcxpushsimovcx,100movsi,34haddr:xoral,almoval,[si]addrandom,alincsiloopaddrandrandom07hpopsipopcxretrandendp《微机实验及课程设计》报告0(2)8253倒计时8253的计数器0接实验箱上1MHz脉冲,设初值为1000,工作方式为2,OUT0产生频率1kHz低脉冲;OUT0接计数器1时钟端,初值设为1000,工作方式为2,OUT1产生频率为1Hz的第脉冲,所以计数器1表示倒计时ms;OUT1接计数器2时钟端,初值设为20,工作方式设为2,实现20秒倒计时功能。8253初始化movdx,P8253Mmoval,00111100B;8253CNT0=10000方式2Boutdx,almovax,1000;赋初值movdx,P8253Aoutdx,almoval,ahoutdx,almovdx,P8253Mmoval,01011101B;8253CNT1=100方式2Doutdx,almoval,1000movdx,P8253Boutdx,almovdx,P8253Mmoval,10011101B;8253CNT2=20方式2Doutdx,almoval,20h;20如赋初值20,则数码管显示初值为14movdx,P8253Coutdx,al(3)计算选手反应时间在点亮抢答允许灯前提取当前时间。;按下启动钮取当前时间movdx,P8253Cinal,dxmovah,almovc_time,alandal,0fhmovledl,almovcl,4rorah,clandah,0fhmovledh,ah《微机实验及课程设计》报告1四.方案实现与测试(或调试)方案的实现,系统的硬件电路图如下:8253CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2PA7PA6PA1PA0PC7PC6PC4PC3PC2PC1PC08255PB7PB6PB5PB4PB3PB2PB1PB01MHzhgfedcba抢答按键A抢答按键B时间显示按键K1开始按键K0PlayerA抢答灯PlayerB抢答灯抢答灯开始灯数码管S0数码管S1调试:(1)按照电路图连接电路,8253主要是用于定时器的作用,给两位数码管输出20秒的倒计时,8255的PA口为输入,PA7和PA6是作为抢答器的输入端,抢答器的输入采取脉冲发生器产生的脉冲作为抢答信号。PA1是屏幕显示反应时间的按键输入,PA0是开始键的输入。PC7是PlayerA抢答灯按键输入,PC6是PlayerB抢答灯按键输入,PC4为抢答灯的输出,PC3为开始灯输出,PC2连接8253的GATE0-GATE2,PC1为数码管S0,PC0为数码管S1。PB7-PB0接a-h。(2)在调试中,主要的调试还是代码的调试,通过TD和DEBUG两种调试方式,通过逐步调试,发现和找到错误之处,进行更改,最终得到正确的调试结果。五.分析与总结通过此次的微机实验,通过编程了解到了汇编语言的编程,并且在编写程序的过程,进一《微机实验及课程设计》报告2步地熟悉了一个系统程序的编写和调试工作。编程中,最重要的是通过TD或者DEBUG两种调试手段来进行程序的调试,从而找到程序的运行中出错的地方,进行调试,最终能够运行出正确的代码。代码调试正确后,通过在实验板上连线,进行验证,最终得到正确的实验结果。在此次的微机实验过程中,由于时间的仓促,我们只完成了基础部分的功能,提高部分的功能基本没有来得及做。相信在基础部分的前提下,在以后的时间里,可以进一步地提高,将功能再进一步的完善。参考书目:(五号,宋体加粗)[1]东南大学《微机系统与接口》课程组,《微机实验及课程设计教程(试用版3.0)》,2010年[2]杨素行等,《微型计算机原理与应用(第3版)》,北京,清华大学出版社,2009年源代码:;--------抢答反应测试仪-----------DATASEGMENTMESS1db'********madebyadministrator********',0dh,0ah,'$';288接8255P8255Aequ0b808H;开关输入P8255Bequ0b809HP8255Cequ0b80AHP8255Mequ0b80BH;c0-cs0;c1-cs1;c2-gate0,1,2;c3-L0主持人灯;c4-L2抢答提示灯;c5-;c6-L6playerA灯;c7-L7playerB灯;280H接8253P8253Aequ0b800HP8253Bequ0b801H《微机实验及课程设计》报告3P8253Cequ0b802HP8253Mequ0b803Hled7equ0b809H;接数码管七段输入LEDDB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;共阴七段码start_sdb?start_msdb?end_sdb?end_msdb?react_sdb0react_msdb?ledhdb?ledldb?randomdb0c_timedb?enableAdb?enableBdb?DATAENDS;---------------------------------------STACKSSEGMENTDB100DUP(?)STACKSENDS;--------------------------------------CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAH,09HMOVDX,OFFSETMESS1;显示提示信息《微机实验及课程设计》报告4INT21HMOVAX,DATAMOVDS,AXmovax,stacksmovss,ax;8255初始化MOVDX,P8255MMOVAL,90H;初始化8255控制字A口输入,B、C输出OUTDX,AL;8253初始化movdx,P8253Mmoval,00111100B;8253CNT0=10000方式2Boutdx,almovax,10000;赋初值movdx,P8253Aoutdx,almoval,ahoutdx,almovdx,P8253Mmoval,01011101B;8253CNT1=100方式2Doutdx,almoval,100movdx,P8253Boutdx,almovdx,P8253Mmoval,10011101B;8253CNT2=20方式2Doutdx,almoval,20h;20如赋初值20,则数码管显示初值为14movdx,P8253Coutdx,alcallprorand;产生初始随机数wait_for_start:;游戏的初始化《微机实验及课程设计》报告5;8255B接led;c3-L0关主持人灯moval,00000110bmovdx,P8255Moutdx,al;c4-L2关抢答提示灯moval,00001000bmovdx,P8255Moutdx,al;c5-;c6-L6关playerA灯moval,00001100bmovdx,P8255Moutdx,al;c7-L5关playerB灯moval,00001010bmovdx,P8255Moutdx,almoval,0;7段led灭movdx,led7outdx,al;c0接cs0,c1接cs1;c2接gate0,1,2;关计数moval,00000100bmovdx,P8255Moutdx,al;关断7段moval,00000000b;数字低位movdx,P8255Moutdx,almoval,00000010b;数字高位movdx,P8255Moutdx,al《微机实验及课程设计》报告6movdx,P8255Ainal,dxtestAL,01H;判断主持人开关是复位还是启动;K0是开始开关,高电平开始JZwait_for_start;按下启动钮开始游戏;c3-L0主持人灯;开启主持人灯L0moval,00000111bmovdx,P8255Moutdx,al;开始计数;c2-gate0,1,2moval,00000101bmovdx,P8255Moutdx,alstart_game:movdx,P8255Ainal,dxtestAL,01H;判断主持人开关是复位还是启动JZwait_for_start;按下启动钮取当前时间movdx,P8253Cinal,dxmovah,almovc_time,alandal,0fhmovledl,almovcl,4rorah,clandah,0fhmovledh,ah;动态显示7段《微机实验及课程设计》报告7movbl,ledhmovbh,0leasi,LEDaddsi,bxmoval,byteptr[si];---moval,led[bl]???????????????????movdx,led7outdx,al;开启cs0moval,0000001bmovdx,P8255Moutdx,alcalldelay;
本文标题:微机课程设计报告抢答器
链接地址:https://www.777doc.com/doc-2470238 .html