用开关模拟电子琴发声 1、以8255接八个开关K1~K8,做电子琴按键输入 2、以8253控制扬声器,拨动不同的开关,发出相应的音阶 要求:K1-----静音 K2-----发si的音493Hz K3-----发la的音440Hz K4-----发sol的音392Hz K5-----发fa的音349Hz K6-----发mi的音329Hz K7-----发re的音293Hz K8-----发do的音261Hz 二、方案的论证比较: 此课程设计是用开关模拟电子琴发声。 硬件方面: 采用并口8255A接8个开关K1—K8,利用8255A方式0,端口A输入方式,即AL=10010000B,可以将开关的量输入到CPU中,利用8个开关做电子琴的8个按键。 驱动控制扬声器利用8253与8255A共同执行(见硬件电路图)。利用8255A的PB0、PB1控制扬声器的开启、关闭。利用定时器8253驱动发声,CPU通过对8253通道2(端口地址42H)进行编程,利用8253方式3以不同的脉冲频率产生不同的输出方波,方波信号通过滤波器、功率放大器使扬声器发声。 软件方面: 利用汇编语言对接口进行编程控制。程序模块主要包括8255A、8253的初始化、开关量的输入、扬声器的开启、关闭及程序的退出。在使8253的初值计数与频率相对应有两种方法,一是利用表的操作,但这种操作不太容易实现,硬件的连接也比较麻烦,易出错;所以我采用的是比较跳转的方式, 比较简单明了,容易理解。程序中的模块关系见程序流程图。 ...... |
查看评论
已有0位网友发表了看法