李 娜
宿州學(xué)院機(jī)械與電子工程學(xué)院,安徽宿州,234000
定時(shí)/計(jì)數(shù)器8253可對脈沖信號進(jìn)行處理,是《微機(jī)原理與接口技術(shù)》課程中需要學(xué)生學(xué)以致用的芯片之一。教師一味地按照課本講解芯片的內(nèi)部結(jié)構(gòu)、工作原理以及程序設(shè)計(jì),學(xué)生不免感覺到枯燥乏味。若能將知識結(jié)合生產(chǎn)生活中的實(shí)際應(yīng)用,則能激發(fā)學(xué)生學(xué)習(xí)的興趣,更好地實(shí)現(xiàn)教學(xué)目標(biāo)。8253應(yīng)用廣泛,可作為實(shí)時(shí)時(shí)鐘、方波信號發(fā)生器、計(jì)數(shù)器、分頻器等使用[1]。此外,8253輸出的信號還可以驅(qū)動揚(yáng)聲器發(fā)聲,在視覺和聽覺的雙重感受下,學(xué)生興致濃厚,實(shí)踐教學(xué)效果更好。本文采用8086CPU作為核心控制元件,利用8253生成不同頻率的信號驅(qū)動揚(yáng)聲器發(fā)出不同音階的聲音,通過編程和按鍵演奏音樂,學(xué)生可以快速掌握8253的原理和應(yīng)用。
要使揚(yáng)聲器發(fā)出不同的音階,就得輸入不同頻率的信號。通過給定時(shí)/計(jì)數(shù)器8253送入不同的初值,可以從輸出端得到不同頻率的波形,經(jīng)過放大器LM386的放大作用,便可驅(qū)動揚(yáng)聲器發(fā)出不同的音階。音階聲音的持續(xù)時(shí)間可以通過軟件延時(shí)程序?qū)崿F(xiàn)。PC機(jī)的1~7某一按鍵被系統(tǒng)檢測到,系統(tǒng)驅(qū)動對應(yīng)子程序使揚(yáng)聲器輸出對應(yīng)的音階。該設(shè)計(jì)的原理框圖如圖1所示。
Intel 8253是采用NMOS工藝制成的可編程定時(shí)/計(jì)數(shù)器,管腳圖如圖2所示[2]。8253的24個(gè)管腳分為三類,其中與外設(shè)相連的通道管腳是該芯片區(qū)別8255、8251芯片的重要特征。這一類管腳又分為三組,分別為通道0、通道1、通道2。每組通道有三條信號線:CLK、OUT、GATE。其中外部事件或定時(shí)脈沖由CLK輸入,計(jì)數(shù)值減為0時(shí)從OUT輸出,控制計(jì)數(shù)器工作的外部信號從GATE輸入。
圖1 原理框圖
圖2 8253管腳圖
8253可以工作在三組通道中的任一個(gè),且有6種工作方式、4種通道讀寫操作可供選擇[3]。根據(jù)具體需要可對8253設(shè)置控制字,以確定其選擇通道、工作方式、讀寫操作方式等。8253的控制字格式如圖3所示[4]。
D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCD
圖3 8253控制字格式
本設(shè)計(jì)選擇通道1、工作方式3、只讀寫低8位字節(jié)、采用二進(jìn)制計(jì)數(shù)制,所以8253的方式控制字為:10010110B(96H)。8253初始化時(shí),將56H送至8253的控制口地址。
表1 各音階的頻率及計(jì)數(shù)初值
計(jì)數(shù)初值的計(jì)算也是考察學(xué)生掌握8253編程的重要知識點(diǎn)。將計(jì)數(shù)初值送至通道2的CLK端,計(jì)數(shù)器則對其進(jìn)行遞減計(jì)數(shù),進(jìn)而生成一定頻率的方波。該設(shè)計(jì)的電子音階DO、RE、MI、FA、SOL、LA、SI對應(yīng)的頻率和計(jì)數(shù)初值見表1。
定時(shí)計(jì)數(shù)器生成的方波從OUT端輸出,驅(qū)動揚(yáng)聲器發(fā)出該頻率對應(yīng)的音調(diào)[5]。音頻模塊結(jié)構(gòu)圖如圖4所示[6]。
圖4 音頻模塊
硬件整體結(jié)構(gòu)圖如圖5所示。8086作為核心控制器件,地址數(shù)據(jù)線AD0~AD7通過地址鎖存器74LS373分離出地址線A0~A7。其中A0、A3、A4作為74LS138譯碼器的輸入端,輸出端Y2,Y4分別作為8255、8253的片選信號。8255為8086擴(kuò)展出三組I/O口,其中PA口連接7個(gè)按鍵,代表音階1(DO)~7(SI)。當(dāng)8086檢測到某一按鍵被按下,則8086送相應(yīng)的初值給8253,由8253產(chǎn)生具有一定頻率的信號送往揚(yáng)聲器,進(jìn)而產(chǎn)生對應(yīng)的音階。
圖5 硬件整體結(jié)構(gòu)
系統(tǒng)軟件設(shè)計(jì)結(jié)構(gòu)如圖6所示。關(guān)鍵代碼如下[7]:
(1)8253初始化
MOV AL,96H
MOV DX,TIM_CTL
OUT DX,AL
圖6 系統(tǒng)程序流程圖
(2)等待有鍵按下,散轉(zhuǎn)進(jìn)入各種循環(huán)
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)軟件延時(shí)
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
基于8253的電子音階設(shè)計(jì),可以讓學(xué)生從硬件和軟件編程上快速掌握8253的基本原理和應(yīng)用[8]。在實(shí)踐教學(xué)中,學(xué)生對編程實(shí)現(xiàn)電子音階興趣濃厚,在學(xué)習(xí)理解DO子程序時(shí),可以自行編寫RE、……XI的子程序。該電子音階設(shè)計(jì)實(shí)際上也是一種簡易的電子琴設(shè)計(jì)。學(xué)生在自己設(shè)計(jì)的電子琴上彈奏簡單的音樂,更能體會到學(xué)習(xí)《微機(jī)原理與接口技術(shù)》的實(shí)用性、樂趣性。該設(shè)計(jì)有助于學(xué)生探索該學(xué)科的有效學(xué)習(xí)方法,在培養(yǎng)學(xué)生動手能力的同時(shí),也激發(fā)了學(xué)生的創(chuàng)新性。部分學(xué)生嘗試將該設(shè)計(jì)拓展為含低音、中音、高音部分的電子音階設(shè)計(jì),也有同學(xué)編寫簡單歌曲對應(yīng)的程序,并通過揚(yáng)聲器演奏出來。
參考文獻(xiàn):
[1]彭虎,周佩玲,傅忠謙.微機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,2010:170-171
[2]成怡,宋麗梅,修春波.《微機(jī)原理及應(yīng)用》的仿真教學(xué)模式研究[J].科技信息,2013(4):181
[3]周明德.微機(jī)原理與接口技術(shù)[M].北京:人民郵電出版社,2007:200-210
[4]劉迎澍,金文,陳曦,等.面向?qū)嵺`的“微機(jī)原理及應(yīng)用”教學(xué)探索[J].實(shí)驗(yàn)室科學(xué),2013,16(1):166-167
[5]盧清平,蘇守寶.《微機(jī)原理與接口》課程的教學(xué)思考與實(shí)踐[J].實(shí)驗(yàn)科學(xué)與技術(shù),2012,10(2):94-96
[6]龍祖強(qiáng),張登玉,許岳兵,等.微機(jī)原理與接口技術(shù)的實(shí)驗(yàn)教學(xué)現(xiàn)狀與改革[J].軟件導(dǎo)刊,2011,10(12):193-194
[7]賀杰,何高明,郭慧.微機(jī)原理與接口技術(shù)理論和實(shí)驗(yàn)教學(xué)改革的探索[J].梧州學(xué)院學(xué)報(bào),2012,22(3):86-88
[8]郭福洲.《微機(jī)原理與接口技術(shù)》課程教學(xué)設(shè)計(jì)[J],電子世界,2012(2):74-75