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

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

數(shù)據(jù)導(dǎo)入

  • ARM處理器的工作模式

    ARM處理器的工作模式 ARM處理器狀態(tài)    ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:第一種為ARM狀態(tài),此時處理器執(zhí)行32位的字對齊的ARM指令;第二種為Thumb狀態(tài),此時處理器執(zhí)行16位的、半字對齊的Thumb指令。在程序的執(zhí)行過程中,微處理器可以隨時在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。但ARM微處理器在開始執(zhí)行代碼時,應(yīng)該處于ARM狀態(tài)。  ARM處理器狀態(tài)    進(jìn)入Thumb狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時,可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。此外,當(dāng)處理器處于Thumb狀態(tài)時發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態(tài)。    進(jìn)入ARM狀態(tài):當(dāng)操作數(shù)寄存器的狀態(tài)位為0時,執(zhí)行BX指令時可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。此外,在處理器進(jìn)行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。ARM處理器模式    ARM微處理器支持7種運(yùn)行模式,分別為:用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài)。快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統(tǒng)使用的保護(hù)模式。數(shù)據(jù)訪問終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時進(jìn)入該模式,可用于虛擬存儲及存儲保護(hù)。系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。定義指令中止模式(und):當(dāng)未定義的指令執(zhí)行時進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。ARM處理器模式    ARM微處理器的運(yùn)行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數(shù)的應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時,某些被保護(hù)的系統(tǒng)資源是不能被訪問的。    除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護(hù)的系統(tǒng)資源等情況。ARM寄存器    ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數(shù)器(PC)在內(nèi)。這些寄存器都是32位寄存器。以及6個32位狀態(tài)寄存器。 關(guān)于寄存器這里就不詳細(xì)介紹了,有興趣的人可以上網(wǎng)找找,很多這方面的資料。異常處理    當(dāng)正常的程序執(zhí)行流程發(fā)生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個異常同時發(fā)生,它們將會按固定的優(yōu)先級進(jìn)行處理。當(dāng)一個異常出現(xiàn)以后,ARM微處理器會執(zhí)行以下幾步操作:進(jìn)入異常處理的基本步驟:將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執(zhí)行。將CPSR復(fù)制到相應(yīng)的SPSR中。根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。如果異常發(fā)生時,處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時,處理器自動切換到ARM狀態(tài)。 ARM微處理器對異常的響應(yīng)過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當(dāng)運(yùn)行于 ARM 工作狀態(tài)時If == Reset or FIQ then;當(dāng)響應(yīng) FIQ 異常時,禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會執(zhí)行以下幾步操作從異常返回:將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。將SPSR復(fù)制回CPSR中。若在進(jìn)入異常處理時設(shè)置了中斷禁止位,要在此清除。

    標(biāo)簽: ARM 處理器 工作模式

    上傳時間: 2013-11-15

    上傳用戶:hanbeidang

  • 簡易頻率計設(shè)計

    本實驗要求設(shè)計一個簡易的頻率計,實現(xiàn)對標(biāo)準(zhǔn)的方波信號進(jìn)行頻率測量,并把測量的結(jié)果送到8 位的數(shù)碼管顯示,所要求測量范圍是1Hz~99999999Hz。整個設(shè)計的基本原理就是對1 秒鐘之內(nèi)輸入的方波進(jìn)行計數(shù),把所得數(shù)據(jù)保存在計數(shù)器里,經(jīng)過譯碼器處理之后,然后送往數(shù)碼管顯示。這里采用的方案是在采樣時鐘的上升沿開始計數(shù),然后在下一個上升沿把計數(shù)器里的數(shù)據(jù)送往數(shù)碼管,并且把計數(shù)器清零,讓其重新計數(shù)。整個方案的實現(xiàn)主要分為四個模塊:時鐘分頻(clk_div)模塊、計數(shù)器模塊(counter)、譯碼器模塊(seg8)、掃描輸出(saomiao)模塊

    標(biāo)簽: 頻率計設(shè)

    上傳時間: 2013-11-20

    上傳用戶:avensy

  • S51下載線的制作-單片機(jī)實用技術(shù)探討

    S51下載線的制作-單片機(jī)實用技術(shù)探討:在微電腦技術(shù)發(fā)展的今天,人們整天都在和單片機(jī)打交道,但作為一個電子愛好者,盡管我對微電腦非常感興趣,但我卻怎末也入不了門。在此,我將自己的學(xué)習(xí)體會寫出來,與大家共賞,希望大家能更好的了解單片機(jī),了解單片機(jī)或微電腦的工作方式,了解單片機(jī)周圍元件的作用和接口電路,為以后的維修之路打好基礎(chǔ),如果有興趣,還可以編寫一些符合自己要求的程序,要它根據(jù)要求做一些事情。因為它無處不在,手機(jī),電視,VC D ,D VD ,M P3,空調(diào),冰箱,全自動洗衣機(jī),電扇等,我們都可以在其電路板上看到C PU ,當(dāng)然,我不會在此講述所有的C PU ,只介紹S52的簡單電路,希望大家對C PU 有一個初步的解。為了便于初學(xué)者學(xué)習(xí),我盡量講的詳細(xì)些。便于理解,依實用為目的,讓大家更好的理解單片機(jī),應(yīng)用單片機(jī)。

    標(biāo)簽: S51 下載線 單片機(jī)實用 技術(shù)探討

    上傳時間: 2013-12-26

    上傳用戶:3到15

  • 利用SPMC75本身的Flash做數(shù)據(jù)備份

    利用SPMC75本身的Flash做數(shù)據(jù)備份:SPMC75F2413A 32k字的內(nèi)嵌Flash(embedded Flash)分為兩區(qū):信息區(qū)和通用區(qū),在同一時間只能訪問其中的一區(qū)。信息區(qū)包含64個字,尋址空間為0x8000 ~ 0x803F。地址0x8000為系統(tǒng)選項寄存器P_System_Option。其它地址空間可由用戶自定義重要信息比如:版本控制,日期,版權(quán)名稱,項目名稱等等。信息區(qū)的內(nèi)容只有在仿真或燒錄的狀態(tài)下才能改變。32k字Flash被劃分為16個頁,每頁2K字,每頁可分為8幀,這樣32K的Flash就可以分成128個幀。只有位于00F000 ~00F7FF區(qū)域的頁面在自由運(yùn)行模式下可以設(shè)置為只讀或可讀可寫,其它頁面均為只讀.也就說片內(nèi)FLASH數(shù)據(jù)備份區(qū)為是0xF000~0xF7FF,備份區(qū)為Bank14,最多存儲的數(shù)據(jù)為2K字。SPMC75F2413A的32K字的內(nèi)嵌式閃存結(jié)構(gòu)入下圖2-1,圖2-2。

    標(biāo)簽: Flash SPMC 75 數(shù)據(jù)備份

    上傳時間: 2013-11-08

    上傳用戶:6546544

  • 抽樣z變換頻率抽樣理論

    抽樣z變換頻率抽樣理論:我們將先闡明:(1)z變換與DFT的關(guān)系(抽樣z變換),在此基礎(chǔ)上引出抽樣z變換的概念,并進(jìn)一步深入討論頻域抽樣不失真條件。(2)頻域抽樣理論(頻域抽樣不失真條件)(3)頻域內(nèi)插公式一、z變換與DFT關(guān)系 (1)引入連續(xù)傅里葉變換引出離散傅里葉變換定義式。離散傅里葉變換看作是序列的傅里葉變換在 頻 域 再 抽 樣 后 的 變 換 對.在Z變換與L變換中,又可了解到序列的傅里葉 變換就是單位圓上的Z 變 換.所以對序列的傅里葉變換進(jìn)行頻域抽樣時, 自 然可以看作是對單位圓上的 Z變換進(jìn)行抽樣. (2)推導(dǎo)Z 變 換 的 定 義 式 (正 變 換) 重 寫 如 下:  取z=ejw 代 入 定 義 式,  得 到 單 位 圓 上 Z 變 換 為w是 單 位 圓 上 各 點 的 數(shù) 字 角 頻 率.再 進(jìn) 行 抽 樣-- N 等 分.這 樣w=2kπ/N, 即w值為0,2π/N,4π/N,6π/N…, 考慮到x(n)是N點有限長序列, 因而n只需0~N-1即可。將w=2kπ/N代入并改變上下限,  得 則這正是離散傅里葉變換 (DFT)正變換定義式.

    標(biāo)簽: 抽樣 變換 頻率

    上傳時間: 2014-12-28

    上傳用戶:zhaistone

  • 離散傅里葉變換,(DFT)Direct Fouriet Tr

    離散傅里葉變換,(DFT)Direct Fouriet Transformer(PPT課件) 一、序列分類對一個序列長度未加以任何限制,則一個序列可分為:    無限長序列:n=-∞~∞或n=0~∞或n=-∞~ 0    有限長序列:0≤n≤N-1有限長序列在數(shù)字信號處理是很重要的一種序列。由于計算機(jī)容量的限制,只能對過程進(jìn)行逐段分析。二、DFT引入由于有限長序列,引入DFT(離散付里葉變換)。DFT它是反映了“有限長”這一特點的一種有用工具。DFT變換除了作為有限長序列的一種付里葉表示,在理論上重要之外,而且由于存在著計算機(jī)DFT的有效快速算法--FFT,因而使離散付里葉變換(DFT)得以實現(xiàn),它使DFT在各種數(shù)字信號處理的算法中起著核心的作用。三、本章主要討論 離散付里葉變換的推導(dǎo)離散付里葉變換的有關(guān)性質(zhì)離散付里葉變換逼近連續(xù)時間信號的問題第二節(jié) 付里葉變換的幾種形式傅 里 葉 變 換 :  建 立 以 時 間 t 為 自 變 量 的 “ 信 號 ”   與 以 頻 率 f為 自 變 量 的 “ 頻 率 函 數(shù) ”(頻譜) 之 間 的 某 種 變 換 關(guān) 系 . 所 以 “ 時 間 ” 或 “ 頻 率 ” 取 連 續(xù) 還 是 離 散 值 , 就 形 成 各 種 不 同 形 式 的 傅 里 葉 變 換 對 。, 在 深 入 討 論 離 散 傅 里 葉 變 換 D F T 之 前 , 先 概 述 四種 不 同 形式 的 傅 里 葉 變 換 對 . 一、四種不同傅里葉變換對傅 里 葉 級 數(shù)(FS):連 續(xù) 時 間 , 離 散 頻 率 的 傅 里 葉 變 換 。連 續(xù) 傅 里 葉 變 換(FT):連 續(xù) 時 間 , 連 續(xù) 頻 率 的 傅 里 葉 變 換 。序 列 的 傅 里 葉 變 換(DTFT):離 散 時 間 , 連 續(xù) 頻 率 的 傅 里 葉 變 換.離 散 傅 里 葉 變 換(DFT):離 散 時 間 , 離 散 頻 率 的 傅 里 葉 變 換1.傅 里 葉 級 數(shù)(FS)周期連續(xù)時間信號          非周期離散頻譜密度函數(shù)。 周期為Tp的周期性連續(xù)時間函數(shù) x(t) 可展成傅里葉級數(shù)X(jkΩ0)  ,是離散非周期性頻譜 , 表 示為:例子通過以下 變 換 對  可 以 看 出 時 域 的 連 續(xù) 函 數(shù) 造 成 頻 域 是 非 周 期 的 頻 譜 函 數(shù) , 而 頻 域 的 離 散 頻 譜 就 與 時 域 的 周 期 時 間 函 數(shù) 對 應(yīng) . (頻域采樣,時域周期延 拓)2.連 續(xù) 傅 里 葉 變 換(FT)非周期連續(xù)時間信號通過連續(xù)付里葉變換(FT)得到非周期連續(xù)頻譜密度函數(shù)。

    標(biāo)簽: Fouriet Direct DFT Tr

    上傳時間: 2013-11-19

    上傳用戶:fujiura

  • C51基本結(jié)構(gòu)程序設(shè)計

    C51基本結(jié)構(gòu)程序設(shè)計1. 掌握if語句來實現(xiàn)選擇結(jié)構(gòu),能利用if語句編寫相應(yīng)的分枝結(jié)構(gòu)的程序。在嵌套if語句中,一定要搞清楚else與哪個if結(jié)合的問題。2.掌握switch語句來實現(xiàn)多向分枝選擇結(jié)構(gòu),能利用switch語句編寫相應(yīng)的分枝結(jié)構(gòu)的程序。 3. 掌握循環(huán)語句的即初始化、循環(huán)體、循環(huán)控制及結(jié)束四個部分,并能進(jìn)行循環(huán)語句的程序設(shè)計。分別掌握for 語句、while語句以及do-while語句的使用語法及方法,能利用這三種循環(huán)結(jié)構(gòu)進(jìn)行循環(huán)程序設(shè)計,理解這三種語句的異同。4.理解并掌握continue、break語句在循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)中的作用。對于goto語句,理解該語句優(yōu)缺點。C51語言是結(jié)構(gòu)化編程語言。結(jié)構(gòu)化語言的基本元素是模塊,它是程序的一部分.只有一個出口和一個入口.不允許有偶然的中途插入或以模塊的其它路徑退出。結(jié)構(gòu)化編程語言在沒有妥善保護(hù)或恢復(fù)堆棧和其它相關(guān)的寄存器之前,不應(yīng)隨便跳入或跳出一個模塊。因此使用這種結(jié)構(gòu)化語言進(jìn)行編程,當(dāng)要退出中斷時,堆棧不會因為程序使用了任何可以接受的命令而崩潰。    結(jié)構(gòu)化程序由若干模塊組成,每個模塊中包含著若干個基本結(jié)構(gòu),而每個基本結(jié)構(gòu)中可以有若干條語句。歸納起來,C51程序有順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)共三種結(jié)構(gòu)。

    標(biāo)簽: C51 基本結(jié)構(gòu) 程序設(shè)計

    上傳時間: 2013-11-01

    上傳用戶:四只眼

  • 單片機(jī)音樂中音調(diào)和節(jié)拍的確定方法

    單片機(jī)音樂中音調(diào)和節(jié)拍的確定方法:調(diào)號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有12個半音。A、B、C、D、E、F、G。經(jīng)過聲學(xué)家的研究,全世界都用這些字母來表示固定的音高。比如,A這個音,標(biāo)準(zhǔn)的音高為每秒鐘振動440周。 升C調(diào):1=#C,也就是降D調(diào):1=BD;277(頻率)升D調(diào):1=#D,也就是降E調(diào):1=BE;311升F調(diào):1=#F,也就是降G調(diào):1=BG;369升G調(diào):1=#G,也就是降A(chǔ)調(diào):1=BA;415升A調(diào):1=#A,也就是降B調(diào):1=BB。466,C 262   #C277   D 294   #D(bE)311  E 330   F 349   #F369   G 392  #G415A 440.    #A466    B 494 所謂1=A,就是說,這首歌曲的“導(dǎo)”要唱得同A一樣高,人們也把這首歌曲叫做A調(diào)歌曲,或叫“唱A調(diào)”。1=C,就是說,這首歌曲的“導(dǎo)”要唱得同C一樣高,或者說“這歌曲唱C調(diào)”。同樣是“導(dǎo)”,不同的調(diào)唱起來的高低是不一樣的。各調(diào)的對應(yīng)的標(biāo)準(zhǔn)頻率為: 單片機(jī)演奏音樂時音調(diào)和節(jié)拍的確定方法 經(jīng)常看到一些剛學(xué)單片機(jī)的朋友對單片機(jī)演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機(jī)演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說來,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂只需弄清楚兩個概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。 在音樂中所謂“音調(diào)”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標(biāo)準(zhǔn)音高,其頻率f=440Hz。當(dāng)兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與 ,2(來)與 ……正好相差一個倍頻程,在音樂學(xué)中稱它相差一個八度音。在一個八度音內(nèi),有12個半音。以1—i八音區(qū)為例, 12個半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個音階的分度基本上是以對數(shù)關(guān)系來劃分的。如果我們只要知道了這十二個音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。 知道了一個音符的頻率后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?一般說來,常采用的方法就是通過單片機(jī)的定時器定時中斷,將單片機(jī)上對應(yīng)蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現(xiàn)。那么怎樣確定一個頻率所對應(yīng)的定時器的定時值呢?以標(biāo)準(zhǔn)音高A為例:   A的頻率f = 440 Hz,其對應(yīng)的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機(jī)上對應(yīng)蜂鳴器的I/O口來回取反的時間應(yīng)為:t = T/2 = 2272/2 = 1136μs這個時間t也就是單片機(jī)上定時器應(yīng)有的中斷觸發(fā)時間。一般情況下,單片機(jī)奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時器的予置初值由下式來確定:    t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時器待確定的計數(shù)初值。因此定時器的高低計數(shù)器的初值為:     TH = THL / 256 = ( TALL – t* f0/12) / 256    TL = THL % 256 = ( TALL – t* f0/12) %256  將t=1136μs代入上面兩式(注意:計算時應(yīng)將時間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數(shù)器的予置初值為 :    TH440Hz = (65536 – 1136 * 12/12) /256 = FBH    TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計數(shù)器的予置初值。 音符的節(jié)拍我們可以舉例來說明。在一張樂譜中,我們經(jīng)常會看到這樣的表達(dá)式,如1=C  、1=G …… 等等,這里1=C,1=G表示樂譜的曲調(diào),和我們前面所談的音調(diào)有很大的關(guān)聯(lián), 、 就是用來表示節(jié)拍的。以 為例加以說明,它表示樂譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如:      其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當(dāng)以四分音符為節(jié)拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms。可見,在單片機(jī)上控制一個音符唱多長可采用循環(huán)延時的方法來實現(xiàn)。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調(diào)用一次延時程序,如果它為八分音符,則只需調(diào)用二次延時程序,如果它為四分音符,則只需調(diào)用四次延時程序,依次類推。通過上面關(guān)于一個音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機(jī)上實現(xiàn)演奏音樂了。具體的實現(xiàn)方法為:將樂譜中的每個音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲器中,通過程序取出一個音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個音符的相關(guān)參數(shù)……,如此直到播放完畢最后一個音符,根據(jù)需要也可循環(huán)不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調(diào)參數(shù)設(shè)為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂曲結(jié)束用節(jié)拍參數(shù)為00H來表示。下面給出部分音符(三個八度音)的頻率以及以單片機(jī)晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數(shù)器的予置初值 : C調(diào)音符  頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調(diào)音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調(diào)音符  頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02

    標(biāo)簽: 單片機(jī) 音調(diào)

    上傳時間: 2013-10-20

    上傳用戶:哈哈haha

  • PC機(jī)之間串口通信的實現(xiàn)

    PC機(jī)之間串口通信的實現(xiàn)一、實驗?zāi)康?nbsp;1.熟悉微機(jī)接口實驗裝置的結(jié)構(gòu)和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.學(xué)會串行通信程序的編制方法。 二、實驗內(nèi)容與要求 1.基本要求主機(jī)接收開關(guān)量輸入的數(shù)據(jù)(二進(jìn)制或十六進(jìn)制),從鍵盤上按“傳輸”鍵(可自行定義),就將該數(shù)據(jù)通過8251A傳輸出去。終端接收后在顯示器上顯示數(shù)據(jù)。具體操作說明如下:(1)出現(xiàn)提示信息“start with R in the board!”,通過調(diào)整乒乓開關(guān)的狀態(tài),設(shè)置8位數(shù)據(jù);(2)在小鍵盤上按“R”鍵,系統(tǒng)將此時乒乓開關(guān)的狀態(tài)讀入計算機(jī)I中,并顯示出來,同時顯示經(jīng)串行通訊后,計算機(jī)II接收到的數(shù)據(jù);(3)完成后,系統(tǒng)提示“do you want to send another data? Y/N”,根據(jù)用戶需要,在鍵盤按下“Y”鍵,則重復(fù)步驟(1),進(jìn)行另一數(shù)據(jù)的通訊;在鍵盤按除“Y”鍵外的任意鍵,將退出本程序。2.提高要求 能夠進(jìn)行出錯處理,例如采用奇偶校驗,出錯重傳或者采用接收方回傳和發(fā)送方確認(rèn)來保證發(fā)送和接收正確。 三、設(shè)計報告要求 1.設(shè)計目的和內(nèi)容 2.總體設(shè)計 3.硬件設(shè)計:原理圖(接線圖)及簡要說明 4.軟件設(shè)計框圖及程序清單5.設(shè)計結(jié)果和體會(包括遇到的問題及解決的方法) 四、8251A通用串行輸入/輸出接口芯片由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。能夠完成上述“串←→并”轉(zhuǎn)換功能的電路,通常稱為“通用異步收發(fā)器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A異步工作方式:如果8251A編程為異步方式,在需要發(fā)送字符時,必須首先設(shè)置TXEN和CTS#為有效狀態(tài),TXEN(Transmitter Enable)是允許發(fā)送信號,是命令寄存器中的一位;CTS#(Clear To Send)是由外設(shè)發(fā)來的對CPU請求發(fā)送信號的響應(yīng)信號。然后就開始發(fā)送過程。在發(fā)送時,每當(dāng)CPU送往發(fā)送緩沖器一個字符,發(fā)送器自動為這個字符加上1個起始位,并且按照編程要求加上奇/偶校驗位以及1個、1.5個或者2個停止位。串行數(shù)據(jù)以起始位開始,接著是最低有效數(shù)據(jù)位,最高有效位的后面是奇/偶校驗位,然后是停止位。按位發(fā)送的數(shù)據(jù)是以發(fā)送時鐘TXC的下降沿同步的,也就是說這些數(shù)據(jù)總是在發(fā)送時鐘TXC的下降沿從8251A發(fā)出。數(shù)據(jù)傳輸?shù)牟ㄌ芈嗜Q于編程時指定的波特率因子,為發(fā)送器時鐘頻率的1、1/16或1/64。當(dāng)波特率指定為16時,數(shù)據(jù)傳輸?shù)牟ㄌ芈示褪前l(fā)送器時鐘頻率的1/16。CPU通過數(shù)據(jù)總線將數(shù)據(jù)送到8251A的數(shù)據(jù)輸出緩沖寄存器以后,再傳輸?shù)桨l(fā)送緩沖器,經(jīng)移位寄存器移位,將并行數(shù)據(jù)變?yōu)榇袛?shù)據(jù),從TxD端送往外部設(shè)備。在8251A接收字符時,命令寄存器的接收允許位RxE(Receiver Enable)必須為1。8251A通過檢測RxD引腳上的低電平來準(zhǔn)備接收字符,在沒有字符傳送時RxD端為高電平。8251A不斷地檢測RxD引腳,從RxD端上檢測到低電平以后,便認(rèn)為是串行數(shù)據(jù)的起始位,并且啟動接收控制電路中的一個計數(shù)器來進(jìn)行計數(shù),計數(shù)器的頻率等于接收器時鐘頻率。計數(shù)器是作為接收器采樣定時,當(dāng)計數(shù)到相當(dāng)于半個數(shù)位的傳輸時間時再次對RxD端進(jìn)行采樣,如果仍為低電平,則確認(rèn)該數(shù)位是一個有效的起始位。若傳輸一個字符需要16個時鐘,那么就是要在計數(shù)8個時鐘后采樣到低電平。之后,8251A每隔一個數(shù)位的傳輸時間對RxD端采樣一次,依次確定串行數(shù)據(jù)位的值。串行數(shù)據(jù)位順序進(jìn)入接收移位寄存器,通過校驗并除去停止位,變成并行數(shù)據(jù)以后通過內(nèi)部數(shù)據(jù)總線送入接收緩沖器,此時發(fā)出有效狀態(tài)的RxRDY信號通知CPU,通知CPU8251A已經(jīng)收到一個有效的數(shù)據(jù)。一個字符對應(yīng)的數(shù)據(jù)可以是5~8位。如果一個字符對應(yīng)的數(shù)據(jù)不到8位,8251A會在移位轉(zhuǎn)換成并行數(shù)據(jù)的時候,自動把他們的高位補(bǔ)成0。 五、系統(tǒng)總體設(shè)計方案根據(jù)系統(tǒng)設(shè)計的要求,對系統(tǒng)設(shè)計的總體方案進(jìn)行論證分析如下:1.獲取8位開關(guān)量可使用實驗臺上的8255A可編程并行接口芯片,因為只要獲取8位數(shù)據(jù)量,只需使用基本輸入和8位數(shù)據(jù)線,所以將8255A工作在方式0,PA0-PA7接實驗臺上的8位開關(guān)量。2.當(dāng)使用串口進(jìn)行數(shù)據(jù)傳送時,雖然同步通信速度遠(yuǎn)遠(yuǎn)高于異步通信,可達(dá)500kbit/s,但由于其需要有一個時鐘來實現(xiàn)發(fā)送端和接收端之間的同步,硬件電路復(fù)雜,通常計算機(jī)之間的通信只采用異步通信。3.由于8251A本身沒有時鐘,需要外部提供,所以本設(shè)計中使用實驗臺上的8253芯片的計數(shù)器2來實現(xiàn)。4:顯示和鍵盤輸入均使用DOS功能調(diào)用來實現(xiàn)。設(shè)計思路框圖,如下圖所示: 六、硬件設(shè)計硬件電路主要分為8位開關(guān)量數(shù)據(jù)獲取電路,串行通信數(shù)據(jù)發(fā)送電路,串行通信數(shù)據(jù)接收電路三個部分。1.8位開關(guān)量數(shù)據(jù)獲取電路該電路主要是利用8255并行接口讀取8位乒乓開關(guān)的數(shù)據(jù)。此次設(shè)計在獲取8位開關(guān)數(shù)據(jù)量時采用8255令其工作在方式0,A口輸入8位數(shù)據(jù),CS#接實驗臺上CS1口,對應(yīng)端口為280H-283H,PA0-PA7接8個開關(guān)。2.串行通信電路串行通信電路本設(shè)計中8253主要為8251充當(dāng)頻率發(fā)生器,接線如下圖所示。

    標(biāo)簽: PC機(jī) 串口通信

    上傳時間: 2013-12-19

    上傳用戶:小火車?yán)怖怖?/p>

  • 單片機(jī)系統(tǒng)軟件抗干擾方法

    單片機(jī)系統(tǒng)軟件抗干擾方法:在提高硬件系統(tǒng)抗干擾能力的同時,軟件抗干擾以其設(shè)計靈活、節(jié)省硬件資源、可靠性好越來越受到重視。下面以MCS-51單片機(jī)系統(tǒng)為例,對微機(jī)系統(tǒng)軟件抗干擾方法進(jìn)行研究。1、軟件抗干擾方法的研究在工程實踐中,軟件抗干擾研究的內(nèi)容主要是:􀁺 消除模擬輸入信號的嗓聲(如數(shù)字濾波技術(shù));􀁺 程序運(yùn)行混亂時使程序重入正軌的方法。本文針對后者提出了幾種有效的軟件抗干擾方法。1.1 指令冗余CPU取指令過程是先取操作碼,再取操作數(shù)。當(dāng)PC受干擾出現(xiàn)錯誤,程序便脫離正常軌道“亂飛”,當(dāng)亂飛到某雙字節(jié)指令,若取指令時刻落在操作數(shù)上,誤將操作數(shù)當(dāng)作操作碼,程序?qū)⒊鲥e。若“飛”到了三字節(jié)指令,出錯機(jī)率更大。在關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫稱為指令冗余。通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個字節(jié)以上的NOP。這樣即使亂飛程序飛到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的指令被當(dāng)作操作數(shù)執(zhí)行,程序自動納入正軌。此外,對系統(tǒng)流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入兩條NOP,也可將亂飛程序納入正軌,確保這些重要指令的執(zhí)行。1.2 攔截技術(shù)所謂攔截,是指將亂飛的程序引向指定位置,再進(jìn)行出錯處理。通常用軟件陷阱來攔截亂飛的程序。因此先要合理設(shè)計陷阱,其次要將陷阱安排在適當(dāng)?shù)奈恢谩?.2.1 軟件陷阱的設(shè)計當(dāng)亂飛程序進(jìn)入非程序區(qū),冗余指令便無法起作用。通過軟件陷阱,攔截亂飛程序,將其引向指定位置,再進(jìn)行出錯處理。軟件陷阱是指用來將捕獲的亂飛程序引向復(fù)位入口地址0000H的指令。通常在EPROM中非程序區(qū)填入以下指令作為軟件陷阱:

    標(biāo)簽: 單片機(jī) 系統(tǒng)軟件 抗干擾

    上傳時間: 2013-10-29

    上傳用戶:大三三

主站蜘蛛池模板: 通海县| 玛曲县| 扎兰屯市| 吴堡县| 垫江县| 若尔盖县| 海安县| 翁牛特旗| 鄂托克前旗| 西安市| 来宾市| 漳州市| 和林格尔县| 化德县| 四子王旗| 筠连县| 秭归县| 阿巴嘎旗| 遵义县| 禄劝| 分宜县| 新蔡县| 青铜峡市| 阜宁县| 黔东| 保亭| 大荔县| 台南市| 拉萨市| 新津县| 石门县| 永康市| 宿州市| 昭苏县| 邵阳市| 白河县| 泽库县| 怀柔区| 绵阳市| 扶沟县| 深圳市|