版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、东南大学自动化学院微机实验及课程设计专业综合设计报告姓 名: XXX 学 号: xxxxxxxx 专 业: XXX 实 验 室: 516 组 别: 同组人员: XXX 设计时间: 2011年 9月 19日 2011年 10月 17日评定成绩: 审阅教师: 目 录一专业综合设计的目的与要求2二原理设计3三方案论证4四方案实现与测试8五分析与总结9附录11一. 专业综合设计的目的与要求1、课程设计目的(1)深入理解与运用汇编语言进行程序设计,加强对指令的灵活调用,以完成特定的课程设计课题要求;(2)将汇编程序设计与微机接口的连接相结合,从硬件角度深入理解与运用8255的并行输入输出功能;(3)通过
2、对实际应用中的问题分析解剖,细化为一个个小功能,分别构造微机实验的模型。(4)加强团队内部队员交流、合作的能力,增强合作意识。2、课程设计的指标和要求抢答反应测试仪1)基本要求 (难度系数1.0)设计一个用于智力竞赛的抢答计时器,同时能测试人的反应时间。按启动钮,测试开始,2 个八段码倒计时开始(如从10 秒或20 秒倒计时),在随机时间的内点亮抢答允许灯,参赛双方(或三方)分别按各自的抢答按钮参与抢答。一旦其中一位按下按钮,相应的LED 显示灯亮并响“嘟”的一声,此时若其它按钮按下均无效。若一直计数到零,无一人按下按钮,则抢答结束(以后再按抢答钮无效)。按测试钮,在PC 机上显示反应时间XX
3、.XX 秒。要求:(1) 编制1 个随机数产生子程序,由随机数决定从按启动钮到点亮抢答允许灯的时间(如在3 秒15 秒之间内任意变动),使被测试者对LED 亮的时间无法预见,以确保测试结果的可信;(2) 必须在见到LED 亮后按测试钮才有效,即一直按着按钮或提前按下按钮无效;(3) 反应时间显示XX.XX 秒,准确到百分之一秒。2)设计提示(1) 为确保从每次按启动按钮到LED 亮时间是不同的(真正随机变化的),一开始可随机读取某100个RAM 单元值求和作为初始值,以后由测试到的反应时间作为下一个随机初始值;(2) 抢答允许灯亮后立即检测抢答按钮状态,若未按下有效(若已按下无效),然后不断扫
4、描按钮状态,直到有按下代表“响应”动作。3)进一步设计要求(1)用88 点阵显示反应时间XX.XX 秒(用红色代表秒, 绿色代表0.01 秒,交替显示);(2)在倒计时过程中附音乐伴奏;(3)增加测试功能,测试人对不同事物的反应(响应)时间。功能要求:按启动钮,测试开始,一旦红灯亮,立即按红灯测试钮,一旦绿灯亮,立即按绿灯测试钮,但黄灯亮为干扰。若按错钮,则显示出错并响“嘟”一声。编制2 个随机数产生子程序,一个决定从按启动钮到LED 亮的时间,另一个决定亮何种颜色灯。二. 原理设计实验主要使用到8253和8255两块芯片。1、主体设计输入为一系列开关量和时钟,输出为数码管的7段码和LED显示
5、以及计算机屏幕信息。本次实验使用8253和8255来实现抢答的功能,并且来测试选手的反应时间。数码管用于倒计时,LED灯来显示允许抢答以及选手对应的抢答灯,乒乓按钮则用于主持人的各种操作和两位选手的抢答。2、随机数的产生为了使测试者对LED亮的时间无法预见,确保测试结果的可信性,程序使用随机数(在3 秒15 秒之间内任意变动)来确定按下启动钮到点亮抢答允许灯的时间。为确保从每次按启动按钮到LED 亮时间是不同的(真正随机变化的),一开始可随机读取某100个RAM 单元值求和作为初始值,以后由测试到的反应时间作为下一个随机初始值。3、倒计时倒计时从20S开始,程序使用面板上的1MHZ脉冲,利用8
6、253进行 10000分频得到0.01S的基本计数脉冲,然后利用计数器计数,例如计到N个脉冲,则反应时间为(2000-N)*0.01S,取前两位用于数码管显示倒计时,单位为S。4、数码管显示倒计时预置数码管断码:LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴七段码由于倒计时需使用两位数码管,故程序中将实现数码管的动态显示,电路参考实验书中的动态显示模块,通过8255的输出口C口的C0、C1控制数码管的亮灭,将计数得到的整数时间逐个显示出来。5、PC机显示反应时间在检测到测试牛按下后调用存在某内存中的反应时间进行显示即可。主持人按下抢答允许键
7、则数码管开始从20倒计时,一段随机时间后,抢答允许灯亮,开始抢答,抢答到的选手对应的抢答灯亮,并且其他人不可以再做抢答。这是主持人再按下读数按钮,则在PC机上显示该选手的反应时间。三. 方案论证1、系统实现硬件电路图连接如图2所示图2 硬件连线图8255设置为A口输入,BC口输出工作方式,A口检测按键状态。倒计时采用8253三个计数器级联方式,计数器0接实验箱上1MHZ脉冲,从计数器2的OUT端口输出1HZ时钟,设其初值为20,则从20开始倒计时,从而用硬件实现倒计时功能。2、程序流程图图1 程序流程图3、重要模块(1)倒计时 8253的计数器0接实验箱上1MHZ脉冲,设初值为1000,工作方
8、式为2,OUT0产生频率1KHZ低脉冲;OUT0接计数器1时钟端,初值设为1000,工作方式为2,OUT1产生频率为1HZ的第脉冲,所以计数器1表示倒计时MS;OUT1接计数器2时钟端,初值设为20,工作方式设为2,实现20秒倒计时功能。 MOV DX , P8253M ; 8253初始化 MOV AL , 00111100B ;8253 CNT0=10000 方式2 B OUT DX , ALMOVAX , 1000 ;赋初值 MOV DX , P8253A OUT DX , AL MOVAL , AH OUTDX , AL MOV DX , P8253M MOV AL , 01011101
9、B ; CNT1=100 方式2 OUT DX , ALMOVAL , 1000 MOV DX , P8253B OUT DX , AL MOV DX , P8253M MOV AL , 10011101B ; CNT2=20 方式2 D OUT DX , ALMOVAL , 20H ;数码管显示初值为20 MOV DX , P8253C OUT DX , AL(2)随机数产生为确保从每次按启动键到LED灯点亮的时间是不同的,一开始可随机读取某100个RAM单元值求和作为初始值,这可以通过设置一个RANDOM变量,在程序初始化部分调用随机数产生子程序RAND给其赋值实现:PRORAND PRO
10、CPUSH CXPUSH SIMOV CX , 100MOV SI , 34HADDR: XOR AL,ALMOV AL , SIADDRANDOM , ALINC SILOOPADDRAND RANDOM 07HPOPSIPOPCXRETPRORAND ENDP(3)反应时间的计算在点亮抢答允许灯前提取当前时间,记录为START_S , START_MS 。在检测到有选手抢答后,再次提取当前时间,记录为END_S,END_MS。两次相减,考虑边界条件,则得到反应时间 REACT_S,REACT_MS。按测试键,再将反应时间显示在屏幕上。;取当前时间MOVDX , P8253CINAL ,DX
11、MOVAH , ALMOVC_TIME , AL AND AL , 0FH MOVLEDL , AL MOVCL , 4RORAH , CLANDAH , 0FHMOVLEDH , AH;DOS功能调用取点亮抢答灯时的精确时间 用于计算反应时间PUSH CX PUSH DX MOVAH , 2CH INT21H MOVSTART_S , DHMOVSTART_MS , DLPOPDX POPCX;计算反应时间MOVAL,END_S MOVREACT_S , ALMOVAL , START_SSUBREACT_S , ALMOVAL,END_MSMOV REACT_MS , ALADD REAC
12、T_MS , 100DEC REACT_SMOVAL , START_MSSUBREACT_MS , ALCMP REACT_MS , 100JL NDEALSUBREACT_MS , 100INC REACT_S(4)抢答时“嘟”的响声INT 21H的功能号02H 功能描述:响铃。入口参数:AH02H。通过DL输入ASCII码为07。本程序用这个中断响铃。MOV DL,7 ;响铃 ASCII码为07MOV AH,2INT 21H(5)使抢答按键在抢答允许灯亮后按下才有效设置ENABLEA、ENABLEB变量表示选手有无抢答,如果抢答则屏蔽其答题信息。首先在抢答允许灯亮之前使其值赋0。在点亮抢
13、答灯后立即(下一行程序)检测按键状态,如果此时A键为1,则说明A提前按键了,跳过检测B,否则使其赋1,表示没有提前按键。同理检测B有无提前。在检测A、B谁先抢答前,要先判断对应的ENABLE值,如果为1,则继续检测A键是否为1,否则跳过再次循环检测。四. 方案实现与测试调试分硬件调试和软件调试,在实验时,应先进行硬件调试,确保试验箱、各个芯片、连线均完好,在进行软件调试。硬件调试可通过一个简单的方法进行:选取一个以前实验调试好的标准程序运行,所选程序要用到本次试验用到的各个部件(8255各口,8253各口,280和288口),观察运行结果是否正常,如果正确,基本上说明硬件完好。也可DEBUG相
14、关指令测试各个部件。软件调试可以使用TD单步跟踪,但是在前期这样很浪费时间,前期最好分模块进行调试,将每个小功能分别写成一个程序,一个一个调试,调试小程序较为简单。确保每个模块均能实现相应功能的前提下,用“滚雪球”的方式,将他们拼起来。在调试拼接程序时尽量不要改每个模块内部代码,因为最有可能的问题是时序和跳转关系的问题。如果还是有问题,就可以用TD跟踪。测试方案及结果如下表所示:测试方案实验结果主持人按抢答允许(START)数码管开始倒计时, 倒计时至系统产生的一个随机数,抢答允许灯亮选手抢答抢答灯亮,并响“嘟”的一声主持人按下读数件PC机显示反应时间主持人按复位键开始新一轮的抢答按ESC退出
15、抢答状态由上面的测试方案及结果可得:设计的程序符合课程设计的要求。五分析与总结1、分析这个实验仅完成了基础实验的部分,还可以通过改进实现更多的功能。但是由于时间的问题就没能完成进一步设计要求。时候实验只能进行一次抢答,通过做了一些其它的修改终于可以进行多次抢答。由于程序框架设计的问题,程序的跳转关系看起来有一些混乱。虽然,我仅仅完成了实验的基本要求,但是,我觉得自己已经学到了很多。2、总结这个课程设计实验的验收,意味着微机系统与接口这门课程的结束。通过这门课程的学习,我对硬件设计有了一个较为系统的认识。而实验课程的安排则让我们对抽象理论知识有了一个更为直观的认识,也帮助我们加深了对这门课程的理
16、解。之前的小实验我们紧紧是完成一些简单的输入输出、中断、一些芯片的使用、A/D及D/A转换等待,而这次实验将以前的小实验结合并且加以修改,则实现了许多可以在现实生活中应用的程序。虽然实验的过程中遇到了一些问题,很多从未见过的问题都不知道该怎么解决,但是通过查阅书籍与其他同学的交流,最终还是克服了这些问题,完成了这个实验。程序并不完美,还有许多可以加以修改的地方,但是在实验的过程中学到了很多知识,并且弄明白了一些以前一直并不十分理解的问题。并且,通过本次设计实验,我基本掌握了软硬件调试问题,从硬件角度深入理解与运用8255的并行输入输出功能。同时这次课程设计也让我体会到团队合作的重要性和在已有的
17、学习实验任务重的情况下如何合理安排时间和协调组员工作进度的重要性。总之,这次综合设计实验让我收获很多。参考书目:1 杨素行微型计算机系统原理及应用,北京,清华大学出版社,2004年2 微机实验及课程设计教程(试用版3.0),东南大学微机系统与接口课程组,2010年3月附录DATA SEGMENTMESS1 DB *,0AH,0DH DB * QIANG DA QI *,0AH,0DH DB * 08009313 08009303 *,0AH,0DH DB * DU CONGYUAN WO YINGGE *,0AH,0DH DB *,0AH,0DH,$IOPORT EQU 0EC00H-280H
18、P8255A EQU IOPORT+288H;开关输入P8255B EQUIOPORT+289HP8255CEQU IOPORT+28AHP8255M EQUIOPORT+28BHIO0832 EQU IOPORT+298HP8253AEQUIOPORT+280HP8253B EQUIOPORT+281HP8253C EQUIOPORT+282HP8253M EQUIOPORT+283HLED7EQUIOPORT+289H ;接数码管七段输入LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共阴七段码START_S DB ?START_MS DB?
19、END_SDB?END_MSDB?REACT_S DB 0REACT_MS DB ?LEDHDB?LEDLDB?RANDOMDB0 C_TIMEDB?ENABLEADB?ENABLEBDB?DATA ENDSSTACKSSEGMENT STACKDB100 DUP(?)STACKSENDSCODE SEGMENTASSUME CS:CODE , DS:DATA,SS:STACKSSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AH,09H MOV DX,OFFSET MESS1 ;显示提示信息 INT 21H MOV AX , DATA MOV DS ,
20、AX MOV AX , STACKS MOVSS , AX MOVDX , P8255M ;8255初始化 MOV AL , 90H ;初始化8255控制字 A口输入,B、C输出 OUT DX , AL MOV DX , P8253M ;8253初始化 MOV AL , 00111100B ;8253 CNT0=10000 方式2 B OUT DX , ALMOVAX , 10000;赋初值 MOV DX , P8253A OUT DX , AL MOVAL , AH OUTDX , AL MOV DX , P8253M MOV AL , 01011101B ;8253 CNT1=100 方式
21、2 D OUT DX , ALMOVAL , 100 MOV DX , P8253B OUT DX , AL MOV DX , P8253M MOV AL , 10011101B ;8253 CNT2=20 方式2 D OUT DX , ALMOVAL , 20H MOV DX , P8253C OUT DX , AL CALL PRORAND ;产生初始随机数WAIT_FOR_START : MOVAL , 00000110B MOVDX , P8255M OUTDX , ALMOVAL , 00001000B MOVDX , P8255M OUTDX , ALMOVAL , 0000110
22、0B MOVDX , P8255M OUTDX , ALMOVAL , 00001010B MOVDX , P8255M OUTDX , AL MOVAL , 0;7段LED灭 MOVDX , LED7 OUTDX , AL MOVAL , 00000100B MOVDX , P8255M OUTDX , AL;关断7段MOVAL , 00000000B; 数字低位MOVDX , P8255M OUTDX , ALMOVAL , 00000010B ;数字高位MOVDX , P8255M OUTDX , AL MOV DX , P8255A IN AL , DX TEST AL , 01H ;
23、判断主持人开关是复位还是启动 JZ WAIT_FOR_START ;按下启动钮MOVAL , 00000111B MOVDX , P8255M OUTDX , AL;开始计数;C2-GATE0,1,2MOVAL , 00000101B MOVDX , P8255M OUTDX , ALSTART_GAME : MOV DX , P8255A IN AL , DX TEST AL , 01H ;判断主持人开关是复位还是启动JZ WAIT_FOR_START;按下启动钮取当前时间MOVDX , P8253CINAL ,DXMOVAH , ALMOVC_TIME , AL AND AL , 0FH
24、MOVLEDL , AL MOVCL , 4RORAH , CLANDAH , 0FHMOVLEDH , AH ;动态显示7段MOV BL , LEDHMOV BH , 0LEA SI , LEDADD SI , BXMOV AL , BYTE PTR SIMOV DX , LED7OUT DX , AL;开启CS0MOVAL , 0000001B MOVDX , P8255M OUTDX , ALCALLDELAY;延时一点 ;关闭CS0MOVAL , 00000000B MOVDX , P8255M OUTDX , ALMOV BL , LEDLMOV BH , 0LEA SI , LED
25、ADD SI , BXMOV AL , BYTE PTR SIMOV DX , LED7OUT DX , AL ;开启CS1MOVAL , 00000011B MOVDX , P8255M OUTDX , ALCALLDELAY;延时一点;关闭CS1MOVAL , 00000010B MOVDX , P8255M OUTDX , AL MOVENABLEA , 0 ;屏蔽先抢答行为 MOVENABLEB , 0 MOVBL , C_TIME SUB BL , 20NEG BL ;求 20-BL MOVDL , RANDOM CMPBL , DL ;是否到了点亮抢答灯的时间 JGLIGHT1 J
26、MPSTART_GAME LIGHT1: PUSH CX ;DOS功能调用取点亮抢答灯时的精确时间 用于计算反应时间 PUSH DX MOVAH , 2CH INT21H MOVSTART_S , DH MOVSTART_MS , DL POPDX POPCXLIGHT:MOVAL , 00001001B MOVDX , P8255M OUTDX , ALMOVDX , P8255A ;检测开关状态INAL , DX TESTAL , 01000000B;如果灯亮的时候是没有按下就开启抢答使能JNZNEXT1MOVENABLEA , 1NEXT1: TESTAL , 00100000B JNZ
27、NEXT2MOVENABLEB , 1NEXT2:CMPENABLEA , 1;如果抢答使能而且按下了抢答键JNENEXTBTEST AL , 01000000BJZNEXTBMOVAL , 00001101B ;点亮A抢答灯MOVDX , P8255M OUTDX , AL MOV DL,7 ;响铃 ASCII码为07MOV AH,2INT 21HJMPQUITNEXTB:CMPENABLEB , 1JNENEXT;B抢到了,亮L7TEST AL , 00100000BJZNEXTMOVAL , 00001111B ;点亮B抢答灯MOVDX , P8255M OUTDX , AL MOV D
28、L,7 ;响铃 ASCII码为07MOV AH,2INT 21HJMPQUITSKIP1: JMP WAIT_FOR_START;跳板NEXT:;A、B都抢答无效或A、B都没抢答 MOV DX , P8255A IN AL , DX TEST AL , 01H ;判断主持人开关是复位还是启动 JZ SKIP1;取当前时间MOVDX , P8253CINAL ,DXMOVAH , ALMOVC_TIME , AL AND AL , 0FH MOVLEDL , AL MOVCL , 4RORAH , CLANDAH , 0FHMOVLEDH , AH ;7段灯扫描不能停止MOV BL , LEDH
29、MOV BH , 0LEA SI , LEDADD SI , BXMOV AL , BYTE PTR SIMOV DX , LED7OUT DX , AL;开启CS0MOVAL , 0000001B MOVDX , P8255M OUTDX , ALCALLDELAY;延时一点 ;关闭CS0MOVAL , 00000000B MOVDX , P8255M OUTDX , ALMOV BL , LEDLMOV BH , 0LEA SI , LEDADD SI , BXMOV AL , BYTE PTR SIMOV DX , LED7OUT DX , AL ;开启CS1MOVAL , 000000
30、11B MOVDX , P8255M OUTDX , ALCALLDELAY;延时一点;关闭CS1MOVAL , 00000010B MOVDX , P8255M OUTDX , ALJMPLIGHT;继续检测按键,是否有人抢答QUIT:PUSH CX PUSHDX MOVAH , 2CH INT21H MOVEND_S , DHMOVEND_MS , DLPOPDX POPCXMOV AL,END_S ;计算反应时间MOV REACT_S , ALMOV AL , START_SSUB REACT_S , ALMOV AL,END_MSMOV REACT_MS , ALADD REACT_MS , 100DEC REACT_SMOV AL , START_MSSUB REACT_MS , ALCMP REACT_MS , 100JL NDEALSUB REACT_MS , 100INC REACT_SNDEAL:MOVDX , P8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年某科技公司与某政府机构关于智慧城市建设的研究与开发合同
- 2024年标准化项目服务合同模板版B版
- 2024年度电脑设备保密及信息安全风险评估合同3篇
- 2024年度文化产业项目总承包合同
- 2024版YXJS04模具实训设备采购与售后服务合同
- 2024年度建筑水电安装承包合同6篇
- 2024年消防设施翻新工程施工合作合同版B版
- 2024年度办公大楼物业设施设备采购与安装合同2篇
- 2024年度商业房屋租赁合同书(附不可抗力条款)3篇
- 2024年度大数据中心建设和运营服务合同3篇
- 一年级口算练习题一天50道
- 版面设计研究智慧树知到期末考试答案章节答案2024年上海理工大学
- 医院物业保洁服务方案(技术方案)
- 2024年云南省昆明滇中新区公开招聘20人历年(高频重点提升专题训练)共500题附带答案详解
- 高一语文基础模块下册期末考试-2024-2025学年期末复习专项训练(高教版2023)
- 2024-2030年中国水泵市场深度调研分析及投资前景研究预测报告
- 预防接种上岗人员培训试题(预防接种门诊)
- 2024年中考英语最后一卷(广东卷)-2024年中考英语逆袭冲刺名校模拟真题速递(广东专用)
- 网课智慧树知道《古典时期钢琴演奏传统(星海音乐学院)》章节测试答案
- 《护理伦理与法律法规》期末考试复习题库(含答案)
- DL-T5190.1-2022电力建设施工技术规范第1部分:土建结构工程
评论
0/150
提交评论