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