实验四 输入输出编程实验

掌握8086输入输出程序的设计方法及调试过程。掌握计算机中定时器、中断、并行接口的使用,理解输入输出在计算机中的作用。

实验内容:

1. 设计一个能用键盘上不同按键发出不同频率声音的软件。

2. 编制一个能根据键盘的不同输入,演奏不同歌曲的程序。

<1>
;字母键Z/X/C/V/B/N/M分别发出低1—低7共 7个低音音符
;字母键A/S/D/F/G/H/J分别发出中1—中7共7个中音音符
;字母键Q/W/E/R/T/Y/U分别发出高1—高7共7个高音音符
;按回车键退出程序
ASSUME CS:CODE ,DS:DATA
DATA SEGMENT
   ;A 到Z 26个字母所对应的频率,其中0的只是填充位置,并不计入计算 
   HzInOrder DW 523,392,330,659,1318,698,784,880,0,988,0,0,494,440,0,0,1046,1397,587,1568,1967,349,1175,294,1760,262 
DATA ENDS

CODE SEGMENT
START:
    MOV	AX,DATA  ;将数据段的地址送AX
MOV	DS,AX     ;AX送入DS代码段
   Lop: 
   MOV   AH,8
   INT    21H              ;获取单个字符,隐藏输入    
   MOV   AH,0
   MOV   SI,0 
   CMP   Al,0DH           ;如果是回车符则退出
   JZ     BREAK    
   CALL   Judge           ;判断输入是否合法,不合法则跳到循环开始部分
   SUB    Al,41H;          将读入数据与大写A对应的ASCII码做减法 
   MOV   SI,AX                            
   MOV   AX,SI            ;SI=SI*2
   ADD   SI,AX
   MOV   AX,0B6H
   OUT   43H,AX           ;初始化2号定时器   
   CALL   DIVMOVE         ;除法和输送数据  
   CALL   MUSICON         ;控制扬声器发声      
   CALL   DELAY           ;控制发声时间 
   CALL   MUSICOFF        ;取消发声 
   Loop   Lop   
<2>
;这是一个音乐程序
;按大写字母“A”,唱乐曲“成都”;
;按大写字母“B”,唱乐曲“因为刚好遇见你”
;按大写字母“C”,唱乐曲“祝福歌”
;按"Q"键,退出

DATA   SEGMENT  
  INFO1	DB 0DH,0AH,'WELCOME YOU TO COME HERE!$'
  INFO2	DB 0DH,0AH,'this is a music program!$'
  INFO3	DB 0DH,0AH,'please select!$'
  INFO4	DB 0DH,0AH,'INPUT ERROR!$'
  INFO5	DB 0DH,0AH,'PLEASE INPUT AGAIN!$'
  MUSLIST DB 0DH,0AH,'A MUSIC1'
	  DB 0DH,0AH,'B MUSIC2'
	  DB 0DH,0AH,'C MUSIC3'
	  DB 0DH,0AH,'Q EXIT'
	  db 0dh,0ah,'$'
  MUS_FREG1            
dw 262,262,262                         ;频率表
		  dw 262,220,524,440,440,440,392
		  dw 392,330,330,262,294,262,262
		  dw 262,220,524,587,524,524,440
		  dw 440,392,330,392,294,262,247
		  dw 262,220,524,440,440,440,392
		  dw 392,392,330,392,294,262,294
		  dw 262,247,262,262,262,294
		  dw 330,294,262,262,247,262,262
		  dw -1

实验结果:

如果想要源码,请有偿私聊。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值