微型計(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è)簡(jiǎn)單的樂曲評(píng)分程序?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端,分別對(duì)3個(gè)計(jì)數(shù)器和控制器尋址. 對(duì)8353/54編程時(shí),先要設(shè)定控制字,以選擇計(jì)數(shù)器,確定工作方式和計(jì)數(shù)值的格式.每計(jì)數(shù)器由三個(gè)引腳與外部聯(lián)系,見教材第320頁圖9-1.CLK為時(shí)鐘輸入端,GATE為門控信號(hào)輸入端,OUT為計(jì)數(shù)/定時(shí)信號(hào)輸入端.每個(gè)計(jì)數(shù)器中包含一個(gè)16位計(jì)數(shù)寄存器,這個(gè)計(jì)數(shù)器時(shí)以倒計(jì)數(shù)的方式計(jì)數(shù)的,也就是說,從計(jì)數(shù)初值逐次減1,直到減為0為止. 8253/54的三個(gè)計(jì)數(shù)器是分別編程的,在對(duì)任一個(gè)計(jì)數(shù)器編程時(shí),必須首先講控制字節(jié)寫入控制寄存器.控制字的作用是告訴8253/54選擇哪個(gè)計(jì)數(shù)器工作,要求輸出什么樣的脈沖波形.另外,對(duì)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)聲器上的信號(hào)的頻率,奏出樂曲的.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, AHOUT 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ā)聲
標(biāo)簽: 微型計(jì)算機(jī) 發(fā)聲程序 論文 微機(jī)
上傳時(shí)間: 2013-10-17
上傳用戶:sunjet
本文探討使用 Linux作為嵌入式作業(yè)系統(tǒng)的方法,透過如何對(duì)內(nèi)核、守護(hù)程序、庫和應(yīng)用程序等四個(gè)主要部份,進(jìn)行縮減其大小后,以便配置在以閃存為存儲(chǔ)設(shè)備的嵌入式系統(tǒng)中。
上傳時(shí)間: 2014-10-11
上傳用戶:CHENKAI
C++Builder 6 是一款快速開發(fā)Win32 應(yīng)用程序的可視化開發(fā)工具,利用它可以實(shí)現(xiàn)高性 能的執(zhí)行效率和出色的底層控制。C++Builder 6 相比于5 以前的版本,提供了更多的網(wǎng)絡(luò)開 發(fā)組件,更快速方便的可視化環(huán)境。 本書共有14 章,前三章分別介紹C++Builder 的開發(fā)環(huán)境、比較特殊的語法,并在第三 章用實(shí)例講述使用C++Builder 開發(fā)應(yīng)用程序的過程,以后的章節(jié)均通過實(shí)例講述C++Builder 某個(gè)方面的編程技術(shù)與技巧。這些實(shí)例包括文本、繪圖與圖象處理、文件、多媒體、系統(tǒng), 以及FTP 和WinSock 網(wǎng)絡(luò)通信。在第12 章通過俄羅斯方塊游戲介紹VCL 游戲的制作,并 在第13 章介紹游戲開發(fā)中常用的DirectX 技術(shù)。在第14 章講述數(shù)據(jù)庫程序的設(shè)計(jì),并詳細(xì) 講解餐廳結(jié)賬管理程序的制作過程。 本書是為對(duì)C++Builder 有基本了解的程序員或程序愛好者而做,讀者需要熟悉C/C++ 編程。本書也可以作為軟件開發(fā)人員的參考書。
標(biāo)簽: Builder Win 32 快速開發(fā)
上傳時(shí)間: 2014-06-13
上傳用戶:lijinchuan
一臺(tái)精密儀器的工作時(shí)間為 n 個(gè)時(shí)間單位。與儀器工作時(shí)間同步進(jìn)行若干儀器維修程序。一旦啟動(dòng)維修程序,儀器必須進(jìn)入維修程序。如果只有一個(gè)維修程序啟動(dòng),則必須進(jìn)入該維修程序。如果在同一時(shí)刻有多個(gè)維修程序,可任選進(jìn)入其中的一個(gè)維修程序。維修程序必須從頭開始,不能從中間插入。一個(gè)維修程序從第s個(gè)時(shí)間單位開始,持續(xù) t個(gè)時(shí)間單位,則該維修程序在第s+t-1個(gè)時(shí)間單位結(jié)束。為了提高儀器使用率,希望安排盡可能少的維修時(shí)間。
上傳時(shí)間: 2013-12-20
上傳用戶:pkkkkp
Yacc說明及使用文檔 yacc(Yet Another Compiler Compiler),是Unix/Linux上一個(gè)用來生成編譯器的編譯器(編譯器代碼生成器)。yacc生成的編譯器主要是用C語言寫成的語法解析器(Parser),需要與詞法解析器Lex一起使用,再把兩部份產(chǎn)生出來的C程序一併編譯。yacc本來只在Unix系統(tǒng)上才有,但現(xiàn)時(shí)已普遍移植往Windows及其他平臺(tái)。
標(biāo)簽: Compiler Another Yacc yacc
上傳時(shí)間: 2016-01-26
上傳用戶:希醬大魔王
Windows mobile程序開發(fā)的GAPI示例程序,可用于游戲編程的參考,Microsoft Embedded virual c++工程。
標(biāo)簽: Windows mobile GAPI 程序開發(fā)
上傳時(shí)間: 2016-04-24
上傳用戶:weixiao99
單片機(jī)C語言編程與實(shí)例,比assembly language容易掌握,幫助建立較複雜的自動(dòng)化系統(tǒng)
標(biāo)簽:
上傳時(shí)間: 2016-07-26
上傳用戶:wangchong
C++Builder 6是一款快速開發(fā)Win32應(yīng)用程序的可視化開發(fā)工具,利用它可以實(shí)現(xiàn)高性能的執(zhí)行效率和出色的底層控制。C++Builder 6相比于5以前的版本,提供了更多的網(wǎng)絡(luò)開發(fā)組件,更快速方便的可視化環(huán)境。 本書共有14章,前三章分別介紹C++Builder的開發(fā)環(huán)境、比較特殊的語法,并在第三章用實(shí)例講述使用C++Builder開發(fā)應(yīng)用程序的過程,以后的章節(jié)均通過實(shí)例講述C++Builder某個(gè)方面的編程技術(shù)與技巧。這些實(shí)例包括文本、繪圖與圖象處理、文件、多媒體、系統(tǒng),以及FTP和WinSock網(wǎng)絡(luò)通信。在第12章通過俄羅斯方塊游戲介紹VCL游戲的制作,并在第13章介紹游戲開發(fā)中常用的DirectX技術(shù)。在第14章講述數(shù)據(jù)庫程序的設(shè)計(jì),并詳細(xì)講解餐廳結(jié)賬管理程序的制作過程。 本書是為對(duì)C++Builder有基本了解的程序員或程序愛好者而做,讀者需要熟悉C/C++編程。本書也可以作為軟件開發(fā)人員的參考書。
標(biāo)簽: Builder Win 32 快速開發(fā)
上傳時(shí)間: 2017-02-08
上傳用戶:dragonhaixm
一臺(tái)精密儀器的工作時(shí)間為n 個(gè)時(shí)間單位。與儀器工作時(shí)間同步進(jìn)行若干儀器維修程序。一旦啟動(dòng)維修程序,儀器必須進(jìn)入維修程序。如果只有一個(gè)維修程序啟動(dòng),則必須進(jìn)入該維修程序。如果在同一時(shí)刻有多個(gè)維修程序,可任選進(jìn)入其中的一個(gè)維修程序。維修程序必須從頭開始,不能從中間插入。一個(gè)維修程序從第s個(gè)時(shí)間單位開始,持續(xù)t個(gè)時(shí)間單位,則該維修程序在第s+t-1 個(gè)時(shí)間單位結(jié)束。為了提高儀器使用率,希望安排盡可能少的維修時(shí)間。對(duì)于給定的維修程序時(shí)間表,該算法計(jì)算最優(yōu)時(shí)間表。
上傳時(shí)間: 2017-03-13
上傳用戶:chongcongying
C語言的開發(fā)模式, 是編寫.c的Source Code, 再經(jīng)由Compiler編譯成Object Code。所謂Object Code指的是和硬體相關(guān)的機(jī)器指令, 也就是說當(dāng)我們想要把C程式移植到不同的硬體時(shí), 必須要重新Compile,以產(chǎn)生新的執(zhí)行檔。除了需要重新編譯外,新系統(tǒng)是否具備應(yīng)用程式所需的程式庫,include的檔案是否相容, 也是程式能否在新機(jī)器上順利編譯和執(zhí)行的條件之一。
標(biāo)簽: Code Object Compiler Source
上傳時(shí)間: 2017-04-02
上傳用戶:yph853211
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1