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

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

數(shù)字信號(hào)發(fā)(fā)生器

  • 基于OMAP1510的mp3播放器設(shè)計(jì)

      第一章 序論……………………………………………………………6   1- 1 研究動(dòng)機(jī)…………………………………………………………..7   1- 2 專題目標(biāo)…………………………………………………………..8   1- 3 工作流程…………………………………………………………..9   1- 4 開發(fā)環(huán)境與設(shè)備…………………………………………………10   第二章 德州儀器OMAP 開發(fā)套件…………………………………10   2- 1 OMAP介紹………………………………………………………10   2-1.1 OMAP是什麼?…….………………………………….…10   2-1.2 DSP的優(yōu)點(diǎn)……………………………………………....11   2- 2 OMAP Architecture介紹………………………………………...12   2-2-1 OMAP1510 硬體架構(gòu)………………………………….…12   2-2.2 OMAP1510軟體架構(gòu)……………………………………...12   2-2.3 DSP / BIOS Bridge簡(jiǎn)述…………………………………...13   2- 3 TI Innovator套件 -- OMAP1510 ……………………………..14   2-2.1 General Purpose processor -- ARM925T………………...14   2-2.2 DSP processor -- TMS320C55x …………………………15   2-2.3 IDE Tool – CCS …………………………………………15   2-2.4 Peripheral ………………………………………………..16   第三章 在OMAP1510上建構(gòu)Embedded Linux System…………….17   3- 1 嵌入式工具………………………………………………………17   3-1.1 嵌入式程式開發(fā)與一般程式開發(fā)之不同………….….17   3-1.2 Cross Compiling的GNU工具程式……………………18   3-1.3 建立ARM-Linux Cross-Compiling 工具程式………...19   3-1.4 Serial Communication Program………………………...20   3- 2 Porting kernel………………………………………………….…21   3-2.1 Setup CCS ………………………………………….…..21   3-2.2 編譯及上傳Loader…………………………………..…23   3-2.3 編譯及上傳Kernel…………………………………..…24   3- 3 建構(gòu)Root File System………………………………………..…..26   3-3.1 Flash ROM……………………………………………...26   3-3.2 NFS mounting…………………………………………..27   3-3.3 支援NFS Mounting 的kernel…………………………..27   3-3.4 提供NFS Mounting Service……………………………29   3-3.5 DHCP Server……………………………………………31   3-3.6 Linux root 檔案系統(tǒng)……………………………….…..32   3- 4 啟動(dòng)及測(cè)試Innovator音效裝置…………………………..…….33   3- 5 建構(gòu)支援DSP processor的環(huán)境…………………………...……34   3-5.1 Solution -- DSP Gateway簡(jiǎn)介……………………..…34   3-5.2 DSP Gateway運(yùn)作架構(gòu)…………………………..…..35   3- 6 架設(shè)DSP Gateway………………………………………….…36   3-6.1 重編kernel……………………………………………...36   3-6.2 DEVFS driver…………………………………….……..36   3-6.3 編譯DSP tool和API……………………………..…….37   3-6.4 測(cè)試……………………………………………….…….37   第四章 MP3 Player……………………………………………….…..38   4- 1 MP3 介紹………………………………………………….…….38   4- 2 MP3 壓縮原理……………………………………………….….39   4- 3 Linux MP3 player – splay………………………………….…….41   4.3-1 splay介紹…………………………………………….…..41   4.3-2 splay 編譯………………………………………….…….41   4.3-3 splay 的使用說明………………………………….……41   第五章 程式改寫………………………………………………...…...42   5-1 程式評(píng)估與改寫………………………………………………...…42   5-1.1 Inter-Processor Communication Scheme…………….....42   5-1.2 ARM part programming……………………………..…42   5-1.3 DSP part programming………………………………....42   5-2 程式碼………………………………………………………..……43   5-3 雙處理器程式開發(fā)注意事項(xiàng)…………………………………...…47   第六章 效能評(píng)估與討論……………………………………………48   6-1 速度……………………………………………………………...48   6-2 CPU負(fù)載………………………………………………………..49   6-3 討論……………………………………………………………...49   6-3.1分工處理的經(jīng)濟(jì)效益………………………………...49   6-3.2音質(zhì)v.s 浮點(diǎn)與定點(diǎn)運(yùn)算………………………..…..49   6-3.3 DSP Gateway架構(gòu)的限制………………………….…50   6-3.4減少IO溝通……………….………………………….50   6-3.5網(wǎng)路掛載File System的Delay…………………..……51   第七章 結(jié)論心得…

    標(biāo)簽: OMAP 1510 mp3 播放器

    上傳時(shí)間: 2013-10-14

    上傳用戶:a471778

  • 基于HT45R37V的低功耗C/R-F型八位OTP單片機(jī)

    基于HT45R37V的低功耗C/R-F型八位OTP單片機(jī) HT45R37V 是一款低功耗C/R-F 型具有8 位高性能精簡(jiǎn)指令集的單片機(jī),專門為需要VFD 功能的產(chǎn)品而設(shè)計(jì)。作為一款C/R-F 型的單片機(jī),它可以連接9 個(gè)外部電容型或電阻型傳感器,并把它們的電容值或電阻值轉(zhuǎn)換成相應(yīng)的頻率進(jìn)行處理。此外,單片機(jī)帶有內(nèi)部A/D 轉(zhuǎn)換器,能夠直接與模擬信號(hào)相連接,且它還集成了一個(gè)雙通道的脈沖寬度調(diào)節(jié)器,用于控制外部的馬達(dá)和LED 燈等。這款單片機(jī)是專門為VFD 產(chǎn)品應(yīng)用而設(shè)計(jì)的,它能直接驅(qū)動(dòng)VFD 面板。

    標(biāo)簽: 37V 45R R37 R-F

    上傳時(shí)間: 2013-10-16

    上傳用戶:packlj

  • 基于HT45R37的低功耗C/R-F型八位OTP單片機(jī)

    基于HT45R37的低功耗C/R-F型八位OTP單片機(jī) HT45R37 是一款低功耗C/R-F 型具有8 位高性能精簡(jiǎn)指令集的單片機(jī)。作為一款C/R-F 型的單片機(jī),它可以連接16 個(gè)外部電容/電阻式傳感器,并把它們的電容值或電阻值轉(zhuǎn)換成相應(yīng)的頻率進(jìn)行處理。此外,單片機(jī)帶有內(nèi)部A/D 轉(zhuǎn)換器,能夠直接與模擬信號(hào)相連接,且它還集成了雙通道的脈沖寬度調(diào)節(jié)器,用于控制外部的馬達(dá)和LED 燈等。

    標(biāo)簽: 45R R37 R-F OTP

    上傳時(shí)間: 2013-11-23

    上傳用戶:chenlong

  • PCA82C250 CAN收發(fā)器應(yīng)用指南

    本文檔著重介紹如何使用Philips 半導(dǎo)體的收發(fā)器PCA82C250[1]和PCA82C251[2]實(shí)現(xiàn)物理媒體連接子層物理信令子層和數(shù)據(jù)鏈路層之間的連接是通過集成的協(xié)議控制器實(shí)現(xiàn)的這些產(chǎn)品有像Philips 的PCx82C200 SJA1000 等而媒體相關(guān)接口負(fù)責(zé)連接傳輸媒體譬如將總線節(jié)點(diǎn)連接到總線的連接器像Philips 的TJA1050[3]或PCA82C250[4]等收發(fā)器

    標(biāo)簽: C250 PCA 250 82C

    上傳時(shí)間: 2013-10-19

    上傳用戶:31633073

  • 看門狗定時(shí)器的工作原理

    看門狗定時(shí)器的工作原理:WDT 工作原理使能時(shí),WDT 將遞增,直到溢出,或稱“超時(shí)”。除非處于休眠或空閑模式,WDT 超時(shí)會(huì)強(qiáng)制器件復(fù)位。為避免WDT 超時(shí)復(fù)位,用戶必須定期用PWRSAV 或CLRWDT 指令將看門狗定時(shí)器清零。如果WDT 在休眠或空閑模式下超時(shí),器件將喚醒并從PWRSAV 指令執(zhí)行處繼續(xù)執(zhí)行代碼。在上述兩種情況下,WDTO 位(RCON<4>)都會(huì)置1,表示該器件復(fù)位或喚醒事件是由于WDT超時(shí)引起的。如果WDT 將CPU 從休眠或空閑模式喚醒,“休眠”狀態(tài)位(RCON<3>)或“空閑”狀態(tài)位(RCON<2>)也會(huì)置1,表示器件之前處于省電模式。9.2.1 使能和禁止WDT通過FWDTEN(CW1<7>)配置位可將WDT 使能或禁止。FWDTEN 配置位置1 時(shí),使能WDT。這是已擦除器件的默認(rèn)值。關(guān)于閃存配置字寄存器的更多詳細(xì)信息,請(qǐng)參見器件數(shù)據(jù)手冊(cè)。

    標(biāo)簽: 看門狗定時(shí)器 工作原理

    上傳時(shí)間: 2014-01-20

    上傳用戶:mikesering

  • 波形發(fā)生器,含原理圖+電路圖+源程序

    含原理圖+電路圖+程序的波形發(fā)生器:在工作中,我們常常會(huì)用到波形發(fā)生器,它是使用頻度很高的電子儀器。現(xiàn)在的波形發(fā)生器都采用單片機(jī)來構(gòu)成。單片機(jī)波形發(fā)生器是以單片機(jī)核心,配相應(yīng)的外圍電路和功能軟件,能實(shí)現(xiàn)各種波形發(fā)生的應(yīng)用系統(tǒng),它由硬件部分和軟件部分組成,硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上,對(duì)其合理的調(diào)配和使用,從而完成波形發(fā)生的任務(wù)。 波形發(fā)生器的技術(shù)指標(biāo):(1) 波形類型:方型、正弦波、三角波、鋸齒波;(2) 幅值電壓:1V、2V、3V、4V、5V;(3) 頻率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 輸出極性:雙極性操作設(shè)計(jì)1、 機(jī)器通電后,系統(tǒng)進(jìn)行初始化,LED在面板上顯示6個(gè)0,表示系統(tǒng)處于初始狀態(tài),等待用戶輸入設(shè)置命令,此時(shí),無任何波形信號(hào)輸出。2、 用戶按下“F”、“V”、“W”,可以分別進(jìn)入頻率,幅值波形設(shè)置,使系統(tǒng)進(jìn)入設(shè)置狀態(tài),相應(yīng)的數(shù)碼管顯示“一”,此時(shí),按其它鍵,無效;3、 在進(jìn)入某一設(shè)置狀態(tài)后,輸入0~9等數(shù)字鍵,(數(shù)字鍵僅在設(shè)置狀態(tài)時(shí),有效)為欲輸出的波形設(shè)置相應(yīng)參數(shù),LED將參數(shù)顯示在面板上;4、 如果在設(shè)置中,要改變已設(shè)定的參數(shù),可按下“CL”鍵,清除所有已設(shè)定參數(shù),系統(tǒng)恢復(fù)初始狀態(tài),LED顯示6個(gè)0,等待重新輸入命令;5、 當(dāng)必要的參數(shù)設(shè)定完畢后,所有參數(shù)顯示于LED上,用戶按下“EN”鍵,系統(tǒng)會(huì)將各波形參數(shù)傳遞到波形產(chǎn)生模塊中,以便控制波形發(fā)生,實(shí)現(xiàn)不同頻率,不同電壓幅值,不同類型波形的輸出;6、 用戶按下“EN”鍵后,波形發(fā)生器開始輸出滿足參數(shù)的波形信號(hào),面板上相應(yīng)類型的運(yùn)行指示燈閃爍,表示波形正在輸出,LED顯示波形類型編號(hào),頻率值、電壓幅值等波形參數(shù);7、 波形發(fā)生器在輸出信號(hào)時(shí),按下任意一個(gè)鍵,就停止波形信號(hào)輸出,等待重新設(shè)置參數(shù),設(shè)置過程如上所述,如果不改變參數(shù),可按下“EN”鍵,繼續(xù)輸出原波形信號(hào);8、 要停止波形發(fā)生器的使用,可按下復(fù)位按鈕,將系統(tǒng)復(fù)位,然后關(guān)閉電源。硬件組成部分通過綜合比較,決定選用獲得廣泛應(yīng)用,性能價(jià)格高的常用芯片來構(gòu)成硬件電路。單片機(jī)采用MCS-51系列的89C51(一塊),74LS244和74LS373(各一塊),反相驅(qū)動(dòng)器 ULN2803A(一塊),運(yùn)算放大器 LM324(一塊)  波形發(fā)生器的硬件電路由單片機(jī)、鍵盤顯示器接口電路、波形轉(zhuǎn)換(D/ A)電路和電源線路等四部分構(gòu)成。1.單片機(jī)電路功能:形成掃描碼,鍵值識(shí)別,鍵功能處理,完成參數(shù)設(shè)置;形成顯示段碼,向LED顯示接口電路輸出;產(chǎn)生定時(shí)中斷;形成波形的數(shù)字編碼,并輸出到D/A接口電路;如電路原理圖所示: 89C51的P0口和P2口作為擴(kuò)展I/O口,與8255、0832、74LS373相連接,可尋址片外的寄存器。單片機(jī)尋址外設(shè),采用存儲(chǔ)器映像方式,外部接口芯片與內(nèi)部存儲(chǔ)器統(tǒng)一編址,89C51提供16根地址線P0(分時(shí)復(fù)用)和P2,P2口提供高8位地址線,P0口提供低8位地址線。P0口同時(shí)還要負(fù)責(zé)與8255,0832的數(shù)據(jù)傳遞。P2.7是8255的片選信號(hào),P2.6是0832(1)的片選,P2.5是0832(2)的片選,低電平有效,P0.0、P0.1經(jīng)過74LS373鎖存后,送到8255的A1、A2作,片內(nèi)A口,B口,C口,控制口等寄存器的字選。89C51的P1口的低4位連接4只發(fā)光三極管,作為波形類型指示燈,表示正在輸出的波形是什么類型。單片機(jī)89C51內(nèi)部有兩個(gè)定時(shí)器/計(jì)數(shù)器,在波形發(fā)生器中使用T0作為中斷源。不同的頻率值對(duì)應(yīng)不同的定時(shí)初值,定時(shí)器的溢出信號(hào)作為中斷請(qǐng)求。控制定時(shí)器中斷的特殊功能寄存器設(shè)置如下:定時(shí)控制寄存器TCON=(00010000)工作方式選擇寄存器(TMOD)=(00000000)中斷允許控制寄存器(IE)=(10000010)2、鍵盤顯示器接口電路功能:驅(qū)動(dòng)6位數(shù)碼管動(dòng)態(tài)顯示;           提供響應(yīng)界面;           掃面鍵盤;           提供輸入按鍵。由并口芯片8255,鎖存器74LS273,74LS244,反向驅(qū)動(dòng)器ULN2803A,6位共陰極數(shù)碼管(LED)和4×4行列式鍵盤組成。8255的C口作為鍵盤的I/O接口,C口的低4位輸出到掃描碼,高4位作為輸入行狀態(tài),按鍵的分布如圖所示。8255的A口作為L(zhǎng)ED段碼輸出口,與74LS244相連接,B口作為L(zhǎng)ED的位選信號(hào)輸出口,與ULN2803A相連接。8255內(nèi)部的4個(gè)寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH ,  C口:7FFEH    3、D/A電路功能:將波形樣值的數(shù)字編碼轉(zhuǎn)換成模擬值;完成單極性向雙極性的波形輸出;構(gòu)成由兩片0832和一塊LM324運(yùn)放組成。0832(1)是參考電壓提供者,單片機(jī)向0832(1)內(nèi)的鎖存器送數(shù)字編碼,不同的編碼會(huì)產(chǎn)生不同的輸出值,在本發(fā)生器中,可輸出1V、2V、3V、4V、5V等五個(gè)模擬值,這些值作為0832(2)的參考電壓,使0832(2)輸出波形信號(hào)時(shí),其幅度是可調(diào)的。0832(2)用于產(chǎn)生各種波形信號(hào),單片機(jī)在波形產(chǎn)生程序的控制下,生成波形樣值編碼,并送到0832(2)中的鎖存器,經(jīng)過D/A轉(zhuǎn)換,得到波形的模擬樣值點(diǎn),假如N個(gè)點(diǎn)就構(gòu)成波形的一個(gè)周期,那么0832(2)輸出N個(gè)樣值點(diǎn)后,樣值點(diǎn)形成運(yùn)動(dòng)軌跡,就是波形信號(hào)的一個(gè)周期。重復(fù)輸出N個(gè)點(diǎn)后,由此成第二個(gè)周期,第三個(gè)周期……。這樣0832(2)就能連續(xù)的輸出周期變化的波形信號(hào)。運(yùn)放A1是直流放大器,運(yùn)放A2是單極性電壓放大器,運(yùn)放A3是雙極性驅(qū)動(dòng)放大器,使波形信號(hào)能帶得起負(fù)載。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、電源電路:功能:為波形發(fā)生器提供直流能量;構(gòu)成由變壓器、整流硅堆,穩(wěn)壓塊7805組成。220V的交流電,經(jīng)過開關(guān),保險(xiǎn)管(1.5A/250V),到變壓器降壓,由220V降為10V,通過硅堆將交流電變成直流電,對(duì)于諧波,用4700μF的電解電容給予濾除。為保證直流電壓穩(wěn)定,使用7805進(jìn)行穩(wěn)壓。最后,+5V電源配送到各用電負(fù)載。

    標(biāo)簽: 波形發(fā)生器 原理圖 電路圖 源程序

    上傳時(shí)間: 2013-11-08

    上傳用戶:685

  • 實(shí)驗(yàn)指導(dǎo)書 (TPC-H實(shí)驗(yàn)臺(tái)C語言版)

    《現(xiàn)代微機(jī)原理與接口技術(shù)》實(shí)驗(yàn)指導(dǎo)書 TPC-H實(shí)驗(yàn)臺(tái)C語言版 1.實(shí)驗(yàn)臺(tái)結(jié)構(gòu)1)I / O 地址譯碼電路如上圖1所示地址空間280H~2BFH共分8條譯碼輸出線:Y0~Y7 其地址分別是280H~287H、288H~28FH、290H~297H、298H~29FH、2A0H~2A7H、2A8H~2AFH、2B0H~2B7H、2B8H~2BFH,8根譯碼輸出線在實(shí)驗(yàn)臺(tái)I/O地址處分別由自鎖緊插孔引出供實(shí)驗(yàn)選用(見圖2)。 2) 總線插孔采用“自鎖緊”插座在標(biāo)有“總線”區(qū)引出數(shù)據(jù)總線D7~D0;地址總線A9~A0,讀、寫信號(hào)IOR、IOW;中斷請(qǐng)求信號(hào)IRQ ;DMA請(qǐng)求信號(hào)DRQ1;DMA響應(yīng)信號(hào)DACK1 及AEN信號(hào),供學(xué)生搭試各種接口實(shí)驗(yàn)電路使用。3) 時(shí)鐘電路如圖-3所示可以輸出1MHZ 2MHZ兩種信號(hào)供A/D轉(zhuǎn)換器定時(shí)器/計(jì)數(shù)器串行接口實(shí)驗(yàn)使用。圖34) 邏輯電平開關(guān)電路如圖-4所示實(shí)驗(yàn)臺(tái)右下方設(shè)有8個(gè)開關(guān)K7~K0,開關(guān)撥到“1”位置時(shí)開關(guān)斷開,輸出高電平。向下打到“0”位置時(shí)開關(guān)接通,輸出低電平。電路中串接了保護(hù)電阻使接口電路不直接同+5V 、GND相連,可有效地防止因誤操作誤編程損壞集成電路現(xiàn)象。圖 4 圖 55) L E D 顯示電路如圖-5所示實(shí)驗(yàn)臺(tái)上設(shè)有8個(gè)發(fā)光二極管及相關(guān)驅(qū)動(dòng)電路(輸入端L7~L0),當(dāng)輸入信號(hào)為“1” 時(shí)發(fā)光,為“0”時(shí)滅6) 七段數(shù)碼管顯示電路如圖-6所示實(shí)驗(yàn)臺(tái)上設(shè)有兩個(gè)共陰極七段數(shù)碼管及驅(qū)動(dòng)電路,段碼為同相驅(qū)動(dòng)器,位碼為反相驅(qū)動(dòng)器。從段碼與位碼的驅(qū)動(dòng)器輸入端(段碼輸入端a、b、c、d、e、f、g、dp,位碼輸入端s1、 s2)輸入不同的代碼即可顯示不同數(shù)字或符號(hào)。

    標(biāo)簽: TPC-H 實(shí)驗(yàn)指導(dǎo)書 C語言 實(shí)驗(yàn)臺(tái)

    上傳時(shí)間: 2013-11-22

    上傳用戶:sssnaxie

  • 自制微型51/AVR通用編程器

    微型51/AVR 編程器套件裝配說明書 請(qǐng)您在動(dòng)手裝配這個(gè)編程器之前,務(wù)必先看完本說明書,避免走彎路。 1.收到套件后請(qǐng)對(duì)照元器件列表檢查一下,元件、配件是否齊全? Used  Part Type        Designator ==== ================ ========== 1    1k               R6         1    1uf 50V          C11        5    2k2              R2 R3 R4 R5 R11     1    10K*8            RN1        2    11.0592MHZ       Q1 Q2      1    12V,0.5W         D2         2    15k              R7 R8      2    21k              R9 R10     4    33p              C6 C7 C8 C9         1    47uf 25V         C10        1    74HC164          IC6        2    78L05            IC4 IC5    1    100uf 25V        C12        1    220R             R1         1    AT89C51          IC2        1    B40C800(W02)     D1         2    BS170            T1 T2      1    BS250            T3         1    DB9/F            J2         1    J1X2             J1         1    LED GN5          D3         1    LM317L           IC1        1    TLC2272          IC7        1    ZIF40            IC3        5    1uf              C1 C2 C3 C4 C5 另外,套件配有1.5米串行電纜一根和配套的PCB一塊,不含電源。編程器使用的15V交流電源或12V直流電源需要自己配套。2.裝配要點(diǎn):先焊接阻容元件,3個(gè)集成電路插座(IC2,IC7,IC6)其次是晶振, 全橋,穩(wěn)壓IC 等,然后焊接J2,最后焊接T1,T2,T3三只場(chǎng)效應(yīng)管。焊接場(chǎng)效應(yīng)管時(shí)務(wù)必按照以下方法:拔去電烙鐵的電源,使用電烙鐵余溫去焊接三只場(chǎng)效應(yīng)管,否則靜電很容易損壞管子。這是裝配成功的關(guān)鍵。這三只管子有問題,最典型的現(xiàn)象是不能聯(lián)機(jī)。由于電源插座封裝比較特殊,國(guó)內(nèi)無法配套上,已改用電源線接線柱,可直接焊接在PCB板焊盤上,如下圖1所示(在下圖中兩個(gè)紅色圓圈內(nèi)指示的焊盤),然后在連接到套件中配套的電源插座上。最近有朋友反映用15V交流比較麻煩,還要另外配變壓器。如果要使用12V的直流電,無需將全橋焊上,將兩個(gè)接線柱分別焊接在全橋的正負(fù)輸出位置的焊盤上即可,如下圖2所示,藍(lán)色圓圈內(nèi)指示的焊盤,連接電源的時(shí)候要注意正負(fù)極,不要接錯(cuò)了。方形焊盤是正極。40腳ZIF插座焊接前,應(yīng)該將BR1飛線焊接好。注意:由于焊盤比較小,注意焊接溫度,不要高溫長(zhǎng)時(shí)間反復(fù)焊接,會(huì)導(dǎo)致焊盤脫落。

    標(biāo)簽: AVR 51 編程器

    上傳時(shí)間: 2013-12-31

    上傳用戶:caiguoqing

  • 微型計(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è)簡(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

  • 串行編程器源程序(Keil C語言)

    串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實(shí)現(xiàn)編程的讀,寫,擦等細(xì)節(jié)//AT89C2051的特殊處:給XTAL一個(gè)脈沖,地址計(jì)數(shù)加1;P1的引腳排列與AT89C51相反,需要用函數(shù)轉(zhuǎn)換#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0  P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準(zhǔn)備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結(jié)束后的工作,設(shè)置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數(shù)據(jù){ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//轉(zhuǎn)換并設(shè)置P0口的數(shù)據(jù){ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//寫器件{//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //寫一個(gè)單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗(yàn):循環(huán)讀,直到讀出與寫入的數(shù)相同 {  nTimeOut++;  if(nTimeOut>1000)//超時(shí)了  {   return 0;  } } C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //讀一個(gè)單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫鎖定位{ InitPro01();//先設(shè)置成編程狀態(tài)//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 {  C2051_P3_3=1;  C2051_P3_4=1;  C2051_P3_5=1;  C2051_P3_7=1;  Delay_us(20);  SetVpp12V();  Delay_us(20);  C2051_P3_2=0;  Delay_us(20);  C2051_P3_2=1;  Delay_us(20);  SetVpp5V(); } if(ComBuf[2]>=2) {  C2051_P3_3=1;  C2051_P3_4=1;  C2051_P3_5=0;  C2051_P3_7=0;  Delay_us(20);  SetVpp12V();  Delay_us(20);  C2051_P3_2=0;  Delay_us(20);  C2051_P3_2=1;  Delay_us(20);  SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//設(shè)置pw中的函數(shù)指針,讓主程序可以調(diào)用上面的函數(shù){ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}

    標(biāo)簽: Keil 串行 C語言 編程器

    上傳時(shí)間: 2013-11-12

    上傳用戶:gut1234567

主站蜘蛛池模板: 石泉县| 乌审旗| 金山区| 武安市| 高碑店市| 宜阳县| 陆丰市| 重庆市| 浦北县| 建水县| 安多县| 珲春市| 曲阜市| 新巴尔虎右旗| 固镇县| 观塘区| 合川市| 岱山县| 太谷县| 乌什县| 剑河县| 山阳县| 江城| 察哈| 琼结县| 济源市| 泰宁县| 柞水县| 洛南县| 靖江市| 田阳县| 无为县| 滕州市| 天长市| 泌阳县| 全州县| 浪卡子县| 垣曲县| 翼城县| 新邵县| 东丽区|