| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 792 人关注过本帖
标题:关于电子琴的问题
只看楼主 加入收藏
hk2009911075
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-10-20
收藏
 问题点数:0 回复次数:2 
关于电子琴的问题
data segment
ioport        equ 0d400h-0280h
io8253a        equ ioport+280h
io8253b        equ ioport+283h
io8255a        equ ioport+288h
io8255b        equ ioport+28bh


io0832a        equ ioport+290h
data1  db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh
       db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h
       db 80h,66h,4eh,38h,25h,15h,09h,04h
       db 00h,04h,09h,15h,25h,38h,4eh,66h        ;正弦波数据
time   db 120,106,94,89,79,70,63,59    ;发不同音时8253的计数器初值
msg    db 'Press 1,2,3,4,5,6,7,8,ESC:',0dh,0ah,'$'
num    db ?    ;num为8253计数器初值的序号
data ends
code segment
    assume cs:code,ds:data
start:    mov ax,data
    mov ds,ax
    mov dx,offset msg
    mov ah,9
    int 21h              ;显示提示信息
sss:    mov ah,7
    int 21h              ;从键盘接收字符,不回显
    cmp al,1bh
    je  exit             ;若为ESC键,则转EXIT
    cmp al,31h
    jl  sss
    cmp al,38h
    jg  sss              ;若不在'1'-'8'之间转sss
    sub al,31h
    mov num,al           ;求出相应的时间常数的序号
    mov cx,60             ;取60次32个正弦波数据
ddd:    mov si,0
lll:    mov al,data1[si]     ;取正弦波数据
   


mov dx,io0832a
    out dx,al            ;放音
    call delay           ;调延时子程序
    inc si
    cmp si,32            ;是否取完32个数据
    jl lll               ;若没有,则继续
    loop ddd             ;总循环次数60是否完,没有,则继续
    jmp sss
exit:    mov ah,4ch
    int 21h

delay proc near              ;延时子程序
ccc:    mov bx,offset time
    mov dx,io8253b          ;置8253通道0为方式0工作
    mov al,10h
    out dx,al
    mov dx,io8255b          ;设8255A口输入
    mov al,9bh
    out dx,al
    mov al,num          ;取相应的时间常数
    xlat
    mov dx,io8253a
    out dx,al            ;向8253通道0输出
kkk:    mov dx,io8255a
    in  al,dx            ;从8255A口读一字节
    test al,01           ;判PA0口是否为1
    jz  kkk              ;若不为1,则转KKK
    ret                  ;子程序返回
delay endp

code ends
end start

怎样修改程序输入3段音乐,并任意播放3段音乐。希望各位帮忙尽快解决下!谢谢!
搜索更多相关主题的帖子: 电子琴 计数器 
2011-10-20 23:29
hk2009911075
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-10-20
收藏
得分:0 
怎么没人反应一下!
2011-10-28 08:01
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
我不知道你是接口芯片8253/8255不懂,还是汇编代码不懂

技术问题,请不要以短消息方式提问
2011-11-17 12:00
快速回复:关于电子琴的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045713 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved