基于8253电子音阶设计的实践教学研究
2013-12-19李娜
李 娜
宿州学院机械与电子工程学院,安徽宿州,234000
定时/计数器8253可对脉冲信号进行处理,是《微机原理与接口技术》课程中需要学生学以致用的芯片之一。教师一味地按照课本讲解芯片的内部结构、工作原理以及程序设计,学生不免感觉到枯燥乏味。若能将知识结合生产生活中的实际应用,则能激发学生学习的兴趣,更好地实现教学目标。8253应用广泛,可作为实时时钟、方波信号发生器、计数器、分频器等使用[1]。此外,8253输出的信号还可以驱动扬声器发声,在视觉和听觉的双重感受下,学生兴致浓厚,实践教学效果更好。本文采用8086CPU作为核心控制元件,利用8253生成不同频率的信号驱动扬声器发出不同音阶的声音,通过编程和按键演奏音乐,学生可以快速掌握8253的原理和应用。
1 设计原理
要使扬声器发出不同的音阶,就得输入不同频率的信号。通过给定时/计数器8253送入不同的初值,可以从输出端得到不同频率的波形,经过放大器LM386的放大作用,便可驱动扬声器发出不同的音阶。音阶声音的持续时间可以通过软件延时程序实现。PC机的1~7某一按键被系统检测到,系统驱动对应子程序使扬声器输出对应的音阶。该设计的原理框图如图1所示。
2 硬件设计
2.1 8253定时/计数器
Intel 8253是采用NMOS工艺制成的可编程定时/计数器,管脚图如图2所示[2]。8253的24个管脚分为三类,其中与外设相连的通道管脚是该芯片区别8255、8251芯片的重要特征。这一类管脚又分为三组,分别为通道0、通道1、通道2。每组通道有三条信号线:CLK、OUT、GATE。其中外部事件或定时脉冲由CLK输入,计数值减为0时从OUT输出,控制计数器工作的外部信号从GATE输入。
图1 原理框图
图2 8253管脚图
8253可以工作在三组通道中的任一个,且有6种工作方式、4种通道读写操作可供选择[3]。根据具体需要可对8253设置控制字,以确定其选择通道、工作方式、读写操作方式等。8253的控制字格式如图3所示[4]。
D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCD
图3 8253控制字格式
本设计选择通道1、工作方式3、只读写低8位字节、采用二进制计数制,所以8253的方式控制字为:10010110B(96H)。8253初始化时,将56H送至8253的控制口地址。
表1 各音阶的频率及计数初值
计数初值的计算也是考察学生掌握8253编程的重要知识点。将计数初值送至通道2的CLK端,计数器则对其进行递减计数,进而生成一定频率的方波。该设计的电子音阶DO、RE、MI、FA、SOL、LA、SI对应的频率和计数初值见表1。
2.2 音频模块
定时计数器生成的方波从OUT端输出,驱动扬声器发出该频率对应的音调[5]。音频模块结构图如图4所示[6]。
图4 音频模块
2.3 硬件整体结构
硬件整体结构图如图5所示。8086作为核心控制器件,地址数据线AD0~AD7通过地址锁存器74LS373分离出地址线A0~A7。其中A0、A3、A4作为74LS138译码器的输入端,输出端Y2,Y4分别作为8255、8253的片选信号。8255为8086扩展出三组I/O口,其中PA口连接7个按键,代表音阶1(DO)~7(SI)。当8086检测到某一按键被按下,则8086送相应的初值给8253,由8253产生具有一定频率的信号送往扬声器,进而产生对应的音阶。
图5 硬件整体结构
3 系统软件设计
系统软件设计结构如图6所示。关键代码如下[7]:
(1)8253初始化
MOV AL,96H
MOV DX,TIM_CTL
OUT DX,AL
图6 系统程序流程图
(2)等待有键按下,散转进入各种循环
MOV AH,08H
INT 21H
BG0: MOV AH, AL
CMP AL, '1'
JZ DO
MOV AL,AH
CMP AL, '2'
JZ RE
……
(3)各音阶子程序
DOO: MOV DX,TIMER0
MOV AL,24H
OUT DX,AL
CALL DELAY
MOV DX,TIMER0
MOV AL,0
OUT DX,AL
CALL DELAY
CALL STOPV
JMP GOON
REE:……
(4)软件延时
DELAY PROC NEAR
PUSH AX
PUSH CX
MOV AX,800H
DELAY0: MOV CX,08FFFH
LOOP $
DEC AX
CMP AX,0
JNE DELAY0
POP CX
POP AX
RET
DELAY ENDP
4 结 语
基于8253的电子音阶设计,可以让学生从硬件和软件编程上快速掌握8253的基本原理和应用[8]。在实践教学中,学生对编程实现电子音阶兴趣浓厚,在学习理解DO子程序时,可以自行编写RE、……XI的子程序。该电子音阶设计实际上也是一种简易的电子琴设计。学生在自己设计的电子琴上弹奏简单的音乐,更能体会到学习《微机原理与接口技术》的实用性、乐趣性。该设计有助于学生探索该学科的有效学习方法,在培养学生动手能力的同时,也激发了学生的创新性。部分学生尝试将该设计拓展为含低音、中音、高音部分的电子音阶设计,也有同学编写简单歌曲对应的程序,并通过扬声器演奏出来。
参考文献:
[1]彭虎,周佩玲,傅忠谦.微机原理与接口技术[M].北京:电子工业出版社,2010:170-171
[2]成怡,宋丽梅,修春波.《微机原理及应用》的仿真教学模式研究[J].科技信息,2013(4):181
[3]周明德.微机原理与接口技术[M].北京:人民邮电出版社,2007:200-210
[4]刘迎澍,金文,陈曦,等.面向实践的“微机原理及应用”教学探索[J].实验室科学,2013,16(1):166-167
[5]卢清平,苏守宝.《微机原理与接口》课程的教学思考与实践[J].实验科学与技术,2012,10(2):94-96
[6]龙祖强,张登玉,许岳兵,等.微机原理与接口技术的实验教学现状与改革[J].软件导刊,2011,10(12):193-194
[7]贺杰,何高明,郭慧.微机原理与接口技术理论和实验教学改革的探索[J].梧州学院学报,2012,22(3):86-88
[8]郭福洲.《微机原理与接口技术》课程教学设计[J],电子世界,2012(2):74-75