亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

您現(xiàn)在的位置是:蟲蟲下載站 > 資源下載 > 單片機(jī)編程 > 微型計(jì)算機(jī)課程設(shè)計(jì)論文—通用微機(jī)發(fā)聲程序的匯編設(shè)計(jì)

微型計(jì)算機(jī)課程設(shè)計(jì)論文—通用微機(jī)發(fā)聲程序的匯編設(shè)計(jì)

資 源 簡 介

微型計(jì)算機(jī)課程設(shè)計(jì)論文—通用微機(jī)發(fā)聲程序的匯編設(shè)計(jì)

本文講述了在微型計(jì)算機(jī)中利用可編程時(shí)間間隔定時(shí)器的通用發(fā)聲程序設(shè)計(jì),重點(diǎn)講述了程序的發(fā)聲原理,節(jié)拍的產(chǎn)生,按節(jié)拍改變的動(dòng)畫程序原理,并以設(shè)計(jì)一個(gè)簡單的樂曲評分程序?yàn)橐樱治龀绦蛟O(shè)計(jì)的細(xì)節(jié)。
關(guān)鍵字:微機(jī) 8253 通用發(fā)聲程序 動(dòng)畫技術(shù) 直接寫屏

1. 可編程時(shí)間間隔定時(shí)器8253
在通用個(gè)人計(jì)算機(jī)中,有一個(gè)可編程時(shí)間間隔定時(shí)器8253,它能夠根據(jù)程序提供的計(jì)數(shù)值和工作方式,產(chǎn)生各種形狀和各種頻率的計(jì)數(shù)/定時(shí)脈沖,提供給系統(tǒng)各個(gè)部件使用。本設(shè)計(jì)是利用計(jì)算機(jī)控制發(fā)聲的原理,編寫演奏樂曲的程序。
    在8253/54定時(shí)器內(nèi)部有3個(gè)獨(dú)立工作的計(jì)數(shù)器:計(jì)數(shù)器0,計(jì)數(shù)器1和計(jì)數(shù)器2,每個(gè)計(jì)數(shù)器都分配有一個(gè)斷口地址,分別為40H,41H和42H.8253/54內(nèi)部還有一個(gè)公用的控制寄存器,端地址為43H.端口地址輸入到8253/54的CS,AL,A0端,分別對3個(gè)計(jì)數(shù)器和控制器尋址.
     對8353/54編程時(shí),先要設(shè)定控制字,以選擇計(jì)數(shù)器,確定工作方式和計(jì)數(shù)值的格式.每計(jì)數(shù)器由三個(gè)引腳與外部聯(lián)系,見教材第320頁圖9-1.CLK為時(shí)鐘輸入端,GATE為門控信號輸入端,OUT為計(jì)數(shù)/定時(shí)信號輸入端.每個(gè)計(jì)數(shù)器中包含一個(gè)16位計(jì)數(shù)寄存器,這個(gè)計(jì)數(shù)器時(shí)以倒計(jì)數(shù)的方式計(jì)數(shù)的,也就是說,從計(jì)數(shù)初值逐次減1,直到減為0為止.
     8253/54的三個(gè)計(jì)數(shù)器是分別編程的,在對任一個(gè)計(jì)數(shù)器編程時(shí),必須首先講控制字節(jié)寫入控制寄存器.控制字的作用是告訴8253/54選擇哪個(gè)計(jì)數(shù)器工作,要求輸出什么樣的脈沖波形.另外,對8253/54的初始化工作還包括,向選定的計(jì)數(shù)器輸入一個(gè)計(jì)數(shù)初值,因?yàn)檫@個(gè)計(jì)數(shù)值可以是8為的,也可以是16為的,而8253/5的數(shù)據(jù)總線是8位的,所以要用兩條輸出指令來寫入初值.下面給出8253/54初始化程序段的一個(gè)例子,將計(jì)數(shù)器2設(shè)定為方式3,(關(guān)于計(jì)數(shù)器的工作方式參閱教材第325—330頁)計(jì)數(shù)初值為65536.
    MOV   AL,10110110B ;選擇計(jì)數(shù)器2,按方式3工作,計(jì)數(shù)值是二進(jìn)制格式
    OUT   43H,AL      ; j將控制字送入控制寄存器
    MOV   AL,0        ;計(jì)數(shù)初值為0
    OUT   42H,AL      ;將計(jì)數(shù)初值的低字節(jié)送入計(jì)數(shù)器2
    OUT   42H,AL      ;將計(jì)數(shù)初值的高字節(jié)送入計(jì)數(shù)器2
    在IBM PC中8253/54的三個(gè)時(shí)鐘端CLK0,CLK1和CLK2的輸入頻率都是1.1931817MHZ. PC機(jī)上的大多數(shù)I/O都是由主板上的8255(或8255A)可編程序外圍接口芯片(PPI)管理的.關(guān)于8255A的結(jié)構(gòu)和工作原理及應(yīng)用舉例參閱教材第340—373頁.教材第364頁的”PC/XT機(jī)中的揚(yáng)聲器接口電路”一節(jié)介紹了揚(yáng)聲器的驅(qū)動(dòng)原理,并給出了通用發(fā)聲程序.本設(shè)計(jì)正是基于這個(gè)原理,通過編程,控制加到揚(yáng)聲器上的信號的頻率,奏出樂曲的.
2.發(fā)聲程序的設(shè)計(jì)
下面是能產(chǎn)生頻率為f的通用發(fā)聲程序:
MOV      AL, 10110110B   ;8253控制字:通道2,先寫低字節(jié),后寫高字節(jié)
        ;方式3,二進(jìn)制計(jì)數(shù)
OUT      43H, AL                  ;寫入控制字
MOV      DX, 0012H               ;被除數(shù)高位
MOV      AX, 35DEH              ;被除數(shù)低位
DIV      ID      ;求計(jì)數(shù)初值n,結(jié)果在AX中
OUT      42H, AL     ;送出低8位
MOV      AL, AH
OUT      42H,AL     ;送出高8位
IN      AL, 61H     ;讀入8255A端口B的內(nèi)容
MOV      AH, AL                  ;保護(hù)B口的原狀態(tài)
OR  AL, 03H     ;使B口后兩位置1,其余位保留
OUT 61H,AL     ;接通揚(yáng)聲器,使它發(fā)聲

相 關(guān) 資 源

主站蜘蛛池模板: 特克斯县| 宜章县| 铁力市| 溆浦县| 会同县| 武平县| 东光县| 三亚市| 饶阳县| 新建县| 郸城县| 瑞安市| 濮阳县| 安福县| 古丈县| 阿拉善右旗| 彭阳县| 兴山县| 进贤县| 黑山县| 凯里市| 长阳| 兴业县| 曲沃县| 蓝山县| 高要市| 阿鲁科尔沁旗| 沐川县| 应用必备| 长葛市| 营山县| 郸城县| 易门县| 鲁山县| 奎屯市| 枝江市| 北票市| 宜城市| 镇远县| 昭通市| 石狮市|