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

蟲(chóng)蟲(chóng)首頁(yè)| 資源下載| 資源專(zhuān)輯| 精品軟件
登錄| 注冊(cè)

無(wú)線網(wǎng)絡(luò)有關(guān)<b>TinyOs</b> 編程的

  • DDR記憶體電源

    CMOS 邏輯系統(tǒng)的功耗主要與時(shí)脈頻率、系統(tǒng)內(nèi)各閘極輸入電容及電源電壓有關(guān),裝置尺寸縮小後,電源電壓也隨之降低,使得閘極大幅降低功耗。這種低電壓裝置擁有更低的功耗和更高的運(yùn)作速度,因此系統(tǒng)時(shí)脈頻率可升高至 Ghz 範(fàn)圍。

    標(biāo)簽: DDR 記憶體 電源

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

    上傳用戶:immanuel2006

  • 有源器件和無(wú)源器件的區(qū)別

    有源與無(wú)源器件的區(qū)別

    標(biāo)簽: 有源器件 無(wú)源器件

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

    上傳用戶:steveng

  • 8階開(kāi)關(guān)電容濾波器MAX29X系列的應(yīng)用設(shè)計(jì)

    MAX29X是美國(guó)MAXIM公司生瓣的8階開(kāi)關(guān)電容低通濾波器,由于價(jià)格便宜、使用方便、設(shè)計(jì)簡(jiǎn)單,在通訊、信號(hào)自理等領(lǐng)域得到了廣泛的應(yīng)用。本文就其工作原理、電氣參數(shù)、設(shè)計(jì)注意事項(xiàng)等問(wèn)題作了討論,具有一定的實(shí)用參考價(jià)值。關(guān)鍵詞:開(kāi)關(guān)電容、濾波器、設(shè)計(jì) 1 引言     開(kāi)關(guān)電容濾波器在近些年得到了迅速的發(fā)展,世界上一些知名的半導(dǎo)體廠家相繼推出了自己的開(kāi)頭電容濾波器集成電路,使形狀電容濾波器的發(fā)展上了一個(gè)新臺(tái)階。     MAXIM公司在模擬器件生產(chǎn)領(lǐng)域頗具影響,它生產(chǎn)MAX291/292/293/294/295/296/297系列8階低通開(kāi)關(guān)電容濾波器由于使用方便(基本上不需外接元件)、設(shè)計(jì)簡(jiǎn)單(頻率響應(yīng)函數(shù)是固定的,只需確定其拐角頻率即截止頻率)、尺寸小(有8-pin    DIP封裝)等優(yōu)點(diǎn),在ADC的反混疊濾波、噪聲分析、電源噪聲抑制等領(lǐng)域得到了廣泛的應(yīng)用。     MAX219/295為巴特活思(型濾波器,在通頻帶內(nèi),它的增益最穩(wěn)定,波動(dòng)小,主要用于儀表測(cè)量等要求整個(gè)通頻帶內(nèi)增益恒定的場(chǎng)合。MAX292/296為貝塞爾(Bessel)濾波器,在通頻帶內(nèi)它的群時(shí)延時(shí)恒定的,相位對(duì)頻率呈線性關(guān)系,因此脈沖信號(hào)通過(guò)MAX292/296之后尖峰幅度小,穩(wěn)定速度快。由于脈沖信號(hào)通過(guò)貝塞爾濾波器之后所有頻率分量的延遲時(shí)間是相同的,故可保證波形基本不變。關(guān)于巴特活和貝塞爾濾波器的特性可能圖1來(lái)說(shuō)明。圖1的蹤跡A為加到濾波器輸入端的3kHz的脈沖,這里我們把濾波器的截止頻率設(shè)為10kHZ。蹤跡B通過(guò)MAX292/296后的波形。從圖中可以看出,由于MAX292/296在通帶內(nèi)具有線性相位特性,輸出波形基本上保持了方波形狀,只是邊沿處變圓了一些。方波通過(guò)MAX291/295之后,由于不同頻率的信號(hào)產(chǎn)生的時(shí)延不同,輸出波形中就出現(xiàn)了尖峰(overshoot)和鈴流(ringing)。     MAX293/294/297為8階圓型(Elliptic)濾波器,它的滾降速度快,從通頻帶到阻帶的過(guò)渡帶可以作得很窄。在橢圓型濾波器中,第一個(gè)傳輸零點(diǎn)后輸出將隨頻率的變高而增大,直到第二個(gè)零點(diǎn)處。這樣幾番重復(fù)就使阻事賓頻響呈現(xiàn)波浪形,如圖2所示。阻帶從fS起算起,高于頻率fS處的增益不會(huì)超過(guò)fS處的增益。在橢圓型濾波中,通頻帶內(nèi)的增益存在一定范圍的波動(dòng)。橢圓型濾波器的一個(gè)重要參數(shù)就是過(guò)渡比。過(guò)渡比定義為阻帶頻率fS與拐角頻率(有時(shí)也等同為截止頻率)由時(shí)鐘頻率確定。時(shí)鐘既可以是外接的時(shí)鐘,也可以是自己的內(nèi)部時(shí)鐘。使用內(nèi)部時(shí)鐘時(shí)只需外接一個(gè)定時(shí)用的電容既可。     在MAX29X系列濾波器集成電路中,除了濾波器電路外還有一個(gè)獨(dú)立的運(yùn)算放大器(其反相輸入端已在內(nèi)部接地)。用這個(gè)運(yùn)算放大器可以組成配合MAX29X系列濾波器使用后的濾波、反混濾波等連續(xù)時(shí)間低通濾波器。     下面歸納一下它們的特點(diǎn):     ●全部為8階低通濾波器。MAX291/MAX295為巴特沃思濾波器;MAX292/296為貝塞爾濾波器;MAX293/294/297為橢圓濾波器。     ●通過(guò)調(diào)整時(shí)鐘,截止頻率的調(diào)整范圍為:0.1Hz~25kHz(MAX291/292/293*294);0.1Hz~kHz(MAX295/296/297)。     ●既可用外部時(shí)鐘也可用內(nèi)部時(shí)鐘作為截止頻率的控制時(shí)鐘。     ●時(shí)鐘頻率和截止頻率的比率:10∶1(MAX291/292/293/294);50∶1(MAX295/296/297)。     ●既可用單+5V電源供電也可用±5V雙電源供電。     ●有一個(gè)獨(dú)立的運(yùn)算放大器可用于其它應(yīng)用目的。     ●8-pin DIP、8-pin SO和寬SO-16多種封裝。2 管腳排列和主要電氣參數(shù)     MAX29X系列開(kāi)頭電容濾波器的管腳排列如圖3所示。     管腳功能定義如下:     CLK:時(shí)鐘輸入。     OP OUT:獨(dú)立運(yùn)放的輸出端。     OP INT:獨(dú)立運(yùn)放的同相輸入端。     OUT:濾波器輸出。     IN:濾波器輸入。     V-:負(fù)電源 。雙電源供電時(shí)搛-2.375~-5.5V之間的電壓,單電源供電時(shí)V--=-V。     V+:正電源。雙電源供電時(shí)V+=+2.35~+5.5V,單電源供電時(shí)V+=+4.75~+11.0V。     GND:地線。單電源工作時(shí)GND端必須用電源電壓的一半作偏置電壓。     NC:空腳,無(wú)連線。     MAX29X的極限電氣參數(shù)如下:     電源(V+~V-):12V     輸入電壓(任意腳):V--0.3V≤VIN≤V++0.3V     連續(xù)工作時(shí)的功耗:8腳塑封DIP:727mW;8腳SO:471mW;16腳寬SO:762mW;8腳瓷封DIP:640mW。     工作溫度范圍:MAX29-C-:0℃~+70℃;MAX29-E-:-40℃~+85℃;MAX29-MJA:-55℃~+125℃;保存溫度范圍:-65℃~+160℃;焊接溫度(10秒):+300℃;     大多數(shù)的形狀電容濾波器都采用四節(jié)級(jí)連結(jié)構(gòu),每一節(jié)包含兩個(gè)濾波器極點(diǎn)。這種方法的特點(diǎn)就是易于設(shè)計(jì)。但采用這種方法設(shè)計(jì)出來(lái)的濾波器的特性對(duì)所用元件的元件值偏差很敏感。基于以上考慮,MAX29X系列用帶有相加和比例功能的開(kāi)關(guān)電容持了梯形無(wú)源濾波器,這種方法保持了梯形無(wú)源濾波器的優(yōu)點(diǎn),在這種結(jié)構(gòu)中每個(gè)元件的影響作用是對(duì)于整個(gè)頻率響應(yīng)曲線的,某元件值的誤差將會(huì)分散到所有的極點(diǎn),因此不值像四節(jié)級(jí)連結(jié)構(gòu)那樣對(duì)某一個(gè)極點(diǎn)特別明顯的影響。3 MAX29X的頻率特性     MAX29X的頻率特性如圖4所示。圖中的fs都假定為1kHz。4 設(shè)計(jì)考慮     下面對(duì)MAX29X系列形狀電容濾波器的使用做些討論。4.1 時(shí)鐘信號(hào)     MAX29X系列開(kāi)頭電容濾波器推薦使用的時(shí)鐘信號(hào)最高頻率為2.5MHz。根據(jù)對(duì)應(yīng)的時(shí)鐘頻率和拐角頻率的比值,MAX291/MAX292/MAX293/MAX294的拐角頻率最高為25kHz.MAX295/MAX296/MAX297的拐角頻率最高為50kHz 。     MAX29X系列開(kāi)關(guān)電容濾波器的時(shí)鐘信號(hào)既可幅外部時(shí)鐘直接驅(qū)動(dòng)也可由內(nèi)部振蕩器產(chǎn)生。使用外部時(shí)鐘時(shí),無(wú)論是采用單電源供電還是雙電源供電,CLK可直接和采用+5V供電的CMOS時(shí)鐘信號(hào)發(fā)生器的輸出相連。通過(guò)調(diào)整外部時(shí)鐘的頻率,可完成濾波器拐角的實(shí)時(shí)調(diào)整。     當(dāng)使用內(nèi)部時(shí)鐘時(shí),振蕩器的頻率由接在CLK端上的電容VCOSC決定:     fCOSC (kHz)=105/3COSC (pF) 4.2 供電     MAX29X系列開(kāi)關(guān)電容濾波器既可用單電源工作也可用雙電源工作。雙電源供電時(shí)的電源電壓范圍為±2.375~±5.5V。在實(shí)際電路中一般要在正負(fù)電源和GND之間接一旁路電容。     當(dāng)采用單電源供電時(shí),V-端接地,而GND端要通過(guò)電阻分壓獲得一個(gè)電壓參考,該電壓參考的電壓值為1/2的電源電壓,參見(jiàn)圖5。4.3 輸入信號(hào)幅度范圍限制     MAX29X允許的輸入信號(hào)的最大范圍為V--0.3V~V++0.3V。一般情況下在+5V單電源供電時(shí)輸入信號(hào)范圍取1V~4V,±5V雙電源供電時(shí),輸入信號(hào)幅度范圍取±4V。如果輸入信號(hào)超過(guò)此范圍,總諧波失真THD和噪聲就大大增加;同樣如果輸入信號(hào)幅度過(guò)小(VP-P<1V),也會(huì)造成THD和噪聲的增加。4.4 獨(dú)立運(yùn)算放大器的用法     MAX29X中都設(shè)計(jì)有一個(gè)獨(dú)立的運(yùn)算放大器,這個(gè)放大器和濾波器的實(shí)現(xiàn)無(wú)直接關(guān)系,用這個(gè)放大器可組成一個(gè)一階和二階濾波器,用于實(shí)現(xiàn)MAX29X之前的反混疊濾波功能鄞MAX29X之后的時(shí)鐘噪聲抑制功能。這個(gè)運(yùn)算放大器的反相端已在內(nèi)部和GND相連。     圖6是用該獨(dú)立運(yùn)放組成的2階低通濾波器的電路,它的拐角頻率為10kHz,輸入阻抗為22Ω,可滿足MAX29X形狀電容濾波器的最小負(fù)載要求(MAX29X的輸出負(fù)載要求不小于20kΩ)可以通過(guò)改變R1、R2、R3、C1、C2的元件值改變拐角頻率。具體的元件值和拐角頻率的對(duì)應(yīng)關(guān)系參見(jiàn)表1。

    標(biāo)簽: 29X MAX 29 8階

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

    上傳用戶:macarco

  • 38V/100A可直接并聯(lián)大功率AC/DC變換器

    38V/100A可直接并聯(lián)大功率AC/DC變換器 隨著電力電子技術(shù)的發(fā)展,電源技術(shù)被廣泛應(yīng)用于計(jì)算機(jī)、工業(yè)儀器儀表、軍事、航天等領(lǐng)域,涉及到國(guó)民經(jīng)濟(jì)各行各業(yè)。特別是近年來(lái),隨著IGBT的廣泛應(yīng)用,開(kāi)關(guān)電源向更大功率方向發(fā)展。研制各種各樣的大功率,高性能的開(kāi)關(guān)電源成為趨勢(shì)。某電源系統(tǒng)要求輸入電壓為AC220V,輸出電壓為DC38V,輸出電流為100A,輸出電壓低紋波,功率因數(shù)>0.9,必要時(shí)多臺(tái)電源可以直接并聯(lián)使用,并聯(lián)時(shí)的負(fù)載不均衡度<5%。   設(shè)計(jì)采用了AC/DC/AC/DC變換方案。一次整流后的直流電壓,經(jīng)過(guò)有源功率因數(shù)校正環(huán)節(jié)以提高系統(tǒng)的功率因數(shù),再經(jīng)半橋變換電路逆變后,由高頻變壓器隔離降壓,最后整流輸出直流電壓。系統(tǒng)的主要環(huán)節(jié)有DC/DC電路、功率因數(shù)校正電路、PWM控制電路、均流電路和保護(hù)電路等。 1 有源功率因數(shù)校正環(huán)節(jié) 由于系統(tǒng)的功率因數(shù)要求0.9以上,采用二極管整流是不能滿足要求的,所以,加入了有源功率因數(shù)校正環(huán)節(jié)。采用UC3854A/B控制芯片來(lái)組成功率因數(shù)電路。UC3854A/B是Unitrode公司一種新的高功率因數(shù)校正器集成控制電路芯片,是在UC3854基礎(chǔ)上的改進(jìn)。其特點(diǎn)是:采用平均電流控制,功率因數(shù)接近1,高帶寬,限制電網(wǎng)電流失真≤3%[1]。圖1是由UC3854A/B控制的有源功率因數(shù)校正電路。   該電路由兩部分組成。UC3854A/B及外圍元器件構(gòu)成控制部分,實(shí)現(xiàn)對(duì)網(wǎng)側(cè)輸入電流和輸出電壓的控制。功率部分由L2,C5,V等元器件構(gòu)成Boost升壓電路。開(kāi)關(guān)管V選擇西門(mén)康公司的SKM75GB123D模塊,其工作頻率選在35kHz。升壓電感L2為2mH/20A。C5采用四個(gè)450V/470μF的電解電容并聯(lián)。因?yàn)椋O(shè)計(jì)的PFC電路主要是用在大功率DC/DC電路中,所以,在負(fù)載輕的時(shí)候不進(jìn)行功率因數(shù)校正,當(dāng)負(fù)載較大時(shí)功率因數(shù)校正電路自動(dòng)投入使用。此部分控制由圖1中的比較器部分來(lái)實(shí)現(xiàn)。R10及R11是負(fù)載檢測(cè)電阻。當(dāng)負(fù)載較輕時(shí),R10及R11上檢測(cè)的信號(hào)輸入給比較器,使其輸出端為低電平,D2導(dǎo)通,給ENA(使能端)低電平使UC3854A/B封鎖。在負(fù)載較大時(shí)ENA為高電平才讓UC3854A/B工作。D3接到SS(軟啟動(dòng)端),在負(fù)載輕時(shí)D3導(dǎo)通,使SS為低電平;當(dāng)負(fù)載增大要求UC3854A/B工作時(shí),SS端電位從零緩慢升高,控制輸出脈沖占空比慢慢增大實(shí)現(xiàn)軟啟動(dòng)。 2 DC/DC主電路及控制部分分析 2.1 DC/DC主電路拓?fù)?在大功率高頻開(kāi)關(guān)電源中,常用的主變換電路有推挽電路、半橋電路、全橋電路等[2]。其中推挽電路的開(kāi)關(guān)器件少,輸出功率大,但開(kāi)關(guān)管承受電壓高(為電源電壓的2倍),且變壓器有六個(gè)抽頭,結(jié)構(gòu)復(fù)雜;全橋電路開(kāi)關(guān)管承受的電壓不高,輸出功率大,但是需要的開(kāi)關(guān)器件多(4個(gè)),驅(qū)動(dòng)電路復(fù)雜。半橋電路開(kāi)關(guān)管承受的電壓低,開(kāi)關(guān)器件少,驅(qū)動(dòng)簡(jiǎn)單。根據(jù)對(duì)各種拓?fù)浞桨傅墓こ袒瘜?shí)現(xiàn)難度,電氣性能以及成本等指標(biāo)的綜合比較,本電源選用半橋式DC/DC變換器作為主電路。圖2為大功率開(kāi)關(guān)電源的主電路拓?fù)鋱D。

    標(biāo)簽: 100 38 AC DC

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

    上傳用戶:ukuk

  • TLC2543 中文資料

    TLC2543是TI公司的12位串行模數(shù)轉(zhuǎn)換器,使用開(kāi)關(guān)電容逐次逼近技術(shù)完成A/D轉(zhuǎn)換過(guò)程。由于是串行輸入結(jié)構(gòu),能夠節(jié)省51系列單片機(jī)I/O資源;且價(jià)格適中,分辨率較高,因此在儀器儀表中有較為廣泛的應(yīng)用。 TLC2543的特點(diǎn) (1)12位分辯率A/D轉(zhuǎn)換器; (2)在工作溫度范圍內(nèi)10μs轉(zhuǎn)換時(shí)間; (3)11個(gè)模擬輸入通道; (4)3路內(nèi)置自測(cè)試方式; (5)采樣率為66kbps; (6)線性誤差±1LSBmax; (7)有轉(zhuǎn)換結(jié)束輸出EOC; (8)具有單、雙極性輸出; (9)可編程的MSB或LSB前導(dǎo); (10)可編程輸出數(shù)據(jù)長(zhǎng)度。 TLC2543的引腳排列及說(shuō)明    TLC2543有兩種封裝形式:DB、DW或N封裝以及FN封裝,這兩種封裝的引腳排列如圖1,引腳說(shuō)明見(jiàn)表1 TLC2543電路圖和程序欣賞 #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit clock=P1^0; sbit d_in=P1^1; sbit d_out=P1^2; sbit _cs=P1^3; uchar a1,b1,c1,d1; float sum,sum1; double  sum_final1; double  sum_final; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar wei[]={0xf7,0xfb,0xfd,0xfe};  void delay(unsigned char b)   //50us {           unsigned char a;           for(;b>0;b--)                     for(a=22;a>0;a--); }  void display(uchar a,uchar b,uchar c,uchar d) {    P0=duan[a]|0x80;    P2=wei[0];    delay(5);    P2=0xff;    P0=duan[b];    P2=wei[1];    delay(5);   P2=0xff;   P0=duan[c];   P2=wei[2];   delay(5);   P2=0xff;   P0=duan[d];   P2=wei[3];   delay(5);   P2=0xff;   } uint read(uchar port) {   uchar  i,al=0,ah=0;   unsigned long ad;   clock=0;   _cs=0;   port<<=4;   for(i=0;i<4;i++)  {    d_in=port&0x80;    clock=1;    clock=0;    port<<=1;  }   d_in=0;   for(i=0;i<8;i++)  {    clock=1;    clock=0;  }   _cs=1;   delay(5);   _cs=0;   for(i=0;i<4;i++)  {    clock=1;    ah<<=1;    if(d_out)ah|=0x01;    clock=0; }   for(i=0;i<8;i++)  {    clock=1;    al<<=1;    if(d_out) al|=0x01;    clock=0;  }   _cs=1;   ad=(uint)ah;   ad<<=8;   ad|=al;   return(ad); }  void main()  {   uchar j;   sum=0;sum1=0;   sum_final=0;   sum_final1=0;    while(1)  {              for(j=0;j<128;j++)          {             sum1+=read(1);             display(a1,b1,c1,d1);           }            sum=sum1/128;            sum1=0;            sum_final1=(sum/4095)*5;            sum_final=sum_final1*1000;            a1=(int)sum_final/1000;            b1=(int)sum_final%1000/100;            c1=(int)sum_final%1000%100/10;            d1=(int)sum_final%10;            display(a1,b1,c1,d1);           }         } 

    標(biāo)簽: 2543 TLC

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

    上傳用戶:shen1230

  • 單片機(jī)指令系統(tǒng)原理

    單片機(jī)指令系統(tǒng)原理 51單片機(jī)的尋址方式 學(xué)習(xí)匯編程序設(shè)計(jì),要先了解CPU的各種尋址法,才能有效的掌握各個(gè)命令的用途,尋址法是命令運(yùn)算碼找操作數(shù)的方法。在我們學(xué)習(xí)的8051單片機(jī)中,有6種尋址方法,下面我們將逐一進(jìn)行分析。 立即尋址 在這種尋址方式中,指令多是雙字節(jié)的,一般第一個(gè)字節(jié)是操作碼,第二個(gè)字節(jié)是操作數(shù)。該操作數(shù)直接參與操作,所以又稱(chēng)立即數(shù),有“#”號(hào)表示。立即數(shù)就是存放在程序存儲(chǔ)器中的常數(shù),換句話說(shuō)就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。 例如:MOV  A,#3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能是把立即數(shù)3AH送入累加器A中。MOV  DPTR,#8200H在前面學(xué)單片機(jī)的專(zhuān)用寄存器時(shí),我們已學(xué)過(guò),DPTR是一個(gè)16位的寄存器,它由DPH及DPL兩個(gè)8位的寄存器組成。這條指令的意思就是把立即數(shù)的高8位(即82H)送入DPH寄存器,把立即數(shù)的低8位(即00H)送入DPL寄存器。這里也特別說(shuō)明一下:在80C51單片機(jī)的指令系統(tǒng)中,僅有一條指令的操作數(shù)是16位的立即數(shù),其功能是向地址指針DPTR傳送16位的地址,即把立即數(shù)的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數(shù)直接以單元地址的形式給出,也就是在這種尋址方式中,操作數(shù)項(xiàng)給出的是參加運(yùn)算的操作數(shù)的地址,而不是操作數(shù)。例如:MOV  A,30H  這條指令中操作數(shù)就在30H單元中,也就是30H是操作數(shù)的地址,并非操作數(shù)。 在80C51單片機(jī)中,直接地址只能用來(lái)表示特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲(chǔ)器以及位地址空間,具體的說(shuō)就是:1、內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個(gè)單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區(qū)。20H-2FH地址單元。3、特殊功能寄存器。專(zhuān)用寄存器除以單元地址形式給出外,還可以以寄存器符號(hào)形式給出。例如下面我們分析的一條指令 MOV  IE,#85H 前面的學(xué)習(xí)我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV  IE,#85H 的形式表述,也可以MOV  80H,#85H的形式表述。 關(guān)于數(shù)據(jù)存儲(chǔ)器RAM的內(nèi)部情況,請(qǐng)查看我們課程的第十二課。 直接尋址是唯一能訪問(wèn)特殊功能寄存器的尋址方式! 大家來(lái)分析下面幾條指令:MOV  65H,A       ;將A的內(nèi)容送入內(nèi)部RAM的65H單元地址中MOV  A,direct    ;將直接地址單元的內(nèi)容送入A中MOV  direct,direct;將直接地址單元的內(nèi)容送直接地址單元MOV  IE,#85H      ;將立即數(shù)85H送入中斷允許寄存器IE 前面我們已學(xué)過(guò),數(shù)據(jù)前面加了“#”的,表示后面的數(shù)是立即數(shù)(如#85H,就表示85H就是一個(gè)立即數(shù)),數(shù)據(jù)前面沒(méi)有加“#”號(hào)的,就表示后面的是一個(gè)地址地址(如,MOV 65H,A這條指令的65H就是一個(gè)單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個(gè)工作寄存器組共有32個(gè)通用寄存器,但在指令中只能使用當(dāng)前寄存器組(工作寄存器組的選擇在前面專(zhuān)用寄存器的學(xué)習(xí)中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來(lái)確定的),因此在使用前常需要通過(guò)對(duì)PSW中的RS1、RS0位的狀態(tài)設(shè)置,來(lái)進(jìn)行對(duì)當(dāng)前工作寄存器組的選擇。2、部份專(zhuān)用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進(jìn)位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱(chēng)就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC R3這條指令的意思是把寄存器R3中的內(nèi)容加1 從前面的學(xué)習(xí)中我產(chǎn)應(yīng)可以理解到,其實(shí)寄存器尋址方式就是對(duì)由PSW程序狀態(tài)字確定的工作寄存器組的R0-R7進(jìn)行讀/寫(xiě)操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過(guò)寄存器間接得到的,因此稱(chēng)為寄存器間接尋址。 MCS-51單片機(jī)規(guī)定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內(nèi)部或外部數(shù)據(jù)存儲(chǔ)器的256個(gè)單元。為什么會(huì)是256個(gè)單元呢?我們知道,R0或者R1都是一個(gè)8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV  R0,#30H  ;將值30H加載到R0中    MOV  A,@R0    ;把內(nèi)部RAM地址30H內(nèi)的值放到累加器A中    MOVX A,@R0    ;把外部RAM地址30H內(nèi)的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個(gè)16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器時(shí),我們通常就用DPTR做為間址寄存器。例:MOV   DPTR,#1234H  ;將DPTR值設(shè)為1234H(16位)    MOVX  A,@DPTR      ;將外部RAM或I/O地址1234H內(nèi)的值放到累加器A中 在執(zhí)行PUSH(壓棧)和POP(出棧)指令時(shí),采用堆棧指針SP作寄存器間接尋址。例:PUSH  30H    ;把內(nèi)部RAM地址30H內(nèi)的值放到堆棧區(qū)中堆棧區(qū)是由SP寄存器指定的,如果執(zhí)行上面這條命令前,SP為60H,命令執(zhí)行后會(huì)把內(nèi)部RAM地址30H內(nèi)的值放到RAM的61H內(nèi)。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個(gè),R0、R1、DPTR、SP 寄存器間接尋址范圍總結(jié):1、內(nèi)部RAM低128單元。對(duì)內(nèi)部RAM低128單元的間接尋址,應(yīng)使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對(duì)外部RAM64KB的間接尋址,應(yīng)使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內(nèi)容送入累加器A中。外部RAM的低256單元是一個(gè)特殊的尋址區(qū),除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX  A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內(nèi)容送入累加器A。 堆棧操作指令(PUSH和POP)也應(yīng)算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問(wèn)特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號(hào)的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱(chēng)前面加前綴標(biāo)志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計(jì)數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時(shí),把兩者的內(nèi)容相加,所得到的結(jié)果作為操作數(shù)的地址。這種方式常用于訪問(wèn)程序存儲(chǔ)器ROM中的數(shù)據(jù)表格,即查表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫(xiě)入,也就是說(shuō)變址尋址這種方式只能對(duì)程序存儲(chǔ)器進(jìn)行尋址,或者說(shuō)它是專(zhuān)門(mén)針對(duì)程序存儲(chǔ)器的尋址方式。例:MOVC  A,@A+DPTR這條指令的功能是把DPTR和A的內(nèi)容相加,再把所得到的程序存儲(chǔ)器地址單元的內(nèi)容送A假若指令執(zhí)行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數(shù)地址就是54H+3F21H=3F75H。如果3F75H單元中的內(nèi)容是7FH,則執(zhí)行這條指令后,累加器A中的內(nèi)容就是7FH。 變址尋址的指令只有三條,分別如下:JMP    @A+DPTRMOVC   A,@A+DPTRMOVC   A,@A+PC 第一條指令JMP @A+DPTR這是一條無(wú)條件轉(zhuǎn)移指令,這條指令的意思就是DPTR加上累加器A的內(nèi)容做為一個(gè)16位的地址,執(zhí)行JMP這條指令是,程序就轉(zhuǎn)移到A+DPTR指定的地址去執(zhí)行。 第二、三條指令MOVC   A,@A+DPTR和MOVC   A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來(lái)卻有一定的差別,現(xiàn)詳細(xì)說(shuō)明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個(gè)16位的數(shù)據(jù)指針寄存器,按理,它們的尋址范圍都應(yīng)是64K。我們?cè)趯W(xué)習(xí)特殊功能寄存器時(shí)已知道,程序計(jì)數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說(shuō),PC的值是隨程序的執(zhí)行情況自動(dòng)改變的,我們不可以隨便的給PC賦值。而DPTR是一個(gè)數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進(jìn)行賦值。我們?cè)倏粗噶頜OVC   A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個(gè)地址,而PC是固定的,累加器A是一個(gè)8位的寄存器,它的尋址范圍是256個(gè)地址單元。講到這里,大家應(yīng)可明白,MOVC   A,@A+PC這條指令的尋址范圍其實(shí)就是只能在當(dāng)前指令下256個(gè)地址單元。所在,這在我們實(shí)際應(yīng)用中,可能就會(huì)有一個(gè)問(wèn)題,如果我們需要查詢的數(shù)據(jù)表在256個(gè)地址單元之內(nèi),則可以用MOVC   A,@A+PC這條指令進(jìn)行查表操作,如果超過(guò)了256個(gè)單元,則不能用這條指令進(jìn)行查表操作。剛才我們已說(shuō)到,DPTR是一個(gè)數(shù)據(jù)指針,這個(gè)數(shù)據(jù)指針我們可以給它賦值操作的。通過(guò)賦值操作。我們可以使MOVC   A,@A+DPTR這條指令的尋址范圍達(dá)到64K。這就是這兩條指令在實(shí)際應(yīng)用當(dāng)中要注意的問(wèn)題。 變址尋址方式是MCS-51單片機(jī)所獨(dú)有的一種尋址方式。 位尋址 80C51單片機(jī)有位處理功能,可以對(duì)數(shù)據(jù)位進(jìn)行操作,因此就有相應(yīng)的位尋址方式。所謂位尋址,就是對(duì)內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個(gè)位,直接加以置位為1或復(fù)位為0。 位尋址的范圍,也就是哪些部份可以進(jìn)行位尋址: 1、我們?cè)诘谑n學(xué)習(xí)51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)時(shí),我們已知道在單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM的低128單元中有一個(gè)區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個(gè)單元,一個(gè)單元是8位,所以位尋址區(qū)共有128位。這128位都單獨(dú)有一個(gè)位地址,其位地址的名字就是00H-7FH。這里就有一個(gè)比較麻煩的問(wèn)題需要大家理解清楚了。我們?cè)谇懊娴膶W(xué)習(xí)中00H、01H。。。。7FH等等,所表示的都是一個(gè)字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們?cè)谥噶钪校蛘咴诔绦蛑腥绾蝸?lái)區(qū)分它是一個(gè)單元地址還是一個(gè)位地址呢?這個(gè)問(wèn)題,也就是我們現(xiàn)在正在研究的位尋址的一個(gè)重要問(wèn)題。其實(shí),區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應(yīng)的指令形式的。這個(gè)問(wèn)題我們?cè)诤竺娴闹噶钕到y(tǒng)學(xué)習(xí)中再加以論述。 2、對(duì)專(zhuān)用寄存器位尋址。這里要說(shuō)明一下,不是所有的專(zhuān)用寄存器都可以位尋址的。具體哪些專(zhuān)用寄存器可以哪些專(zhuān)用寄存器不可以,請(qǐng)大家回頭去看看我們前面關(guān)于專(zhuān)用寄存器的相關(guān)文章。一般來(lái)說(shuō),地址單元可以被8整除的專(zhuān)用寄存器,通常都可以進(jìn)行位尋址,當(dāng)然并不是全部,大家在應(yīng)用當(dāng)中應(yīng)引起注意。 專(zhuān)用寄存器的位尋址表示方法: 下面我們以程序狀態(tài)字PSW來(lái)進(jìn)行說(shuō)明 D7 D6 D5 D4 D3 D2 D1 D0 CY   AC  F0  RS1  RS0  OV    P  1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H   MOV  C,D5H 2、位名稱(chēng)表示:表示該位的名稱(chēng),例如PSW的位5是F0,所以可以用F0表示   MOV  C,F(xiàn)0 3、單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5    MOV  C,D0H.5 4、專(zhuān)用寄存器符號(hào)加位表示:例如PSW.5    MOV C,PSW.5 這四種方法實(shí)現(xiàn)的功能都是相同的,只是表述的方式不同而已。 例題:   1. 說(shuō)明下列指令中源操作數(shù)采用的尋址方式。   MOV R5,R7 答案:寄存器尋址方式   MOV A,55H 直接尋址方式   MOV A,#55H 立即尋址方式   JMP @A+DPTR 變址尋址方式   MOV 30H,C 位尋址方式   MOV A,@R0 間接尋址方式   MOVX A,@R0 間接尋址方式 改錯(cuò)題   請(qǐng)判斷下列的MCS-51單片機(jī)指令的書(shū)寫(xiě)格式是否有錯(cuò),若有,請(qǐng)說(shuō)明錯(cuò)誤原因。   MOV R0,@R3 答案:間址寄存器不能使用R2~R7。   MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。   ADD R0,R1 運(yùn)算指令中目的操作數(shù)必須為累加器A,不可為R0。   MUL AR0 乘法指令中的乘數(shù)應(yīng)在B寄存器中,即乘法指令只可使用AB寄存器組合。

    標(biāo)簽: 單片機(jī)指令 系統(tǒng)原理

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

    上傳用戶:caozhizhi

  • arm指令集(1)

    arm指令集(1)  ARM跳轉(zhuǎn)指令可以從當(dāng)前指令向前或向后的32MB地址空間跳轉(zhuǎn)。這類(lèi)跳轉(zhuǎn)指令有以下4種。   (1)B 跳4專(zhuān)指令   B〔條件) (地址)   B指令屬于ARM指令集,是最簡(jiǎn)單的分支指令。一旦遇到一個(gè)B指令,ARM處理器將立即跳轉(zhuǎn)到給定的地址,從那里繼續(xù)執(zhí)行。注意:存儲(chǔ)在分支指令中的實(shí)際值是相對(duì)當(dāng)前R15的值的一個(gè)偏移量,而不是一個(gè)絕對(duì)地址。它的值由匯編器來(lái)計(jì)算,是24位有符號(hào)數(shù),左移兩位后有符號(hào)擴(kuò)展為32位,表示的有效偏移位為26位(+/- 32 MB)。   (2)BL 帶返回的跳轉(zhuǎn)指令   BI,〔條件) (地址)   BL指令也屬于ARM指令集,是另一個(gè)分支指令。就在分支之前,在寄存器R14中裝載上R15的內(nèi)容,因此可以重新裝載R14到R15中來(lái)返回到這個(gè)分支之后的那個(gè)指令處執(zhí)行,它是子例程的一個(gè)基本但強(qiáng)力的實(shí)現(xiàn)。   (3)BLX 帶返回和狀態(tài)切換的跳轉(zhuǎn)指令   BLX <地址>   BLX指令有兩種格式,第1種格式的BLX指令記作BLX(1)。BLX(1)從ARM指令集跳轉(zhuǎn)到指令中指定的目標(biāo)地址,并將程序狀態(tài)切換到Thumb狀態(tài),該指令同時(shí)將PC寄存器的內(nèi)容復(fù)制到LR寄存器中。   BLX(1)指令屬于無(wú)條件執(zhí)行的指令。   第2種格式的BLX指令記作BLX(2)。BLX(2)指令從ARM指令集跳轉(zhuǎn)到指令中指定的目標(biāo)地址,目標(biāo)地址的指令可以是ARM指令,也可以是Thumb指令。目標(biāo)地址放在指令中的寄存器<dest>中,該地址的bit[0]值為0,目標(biāo)地址處的指令類(lèi)型由CPSR中的T位決定。該指令同時(shí)將PC寄存器的內(nèi)容復(fù)制到LR寄存器中。   (4)BX 帶狀態(tài)切換的跳轉(zhuǎn)指令   BX(條件) (dest)   BX指令跳轉(zhuǎn)到指令中指定的目標(biāo)地址,目標(biāo)地址處的指令可以是ARM指令,也可以是Thumb指令。目標(biāo)地址值為指令的值和0xFl·FFFFFF做“與”操作的結(jié)果,目標(biāo)地址處的指令類(lèi)型由寄存器決定。

    標(biāo)簽: arm 指令集

    上傳時(shí)間: 2014-12-27

    上傳用戶:laomv123

  • 8051單片機(jī)系統(tǒng)擴(kuò)展與接口技術(shù)

    8051單片機(jī)系統(tǒng)擴(kuò)展與接口技術(shù):第一節(jié)   8051 單片機(jī)系統(tǒng)擴(kuò)展概述第二節(jié)  單片機(jī)外部存儲(chǔ)器擴(kuò)展第三節(jié)  單片機(jī)輸入輸出(I/O)口擴(kuò)展及應(yīng)用第四節(jié)   LED顯示器接口電路及顯示程序第五節(jié)  單片機(jī)鍵盤(pán)接口技術(shù)第六節(jié) 單片機(jī)與數(shù)模(D/A)及模數(shù)(A/D)轉(zhuǎn)換1、地址總線(Address Bus,簡(jiǎn)寫(xiě)為AB)地址總線可傳送單片機(jī)送出的地址信號(hào),用于訪問(wèn)外部存儲(chǔ)器單元或I/O端口。A   地址總線是單向的,地址信號(hào)只是由單片機(jī)向外發(fā)出。B   地址總線的數(shù)目決定了可直接訪問(wèn)的存儲(chǔ)器單元的數(shù)目。例如N位地址,可以產(chǎn)生2N個(gè)連續(xù)地址編碼,因此可訪問(wèn)2N個(gè)存儲(chǔ)單元,即通常所說(shuō)的尋址范圍為 2N個(gè)地址單元。MCS—51單片機(jī)有十六位地址線,因此存儲(chǔ)器展范圍可達(dá)216 = 64KB地址單元。C   掛在總線上的器件,只有地址被選中的單元才能與CPU交換數(shù)據(jù),其余的都暫時(shí)不能操作,否則會(huì)引起數(shù)據(jù)沖突。2、數(shù)據(jù)總線(Data Bus,簡(jiǎn)寫(xiě)為DB)數(shù)據(jù)總線用于在單片機(jī)與存儲(chǔ)器之間或單片機(jī)與I/O端口之間傳送數(shù)據(jù)。A   單片機(jī)系統(tǒng)數(shù)據(jù)總線的位數(shù)與單片機(jī)處理數(shù)據(jù)的字長(zhǎng)一致。例如MCS—51單片機(jī)是8位字長(zhǎng),所以數(shù)據(jù)總線的位數(shù)也是8位。B   數(shù)據(jù)總線是雙向的,即可以進(jìn)行兩個(gè)方向的數(shù)據(jù)傳送。3、控制總線(Control Bus,簡(jiǎn)寫(xiě)為CB)控制總線實(shí)際上就是一組控制信號(hào)線,包括單片機(jī)發(fā)出的,以及從其它部件送給單片機(jī)的各種控制或聯(lián)絡(luò)信號(hào)。對(duì)于一條控制信號(hào)線來(lái)說(shuō),其傳送方向是單向的,但是由不同方向的控制信號(hào)線組合的控制總線則表示為雙向的。總線結(jié)構(gòu)形式大大減少了單片機(jī)系統(tǒng)中連接線的數(shù)目,提高了系統(tǒng)的可靠性,增加了系統(tǒng)的靈活性。此外,總線結(jié)構(gòu)也使擴(kuò)展易于實(shí)現(xiàn),各功能部件只要符合總線規(guī)范,就可以很方便地接入系統(tǒng),實(shí)現(xiàn)單片機(jī)擴(kuò)展。

    標(biāo)簽: 8051 單片機(jī) 系統(tǒng)擴(kuò)展 接口技術(shù)

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

    上傳用戶:assef

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

    單片機(jī)音樂(lè)中音調(diào)和節(jié)拍的確定方法:調(diào)號(hào)-音樂(lè)上指用以確定樂(lè)曲主音高度的符號(hào)。很明顯一個(gè)八度就有12個(gè)半音。A、B、C、D、E、F、G。經(jīng)過(guò)聲學(xué)家的研究,全世界都用這些字母來(lái)表示固定的音高。比如,A這個(gè)音,標(biāo)準(zhǔn)的音高為每秒鐘振動(dòng)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,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同A一樣高,人們也把這首歌曲叫做A調(diào)歌曲,或叫“唱A調(diào)”。1=C,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同C一樣高,或者說(shuō)“這歌曲唱C調(diào)”。同樣是“導(dǎo)”,不同的調(diào)唱起來(lái)的高低是不一樣的。各調(diào)的對(duì)應(yīng)的標(biāo)準(zhǔn)頻率為: 單片機(jī)演奏音樂(lè)時(shí)音調(diào)和節(jié)拍的確定方法 經(jīng)常看到一些剛學(xué)單片機(jī)的朋友對(duì)單片機(jī)演奏音樂(lè)比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識(shí)做一些簡(jiǎn)介,但愿能對(duì)單片機(jī)演奏音樂(lè)比較有興趣而又不知其解的朋友能有所啟迪。 一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能象電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。 在音樂(lè)中所謂“音調(diào)”,其實(shí)就是我們常說(shuō)的“音高”。在音樂(lè)中常把中央C上方的A音定為標(biāo)準(zhǔn)音高,其頻率f=440Hz。當(dāng)兩個(gè)聲音信號(hào)的頻率相差一倍時(shí),也即f2=2f1時(shí),則稱(chēng)f2比f(wàn)1高一個(gè)倍頻程, 在音樂(lè)中1(do)與 ,2(來(lái))與 ……正好相差一個(gè)倍頻程,在音樂(lè)學(xué)中稱(chēng)它相差一個(gè)八度音。在一個(gè)八度音內(nèi),有12個(gè)半音。以1—i八音區(qū)為例, 12個(gè)半音是: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個(gè)音階的分度基本上是以對(duì)數(shù)關(guān)系來(lái)劃分的。如果我們只要知道了這十二個(gè)音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。 知道了一個(gè)音符的頻率后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?一般說(shuō)來(lái),常采用的方法就是通過(guò)單片機(jī)的定時(shí)器定時(shí)中斷,將單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反,或者說(shuō)來(lái)回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時(shí)器予置不同的定時(shí)值就可實(shí)現(xiàn)。那么怎樣確定一個(gè)頻率所對(duì)應(yīng)的定時(shí)器的定時(shí)值呢?以標(biāo)準(zhǔn)音高A為例:   A的頻率f = 440 Hz,其對(duì)應(yīng)的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反的時(shí)間應(yīng)為:t = T/2 = 2272/2 = 1136μs這個(gè)時(shí)間t也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間。一般情況下,單片機(jī)奏樂(lè)時(shí),其定時(shí)器為工作方式1,它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時(shí)器的予置初值由下式來(lái)確定:    t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時(shí)器待確定的計(jì)數(shù)初值。因此定時(shí)器的高低計(jì)數(shù)器的初值為:     TH = THL / 256 = ( TALL – t* f0/12) / 256    TL = THL % 256 = ( TALL – t* f0/12) %256  將t=1136μs代入上面兩式(注意:計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值為 :    TH440Hz = (65536 – 1136 * 12/12) /256 = FBH    TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的予置初值。 音符的節(jié)拍我們可以舉例來(lái)說(shuō)明。在一張樂(lè)譜中,我們經(jīng)常會(huì)看到這樣的表達(dá)式,如1=C  、1=G …… 等等,這里1=C,1=G表示樂(lè)譜的曲調(diào),和我們前面所談的音調(diào)有很大的關(guān)聯(lián), 、 就是用來(lái)表示節(jié)拍的。以 為例加以說(shuō)明,它表示樂(lè)譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如:      其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),3、4的時(shí)長(zhǎng)為八分音符的一半,即為十六分音符長(zhǎng),5的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),6的時(shí)長(zhǎng)為四分音符長(zhǎng)。那么一拍到底該唱多長(zhǎng)呢?一般說(shuō)來(lái),如果樂(lè)曲沒(méi)有特殊說(shuō)明,一拍的時(shí)長(zhǎng)大約為400—500ms 。我們以一拍的時(shí)長(zhǎng)為400ms為例,則當(dāng)以四分音符為節(jié)拍時(shí),四分音符的時(shí)長(zhǎng)就為400ms,八分音符的時(shí)長(zhǎng)就為200ms,十六分音符的時(shí)長(zhǎng)就為100ms。可見(jiàn),在單片機(jī)上控制一個(gè)音符唱多長(zhǎng)可采用循環(huán)延時(shí)的方法來(lái)實(shí)現(xiàn)。首先,我們確定一個(gè)基本時(shí)長(zhǎng)的延時(shí)程序,比如說(shuō)以十六分音符的時(shí)長(zhǎng)為基本延時(shí)時(shí)間,那么,對(duì)于一個(gè)音符,如果它為十六分音符,則只需調(diào)用一次延時(shí)程序,如果它為八分音符,則只需調(diào)用二次延時(shí)程序,如果它為四分音符,則只需調(diào)用四次延時(shí)程序,依次類(lèi)推。通過(guò)上面關(guān)于一個(gè)音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機(jī)上實(shí)現(xiàn)演奏音樂(lè)了。具體的實(shí)現(xiàn)方法為:將樂(lè)譜中的每個(gè)音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲(chǔ)器中,通過(guò)程序取出一個(gè)音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個(gè)音符的相關(guān)參數(shù)……,如此直到播放完畢最后一個(gè)音符,根據(jù)需要也可循環(huán)不停地播放整個(gè)樂(lè)曲。另外,對(duì)于樂(lè)曲中的休止符,一般將其音調(diào)參數(shù)設(shè)為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂(lè)曲結(jié)束用節(jié)拍參數(shù)為00H來(lái)表示。下面給出部分音符(三個(gè)八度音)的頻率以及以單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(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)

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

    上傳用戶:哈哈haha

  • 并行接口

    7.1 并行接口概述并行接口和串行接口的結(jié)構(gòu)示意圖并行接口傳輸速率高,一般不要求固定格式,但不適合長(zhǎng)距離數(shù)據(jù)傳輸7.2 可編程并行接口芯片82C55     7.2.1  8255的基本功能 8255具有2個(gè)獨(dú)立的8位I/O口(A口和B口)和2個(gè)獨(dú)立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。作為輸入時(shí)提供三態(tài)緩沖器功能,作為輸出時(shí)提供數(shù)據(jù)鎖存功能。其中,A口具有雙向傳輸功能。8255有3種工作方式,方式0、方式1和方式2,能使用無(wú)條件、查詢和中斷等多種數(shù)據(jù)傳送方式完成CPU與I/O設(shè)備之間的數(shù)據(jù)交換。B口和C口的引腳具有達(dá)林頓復(fù)合晶體管驅(qū)動(dòng)能力,在1.5V時(shí)輸出1mA電流,適于作輸出端口。C口除用做數(shù)據(jù)口外,當(dāng)8255工作在方式1和方式2時(shí),C口的部分引腳作為固定的聯(lián)絡(luò)信號(hào)線。

    標(biāo)簽: 并行接口

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

    上傳用戶:oooool

主站蜘蛛池模板: 石棉县| 清原| 静安区| 沙洋县| 平原县| 塔河县| 绥江县| 汉寿县| 三门峡市| 张掖市| 河西区| 虎林市| 独山县| 夹江县| 泗阳县| 凌源市| 丰都县| 五原县| 布尔津县| 枣庄市| 镇巴县| 互助| 麻城市| 南开区| 昆山市| 武宁县| 建始县| 宁安市| 平遥县| 巴彦淖尔市| 泸溪县| 孙吴县| 岳西县| 屏山县| 芒康县| 三门峡市| 车致| 巢湖市| 清新县| 饶平县| 清徐县|