單片機指令系統(tǒng)原理 51單片機的尋址方式 學(xué)習(xí)匯編程序設(shè)計,要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運算碼找操作數(shù)的方法。在我們學(xué)習(xí)的8051單片機中,有6種尋址方法,下面我們將逐一進行分析。 立即尋址 在這種尋址方式中,指令多是雙字節(jié)的,一般第一個字節(jié)是操作碼,第二個字節(jié)是操作數(shù)。該操作數(shù)直接參與操作,所以又稱立即數(shù),有“#”號表示。立即數(shù)就是存放在程序存儲器中的常數(shù),換句話說就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。 例如:MOV A,#3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能是把立即數(shù)3AH送入累加器A中。MOV DPTR,#8200H在前面學(xué)單片機的專用寄存器時,我們已學(xué)過,DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組成。這條指令的意思就是把立即數(shù)的高8位(即82H)送入DPH寄存器,把立即數(shù)的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機的指令系統(tǒng)中,僅有一條指令的操作數(shù)是16位的立即數(shù),其功能是向地址指針DPTR傳送16位的地址,即把立即數(shù)的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數(shù)直接以單元地址的形式給出,也就是在這種尋址方式中,操作數(shù)項給出的是參加運算的操作數(shù)的地址,而不是操作數(shù)。例如:MOV A,30H 這條指令中操作數(shù)就在30H單元中,也就是30H是操作數(shù)的地址,并非操作數(shù)。 在80C51單片機中,直接地址只能用來表示特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲器以及位地址空間,具體的說就是:1、內(nèi)部數(shù)據(jù)存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區(qū)。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV IE,#85H 前面的學(xué)習(xí)我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV IE,#85H 的形式表述,也可以MOV 80H,#85H的形式表述。 關(guān)于數(shù)據(jù)存儲器RAM的內(nè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é)過,數(shù)據(jù)前面加了“#”的,表示后面的數(shù)是立即數(shù)(如#85H,就表示85H就是一個立即數(shù)),數(shù)據(jù)前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當(dāng)前寄存器組(工作寄存器組的選擇在前面專用寄存器的學(xué)習(xí)中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態(tài)設(shè)置,來進行對當(dāng)前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC R3這條指令的意思是把寄存器R3中的內(nèi)容加1 從前面的學(xué)習(xí)中我產(chǎn)應(yīng)可以理解到,其實寄存器尋址方式就是對由PSW程序狀態(tài)字確定的工作寄存器組的R0-R7進行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機規(guī)定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內(nèi)部或外部數(shù)據(jù)存儲器的256個單元。為什么會是256個單元呢?我們知道,R0或者R1都是一個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是一個16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數(shù)據(jù)存儲器時,我們通常就用DPTR做為間址寄存器。例:MOV DPTR,#1234H ;將DPTR值設(shè)為1234H(16位) MOVX A,@DPTR ;將外部RAM或I/O地址1234H內(nèi)的值放到累加器A中 在執(zhí)行PUSH(壓棧)和POP(出棧)指令時,采用堆棧指針SP作寄存器間接尋址。例:PUSH 30H ;把內(nèi)部RAM地址30H內(nèi)的值放到堆棧區(qū)中堆棧區(qū)是由SP寄存器指定的,如果執(zhí)行上面這條命令前,SP為60H,命令執(zhí)行后會把內(nèi)部RAM地址30H內(nèi)的值放到RAM的61H內(nèi)。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,R0、R1、DPTR、SP 寄存器間接尋址范圍總結(jié):1、內(nèi)部RAM低128單元。對內(nèi)部RAM低128單元的間接尋址,應(yīng)使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應(yīng)使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內(nèi)容送入累加器A中。外部RAM的低256單元是一個特殊的尋址區(qū),除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內(nèi)容送入累加器A。 堆棧操作指令(PUSH和POP)也應(yīng)算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標(biāo)志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內(nèi)容相加,所得到的結(jié)果作為操作數(shù)的地址。這種方式常用于訪問程序存儲器ROM中的數(shù)據(jù)表格,即查表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC A,@A+DPTR這條指令的功能是把DPTR和A的內(nèi)容相加,再把所得到的程序存儲器地址單元的內(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這是一條無條件轉(zhuǎn)移指令,這條指令的意思就是DPTR加上累加器A的內(nèi)容做為一個16位的地址,執(zhí)行JMP這條指令是,程序就轉(zhuǎn)移到A+DPTR指定的地址去執(zhí)行。 第二、三條指令MOVC A,@A+DPTR和MOVC A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現(xiàn)詳細說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個16位的數(shù)據(jù)指針寄存器,按理,它們的尋址范圍都應(yīng)是64K。我們在學(xué)習(xí)特殊功能寄存器時已知道,程序計數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說,PC的值是隨程序的執(zhí)行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進行賦值。我們再看指令MOVC A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應(yīng)可明白,MOVC A,@A+PC這條指令的尋址范圍其實就是只能在當(dāng)前指令下256個地址單元。所在,這在我們實際應(yīng)用中,可能就會有一個問題,如果我們需要查詢的數(shù)據(jù)表在256個地址單元之內(nèi),則可以用MOVC A,@A+PC這條指令進行查表操作,如果超過了256個單元,則不能用這條指令進行查表操作。剛才我們已說到,DPTR是一個數(shù)據(jù)指針,這個數(shù)據(jù)指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC A,@A+DPTR這條指令的尋址范圍達到64K。這就是這兩條指令在實際應(yīng)用當(dāng)中要注意的問題。 變址尋址方式是MCS-51單片機所獨有的一種尋址方式。 位尋址 80C51單片機有位處理功能,可以對數(shù)據(jù)位進行操作,因此就有相應(yīng)的位尋址方式。所謂位尋址,就是對內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個位,直接加以置位為1或復(fù)位為0。 位尋址的范圍,也就是哪些部份可以進行位尋址: 1、我們在第十二課學(xué)習(xí)51單片機的存儲器結(jié)構(gòu)時,我們已知道在單片機的內(nèi)部數(shù)據(jù)存儲器RAM的低128單元中有一個區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區(qū)共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學(xué)習(xí)中00H、01H。。。。7FH等等,所表示的都是一個字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們在指令中,或者在程序中如何來區(qū)分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現(xiàn)在正在研究的位尋址的一個重要問題。其實,區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應(yīng)的指令形式的。這個問題我們在后面的指令系統(tǒng)學(xué)習(xí)中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關(guān)于專用寄存器的相關(guān)文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進行位尋址,當(dāng)然并不是全部,大家在應(yīng)用當(dāng)中應(yīng)引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態(tài)字PSW來進行說明 D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P 1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H MOV C,D5H 2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示 MOV C,F(xiàn)0 3、單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5 MOV C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5 MOV C,PSW.5 這四種方法實現(xiàn)的功能都是相同的,只是表述的方式不同而已。 例題: 1. 說明下列指令中源操作數(shù)采用的尋址方式。 MOV R5,R7 答案:寄存器尋址方式 MOV A,55H 直接尋址方式 MOV A,#55H 立即尋址方式 JMP @A+DPTR 變址尋址方式 MOV 30H,C 位尋址方式 MOV A,@R0 間接尋址方式 MOVX A,@R0 間接尋址方式 改錯題 請判斷下列的MCS-51單片機指令的書寫格式是否有錯,若有,請說明錯誤原因。 MOV R0,@R3 答案:間址寄存器不能使用R2~R7。 MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。 ADD R0,R1 運算指令中目的操作數(shù)必須為累加器A,不可為R0。 MUL AR0 乘法指令中的乘數(shù)應(yīng)在B寄存器中,即乘法指令只可使用AB寄存器組合。
標(biāo)簽: 單片機指令 系統(tǒng)原理
上傳時間: 2013-11-11
上傳用戶:caozhizhi
本文列舉了單片機在熱處理爐中的一個實際應(yīng)用,并對設(shè)計的WDY-1 溫控儀的組成及主要電路的作用進行了詳細的介紹。關(guān)鍵詞:單片機;控制;溫度。單片微型計算機是隨著超大規(guī)模集成電路技術(shù)的發(fā)展而誕生的,由于它具有體積小、功能強、性價比高等特點,所以廣泛應(yīng)用于電子儀表、家用電器、節(jié)能裝置、軍事裝置、機器人、工業(yè)控制等諸多領(lǐng)域,使產(chǎn)品小型化、智能化,既提高了產(chǎn)品的功能和質(zhì)量,又降低了成本,簡化了設(shè)計。本文主要介紹單片機在溫度控制中的應(yīng)用。東風(fēng)汽車公司變速箱廠熱工科無罐爐,主要用于變速箱齒輪、軸類零件的滲碳熱處理工序。原來用XWB 型自動平衡記錄儀控制溫度,二位式控溫方式,使得具有大慣量性的無罐爐溫度波動大,誤差達±10℃左右。并且儀表使用環(huán)境教惡劣,油煙、灰塵常使儀表的機械傳動部分卡死,不但維修工作量大,而且產(chǎn)品質(zhì)量不易保證。隨著國民經(jīng)濟的發(fā)展,汽車工業(yè)不斷壯大,產(chǎn)品市場競爭激烈,優(yōu)勝劣汰。由此,我們經(jīng)過認真的調(diào)研和設(shè)計,尋求了一種更好的控溫方法,亦即本文介紹的WDY-1 溫控儀取代XWB 型自動平衡記錄儀。
標(biāo)簽: 單片機 中的應(yīng)用 溫度控制
上傳時間: 2013-10-13
上傳用戶:panpanpan
基于中穎SH79F164單片機的電子血壓計應(yīng)用:電子血壓計因具有無創(chuàng)性、操作簡單、攜帶方面等優(yōu)點,目前得到廣泛的應(yīng)用和推廣。無創(chuàng)檢測血壓的方法很多,如柯氏音法,測振法,超聲法、雙袖帶法、恒定袖帶法、逐拍跟蹤法、張力定測法和恒定容積法等。其中測振法就是我們常說的示波法,由于具有較好的抗干擾能力,能比較可靠地判斷血壓、實現(xiàn)血壓的自動檢測而成為無創(chuàng)血壓的主流。目前國內(nèi)外大多數(shù)電子血壓計都采用示波法。示波法的原理同柯氏音法,也需要充氣袖套來阻斷動脈流,但在放氣過程中不是檢測柯氏音,而是檢測氣袖內(nèi)氣體的振蕩波(測振法由此得名),這些振蕩波是袖帶與動脈耦合的結(jié)果,源于心血管周期內(nèi)血管壁由于收縮舒張引起的壓力脈動。理論計算和實踐均證明此振蕩波的幅度有一定的規(guī)律,與動脈收縮壓、平均壓以及舒張壓有一定的函數(shù)關(guān)系。針對示波法,本文將詳細介紹基于中穎電子SH79F164 單片機的血壓計系統(tǒng)方案與軟硬件實現(xiàn)。 在硬件電路設(shè)計方面,筆者參考了大量的資料,最終選定SH79F164 單片機作為主控IC。其理由是SH79F164 內(nèi)建資源豐富,既能節(jié)省大量外圍器件,又方便系統(tǒng)調(diào)試。SH79F164 內(nèi)建資源主要有:可編程儀表放大器(PGA)、帶通濾波器、固定增益放大器、恒流源放大器、10 位A/D 轉(zhuǎn)換器、時基定時器(RTC)。硬件部分構(gòu)成:壓力傳感器、SH79F164 單片機、LCD、袖套、充氣泵、放氣閥、按鍵等(見圖3)。
上傳時間: 2013-10-23
上傳用戶:muhongqing
單片機音樂中音調(diào)和節(jié)拍的確定方法:調(diào)號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有12個半音。A、B、C、D、E、F、G。經(jīng)過聲學(xué)家的研究,全世界都用這些字母來表示固定的音高。比如,A這個音,標(biāo)準的音高為每秒鐘振動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)準頻率為: 單片機演奏音樂時音調(diào)和節(jié)拍的確定方法 經(jīng)常看到一些剛學(xué)單片機的朋友對單片機演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。 在音樂中所謂“音調(diào)”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標(biāo)準音高,其頻率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)的頻率。 知道了一個音符的頻率后,怎樣讓單片機發(fā)出相應(yīng)頻率的聲音呢?一般說來,常采用的方法就是通過單片機的定時器定時中斷,將單片機上對應(yīng)蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機發(fā)出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現(xiàn)。那么怎樣確定一個頻率所對應(yīng)的定時器的定時值呢?以標(biāo)準音高A為例: A的頻率f = 440 Hz,其對應(yīng)的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機上對應(yīng)蜂鳴器的I/O口來回取反的時間應(yīng)為:t = T/2 = 2272/2 = 1136μs這個時間t也就是單片機上定時器應(yīng)有的中斷觸發(fā)時間。一般情況下,單片機奏樂時,其定時器為工作方式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)準音高A在單片機晶振頻率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)常會看到這樣的表達式,如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。可見,在單片機上控制一個音符唱多長可采用循環(huán)延時的方法來實現(xiàn)。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調(diào)用一次延時程序,如果它為八分音符,則只需調(diào)用二次延時程序,如果它為四分音符,則只需調(diào)用四次延時程序,依次類推。通過上面關(guān)于一個音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機上實現(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來表示。下面給出部分音符(三個八度音)的頻率以及以單片機晶振頻率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
上傳時間: 2013-10-20
上傳用戶:哈哈haha
18-2. D/A轉(zhuǎn)換器基本知識18-3. 光導(dǎo)智能小車硬件實現(xiàn)18-4. ADC0832基本應(yīng)用方法18-5. 光導(dǎo)智能小車軟件實現(xiàn)A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)分辨率 使輸出數(shù)字量變化一個相鄰數(shù)碼所需輸入模擬電壓的變化量。常 用二進制的位數(shù)表示。 例如:12位ADC的分辨率就是12位,一個10V滿刻度的12位ADC能分辨 輸入電壓變化最小是: 10V×1/212=2.4mV量化誤差 ADC把模擬量變?yōu)閿?shù)字量,用數(shù)字量近似表示模擬量,這個過程稱為量化。量化誤差是ADC的有限位數(shù)對模擬量進行量化而引起的誤差。A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)偏移誤差 指輸入信號為零時,輸出信號不為零的值,所以有時又稱為零值誤差。滿刻度誤差 滿刻度誤差又稱為增益誤差。指滿刻度輸出數(shù)碼所對應(yīng)的實際輸入電壓與理想輸入電壓之差。線性度 線性度有時又稱為非線性度,指轉(zhuǎn)換器實際的轉(zhuǎn)換特性與理想直線的最大偏差。A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)絕對精度 在一個轉(zhuǎn)換器中,任何數(shù)碼所對應(yīng)的實際模擬量輸入與理論模擬輸入之差的最大值,稱為絕對精度。對于ADC而言,可以在每一個階梯的水平中點進行測量,它包括了所有的誤差。轉(zhuǎn)換速率 指ADC能夠重復(fù)進行數(shù)據(jù)轉(zhuǎn)換的速度,即每秒轉(zhuǎn)換的次數(shù)。而完成一次A/D轉(zhuǎn)換所需的時間(包括穩(wěn)定時間),則是轉(zhuǎn)換速率的倒數(shù)。
標(biāo)簽: 單片機 應(yīng)用接口
上傳時間: 2013-11-25
上傳用戶:banlangen
在單片機應(yīng)用開發(fā)中,代碼的使用效率問題、單片機抗干擾性和可靠性等問題仍困擾著 工程師。為幫助工程師解決單片機設(shè)計上的難題,《電子工程專輯》網(wǎng)站特邀Holtek香 港分公司工程部處長鄧宏杰先生擔(dān)任《單片機應(yīng)用編程技巧》專題討論的嘉賓,與廣大 設(shè)計工程師交流單片機設(shè)計開發(fā)經(jīng)驗。現(xiàn)根據(jù)論壇中的討論歸納出單片機開發(fā)中應(yīng)掌握 的幾個基本技巧。一、 如何提高C語言編程代碼的效率鄧宏杰指出,用C語言進行單片機程序設(shè)計是單片機開發(fā)與應(yīng)用的必然趨勢。他強調(diào):“ 如果使用C編程時,要達到最高的效率,最好熟悉所使用的C編譯器。先試驗一下每條C語言編譯以后對應(yīng)的匯編語言的語句行數(shù),這樣就可以很明確的知道效率。在今后編程的 時候,使用編譯效率最高的語句。” 他指出,各家的C編譯器都會有一定的差異,故編譯效率也會有所不同,優(yōu)秀的嵌入式系統(tǒng)C編譯器代碼長度和執(zhí)行時間僅比以匯編語言編寫的同樣功能程度長5-20%。他說:“對于復(fù)雜而開發(fā)時間緊的項目時,可以采用C語言,但前提是要求你對該MCU系統(tǒng)的C語言和C編譯器非常熟悉,特別要注意該C編譯系統(tǒng)所能支持的數(shù)據(jù)類型和算法。雖然C語言是最普遍的一種高級語言,但由于不同的MCU廠家其C語言編譯系統(tǒng)是有所差別的,特別是在一些特殊功能模塊的操作上。所以如果對這些特性不了解,那么調(diào)試起來問題就會很 多,反而導(dǎo)致執(zhí)行效率低于匯編語言。” 二、 如何減少程序中的bug? 對于如何減少程序的bug,鄧宏杰給出了一些建議,他指出系統(tǒng)運行中應(yīng)考慮的超范圍管理參數(shù)有: 1.物理參數(shù)。這些參數(shù)主要是系統(tǒng)的輸入?yún)?shù),它包括激勵參數(shù)、采集處理中的運行參 數(shù)和處理結(jié)束的結(jié)果參數(shù)。合理設(shè)定這些邊界,將超出邊界的參數(shù)都視為非正常激勵或 非正常回應(yīng)進行出錯處理。 2.資源參數(shù)。這些參數(shù)主要是系統(tǒng)中的電路、器件、功能單元的資源,如記憶體容量、 存儲單元長度、堆疊深度。在程式設(shè)計中,對資源參數(shù)不允許超范圍使用。 3.應(yīng)用參數(shù)。這些應(yīng)用參數(shù)常表現(xiàn)為一些單片機、功能單元的應(yīng)用條件。如E2PROM的擦 寫次數(shù)與資料存儲時間等應(yīng)用參數(shù)界限。 4.過程參數(shù)。指系統(tǒng)運行中的有序變化的參數(shù)。
上傳時間: 2013-10-21
上傳用戶:chukeey
陷波器是無限沖擊響應(yīng)(IIR)數(shù)字濾波器,該濾波器可以用以下常系數(shù)線性差分方程表示:ΣΣ==−−−=MiNiiiinybinxany01)()()( (1)式中: x(n)和y(n)分別為輸人和輸出信號序列;和為濾波器系數(shù)。 iaib對式(1)兩邊進行z變換,得到數(shù)字濾波器的傳遞函數(shù)為: ΠΠΣΣ===−=−−−==NiiMiiNiiiMiiipzzzzbzazH1100)()()( (2)式中:和分別為傳遞函數(shù)的零點和極點。 izip由傳遞函數(shù)的零點和極點可以大致繪出頻率響應(yīng)圖。在零點處,頻率響應(yīng)出現(xiàn)極小值;在極點處,頻率響應(yīng)出現(xiàn)極大值。因此可以根據(jù)所需頻率響應(yīng)配置零點和極點,然后反向設(shè)計帶陷數(shù)字濾波器。考慮一種特殊情況,若零點在第1象限單位圓上,極點在單位圓內(nèi)靠近零點的徑向上。為了防止濾波器系數(shù)出現(xiàn)復(fù)數(shù),必須在z平面第4象限對稱位置配置相應(yīng)的共軛零點、共軛極點。 izip∗iz∗ip這樣零點、極點配置的濾波器稱為單一頻率陷波器,在頻率ωo處出現(xiàn)凹陷。而把極點設(shè)置在零的的徑向上距圓點的距離為l-μ處,陷波器的傳遞函數(shù)為: ))1()()1(())(()(2121zzzzzzzzzHμμ−−−−−−= (3)式(3)中μ越小,極點越靠近單位圓,則頻率響應(yīng)曲線凹陷越深,凹陷的寬度也越窄。當(dāng)需要消除窄帶干擾而不能對其他頻率有衰減時,陷波器是一種去除窄帶干擾的理想數(shù)字濾波器。當(dāng)要對幾個頻率同時進行帶陷濾波時,可以按(2)式把幾個單獨頻率的帶陷濾波器(3)式串接在一起。一個例子:設(shè)有一個輸入,它
上傳時間: 2013-10-18
上傳用戶:uuuuuuu
摘 要 瞬態(tài)仿真領(lǐng)域的許多工作需要獲得可視化數(shù)據(jù), 仿真電路不能將輸出參數(shù)繪制成圖形時研究工作將受到很大影響. 而權(quán)威電路仿真軟件PSpice 在這個方面不盡如人意. 本文提出了一種有效的解決辦法: 通過MATLAB 編程搭建一個PSpice 與MATLAB 的數(shù)據(jù)接口,使PSpice輸出數(shù)據(jù)文件可以導(dǎo)入到MATLAB中繪制圖形. 這令我們能夠很方便地獲得數(shù)據(jù)的規(guī)律以有效地分析仿真結(jié)果, 這項技術(shù)對于教學(xué)和工程實踐都有比較實際的幫助.關(guān)鍵詞: 瞬態(tài)仿真 仿真程序 PSpice MATLAB 可視化數(shù)據(jù)The Data Transfer from Pspice to MATLABWu hao Ning yuanzhong Liang yingAbstract Many works in the area of transient simulation has shown how a emulator such asPSpice can be interfaced to an control analysis package such as MATLAB to get viewdata. Thepaper describes how such interfaces can be made using the MATLAB programming. The platformas a typical platform will solve the problem that PSpice software sometimes can not draw the datato a picture. It can make us find the rule from numerous data very expediently, so we can analyzethe outcome of the simulation. And it also can be used in the field of education.Keywords Transient Simulation Emulator PSpice MATLAB Viewdata1 引言科學(xué)研究和工程應(yīng)用常需要進行電路仿真 PSpice可進行直流 交流 瞬態(tài)等基本電路特性分析 也可進行蒙托卡諾 MC 統(tǒng)計分析 最壞情況 Wcase 分析 優(yōu)化設(shè)計等復(fù)雜電路特性分析 它是國際上仿真電路的權(quán)威軟件 而MATLAB的主要特點有 高效方便的矩陣和數(shù)組運算 編程效率高 結(jié)構(gòu)化面向?qū)ο?方便的繪圖功能 用戶使用方便 工具箱功能強大 兩者各有著重點 兩種軟件結(jié)合應(yīng)用 對研究工作有很重要的意義香港理工大學(xué)Y. S. LEE 等人首先將PSpice和MATLAB結(jié)合 開發(fā)了電力電子電路優(yōu)化用的CAD 程序MATSPICE[6] 將兩者相結(jié)合的關(guān)鍵在于 如何用MATLAB 獲取PSpice的仿真數(shù)據(jù) 對此參考文獻 6 里沒有詳細敘述 本文著重說明用MATLAB 讀取PSpice仿真數(shù)據(jù)的具體方法本論文利用MATLAB對PSpice仿真出的數(shù)據(jù)處理繪制出后者無法得到或是效果不好的仿真圖形 下面就兩者結(jié)合使用的例子 進行具體說明
標(biāo)簽: MATLAB PSpice 數(shù)據(jù) 接口技術(shù)
上傳時間: 2013-10-20
上傳用戶:wuchunzhong
在游客游跡跟蹤與追溯系統(tǒng)中,產(chǎn)生大量不確定數(shù)據(jù),有效的Top-K查詢處理是不確定性數(shù)據(jù)管理中一項重要技術(shù)。研究了運用Top-K檢索不確定數(shù)據(jù)的問題,定義了不確定數(shù)據(jù)流元組的查詢語義,提出了一種在記錄向量的基礎(chǔ)上的不確定數(shù)據(jù)查詢算法,并利用實例演示了查詢的過程。該算法按照元組的得分值進行降序排列,概率值最高的前k個元組集合就是Top-K的查詢結(jié)果,實驗結(jié)果表明,本文的算法更具高效性和實用性。
標(biāo)簽: Top-K RFID 數(shù)據(jù)流 查詢
上傳時間: 2013-10-27
上傳用戶:l銀幕海
很多不同的廠家生產(chǎn)各種型號的計算機,它們運行完全不同的操作系統(tǒng),但TCP.IP協(xié)議族允許它們互相進行通信。這一點很讓人感到吃驚,因為它的作用已遠遠超出了起初的設(shè)想。T C P / I P起源于6 0年代末美國政府資助的一個分組交換網(wǎng)絡(luò)研究項目,到9 0年代已發(fā)展成為計算機之間最常應(yīng)用的組網(wǎng)形式。它是一個真正的開放系統(tǒng),因為協(xié)議族的定義及其多種實現(xiàn)可以不用花錢或花很少的錢就可以公開地得到。它成為被稱作“全球互聯(lián)網(wǎng)”或“因特網(wǎng)(Internet)”的基礎(chǔ),該廣域網(wǎng)(WA N)已包含超過1 0 0萬臺遍布世界各地的計算機。本章主要對T C P / I P協(xié)議族進行概述,其目的是為本書其余章節(jié)提供充分的背景知識。 TCP.IP協(xié)議 縮略語 ACK (ACKnowledgment) TCP首部中的確認標(biāo)志 API (Application Programming Interface) 應(yīng)用編程接口 ARP (Address Resolution Protocol) 地址解析協(xié)議 ARPANET(Defense Advanced Research Project Agency NETwork) (美國)國防部遠景研究規(guī)劃局 AS (Autonomous System) 自治系統(tǒng) ASCII (American Standard Code for Information Interchange) 美國信息交換標(biāo)準碼 ASN.1 (Abstract Syntax Notation One) 抽象語法記法1 BER (Basic Encoding Rule) 基本編碼規(guī)則 BGP (Border Gateway Protocol) 邊界網(wǎng)關(guān)協(xié)議 BIND (Berkeley Internet Name Domain) 伯克利I n t e r n e t域名 BOOTP (BOOTstrap Protocol) 引導(dǎo)程序協(xié)議 BPF (BSD Packet Filter) BSD 分組過濾器 CIDR (Classless InterDomain Routing) 無類型域間選路 CIX (Commercial Internet Exchange) 商業(yè)互聯(lián)網(wǎng)交換 CLNP (ConnectionLess Network Protocol) 無連接網(wǎng)絡(luò)協(xié)議 CRC (Cyclic Redundancy Check) 循環(huán)冗余檢驗 CSLIP (Compressed SLIP) 壓縮的S L I P CSMA (Carrier Sense Multiple Access) 載波偵聽多路存取 DCE (Data Circuit-terminating Equipment) 數(shù)據(jù)電路端接設(shè)備 DDN (Defense Data Network) 國防數(shù)據(jù)網(wǎng) DF (Don’t Fragment) IP首部中的不分片標(biāo)志 DHCP (Dynamic Host Configuration Protocol) 動態(tài)主機配置協(xié)議 DLPI (Data Link Provider Interface) 數(shù)據(jù)鏈路提供者接口 DNS (Domain Name System) 域名系統(tǒng) DSAP (Destination Service Access Point) 目的服務(wù)訪問點 DSLAM (DSL Access Multiplexer) 數(shù)字用戶線接入復(fù)用器 DSSS (Direct Sequence Spread Spectrum) 直接序列擴頻 DTS (Distributed Time Service) 分布式時間服務(wù) DVMRP (Distance Vector Multicast Routing Protocol) 距離向量多播選路協(xié)議 EBONE (European IP BackbONE) 歐洲I P主干網(wǎng) EOL (End of Option List) 選項清單結(jié)束 EGP (External Gateway Protocol) 外部網(wǎng)關(guān)協(xié)議 EIA (Electronic Industries Association) 美國電子工業(yè)協(xié)會 FCS (Frame Check Sequence) 幀檢驗序列 FDDI (Fiber Distributed Data Interface) 光纖分布式數(shù)據(jù)接口 FIFO (First In, First Out) 先進先出 FIN (FINish) TCP首部中的結(jié)束標(biāo)志 FQDN (Full Qualified Domain Name) 完全合格的域名 FTP (File Transfer Protocol) 文件傳送協(xié)議 HDLC (High-level Data Link Control) 高級數(shù)據(jù)鏈路控制 HELLO 選路協(xié)議 IAB (Internet Architecture Board) Internet體系結(jié)構(gòu)委員會 IANA (Internet Assigned Numbers Authority) Internet號分配機構(gòu) ICMP (Internet Control Message Protocol) Internet控制報文協(xié)議 IDRP (InterDomain Routing Protocol) 域間選路協(xié)議 IEEE (Institute of Electrical and Electronics Engineering) (美國)電氣與電子工程師協(xié)會 IEN (Internet Experiment Notes) 互聯(lián)網(wǎng)試驗注釋 IESG (Internet Engineering Steering Group) Internet工程指導(dǎo)小組 IETF (Internet Engineering Task Force) Internet工程專門小組 IGMP (Internet Group Management Protocol) Internet組管理協(xié)議 IGP (Interior Gateway Protocol) 內(nèi)部網(wǎng)關(guān)協(xié)議 IMAP (Internet Message Access Protocol) Internet報文存取協(xié)議 IP (Internet Protocol) 網(wǎng)際協(xié)議 I RTF (Internet Research Task Force) Internet研究專門小組 IS-IS (Intermediate System to Intermediate System Protocol) 中間系統(tǒng)到中間系統(tǒng)協(xié)議 ISN (Initial Sequence Number) 初始序號 ISO (International Organization for Standardization) 國際標(biāo)準化組織 ISOC (Internet SOCiety) Internet協(xié)會 LAN (Local Area Network) 局域網(wǎng) LBX (Low Bandwidth X) 低帶寬X LCP (Link Control Protocol) 鏈路控制協(xié)議 LFN (Long Fat Net) 長肥網(wǎng)絡(luò) LIFO (Last In, First Out) 后進先出 LLC (Logical Link Control) 邏輯鏈路控制 LSRR (Loose Source and Record Route) 寬松的源站及記錄路由 MBONE (Multicast Backbone On the InterNEt) Internet上的多播主干網(wǎng) MIB (Management Information Base) 管理信息庫 MILNET (MILitary NETwork) 軍用網(wǎng) MIME (Multipurpose Internet Mail Extensions) 通用I n t e r n e t郵件擴充 MSL (Maximum Segment Lifetime) 報文段最大生存時間 MSS (Maximum Segment Size) 最大報文段長度 M TA (Message Transfer Agent) 報文傳送代理 MTU (Maximum Transmission Unit) 最大傳輸單元 NCP (Network Control Protocol) 網(wǎng)絡(luò)控制協(xié)議 NFS (Network File System) 網(wǎng)絡(luò)文件系統(tǒng) NIC (Network Information Center) 網(wǎng)絡(luò)信息中心 NIT (Network Interface Tap) 網(wǎng)絡(luò)接口栓(S u n公司的一個程序) NNTP (Network News Transfer Protocol) 網(wǎng)絡(luò)新聞傳送協(xié)議 NOAO (National Optical Astronomy Observatories) 國家光學(xué)天文臺 NOP (No Operation) 無操作 NSFNET (National Science Foundation NETwork) 國家科學(xué)基金網(wǎng)絡(luò) NSI (NASA Science Internet) (美國)國家宇航局I n t e r n e t NTP (Network Time Protocol) 網(wǎng)絡(luò)時間協(xié)議 NVT (Network Virtual Terminal) 網(wǎng)絡(luò)虛擬終端 OSF (Open Software Foudation) 開放軟件基金 OSI (Open Systems Interconnection) 開放系統(tǒng)互連 OSPF (Open Shortest Path First) 開放最短通路優(yōu)先 PAWS (Protection Against Wrapped Sequence number) 防止回繞的序號 PDU (Protocol Data Unit) 協(xié)議數(shù)據(jù)單元 POSIX (Portable Operating System Interface) 可移植操作系統(tǒng)接口 PPP (Point-to-Point Protocol) 點對點協(xié)議 PSH (PuSH) TCP首部中的急迫標(biāo)志 RARP (Reverse Address Resolution Protocol) 逆地址解析協(xié)議 RFC (Request For Comments) Internet的文檔,其中的少部分成為標(biāo)準文檔 RIP (Routing Information Protocol) 路由信息協(xié)議 RPC (Remote Procedure Call) 遠程過程調(diào)用 RR (Resource Record) 資源記錄 RST (ReSeT) TCP首部中的復(fù)位標(biāo)志 RTO (Retransmission Time Out) 重傳超時 RTT (Round-Trip Time) 往返時間 SACK (Selective ACKnowledgment) 有選擇的確認 SLIP (Serial Line Internet Protocol) 串行線路I n t e r n e t協(xié)議 SMI (Structure of Management Information) 管理信息結(jié)構(gòu) SMTP (Simple Mail Transfer Protocol) 簡單郵件傳送協(xié)議 SNMP (Simple Network Management Protocol) 簡單網(wǎng)絡(luò)管理協(xié)議 SSAP (Source Service Access Point) 源服務(wù)訪問點 SSRR (Strict Source and Record Route) 嚴格的源站及記錄路由 SWS (Silly Window Syndrome) 糊涂窗口綜合癥 SYN (SYNchronous) TCP首部中的同步序號標(biāo)志 TCP (Transmission Control Protocol) 傳輸控制協(xié)議 TFTP (Trivial File Transfer Protocol) 簡單文件傳送協(xié)議 TLI (Transport Layer Interface) 運輸層接口 TTL (Ti m e - To-Live) 生存時間或壽命 TUBA (TCP and UDP with Bigger Addresses) 具有更長地址的T C P和U D P Telnet 遠程終端協(xié)議 UA (User Agent) 用戶代理 UDP (User Datagram Protocol) 用戶數(shù)據(jù)報協(xié)議 URG (URGent) TCP首部中的緊急指針標(biāo)志 UTC (Coordinated Universal Time) 協(xié)調(diào)的統(tǒng)一時間 UUCP (Unix-to-Unix CoPy) Unix到U n i x的復(fù)制 WAN (Wide Area Network) 廣域網(wǎng) WWW (World Wide Web) 萬維網(wǎng) XDR (eXternal Data Representation) 外部數(shù)據(jù)表示 XID (transaction ID) 事務(wù)標(biāo)識符 XTI (X/Open Transport Layer Interface) X/ O p e n運輸層接口
上傳時間: 2013-11-13
上傳用戶:tdyoung
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1