免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学微机原理与接口技术课程报告说明书学 号: 0120810340631课 程 设 计题 目使用定时/计数器8253设计产生升音频率发音的应用(汇编语言)学 院计算机科学与技术学院专 业计算机科学与技术班 级0806班姓 名张军指导教师王莹2011年7月6日接口课程设计任务书学生姓名 张军 专业班级 计算机0806 指导老师 王莹 工作单位 计算机学院 题目:使用定时/计数器8253设计产生升音频率发音的应用(汇编语言)一、 内容:使用MIFID微机实验台上的定时/计数器8253设计产生升音频率,产生的升音频率从喇叭发音,点亮LED发光二极管。接口硬件电路图见附录所示。二、 要求:1、 16个升音频率数字以及每个升音频率相对应的时间延时数字,把他们用记录或结构或数组的形式存储。2、 依次读出每个升音频率数字,计算出定时/计数器8253发出这个升音频率的计数初值。在CRT上显示这个升音频率和计数初值。3、 使用并行接口8255A的PC6控制定时/计数器8253的GATE信号,从OUT2输出升音频率,PC0控制喇叭开始发音。4、 设计程序运行时的界面友好。三、 进度安排:序号内容所用时间1接口电路设计2天2编写程序1天3调试程序1天4撰写课程设计报告1天合计5天指导教师签名: 年 月 日 系主任(责任教师)签名: 年 月 日使用定时/计数器8253设计产生升音频率发音的应用(汇编语言)一、要求 1、 16个升音频率数字以及每个升音频率相对应的时间延时数字,把他们用记录或结构或数组的形式存储。2、 依次读出每个升音频率数字,计算出定时/计数器8253发出这个升音频率的计数初值。在CRT上显示这个升音频率和计数初值。3、 使用并行接口8255A的PC6控制定时/计数器8253的GATE信号,从OUT2输出升音频率,PC0控制喇叭开始发音。4、 设计程序运行时的界面友好。二、设计原理及步骤 1预备知识:可编程定时器/计数器8253是一种在微机系统中实现定时和计数功能的LSI外围接口电路。它的内部有3个独立的16位定时器/计数器。每个计数器都有6种工作方式(方式0方式5),由8253的控制字来控制。在写入控制字及计数初值后8253才能正常工作。由于计数过程中门控信号GATE的电平变化、计数初值的重新设置都会对实际计数造成影响,因此最终的OUT波形可能各种各样,实现的控制关系各不相同。为了更好地完成本次实验,要求实验者必须对8253的工作原理,8253控制寄存器的格式及作用,8253的6种工作方式的各自特点,8253控制字的读回命令与锁存命令的区别等有清楚的认识。实验过程中,门控信号GATE的电平高低变化可通过电平开关来控制。时钟脉冲CLK的发出可通过单脉冲发生器来实现。OUT的电平变化可用逻辑笔来观察。OUT的波形可通过其电平变化与时钟脉冲CLK的个数关系画出。2 . 实验原理:音乐发生器驱动模块电路原理如图2.2.1所示。模块包含喇叭SPK,LM386A,74LS08,以及74LS245和LED等。其中LED是配合演奏音乐时产生发光效果而设置的。20芯定时器/并行口插座50芯扩展总线图2.2.1 音乐发生器模块板电路原理框图3.主要器件介绍:8253:8253的基本结构 8253内部结构4.实验步骤:步骤一:硬件连线跳线设置:将电源模块的JP7跳接.单线连接如右图:F区PC0Q区门控(启/停)控制(音调)E区OUT2排线连接如右图: J320心并行口插座J420芯并行口插座连接线步骤二:将平台的电源开关拔到“内”的位置上。在配套集成环境下进行硬件检测,达到初始化芯片的目的步骤三:(示实验步骤)打开集成环境在“演示实验”菜单下点开“基本接口实验”。在“基本接口实验”中的“定时记数器实验”中选择“音乐发生器”实验进行演示。步骤四:(学生实验步骤)打开集成环境在“文件”菜单下学生可以选择新建自己的C+/ASM文件或者集成环境自带的C+/ASM参考程序进行调试、运行。步骤五:观看实验现象得出结论。三、 程序设计本实验中采用数组的方式存储16个升音频率数字。int sound16=100,200,400,800,1200,1600,2000,2400,2800,3200,3600, 4000, 4800, 5600, 7200, 9000 函数S主要是实现对8253的控制,完成声音的播放及相关内容在CRT上显示。开始初始化歌曲的频率及时延初始化8255和8253取歌曲的第一个音符的频率和时延是否按了任意键或遇到了音符频率的结束符根据频率计算计数初值并送往8253置8255的PC6、PC0为1,使扬声器发声调用延时子程序置8255的PC6、PC0为0,再次关闭扬声器返回DOS置8255的PC6、PC0为0,关闭扬声器取下一个音符的频率和时延结束YN主程序流程图初始化歌曲的频率及时延(a)主程序获取并保存中断1CH的中断向量向中断1CH装入新的中断向量音符的延时次数已到?恢复中断1CH原来的中断向量NY延时子程序流程图图2.1.13 音乐ASM程序流程图(b)延时子程序四、 实验结果连接好电路,编译、连接、运行汇编程序后,可以听到两只老虎的音乐,改写程序里面的声音频率,直至得到升音频率发音的两只老虎。依次读出每个升音频率数字,计算出定时/计数器8253发出这个升音频率的计数初值。在CRT上显示这个升音频率和计数初值。五、 心得体会首先,这次微机原理与接口技术课程设计充分锻炼我们的动手能力和思考问题的能力,通过此次实验我加深了对8253定时计数器和汇编语言的了解。应用软件编程深入硬件,是沟通软件的逻辑可行性和实际可行性的桥梁,由此也使我体会到了软件开发的艰辛。其次,这次课程设计让我积累了相关方面的专业知识,对以后的工作学习有着借鉴作用。最后,虽然本次课程设计的任务已经基本完成,但是我相信这些知识还会在以后再次用到,我会继续努力学习这方面的知识,巩固旧知识和学习新的专业知识。六、 附录;* Aexp.asm(音乐发生器接口) */;* 音乐发生器程序Source File */;* */sstack segment stack dw 200 dup(?)sstack endsint sound16=100,200,400,800,1200,1600,2000,2400,2800,3200,3600, 4000, 4800, 5600, 7200, 9000data segmentbg db Sound db 0ah,0dh db press any key to stop! ,0ah,0dh,$freq dw 2 dup(100,200,400,800) ;Sound乐曲中,音符的频率(音阶) dw 2 dup(1200,1600,2000) ;其中,0频率表示结尾 dw 2 dup(2400,2800,3200,3600,4000,4800) dw 2 dup(5600,7200,9000),0time dw 10 dup(8),16,8,8,16 ; Sound 乐曲中,音符的延时(节拍) dw 2 dup(4,4,4,4,8,8) ;其中4,8,16表示延时的次数 dw 2 dup(8,8,16)old_seg dw ?old_off dw ?data endscode segment assume cs:code, ds:data, ss:sstackstar proc far ;程序开始 mov ax,data mov ds,ax mov ax,sstack mov ss,ax push di ;寄存器压栈 push si push bp push bx mov al,90h ;8255初始化 mov dx,303h out dx,al mov al,0ch ;关闭8253的T2计数器(8255的PC6=0) mov dx,303h out dx,al mov al,00h ;关闭喇叭(8255的PC0=0) mov dx,303h out dx,al mov al,0b6h ;8253初始化 mov dx,307h out dx,al mov dx,offset bg ;显示提示信息 mov ah,9 int 21h mov si,offset freq ;设置频率指针si mov bp,offset time ;设置延时指针bppp: mov ah, 0bh ;检测是否有任意键按下? int 21h cmp al,00 jne end_sing ;若有,则结束演凑 mov di,si ;取1个音符的频率di cmp di,0 ;检测是否是乐曲结尾 je end_sing ;若是,则结束演凑 mov dx,12h ;计算音符的频率所对应的8253计数初值 mov ax,34dch ;1.19318MHz div di mov dx,306h ;向8253装入计数初值 out dx,al ;先装低字节 mov al,ah out dx,al ;再装高字节 mov dx,303h ;打开喇叭(8255的PC0=1) mov al,01h out dx,al mov al,0dh ;打开8253的T2(PC6=1),开始发声 out dx,al mov bx,ds:bp ;取1个音符的延时次数bx call time_delay ;调用延时子程 mov dx,303h ;关闭8253的T2(PC6=0) mov al,0ch out dx,al mov al,00h ;关闭喇叭(PC0=0) out dx,al add si,2 ;取下1 个音符的频率 add bp,2 ;取下1 个音符的延时次数 jmp pp ;继续 end_sing: mov dx, 303h ;关闭8253的T2 mov al, 0ch out dx, al mov al, 00h ;关闭喇叭 out dx, al pop bx ;寄存器出栈 pop bp pop si pop di mov ax,4c00h ;返回DOS int 21hstar endpnew_intr proc ;新中断服务程序 dec bx ;该服务程序只将延时次数-1 iretnew_intr endptime_delay proc near ;延时子程序 pushf ;压栈 push ds push es push bx mov ah,35h ;取原中断(INT1CH)的向量,并保存 mov al,1ch int 21h mov old_off, bx mov bx, es mov old_seg, bx pop bx pop espush ds mov ah, 25h ;设置新中断服务程序的向量 mov al, 1ch mov dx, seg new_intr mov ds,dx lea dx, new_intr int 21h pop dsTD: cmp bx,0h ;延时次数已到? jnz TD ;未到,则继续 mov ah,25h ;已到,则恢复原中断向量 mov al,1ch mov dx,old_seg push dx mov dx,old_off pop ds int 21h pop ds popf ;time delay end rettime_delay endpcode ends end star ;程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年浙江邮电职业技术学院单招职业技能测试题库及答案解析(名师系列)
- 2026年四川铁道职业学院单招职业倾向性考试必刷测试卷及答案解析(夺冠系列)
- 2026年四川体育职业学院单招职业技能测试必刷测试卷附答案解析
- 2026年宁夏石嘴山市单招职业适应性测试必刷测试卷及答案解析(夺冠系列)
- 2026年云南省西双版纳傣族自治州单招职业适应性测试题库带答案解析
- 2026年无锡城市职业技术学院单招职业倾向性考试题库及答案解析(夺冠系列)
- 基于机器学习拥塞预测
- 房屋拆除定金协议书
- 房屋收入分配协议书
- 房屋施工安全协议书
- 2025年婴幼儿发展引导员理论考核试题及答案
- 2025秋大象版(2017)小学科学五年级上册期末测试卷附答案(共3套)
- 2025年消防工程师真题及答案
- 黑龙江省哈尔滨市第三十二中学2025-2026学年高二上学期11月期中考试语文试题(原卷版)
- 2025年浙江省住院医师规范化培训结业考核超声波训练题及答案
- 2025年四川省泸州市中考英语试卷
- 技术经纪人培训教程大纲
- 2025国泰租赁有限公司招聘笔试历年备考题库附带答案详解试卷3套
- 视频监控系统工程监理细则
- 2025天津滨海传媒发展有限公司招聘13人笔试考试参考题库及答案解析
- 2025年变电设备检修工(中级)技能鉴定理论考试题库(含答案)
评论
0/150
提交评论