资源描述:
《8255与8253的综合应用实例_发声及音乐》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验一8255与8253的综合应用实例:发声及音乐一、实验要求利用定时/计数器8253和并行接口8255控制扬声器发声。8253的输入时钟CLK的频率1.19318MHz。二、实验设计(1)硬件设计(如下图)(2)软件设计:音乐程序如下:stacksegmentparastack'stack'db64dup('stack...')stackendsdsegsegmentpara'data'mus_fredw330,392,330,294,330,392,330,294,330dw330,392,330,294,262,294,330,392,29
2、4dw262,262,220,196,196,220,262,294,330,262dw-1mus_timdw3dup(100),50,50,100,50,50,200dw2dup(100,100,50,50),200dw3dup(100,50,50),200dsegendscsegsegmentpara'code'assumecs:cseg,ss:stack,ds:dsegmusicprocfarmovax,dsegmovds,axfreq1:leasi,mus_freleabp,ds:mus_timfreq:movdi,[si]cmpdi,-
3、1jeend_musmovbx,ds:[bp]callsoundfaddsi,2addbp,2jmpfreqend_mus:jmpfreq1movah,4chint21hsoundfprocnearpushaxpushbxpushcxpushdxpushdimoval,0b6h;10110110Bout43h,al;送控制字movdx,12h;12348C为1.1931Mmovax,348chdivdi;除以频率为延时out42h,al;送延时常数moval,ahout42h,alinal,61h;保护并口状态,开并口movah,aloral,3
4、out61h,alwait1:movcx,600;发声延时pushaxwaitf1:inal,61handal,10h;10hcmpal,ahjewaitf1movah,alloopwaitf1popaxdelay:loopdelaydecbxjnzwait1moval,ahout61h,al;还原并口popdipopdxpopcxpopbxpopaxretsoundfendpmusicendpcsegendsend三、实验步骤1、打开“MasmForWindows集成实验环境”,新建一个文件。2、将发声程序代码复制粘贴到文件中并保存3、编译成目
5、标文件4、生成可执行文件5、运行四、实验结果可以听到电脑扬声器发出《太湖船》的曲调五、实验总结分析我了解了怎样利用定时/计数器8253和并行接口8255控制扬声器发声,并且我把程序改成了一个死循环,可以让扬声器不停地发声。在实验中我发现把每个数据后面添一个0,可以使声音变大,如果再添一个0就不会有声音了。这是一个很有趣味的实验。实验二微机键盘、8259与8255综合实验一、实验目的1、理解键盘的基本工作原理和过程。2、掌握8259中断控制器的工作原理、编程方法。3、掌握中断服务程序的设计方法。4、熟悉8255作为数据接口和控制端信号引脚的作用。二
6、、实验内容1、编写一键盘中断处理程序:计算键盘中断次数,并用该程序替换系统键盘中断处理程序,使当按键8次(键盘中断产生16次)后,显示中断次数并结束应用。2、置换系统的09H型中断服务程序,完成对键盘中断次数的统计。在该中断服务程序中,必须对键盘控制器(口地址61H)复位。复位键盘控制器只需读出端口61H的内容,并将最高位置1,再写入该端口。此外,按键按下和抬起均会引起中断,所以实际中断次数等于按键次数乘2。3、将按键的扫描码输出到屏幕上,并统计中断次数。三、实验步骤1、打开“MasmForWindows集成实验环境”,新建一个asm文件。2、将
7、发声程序代码复制粘贴到新建的asm文件中并保存3、编译成目标文件4、生成可执行文件5、运行四、实验结果当按下基本键区的“1234568”时出现的结果如下图:当按下副键盘区的“1234”再按基本键区的“5678”时,出现的结果:当按下光标移动键或者专用键时只要两次就会出现下面结果:五、实验总结分析通过这次实验我基本理解了键盘的基本工作原理和过程;掌握了8259中断控制器的工作原理、编程方法;掌握了中断服务程序的设计方法;熟悉了8255作为数据接口和控制端信号引脚的作用。六、附录程序代码DATASEGMENTOLD_OFFDW?OLD_SEGDW?M
8、KBAKDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCFARMOVAX,DAT