IOY3EQU 06C0H

MY8254_COUNT0EQU IOY3+00H ;8254计数器0端口地址

MY8254_COUNT1EQU IOY3+02H ;8254计数器1端口地址

MY8254_COUNT2EQU IOY3+04H ;8254计数器2端口地址

MY8254_MODEEQU IOY3+06H ;8254控制寄存器端口地址

DATA SEGMENT

DTABLEDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH ;0 1 2 3 4 5 6 7 8 对应的数码管的状态

FREQ_LIST DW 877,0 ;蜂鸣器的频率

TIME_LIST DB 1 ;蜂鸣器的时间长短

DATA ENDS

SSTACK SEGMENT STACK

DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:SSTACK,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV DX,MY8254_MODE ;初始化8254工作方式

MOV AL,36H ;定时器0、方式3

OUT DX,AL

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MOV DX, 0646H ;初始化8255

MOV AL, 90H

OUT DX, AL

PUSH DS

MOV AX, 0000H

MOV DS, AX

MOV AX, OFFSET MIR7

MOV SI, 003CH

MOV [SI], AX

MOV AX, CS

MOV SI, 003EH

MOV [SI], AX

CLI

POP DS

;初始化主片8259

MOV AL, 11H

OUT 20H, AL;ICW1

MOV AL, 08H

OUT 21H, AL;ICW2

MOV AL, 04H

OUT 21H, AL;ICW3

MOV AL, 01H

OUT 21H, AL;ICW4

MOV AL, 6FH;OCW1

OUT 21H, AL

STI

AAA1:

NOP

JMP AAA1 ;主函数,死循环

MIR7:STI ;中断程序

PUSH AX

PUSH DX

MOV DX,0644H

MOV AL,10H

OUT DX,AL

POP DX

POP AX

MOV DX,0642H

MOV AL,3FH

OUT DX,AL

AA1: ;读入A口的输入,即开关的状态

MOV DX, 0640H

IN AL, DX

CMP AL,00000000B

JNZ AA3 ;如果未有开关置1,向下执行,否则跳到AA3

;MOV DX,0642H

;MOV AL,3FH

;OUT DX,AL

JMP AA1

;;;;;;;;;;;;;;;;;;;;;;;;;;;

AA3: ;;;;;;;;;;;;;;;;;;;;;; ;AA3---AA10 为8个开关对应的状态,用二进制01序列依次比较

PUSH AX

PUSH DX

MOV DX,0644H

MOV AL,08H

OUT DX,AL

POP DX

POP AX

PUSH DX

PUSH AX

BEGIN:MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址

MOV DI,OFFSET TIME_LIST ;装入时间表起始地址

PLAY:MOV DX,0FH ;输入时钟为1MHz,1M = 0F4240H

MOV AX,4240H

DIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率

MOV DX,MY8254_COUNT0

OUT DX,AL ;装入计数初值

MOV AL,AH

OUT DX,AL

MOV DL,[DI] ;取出演奏相对时间,调用延时子程序

CALL DALLY

ADD SI,2

INC DI

CMP WORD PTR [SI],0 ;判断是否到曲末?

JE EX

JMP PLAY

EX:

MOV DX,MY8254_MODE ;初始化8254工作方式

MOV AL,36H ;定时器0、方式3

OUT DX,AL

JMP AAAAA1

DALLYPROC ;延时子程序

D0:MOV CX,0010H

D1:MOV AX,0FF0H

D2:DEC AX

JNZ D2

LOOP D1

DEC DL

JNZ D0

RET

DALLYENDP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

AAAAA1: POP AX

POP DX

CMP AL,00000001B

JNZ AA4

MOV DX, 0642H

MOV AL,06H

OUT DX,AL

MOV AL, 20H

JMP EXI

AA4: CMP AL, 00000010B

JNZ AA5

MOV DX, 0642H

MOV AL,5BH

OUT DX,AL

MOV AL, 20H

JMP EXI

AA5: CMP AL,00000100B

JNZ AA6

MOV DX, 0642H

MOV AL,4FH

OUT DX,AL

MOV AL, 20H

JMP EXI

AA6: CMP AL, 00001000B

JNZ AA7

MOV DX, 0642H

MOV AL,66H

OUT DX,AL

MOV AL, 20H

JMP EXI

AA7: CMP AL, 00010000B

JNZ AA8

MOV DX, 0642H

MOV AL,6DH

OUT DX,AL

MOV AL, 20H

JMP EXI

AA8: CMP AL, 00100000B

JNZ AA9

MOV DX, 0642H

MOV AL,7DH

OUT DX,AL

MOV AL, 20H

JMP EXI

AA9: CMP AL, 01000000B

JNZ AA10

MOV DX, 0642H

MOV AL,07H

OUT DX,AL

MOV AL, 20H

JMP EXI

AA10: CMP AL,10000000B

MOV DX, 0642H

MOV AL,7FH

OUT DX,AL

MOV AL, 20H

