微机原理课设音乐霓虹灯程序设计Word文档下载推荐.docx
- 文档编号:873038
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:34
- 大小:305.54KB
微机原理课设音乐霓虹灯程序设计Word文档下载推荐.docx
《微机原理课设音乐霓虹灯程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理课设音乐霓虹灯程序设计Word文档下载推荐.docx(34页珍藏版)》请在冰点文库上搜索。
3
0.5天
成绩评定
4
书写报告
沈阳工程学院
微机原理及应用课程设计成绩评定表
系(部):
电气工程系班级:
发电本091学生姓名:
黎世华
指导教师评审意见
评价
内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;
能制定课程设计方案
和日程安排。
0.1
5
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
工作
量
按期圆满完成规定的设计任务,工作量饱满,难
度适宜。
说明书的
质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,
图表完备,书写工整规范。
0.5
指导教师评审成绩
(加权分合计乘以12)
分
加权分合计
指导教师签名:
年月日
答辩小组意见
评价内容
报告
思路清晰,语言表达准确,概念清楚,论点正确;
分析归纳合理;
结论严谨;
设计具有应用价值。
答辩
回答问题有理论根据,基本概念清楚。
主要问题
回答准确、深入。
0.3
评阅教师评审成绩
(加权分合计乘以8)
分
评阅教师签名:
课程设计总评成绩
摘要
微机原理是一门非常重要的计算机技术基础课程,全面介绍微机的基本结构、工作原理、硬件配置、接口期间和接口种类等。
本次微机接口课程设计的主要目的是要使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
在本次课程设计中大家利用课上所学的各种知识,对自己的课程设计题目进行设计。
我们小组所要设计的题目是音乐霓虹灯程序设计。
在设计的过程中主要利用计数器/定时器8254芯片和可编程并行接口8255A芯片,完成2个开关选择歌曲,能用扬声器播放歌曲,并且能有彩灯亮的个数来反映歌曲的频率。
首先我们利用定时器产生各种频率的声音,如“DO”“RE”“ME”
然后将各个单音连接起来就组成了一首简单的曲子或者旋律,旋律及拍数可以按音乐简谱而定。
对8255芯片PA0和PA1口的置0和1来选择歌曲。
其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短,实现连续发声把[SI]是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声,发光二级管跟着歌曲频率的变化改变亮灭的个数。
关键字 :
音乐播放器、可编程并行接口8255A芯片、计数器/定时器8254
II
目录
摘要 I
1设计原理说明 1
1.1设计原理 1
1.2设计环境及设备 2
1.3硬件接线图 2
1.4设计流程图 2
2主要芯片介绍 4
2.18254芯片 4
2.1.1定时/计数器8254 4
2.1.28254内部结构 4
2.1.38254外部引脚 5
2.1.4计数器内部结构 6
2.1.58254端口地址 7
2.1.68254功能 7
2.1.78254控制字 7
2.1.88254工作方式 8
2.28255芯片 9
2.2.18255外部引脚功能 9
2.2.28255内部结构 10
2.2.38255控制字 11
2.2.48255三种工作方式 12
2.2.58255A的端口地址 14
2.3发光二极管 14
2.3.1发光二极管介绍 14
2.3.2发光二极管的分类 14
3具体模块设计 15
3.1频率产生模块 15
3.2控制模块 15
3.3控制音符的演奏时间 16
3.4音符频率表 16
3.5控制二极管的亮灭模块 17
3.5.1音乐与所设频率进行比较来调用程序 18
3.5.2控制彩灯所亮个数的程序 18
总结 20
致谢 21
参考文献 22
附录 23
沈阳工程学院微机原理及应用课程设计
1设计原理说明
1.1设计原理
我们在这次课设选择了音乐霓虹灯程序设计,音乐霓虹灯程序设计可以实现两首歌的可选择播放。
对于歌曲的播放我们采用的是计数器/定时器8254芯片,而对于选择哪首歌播放则是利用可编程并行接口8255A芯片来实现的。
所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。
不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
CPU通过对定时器的通道2(端口地址为42)进行编程,使其I/O寄存器
接收一个控制声音频率的16位计数值,端口61H的最低控制通道2门控的开断。
以产生特殊的音响。
当定时器接收的计数值为533H时,能产生896Hz的声音,因此产生其他频率的计数值就可算出来:
533Hz×
896÷
频率=1234DC÷
频率。
将频率的计数值在最大和最小之间取出七个值,由这七个值写出七个比较语句,从大频率开始,只要频率计数值大于其中一个值,就执行这个语句所调用的语句。
调用的语句是通过控制8255芯片C端口的输出量,来控制二极管应该亮几个,那几个该亮。
执行我这语句之后强行跳到音乐播放程序。
在送出频率计数值之前,还要给方式寄存器送一个方式值,该数决定对哪一个通道编程,采用什么模式,送入通道的计数值是一字节还是两字节,是二进制码还是BCD码。
其位组合的格式如下:
当通道2用于发声时,采用的是模式3,在模式3下,输出线为“1”和为“0”的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。
基于8254定时计数接口芯片的工作原理,本次课设实现了音乐霓虹灯演奏系统程序设计。
当运行程序时,扬声器便发出优美的音乐。
首先要解决发声并发出相应音符声音的问题,由8254计数器0在初始化时用来产生一定频率的方波来使扬声器发声,再根据不同音符对应的频率写入计数初值发出相应的音符声。
对8255芯片PA0和PA1口的置0和1来控制播放音乐1还是音乐2,B端口的PB0和PB1接到二极管上来显示只是播放的是音乐1还是音乐2,C端口的
PC0到PC7接到二极管上来显示频率的高低。
其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短,实现连续发声把[SI]是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声。
27
1.2设计环境及设备
PC机一台、windows98系统、实验箱,导线若干。
8254定时器:
用于产生秒脉冲。
8255并口:
用做接口芯片,A端口的PA0和PA1接到开关上;
B端口PA0
和PB1接到二极管上;
C端口接到二极管上。
1.3硬件接线图
硬件接线图如图2.1所示。
图2.1硬件接线图
1.4设计流程图
软件流程图如图2.2所示。
开始
选取选项
Y
是否播放
N
结束
选择第1首歌
曲1各音符频率设置曲1各音符时间设置
曲2各音符频率设置
曲2各音符时间设置
读取频率
根据频率判断二极
管所亮的个数
根据频率判断二极管
所亮的个数
频率=0
调用paly子程序
读取时间节拍
计数次数送8254,产生该频率信
号,在送至扬声器
计数次数送8254,产生该频率信号
,在送至扬声器
延时
图2.2软件流程图
2主要芯片介绍
2.18254芯片
2.1.1定时/计数器8254
在微机及控制系统中,经常要用到定时信号。
如系统的日历时钟,动态存储器刷新。
对外部执行机构控制时也需要定时中断、定时检测、定时查询等。
定时的方法主要是两种:
软件定时:
利用指令的执行时间设计循环程序,使CPU执行延迟子程序的时间就是定时时间。
缺点:
执行延迟时,CPU一直被占用,降低了CPU的效率。
硬件定时:
用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间
延迟。
突出优点为计数时不占用CPU 时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU效率。
主要功能:
⑴每片上有3个独立的16位的减计数器通道。
⑵对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
⑶每个通道都有6种工作方式,都可以通过程序设置或改变。
⑷每个计数器的速率可高达2MHz。
最高的计数时钟频率为2.6MHz。
2.1.28254内部结构
8254的内部结构如图2.1所示,它主要包括以下几个主要部分:
图2.18254的内部结构
⑴数据总线缓冲器
实现8254与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向
8254的控制信息、数据信息以及CPU从8254读取的状态信息,包括某时刻的实时计数值。
⑵读/写控制逻辑
控制8254的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。
⑶控制字寄存器
在8254的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。
⑷计数通道0#、1#、2#:
这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含一个
16位的计数寄存器,用以存放计数初始值,一个16位的减法计数器和一个16
位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到
CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1计数器变化。
2.1.38254外部引脚
8254芯片是具有24个引脚的双列直插式集成电路芯片,其引脚分布如图所示。
8254芯片的24个引脚分为两组,一组面向CPU,另一组面向外部设备,各个引脚及其所传送信号的情况,介绍如下:
⑴ D7~D0:
双向、三态数据线引脚,与系统的数据线连接,传送控制、数据及状态信息。
⑵RD:
来自于CPU的读控制信号输入引脚,低电平有效。
⑶WR:
来自于CPU的写控制信号输入引脚,低电平有效。
⑷CS:
芯片选择信号输入引脚,低电平有效。
图2.28254的引脚
⑸ A1、A0:
地址信号输入引脚,用以选择8254芯片的通道及控制字寄存
器。
⑹VCC及GND:
+5V电源及接地引脚
⑺CLKi:
i=0,1,2,第i个通道的计数脉冲输入引脚,8254规定,加在CLK
引脚的输入时钟信号的频率不得高于2.6MHZ,即时钟周期不能小于380ns。
⑻GATEi:
i=0,1,2,第i个通道的门控信号输入引脚,门控信号的作用与通道的工作方式有关。
⑼OUTi:
i=0,1,2,第i个通道的定时/计数到信号输出引脚,输出信号的形式由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向
CPU发出的中断请求信号。
2.1.4计数器内部结构
每个计数器由一个16位可预置的减1计数器组成,计数初值可保存在16位的锁存器中,该锁存器只写不能读。
在计数器工作时,初值不受影响,以便进行重复计数。
图中每个计数器有一个时钟输入端CLK作为计数脉冲源,计数方式可以是二进制,计数范围1~10000H,也可以是十进制,计数范围
1~65536。
门控端GATE用于控制计数开始和停止。
输出OUT端当计数器计数值减到零时,该端输出标志信号。
图2.3计数器内部结构
2.1.58254端口地址
表2.18254端口地址
2.1.68254功能
8254既可作定时器又可作计数器:
⑴ 计数:
计数器装入初值后,当GATE为高电平时,可用外部事件作为
CLK脉冲对计数值进行减1计数,每来一个脉冲减1,当计数值减至0时,由
OUT端输出一个标志信号。
⑵定时:
计数器装入初值后,当GATE为高电平时,由CLK脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。
除上述典型应用外,8254还可作频率发生器、分频器、实时钟、单脉冲发生器等。
2.1.78254控制字
图2.48254控制字
说明:
⑴8254每个通道对输入CLK按二进制或二十进制从预置值开始减1计数,减到0时从OUT输出一个信号。
⑵8254编程时先写控制字,再写时间常数。
2.1.88254工作方式
⑴方式0:
计数结束产生中断方式
当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。
⑵方式1:
可编程单次脉冲方式
当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。
⑶方式2:
频率发生器方式
当初值装入时,OUT变为高;
计数结束,OUT变为低。
该方式下如果计数未结束,但GATE为低时,立即停止计数,强制OUT变高,当GATE再变高时,便启动一次新的计数周期。
⑷方式3:
方波发生器
当装入初值后,在GATE上升沿启动计数,OUT输出高电平;
当计数完成一半时,OUT输出低电平。
图2.5方波图
方式3与方式2的工作方式类似,也是在初始化完成后能重复循环计数,只是输出的波形不同。
计数过程
当把方式3的控制字写入控制字寄存器后,输出端OUT变成高电平,作为初始电平。
再将计数初值写入计数初值寄存器CR中,再经过一个时钟周期,计数初值被移入计数执行单元CE中,从下一个时钟脉冲开始作减1 计数,方式
3的计数过程分为两种情况:
第一种情况:
计数初值为偶数,当作减1计数减到N/2时,输出端OUT端变成低电平,减到0时,输出端OUT变成高电平,并重新从初值开始新的计数过
程。
若GATE为高电平,则一直重复同样的计数过程。
可见,输出端OUT输出连续的方波,故称方波发生器。
第二种情况:
计数初值为奇数,当作减1计数减到(N+1)/2以后,输出端OUT变成低电平,减到0时,输出端OUT又变成高电平。
并重新从初值开始新的计数过程。
这时输出端的波形为连续的近似方波。
门控信号的影响
工作在方式3时,门控信号GATE的功能与工作方式2一样,即GATE 为高电平时,允许计数;
GATE为低电平时停止计数。
GATE引脚上的信号从低电平跳到高电平时,将会重新把计数初值寄存器CR中的内容移入计数执行单元CE中,并以新装入的值重新开始计数。
新的计数初值对计数过程的影响
如果在计数过程中写入新的初值,而GATE信号一直维持高电平,则新的初值不会影响当前的计数过程,只有在计数结束后的下一个计数周期,才按新的初值计数。
若写入新的初值后,遇到门控信号的上升沿,则结束现行的计数过程,从下一个时钟脉冲下降沿开始按新的计数初值进行计数。
可见,工作在方式3时,当计数初值为偶数,OUT端输出连续的标准方波;
当计数初值为奇数,在每个计数周期内,有(N+1)/2个周期输出高电平,(N-
1)/2个时钟周期输出低电平,OUT端输出连续的近似的方波。
2.28255芯片
2.2.18255外部引脚功能
图2.68255外部引脚图
可编程并行接口8255芯片的外部引脚图如图2.6所示。
⑴ PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
⑵PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
⑶ PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
⑷RESET:
复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
⑸CS:
片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许
8255与CPU进行通讯。
⑹RD:
读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向
CPU发送数据或状态信息,即CPU从8255读取信息或数据。
⑺ WR:
写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。
⑻D0~D7:
8255的数据线。
8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
2.2.28255内部结构
图2.78255的内部结构图
可编程并行接口8255芯片的内部结构图如图2.7所示。
⑴输入/输出端口A、B、C。
这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。
A口和B口是一个独立的8位I/O口。
C口:
可以看作
是一个独立的8位I/O口;
也可以看作是两个独立的4位I/O口。
⑵ A组和B组控制电路。
这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制
8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。
A组控制电路用来控制A口及C口的高4位;
B组控制电路用来控制B口及C口的低4位。
⑶ 读/写控制逻辑,它负责管理8255A的数据传输过程。
它接收CS*及
RD*、WR*、RESET,还有来自系统地址总线的口地址选择信号A0和A1。
将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。
⑷数据总缓冲器,它是8位的双向的三态缓冲器。
作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。
2.2.38255控制字
1工作方式选择控制字
它可以使8255的三个端口工作于不同的工作方式,如图2.8所示的8255
控制字。
D5
D6
方式选择控制字的标志位
A组方式选择00-方式0
01-方式1
1X-方式2 通道A:
00-输入
11-输出
PC3~PC0:
1-输入
D0
D1
D2
D3
D4
0-输出
通道B:
1-输入
B组方式选择:
0-方式0
1-方式1
PC7~PC4:
图2.88255的控制字图
当控制字bit=7时,控制字的bit6—bit3这4位用来控制A组,A口的8
位和C口的高4位,而控制字的低3位bit2—bit0用来控制B组,包括B口的
8位和C口的低四位。
三种工作方式的描述如下:
⑴方式0——基本输入/输出方式;
⑵方式1——选通输入/输出方式;
⑶方式2——双向传送方式。
2C口按位置位/复位控制字
8255的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向
8255的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他
位的状态不变。
其格式注意
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 音乐 霓虹灯 程序设计