标题:帮忙看看这个程序能不能实现功能
只看楼主
流浪_汉
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-1-12
 问题点数:0 回复次数:1 
帮忙看看这个程序能不能实现功能
我编了一个用ADC0809和DAC0832进行录音和放音的程序
录音时间是6.4秒,每100微秒进行一次采样转换;放音时间是循环的,每6.4秒一次循环,程序是这样的
stack segment stack'stack'
dw 32 dup(0)
stack ends
data segment
count db 02h
buffer db 255,0,255 dup(?)
data ends
code segment
main proc far
assume cs:code,ds:data,ss:stack
push ds
mov ax,0
mov ax,seg irq7is //设置中断程序地址
mov ds,ax
mov ax,251ah
int 21h
mov ax,data
mov ds,ax
in al,21h //设置屏蔽字,允许IRQ7中断
and al,7fh
out 21h,al
mov si,0 //设置存储空间的偏移量
mov cx,40h //设置录音的时间
again1:mov dx,384h
out dx,al //启动转换
jmp $ //等待中断信号
in al,dx //读入转换结果
mov buffer[si],al //存放在存储单元
inc si
loop again1 //循环
again3:mov cx,40h //设置放音时间
again2:push bx
mov al,buffer[si] //从存储单元读出数字量
mov dx,381h //送DAC的端口地址
mov dx,al //将数字量送端口
jmp $ //中断等待转换
dec si //取下一个数字量
loop again2
mov ah,0bh //判断是不是有键按下
int 21h
inc al
jnz again3 //循环放音
ret
irq7is:mov bx,count //中断控制
aa:dec bx
cmp bx,0
jne aa
mov al,20h
out 20h,al
in al,21h
or al,04h
out 21h,al
pop ax
inc ax
inc ax
push ax
iret
main endp
code ends
end main
不知道能不能实现
各位帮忙看看
给点指点
搜索更多相关主题的帖子: 录音 count 
2007-01-12 15:39
流浪_汉
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-1-12
得分:0 
几天的努力终于把上面的东东搞定了,上面的程序是没有扩张处理器和存储器的
现在做的是扩张了处理器和存储器,还有录音放音和停止的按钮
基本上可以

2007-01-17 11:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-115608-1-1.html




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

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