EXI:OUT 20H, AL;中断结束命令

IRET

JMP AA1

CODEENDS

END START

java抢答器实现思路,汇编实现竞赛抢答器 | 术与道的分享相关推荐

  1. 数字式竞赛抢答器设计

    数字式竞赛抢答器设计 题目:数字式竞赛抢答器设计(4人抢答器) 一.需求分析 1.问题描述: 设计一个可容纳不低于四组参赛者同时抢答的数字抢答器,可判断第一抢答者并报警指示抢答成功,其他组抢答均无效. ...

  2. 基于51单片机的4位竞赛抢答器的设计

    设计编号:Q001 资料下载 功能要求: 以单片机为核心,设计一个4位竞赛抢答器:同时供4名选手或4个代表队比赛,分别用4个按钮S0-S4表示. 1.设置一个系统清除和抢答控制开关S,开关由主持人控制 ...

  3. 数字式竞赛抢答器(8人抢答)

    "学习或者了解人工智能小伙伴福利来了,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家." 想了解或者学习人工智能可以看一下,我觉得学习起来挺有趣的 ...

  4. 四人竞赛抢答器的设计

    四人竞赛抢答器的设计 1. 实验要求 基本要求: ①每组设置一个抢答按钮,供抢答者使用: ②电路具有第一抢答信号的鉴别和锁存功能. 在主持人将系统复位并发出抢答指令后,若有参赛者按抢答开关,则显示出抢 ...

  5. 智力竞赛抢答器的设计与调试

    智力竞赛抢答器的设计与调试   一.  实验目的 (1) 了解一个数字系统的基本组成及它的控制电路的设计. (2) 熟悉集成芯片的综合应用和PLD的应用与特点. (3) 学习用实验的方法来完善理论设计 ...

  6. 数字式竞赛抢答器(基于Quartus的原理图设计)FPGA

    数字式竞赛抢答器(基于Quartus的原理图设计)FPGA 一. 设计思路 二. 实现过程 1. 第一信号鉴别锁存模块 + 犯规电路 (1) 使用器件 74175,带公共时钟和复位四D触发器 (2) ...

  7. 基于FPGA的竞赛抢答器

    基于FPGA的竞赛抢答器,使用verilog语言设计实现. 实验要实现的基本功能是 主持人按下开始,三个人抢答,主持人可以给选手加分或者减分,分数用数码管来显示.以下是主要功能和指标: (1)设计一个 ...

  8. 基于51单片机8位竞赛抢答器_倒计时可调+LED跑马灯

    基于51单片机8位竞赛抢答器_倒计时可调+LED跑马灯仿真设计 (程序+proteus仿真+报告) Proteus仿真版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C ...

  9. 智力竞赛抢答器Verilog HDL设计

    设计任务 智力竞赛抢答器Verilog HDL要求有6位参赛者进行抢答,有六个抢答信号进行抢答.当有抢答选手按下抢答键后系统能够快速准确的判断是那一组选手按下了抢答信号,由于系统比较小,速度比较快一般 ...

最新文章

  1. PacBio sequence error correction amd assemble via pacBioToCA
  2. 从事数据科学前必须知道的五件事儿
  3. Hyperopt TypeError: 'generator' object is not subscriptable
  4. Hdu1166单点更新线段树
  5. 201521123014 《Java程序设计》第11周学习总结
  6. (191)FPGA上电后IO的默认状态(Vivado软件默认为0)
  7. 学习HTMLT5_1 拖拽
  8. excel从html文件传输乱码,打开乱码解决步骤7:在Excel中直接打开该文本文件
  9. python计算标准差为什么分母要-1_为什么样本方差(sample variance)的分母是 n-1?...
  10. Microsoft Access 操作查询
  11. matlab 傅里叶变换 频谱图,傅里叶变换与信号频谱图.PDF
  12. bartlett方差齐性检验_仅有两独立样本的样本量、均值和标准差,在SPSS进行T检验...
  13. 带头节点 (非头指针) 双向链表 (doubly linked list)
  14. GDOI2017小结
  15. 微信公众号开发python库_轻松实现python搭建微信公众平台
  16. HBuilder 使用教程
  17. 【小程序模板】功能模块+红色招聘信息资讯小程序网页模板+行业职位招聘小程序+招聘信息网页下载
  18. 从零开始实现放置游戏(一)——游戏设计
  19. .sqlite后缀文件转为sql文件
  20. 多元线性回归系数求解

热门文章

  1. C# Ocr离线式识别,文字提取,(附源码下载)
  2. electron-19+vue-3开发的加强版便利贴记事本
  3. 三星显示android.怎么消除,如何永久删除三星手机数据?
  4. 登录MySQL服务器
  5. RemoteObject
  6. 如何在水晶报表中添加条形码-winform ,c#.net
  7. html基础标签-2-textarea文本域
  8. python头像右上角加红色数字_Python初学:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。...
  9. vscode 文件名绿色,提示数字1
  10. ABOV(13) UART