文档介绍:1 设计任务描述
课程题目
本课程设计题目是:音乐霓虹灯程序设计。
设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。
查阅可编程并行芯片8254或其他相关资料。
用定时/计数器,配合延时和控制程序控制扬声器发声(演奏音乐),彩灯随频率变化亮灭。
内容:利用定时/计数器8254实现音乐演奏。
要求:(1)配合延时和控制程序控制扬声器发声(演奏音乐)。
(2)彩灯随频率变化亮灭。
2 设计原理
设计原理
我们在这次课设选择了音乐霓虹灯程序设计,音乐程序设计可以实现两首歌的可选择播放。对于歌曲的播放我们采用的是计数器/定时器8254芯片,而对于选择哪首歌播放则是利用可编程并行接口8255A芯片来实现的。
所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。不同的音乐是由各个音阶按某种排列各自播放一定时间形成的,将各音乐音阶和其延续时间存在数据段中,然后根据不同按键值选择不同的音阶和时间表,再使用计数器产生该音阶频率。
CPU通过对定时器的通道2(端口地址为42)进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低控制通道2门控的开断。以产生特殊的音响。当定时器接收的计数值为533H时,能产生896Hz的声音,因此产生其他频率的计数值就可算出来:
533Hz×896÷频率=1234DC÷频率
在送出频率计数值之前,还要给方式寄存器送一个方式值,该数决定对哪一个通道编程,采用什么模式,送入通道的计数值是一字节还是两字节,是二进制码还是BCD码。其位组合的格式如下:
当通道2用于发声时,采用的是模式3,在模式3下,输出线为“1”和为“0”的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。
基于8254定时计数接口芯片的工作原理,本次课设实现了音乐演奏系统程序设计。当运行程序时,扬声器便发出优美的音乐。首先要解决发声并发出相应音符声音的问题,由8254计数器0在初始化时用来产生一定频率的方波来使扬声器发声,再根据不同音符对应的频率写入计数初值发出相应的音符声。对8255芯片PA0和PA1口的置0和1来控制扬声器的开关。其次实现唱歌功能即实现歌曲的节拍通过调用延时子程序控制音符发音的长短,实现连续发声把[SI]是否为0作为循环的条件在每一次扬声器发出一个相应音符之后做无条件转移,从而使扬声器连续发声,再加一个频率比较语句来控制二极管的亮灭。
设计环境及设备
PC机一台、windows 98系统、实验箱,导线若干。
8254定时器:用于产生秒脉冲。
8255并口:用做接口芯片,与数码管相连
硬件接线图
输出
。
D0 PB0
D1 PB1
D2 8
D3 2
D4 5
D5 5
D6 芯
D7 片
WR
RD PA0
CS PA1
A0
A1
XD0
XD1
XD2 系
XD3 统
XD4 总
XD5 线
XD6
XD7
IOW#
IOR#
IOY3 IOY1
XA1
XA2
Clk
+5V
D0
D1
D2 8
D3 2
D4 5
D5 4
D6 芯
D7 片
WR
RD
CS
A0
A1
CLK0
OUT0
GATE0
输入
扬声器
硬件接线图
设计流程图
。
图 软件流程图
3 主要芯片介绍
8254芯片
定时/计数器8254
在微机及控制系统中,经常要用到定时信号。如系统的日历时钟,动态存储器刷新。对外部执行机构控制时也需要定时中断、定时检测、定时查询等。定时的方法主要是两种:
软件定时:利用指令的执行时间设计循环程序,使CPU 执行延迟子程序的时间就是定时时间。缺点:执行延迟时,CPU 一直被占用,降低了CPU 的效率。
硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间
延迟。突出优点为计数时不占用CPU 时间,如利用定时器/计数器产生中断信号,可建立多作业环境,提高了CPU 效率。
:
⑴每片上有3 个独立的16 位的减计数器通道。
⑵对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。
⑶每个通道都有6 种工作方式,