1.C語言和匯編語言在開發(fā)單片機時各有哪些優(yōu)缺點?答:匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。C語言是一種結構化的高級語言。其優(yōu)點是可讀性好,移植容易,是普遍使用的一種計算機語言。缺點是占用資源較多,執(zhí)行效率沒有匯編高。對于目前普遍使用的RISC架構的8bitMCU來說,其內(nèi)部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯后,會變成很多條機器碼,很容易出現(xiàn)ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而匯編語言,一條指令就對應一個機器碼,每一步執(zhí)行什幺動作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來也比較方便。所以在單片機開發(fā)中,我們還是建議采用匯編語言比較好。如果對單片機C語言有興趣,HOLTEK的單片機就有提供C編譯器,可以到HOLTEK的網(wǎng)站(www.holtek.com.cn)免費下載使用。
上傳時間: 2013-10-24
上傳用戶:qb1993225
□基于來電顯示技術,識別主人,利用手機或固定電話實現(xiàn)免接通,免費用的絕密遙控關及撤防?!鯁涡酒喙δ芸删幊淘O計,MCU內(nèi)核,有著十分靈活廣泛的應用(可定制特殊功能)。自動撥號的電話報警器方面:室內(nèi)手動延時布防,手機或固定電話免接通遙控撤防;撥號報警+現(xiàn)場報警(可選)。電話遙控開關方面:用于開啟電控門鎖,保險柜電控鎖,車庫電動門,電器開關...等。更多應用......?!鯁涡酒疃嗫纱嫒?組電話號碼(6個主人)不重碼,最后一組號碼可刷新,掉電不丟失,可保100年?!醴侵魅藫苋霟o效,主人需20秒內(nèi)連續(xù)撥通兩次遙控才有效(撤防或開關),操縱成功后會自動回撥遙控者電話一次,以表示遙控成功。絕不影響電話的正常使用。□循環(huán)撥打1-6組主人電話號碼報警15次,接聽報警時警聲提示,可同時選擇現(xiàn)場報警。無注冊用戶時,觸發(fā)報警將自動轉(zhuǎn)入連續(xù)現(xiàn)場報警1分鐘?!踅泳幚砉δ?,接聽報警期間,手機或固定電話按"#"鍵退出報警。未接警的號碼繼續(xù)打報警?!鮾H設計兩按鈕實現(xiàn)用戶注冊、信息刪除、室那手動布防撤防、輸出開關控制、報警模式設定,報警期間無法手動撤防。□兩種反復可編程報警模式。掉電不丟失。模式1:報警完畢自動撤防;模式2:報警完畢保持布防。□兩種自適應電路模式:DTMF解碼器接入模式和DTMF解碼器不接入模式。自動實現(xiàn)不同的電路設計實現(xiàn)不同的輸出控制功能。同一電路設計,通過增減硬部件即可實現(xiàn)不同的輸出功能,QL310上電時自動識別DTMF解碼器是否存在?!鮾陕肪曒敵觯浩渲幸宦份敵鲇糜诓僮饕籼崾炯皥缶瘯r加載到電話線路中供監(jiān)聽用。另一路為現(xiàn)場報警使用(可根據(jù)需要選用,這路只有在報警時才有輸出,設計時可通過加大功率提高警聲)?!鯛顟B(tài)記憶功能:布撤防狀態(tài)都有記憶功能(掉電不丟失)??杀苊獠汲贩榔陂g的偶然的停電再上電是狀態(tài)發(fā)生變化。比如,當前為布防狀態(tài),掉電再上電后還是保持布防狀態(tài)。□手動布撤防提示音,布撤防LED指示燈。□上電開機報警模式提示音,模式1發(fā)一聲提示音;模式2發(fā)兩聲提示音。□觸發(fā)端的信號智能檢測,因此可適應任何觸發(fā)信號:或高電平,或低電平,或高/低脈沖信號;無源的開關信號,如繼電器,干簧管或門磁開關等(由于觸發(fā)端內(nèi)部有上拉電阻)。標準的TTL電平,通過外接簡單的限幅電路可實現(xiàn)更高電平或脈沖的輸入(紅外探頭,防火探頭等)。特強抗干擾處理,長距離布線可抗強電磁干擾?!?0腳PDIP封裝及20腳SOP封裝?!?V低功耗。使用3.58M晶振?!豕I(yè)級設計,工作溫度:-40℃~+85℃
上傳時間: 2013-11-13
上傳用戶:lacsx
專利權盛群半導體公司在全球各地區(qū)已核準和申請中之專利權至少有160件以上,享有絕對之合法權益。與盛群公司MCU或其它產(chǎn)品有關的專利權并未被同意授權使用,任何經(jīng)由不當手段侵害盛群公司專利權之公司、組織或個人,盛群將采取一切可能的法律行動,遏止侵權者不當?shù)那謾嘈袨?,并追討盛群公司因侵權行為所受之損失、或侵權者所得之不法利益。 商標權盛群之名稱和標識、Holtek標識、HT-IDE、HT-ICE、MarvelSpeech、MusicMicro、AdlibMicro MagicVoice、GreenDialer、PagerPro、Q-Voice、TurboVoice、EasyVoice和HandyWriter都是盛群半導體公司在臺灣地區(qū)和其它國家的注冊商標。 著作權Copyright2006byHOLTEKSEMICONDUCTORINC.規(guī)格書中所出現(xiàn)的信息在出版當時相信是正確的,然而盛群對于規(guī)格內(nèi)容的使用不負責任。文中提到的應用其目的僅僅是用來做說明,盛群不保證或不表示這些應用沒有更深入的修改就能適用,也不推薦它的產(chǎn)品使用在會由于故障或其它原因可能會對人身造成危害的地方。盛群產(chǎn)品不授權使用于救生、維生器件或系統(tǒng)中做為關鍵器件。
上傳時間: 2013-10-12
上傳用戶:hui626493
基本數(shù)據(jù)類型(如字符型、整型、浮點型)的一個重要特征是只能具有單一的值。然而.許多情況下我們需要一種類型可以表示數(shù)據(jù)的集合,例如:如果使用基本類型表示整個班級學生的數(shù)學成績.則30個學生需要30個基本類型變量。如果可以構造一種類型來表示30個學生的全部數(shù)學成績,將會大大簡化操作。
上傳時間: 2013-11-09
上傳用戶:asddsd
精通MCS-51單片機絕世秘笈 MCS-51指令格式:標號:操作碼助記符第一操作數(shù),第二操作數(shù);注釋匯編語言程序的每一條語句都與計算機的某一條指令對應,所以必需熟悉指令系統(tǒng)。 指令 = 操作碼 + 操作數(shù)操作碼——表示了該指令所能執(zhí)行的操作功能。操作數(shù)——表示參加操作的數(shù)的本身或操作數(shù)所在的地址。
上傳時間: 2013-12-20
上傳用戶:feitian920
單片機指令系統(tǒng)原理 51單片機的尋址方式 學習匯編程序設計,要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運算碼找操作數(shù)的方法。在我們學習的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在前面學單片機的專用寄存器時,我們已學過,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 前面的學習我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV IE,#85H 的形式表述,也可以MOV 80H,#85H的形式表述。 關于數(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 前面我們已學過,數(shù)據(jù)前面加了“#”的,表示后面的數(shù)是立即數(shù)(如#85H,就表示85H就是一個立即數(shù)),數(shù)據(jù)前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當前寄存器組(工作寄存器組的選擇在前面專用寄存器的學習中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態(tài)設置,來進行對當前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC R3這條指令的意思是把寄存器R3中的內(nèi)容加1 從前面的學習中我產(chǎn)應可以理解到,其實寄存器尋址方式就是對由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值設為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 寄存器間接尋址范圍總結:1、內(nèi)部RAM低128單元。對內(nèi)部RAM低128單元的間接尋址,應使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應使用@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)也應算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器??! 寄存器間接尋址也須以寄存器符號的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內(nèi)容相加,所得到的結果作為操作數(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ù)指針寄存器,按理,它們的尋址范圍都應是64K。我們在學習特殊功能寄存器時已知道,程序計數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說,PC的值是隨程序的執(zhí)行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進行賦值。我們再看指令MOVC A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應可明白,MOVC A,@A+PC這條指令的尋址范圍其實就是只能在當前指令下256個地址單元。所在,這在我們實際應用中,可能就會有一個問題,如果我們需要查詢的數(shù)據(jù)表在256個地址單元之內(nèi),則可以用MOVC A,@A+PC這條指令進行查表操作,如果超過了256個單元,則不能用這條指令進行查表操作。剛才我們已說到,DPTR是一個數(shù)據(jù)指針,這個數(shù)據(jù)指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC A,@A+DPTR這條指令的尋址范圍達到64K。這就是這兩條指令在實際應用當中要注意的問題。 變址尋址方式是MCS-51單片機所獨有的一種尋址方式。 位尋址 80C51單片機有位處理功能,可以對數(shù)據(jù)位進行操作,因此就有相應的位尋址方式。所謂位尋址,就是對內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個位,直接加以置位為1或復位為0。 位尋址的范圍,也就是哪些部份可以進行位尋址: 1、我們在第十二課學習51單片機的存儲器結構時,我們已知道在單片機的內(nèi)部數(shù)據(jù)存儲器RAM的低128單元中有一個區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區(qū)共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學習中00H、01H。。。。7FH等等,所表示的都是一個字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們在指令中,或者在程序中如何來區(qū)分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現(xiàn)在正在研究的位尋址的一個重要問題。其實,區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應的指令形式的。這個問題我們在后面的指令系統(tǒng)學習中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關于專用寄存器的相關文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進行位尋址,當然并不是全部,大家在應用當中應引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態(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ù)應在B寄存器中,即乘法指令只可使用AB寄存器組合。
標簽: 單片機指令 系統(tǒng)原理
上傳時間: 2013-11-11
上傳用戶:caozhizhi
SPCE061A的指令周期表 SPCE061A的指令周期表[注意]:表中目標寄存器為PC時,部分指令周期會發(fā)生改變;建議在非必要的情況下,盡量不用PC作為目標寄存器。[符號約定]:表中符號代表的含義如下:R1,R2,R3,R4: 通用寄存器;BP(R5): 基址指針寄存器,也可以作為通用寄存器使用;SR: 段寄存器;SP: 堆棧指針寄存器;PC: 程序計數(shù)器;N: 負標志;Z: 零標志;S: 符號標志;C: 進位標志;IM6: 6位立即數(shù)尋址;IM16: 16位立即數(shù)尋址;[A6]: 存儲器絕對尋址,用6位立即數(shù)表示地址;[A16]: 存儲器絕對尋址,用16位立即數(shù)表示地址;R: 寄存器尋址;[R]: 寄存器間接尋址;[BP+IM6]: 變址尋址,地址偏移量為6位立即數(shù);[BP+IM16]: 變址尋址,地址偏移量為16位立即數(shù);{}: 可選項;D: 數(shù)據(jù)段基址,D:或省略都表示基址為0(在第0頁);#: 算術邏輯運算符(不能為乘除);n 移位操作時的移位位數(shù)。
上傳時間: 2013-10-23
上傳用戶:nanshan
C51原理及相關基礎入門知識 第一章:C51 流程控制語句一、分類條件語句、循環(huán)語句和開關語句。下面將對這些語句作詳細介紹。(1) 條件語句條件語句的一般形式為:if(表達式)語句 1;else語句 2;上述結構表示: 如果表達式的值為非0(TURE)即真, 則執(zhí)行語句1, 執(zhí)行完語句1 從語句2 后開始繼續(xù)向下執(zhí)行; 如果表達式的值為 0(FALSE)即假, 則跳過語句1 而執(zhí)行語句2。所謂表達式是指關系表達式和邏輯表達式的結合式。注意:1. 條件執(zhí)行語句中"else 語句2;"部分是選擇項, 可以缺省, 此時條件語句變成:if(表達式) 語句1;表示若表達式的值為非 0 則執(zhí)行語句1 , 否則跳過語句1 繼續(xù)執(zhí)行。2. 如果語句1 或語句2 有多于一條語句要執(zhí)行時, 必須使用"{"和"}" 把這些語句包括在其中, 此時條件語句形式為:if(表達式){語句體 1;}else{語句體 2;}3. 條件語句可以嵌套, 這種情況經(jīng)常碰到, 但條件嵌套語句容易出錯, 其原因主要是不知道哪個if 對應哪個else。例如:if(x>20||x<-10)if(y<=100&&y>x)printf("Good");elseprintf("Bad");對于上述情況,規(guī)定: else 語句與最近的一個if 語句匹配, 上例中的 else 與 if(y<=100&&y>x) 相匹配。為了使 else 與if(x>20||x<-10) 相匹配, 必須用花括號。如下所示:if(x>20||x<-10){if(y<=100&&y>x)printf("Good");}
上傳時間: 2013-10-24
上傳用戶:Sophie
PIC單片機實用教程基礎篇+提高篇 PIC單片機(Peripheral Interface Controller)是一種用來開發(fā)的去控制外圍設備的集成電路(IC)。一種具有分散作用(多任務)功能的CPU。與人類相比,大腦就是CPU,PIC 共享的部分相當于人的神經(jīng)系統(tǒng)?! IC 單片機是一個小的計算機 PIC單片機有計算功能和記憶內(nèi)存像CPU并由軟件控制允行。然而,處理能力—存儲器容量卻很有限,這取決于PIC的類型。但是它們的最高操作頻率大約都在20MHz左右,存儲器容量用做寫程序的大約1K—4K字節(jié)。 時鐘頻率與掃描程序的時間和執(zhí)行程序指令的時間有關系。但不能僅以時鐘頻率來判斷程序處理能力,它還隨處理裝置的體系結構改變(1*)。如果是同樣的體系結構,時鐘頻率較高的處理能力會較強。 這里用字來解釋程序容量。用一個指令(2*)表示一個字。通常用字節(jié)(3*)來表示存儲器(4*)容量。一個字節(jié)有8位,每位由1或0組成。PIC16F84A單片機 的指令由14位構成。當把1K個子轉(zhuǎn)換成位為:1 x 1,024 x 14 = 14,336位。再轉(zhuǎn)換為字節(jié)為:14,336/(8 x 1,024) = 1.75K。在計算存儲器的容量時,我們規(guī)定 1G 字節(jié) = 1,024M 字節(jié), 1M 字節(jié) = 1,024K 字節(jié), 1K 字節(jié)= 1,024 字節(jié). 它們不是以1000為倍數(shù),因為這是用二進制計算的緣故。 1*計算機的物理結構,包括組織結構、容量、該計算機的CPU、存儲器以及輸入輸出設備間的互連。經(jīng)常特指CPU的組織結構,包括它的寄存器、標志、總線、算術邏輯部件、指令譯碼與執(zhí)行機制以及定時和控制部件?! ?*指出某種操作并標識其操作數(shù)(如果有操作數(shù)的話)的一種語言構造 3*作為一個單位來操作(運算)的一個二進制字符串,通常比計算機的一個字短。 4*處理機內(nèi)的所有可尋址存儲空間以及用于執(zhí)行指令的其它內(nèi)存儲器?! ≡谟嬎愦鎯ζ鞯娜萘繒r,我們規(guī)定 1G 字節(jié) = 1,024M 字節(jié), 1M 字節(jié) = 1,024K 字節(jié), 1K 字節(jié)= 1,024 字節(jié). 它們不是以1000為倍數(shù),因為這是用二進制計算的緣故。 用PIC單片機使電路做的很小巧變得可能。 因為PIC單片機可以把計算部分、內(nèi)存、輸入和輸出等都做在一個芯片內(nèi)。所以她工作起來效率很高、功能也自由定義還可以靈活的適應不同的控制要求,而不必去更換不同的IC。這樣電路才有可能做的很小巧。
上傳時間: 2013-10-15
上傳用戶:sxdtlqqjl
arm指令集(1) ARM跳轉(zhuǎn)指令可以從當前指令向前或向后的32MB地址空間跳轉(zhuǎn)。這類跳轉(zhuǎn)指令有以下4種。 ?。?)B 跳4專指令 B〔條件) (地址) B指令屬于ARM指令集,是最簡單的分支指令。一旦遇到一個B指令,ARM處理器將立即跳轉(zhuǎn)到給定的地址,從那里繼續(xù)執(zhí)行。注意:存儲在分支指令中的實際值是相對當前R15的值的一個偏移量,而不是一個絕對地址。它的值由匯編器來計算,是24位有符號數(shù),左移兩位后有符號擴展為32位,表示的有效偏移位為26位(+/- 32 MB)。 (2)BL 帶返回的跳轉(zhuǎn)指令 BI,〔條件) (地址) BL指令也屬于ARM指令集,是另一個分支指令。就在分支之前,在寄存器R14中裝載上R15的內(nèi)容,因此可以重新裝載R14到R15中來返回到這個分支之后的那個指令處執(zhí)行,它是子例程的一個基本但強力的實現(xiàn)。 ?。?)BLX 帶返回和狀態(tài)切換的跳轉(zhuǎn)指令 BLX <地址> BLX指令有兩種格式,第1種格式的BLX指令記作BLX(1)。BLX(1)從ARM指令集跳轉(zhuǎn)到指令中指定的目標地址,并將程序狀態(tài)切換到Thumb狀態(tài),該指令同時將PC寄存器的內(nèi)容復制到LR寄存器中。 BLX(1)指令屬于無條件執(zhí)行的指令。 第2種格式的BLX指令記作BLX(2)。BLX(2)指令從ARM指令集跳轉(zhuǎn)到指令中指定的目標地址,目標地址的指令可以是ARM指令,也可以是Thumb指令。目標地址放在指令中的寄存器<dest>中,該地址的bit[0]值為0,目標地址處的指令類型由CPSR中的T位決定。該指令同時將PC寄存器的內(nèi)容復制到LR寄存器中。 (4)BX 帶狀態(tài)切換的跳轉(zhuǎn)指令 BX(條件) (dest) BX指令跳轉(zhuǎn)到指令中指定的目標地址,目標地址處的指令可以是ARM指令,也可以是Thumb指令。目標地址值為指令的值和0xFl·FFFFFF做“與”操作的結果,目標地址處的指令類型由寄存器決定。
上傳時間: 2014-12-27
上傳用戶:laomv123