西安电子科技大学通信工程学院课程设计..docVIP

  • 4
  • 0
  • 约1.27万字
  • 约 42页
  • 2019-06-09 发布于浙江
  • 举报

西安电子科技大学通信工程学院课程设计..doc

课程设计实验报告 010812## 跳舞机设计一.设计目的: 掌握矩阵键盘和显示接口的硬件设计方法 掌握键盘扫描程序和显示程序的编程方法 实用程序设计及学习DOS、BIOS调用 1.基本功能设计: 至少设计4个数码管和4个按键 数码管显示的舞蹈动作是随机的 可以统计游戏者的分数 2.扩展功能:电脑和实验版上可以加一些声光电的效果 3.创新功能:,,, 作为正常↑→↓←,当作反向应用, 即↓←↑→。 二.系统方案: 设计思路如下: 产生4个随机数,将随机数和方向对应。将随机方向显示在数码管上,从按键获得方向输入,比较两方向的值。时间结束将统计到的正确值转换成评分,输出评分等级。 程序分为以下几大部分:主程序,RDNUM,DISPLAY,SCANNUM1,CMPNUM。其中RDNUM 调用系统时间规范化产生随机数,载入BUF,;DISPLAY则将BUF1的数值在TABEL2查询获得数码管值,并将内容显示出来;SCANNUM1循环调用DISPLAY以维持在扫描键值期间的数码管显示,同时监控按键获得键值,查询TABE1将键值转换为数值,超时则记为-1;CMPNUM调整键值和随机数,将他们的对应域统一,形成映射,比较二者的值;主程序通过循环调用SCANNUM1持续监控按键直到超时,4次调用CMPNUM,统计正确数,最后对结果评分等级NICE,GOOD,PASS,FAIL,调用DISPLAY显示评分。 1.主程序: MOV AX,DATA MOV DS,AX ;数据段段址送DS。 MOV AX,STACK MOV SS,AX ;堆栈段段址送SS。 MOV SP,OFFSET TOP ;获取堆栈指针。 MOV DX,0EE03H ;DX指向8255的D口。 MOV AL ;工作方式状态控制字, 表示方式0,端口C输出。 OUT DX,AL ;完成8255初始化。 STEP1: CALL FAR PTR RDNUM ;调用RDNUM生 成随机数,存储于BUF。 LEA DI,BUF ;DI传递当前正在比较的随机数。MOV CX,4 STEP2: CALL FAR PTR SCANNUM1 ;扫描键值,返回值 star t 初始化8255 产生随机数,存入缓存 扫描键盘,将扫描到的键值存 入缓存,超时则标记-1 比较随机数和键值统计正确值 数码管显示评分等级 end 存于BL。 CALL FAR PTR CMPNUM ;比较数值。INC DI ;读取下一个随机数。 LOOP STEP2;循环四次逐个键值扫描,比较。 STEP3: ;将成绩转换对应评分。 MOV AX,RESULT CMP AL,4 JE NICE CMP AL,3 JE GOOD CMP AL,2 JE PASS FAIL: ;成绩小于2输出FAIL。 MOV AH,0FH MOV BUF[0],AH MOV AH,0AH MOV BUF[1],AH MOV AH,1H MOV BUF[2],AH MOV BUF[3],AH JMP STEP4 PASS: ;成绩为2输出PASS。 MOV AH,21H MOV BUF[0],AH MOV AH,0AH MOV BUF[1],AH MOV AH,5H MOV BUF[2],AH MOV BUF[3],AH JMP STEP4 GOOD: ;成绩为3输出GOOD。 MOV AH,6H MOV BUF[0],AH MOV AH,22H MOV BUF[1],AH MOV BUF[2],AH MOV AH,0H MOV BUF[3],AH JMP STEP4 NICE: ;成绩为4输出NICE。 MOV AH,10H MOV BUF[0],AH MOV AH,1H MOV BUF[1],AH MOV AH,0CH MOV BUF[2],AH MOV AH,0EH MOV BUF[3],AH JMP STEP4 STEP4: MOV CX,9000 STP5: CALL FAR PTR DISPLAY ;显示评分。LOOP STP5 ;闪烁维持评分显示。 MOV AH,4CH INT 21H CODE1 SEGMENT ASSUME CS:CODE1 RDNUM PROC FAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI ;寄存器保护。DO1: MOV AH,2CH ;2CH号功能调用, 取系统时间:DL存放毫秒 INT 21H MOV AL,DL ;将毫秒值除以5,调整随机偏移量的取值在0-4之间。 MOV AH,0 MOV BL,5 DIV BL ;AH是一个0-4的随机数去查询伪随机表。 RDNU M RET 获取系统时间产生随机数 随机数查表获得伪随机序列 序列依次载

文档评论(0)

1亿VIP精品文档

相关文档