8253音乐发生器微机原理实验

上传人:大米 文档编号:470581759 上传时间:2024-02-20 格式:DOCX 页数:14 大小:54.73KB
返回 下载 相关 举报
8253音乐发生器微机原理实验_第1页
第1页 / 共14页
8253音乐发生器微机原理实验_第2页
第2页 / 共14页
8253音乐发生器微机原理实验_第3页
第3页 / 共14页
8253音乐发生器微机原理实验_第4页
第4页 / 共14页
8253音乐发生器微机原理实验_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《8253音乐发生器微机原理实验》由会员分享,可在线阅读,更多相关《8253音乐发生器微机原理实验(14页珍藏版)》请在金锄头文库上搜索。

1、8253 音乐发生器实验接线图:单线连接:将模块电源JP3接通 将电源模块的JP7跳接.?I/O 端口地址:8255的4个端口地址为300H303HA 口: 300H, B 口: 301H, C 口: 302H,命令口: 303H。8253的四个端口地址为304H307H其中通道0为304H,通道1为305H,通道2为306H,命令口为307H流程图:系统资源分配本平台系统提供的I/O地址范围是300H3FFH,目前已使用的I/O地址有:8255A: 300H303H8253A:304H307H8251A:308H30BHDAC0832:30FH8237A:主片 00FH;从片 0COH0DE

2、H8259A:主片 20H,21H 从片 0A0H,0A1H在此区有一个 TP1 测试点,可以对译码信号进行检测。本平台为用户提供了两个中断识别源分别为IRQ2和IRQ10,当用户需要进行中断实验时, 可以任意用单线连接,进行中断申请。跳线开关说明跳线开关所在区功能JP1G(1-2)远距离通信(2-3)近距离通信JP2G(1-2) RS485 方式(2-3) RS232 方式JP3G(RXD-TXD)表示自发自收 (空)表示双机通信JP4G(跳接)收发时钟连到8253的OUT2作为波特率发生,(空)由用户自己连接 收发时钟JP5L(跳接)接通芯片6264电源(空)断开6264芯片电源JP6L(

3、跳接)接通芯片DAC0809电源(空)断开芯片DAC0809电源JP7L(跳接)Q区74LS08芯片、M区74LS245芯片电源JP8L(跳接)P区74LS373芯片、R区74LS04芯片、M区74LS06芯片、N区拨码开 关、T区4044芯片电源JP9L放置跳接子JP10O模拟量通道选择JPE(1-2)用 PC6 接 Gate2 (2-3)用 PC3 接 Gate2JP12O(1-2)用PC4杳询EOC (空) EOC申请中断; 音乐发生器程序 Source Filesstack segment stackdw 200 dup(?)sstack endsdata segmentbg db T

4、wo tigers .db 0ah,0dhdb press any key to stop! ,0ah,0dh,$freq dw 2 dup(262,294,330,262);两只老虎乐曲中,音符的频率(音阶)dw 2 dup(330,349,392);其中,0 频率表示结尾dw 2 dup(392,440,392,349,330,262)dw 2 dup(294,196,262),0time dw 10 dup(8),16,8,8,16 符的延时(节拍)dw 2 dup(4,4,4,4,8,8) 的次数dw 2 dup(8,8,16)old_seg dw ?old_off dw ?; 两只老

5、虎乐曲中,音;其中 4,8,16 表示延时data endscode segmentassume cs:code, ds:data, ss:sstackstar proc far;程序开始mov ax,datamov ds,axmov ax,sstackmov ss,axpush sipush bppush bxmov al,90hmov dx,303h out dx,almov al,0ch的 PC6=0)mov dx,303h out dx,al mov al,00h mov dx,303h out dx,al mov al,0b6h mov dx,307h out dx,almov dx

6、,offset bg mov ah,9;8255初始化;关闭 8253的 T2 计数器(8255;关闭喇叭(8255的 PC0=0);8253初始化;显示提示信息int 21hmov si,offset freq mov bp,offset timepp: mov ah, 0bhint 21h cmp al,00 jne end_singmov di,si cmp di,0 je end_singmov dx,12h8253计数初值mov ax,34dchdiv dimov dx,306hout dx,al mov al,ah out dx,almov dx,303h;设置频率指针一si;设置

7、延时指针fbp;检测是否有任意键按下?; 若有,则结束演凑;取1个音符的频率一di;检测是否是乐曲结尾; 若是,则结束演凑;计算音符的频率所对应的;1.19318MHz;向 8253装入计数初值; 先装低字节; 再装高字节;打开喇叭(8255的 PC0=1)mov al,01h out dx,al mov al,0dh 始发声out dx,almov bx,ds:bp call time_delaymov dx,303hmov al,0ch out dx,al mov al,00h out dx,aladd si,2 add bp,2 jmp ppend_sing:mov dx, 303h;打

8、开 8253 的 T2 (PC6=1),开;取1个音符的延时次数fx;调用延时子程;关闭 8253 的 T2 (PC6=0);关闭喇叭(PC0=0);取下1 个音符的频率;取下 1 个音符的延时次数;继续;关闭 8253的 T2mov al, 0chout dx, al mov al, 00h out dx, alpop bxpop bp pop si pop dimov ax,4c00h int 21hstar endpnew_intr procdec bx-1iretnew_intr endptime_delay proc near pushf push ds;关闭喇叭;寄存器出栈;返回

9、DOS;新中断服务程序;该服务程序只将延时次数;延时子程序;压栈push espush bx;取原中断(INT1CH)的向;INT 1CH 用户时钟服mov ah,35h量,并保存mov al,1ch务int 21hmov old_off, bxmov bx, esmov old_seg, bxpop bxpop espush ds;设置新中断服务程序的向mov ah, 25h量mov al, 1chmov dx, seg new_intrmov ds,dxlea dx, new_intr int 21hpop dsTD: cmp bx,0hjnz TDmov ah,25hmov al,1chmov dx,old_seg push dxmov dx,old_off pop ds int 21hpop dspopf;time delay endrettime_delay endpcode ends;延时次数已到?;未到,则继续;已到,则恢复原中断向量end star;程序结束

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号