MPLAB C18使用指南 簡(jiǎn)介本文檔論述MPLAB® C18 編譯器的技術(shù)細(xì)節(jié),并講解MPLAB C18 編譯器的所有功能。 這里假定讀者已經(jīng)具備如下基本素質(zhì):• 知道如何編寫(xiě)C 程序• 知道如何使用MPLAB 集成開(kāi)發(fā)環(huán)境創(chuàng)建和調(diào)試項(xiàng)目• 已經(jīng)閱讀并理解了所使用單片機(jī)的數(shù)據(jù)手冊(cè) 文檔內(nèi)容編排如下:• 第1 章:簡(jiǎn)介 — 提供對(duì)MPLAB C18 編譯器的概述以及有關(guān)調(diào)用編譯器的信息。• 第2 章:語(yǔ)法說(shuō)明 — 論述MPLAB C18 編譯器與ANSI 標(biāo)準(zhǔn)的不同之處。• 第3 章:運(yùn)行時(shí)模型 — 論述MPLAB C18 編譯器如何利用 PIC18 PICmicro® 單片機(jī)的資源。• 第4 章:優(yōu)化 — 論述MPLAB C18 編譯器執(zhí)行的優(yōu)化功能。• 第5 章:示例應(yīng)用程序 — 給出一個(gè)示例應(yīng)用程序,并就本用戶(hù)指南中論述的各主題,對(duì)源代碼進(jìn)行了說(shuō)明。• 附錄A:COFF 文件格式 — 詳細(xì)闡述了Microchip 的COFF 格式。• 附錄B:采用ANSI 定義的方式 — 論述按照ANSI 標(biāo)準(zhǔn)的要求,MPLAB C18 實(shí)現(xiàn)所定義的執(zhí)行方式。• 附錄C:命令行概述 — 列出了命令行選項(xiàng)以及論述每個(gè)命令行選項(xiàng)的參考章節(jié)。• 附錄D:MPLAB C18 診斷 — 列出了錯(cuò)誤、警告和消息。• 附錄E:擴(kuò)展模式 — 論述非擴(kuò)展模式和擴(kuò)展模式之間的區(qū)別。
上傳時(shí)間: 2013-10-30
上傳用戶(hù):1583060504
單片機(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)題,如果我們需要查詢(xú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
上傳用戶(hù):caozhizhi
at91rm9200啟動(dòng)過(guò)程教程 系統(tǒng)上電,檢測(cè)BMS,選擇系統(tǒng)的啟動(dòng)方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動(dòng)。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個(gè)地址處都可以訪問(wèn)到ROM。由于9200的ROM中固化了一個(gè)BOOTLOAER程序。所以PC從0X0處開(kāi)始執(zhí)行這個(gè)BOOTLOAER(準(zhǔn)確的說(shuō)應(yīng)該是一級(jí)BOOTLOADER)。這個(gè)BOOTLOER依次完成以下步驟: 1、PLL SETUP,設(shè)置PLLB產(chǎn)生48M時(shí)鐘頻率提供給USB DEVICE。同時(shí)DEBUG USART也被初始化為48M的時(shí)鐘頻率; 2、相應(yīng)模式下的堆棧設(shè)置; 3、檢測(cè)主時(shí)鐘源(Main oscillator); 4、中斷控制器(AIC)的設(shè)置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認(rèn)為BOOT過(guò)程結(jié)束,接下來(lái)的就是LOADER的過(guò)程,或者也可以認(rèn)為是裝載二級(jí)BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來(lái)找合法的BOOT程序。所謂合法的指的是在這些存儲(chǔ)設(shè)備的開(kāi)始地址處連續(xù)的存放的32個(gè)字節(jié),也就是8條指令必須是跳轉(zhuǎn)指令或者裝載PC的指令,其實(shí)這樣規(guī)定就是把這8條指令當(dāng)作是異常向量表來(lái)處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關(guān)于如何計(jì)算和寫(xiě)這條指令可以參考用戶(hù)手冊(cè)。一旦合法的映像找到之后,則BOOT程序會(huì)把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過(guò)16K-3K的大小。當(dāng)BOOT程序完成了把合法的映像搬到SRAM的任務(wù)以后,接下來(lái)就進(jìn)行存儲(chǔ)器的REMAP,經(jīng)過(guò)REMAP之后,SRAM從映設(shè)前的0X200000地址處被映設(shè)到了0X0地址并且程序從0X0處開(kāi)始執(zhí)行。而ROM這時(shí)只能在0X100000這個(gè)地址處看到了。至此9200就算完成了一種形式的啟動(dòng)過(guò)程。如果BOOT程序在以上所列的幾種存儲(chǔ)設(shè)備中找到合法的映像,則自動(dòng)初始化DEBUG USART口和USB DEVICE口以準(zhǔn)備從外部載入映像。對(duì)DEBUG口的初始化包括設(shè)置參數(shù)115200 8 N 1以及運(yùn)行XMODEM協(xié)議。對(duì)USB DEVICE進(jìn)行初始化以及運(yùn)行DFU協(xié)議。現(xiàn)在用戶(hù)可以從外部(假定為PC平臺(tái))載入你的映像了。在PC平臺(tái)下,以WIN2000為例,你可以用超級(jí)終端來(lái)完成這個(gè)功能,但是還是要注意你的映像的大小不能超過(guò)13K。一旦正確從外部裝載了映像,接下來(lái)的過(guò)程就是和前面一樣重映設(shè)然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動(dòng)的一個(gè)過(guò)程。如果BMS為低電平,則AT91RM9200會(huì)從片外的FLASH啟動(dòng),這時(shí)片外的FLASH的起始地址就是0X0了,接下來(lái)的過(guò)程和片內(nèi)啟動(dòng)的過(guò)程是一樣的,只不過(guò)這時(shí)就需要自己寫(xiě)啟動(dòng)代碼了,至于怎么寫(xiě),大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設(shè)計(jì)可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設(shè)計(jì)的大,所以這里編寫(xiě)的BOOTLOADER可以一步到位,也就是說(shuō)不用像片內(nèi)啟動(dòng)可能需要BOOT好幾級(jí)了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個(gè)開(kāi)放源代碼的軟件,用戶(hù)可以自由下載并根據(jù)自己的應(yīng)用配置。總的說(shuō)來(lái),筆者以為AT91RM9200的啟動(dòng)過(guò)程比較簡(jiǎn)單,ATMEL的服務(wù)也不錯(cuò),不但提供了片內(nèi)啟動(dòng)的功能,還提供了UBOOT可供下載。筆者寫(xiě)了一個(gè)BOOTLODER從片外的FLASHA啟動(dòng),效果還可以。 uboot結(jié)構(gòu)與使用uboot是一個(gè)龐大的公開(kāi)源碼的軟件。他支持一些系列的arm體系,包含常見(jiàn)的外設(shè)的驅(qū)動(dòng),是一個(gè)功能強(qiáng)大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動(dòng)uboot,還有兩個(gè)boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級(jí)boot。其源碼可以從atmel的官方網(wǎng)站下載。 我們知道,當(dāng)9200系統(tǒng)上電后,如果bms為高電平,則系統(tǒng)從片內(nèi)rom啟動(dòng),這時(shí)rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時(shí)我們打開(kāi)超級(jí)終端會(huì)看到ccccc...。這說(shuō)明系統(tǒng)已經(jīng)啟動(dòng),同時(shí)xmodem協(xié)議已經(jīng)啟動(dòng),用戶(hù)可以通過(guò)超級(jí)終端下載用戶(hù)的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個(gè)loder完成的功能主要是初始化時(shí)鐘,sdram和xmodem協(xié)議,為下載和啟動(dòng)uboot做準(zhǔn)備。當(dāng)下載了loader.bin后,超級(jí)終端會(huì)繼續(xù)打印:ccccc....。這時(shí)我們就可以下在uboot了。uboot將被下載到sdram中的一個(gè)地址后并把pc指針調(diào)到此處開(kāi)始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動(dòng)了,提示符uboot>,用戶(hù)可以u(píng)boot>help 看到命令列表和大概的功能。uboot的命令包含了對(duì)內(nèi)存、flash、網(wǎng)絡(luò)、系統(tǒng)啟動(dòng)等一些命令。 如果系統(tǒng)上電時(shí)bms為低電平,則系統(tǒng)從片外的flash啟動(dòng)。為了從片外的flash啟動(dòng)uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動(dòng)后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開(kāi)始從片內(nèi)rom啟動(dòng)uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫(xiě)到flash中的目的,假如我們已經(jīng)啟動(dòng)了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統(tǒng)復(fù)位,就可以看到系統(tǒng)先啟動(dòng)boot,然后解壓縮uboot.gz,然后啟動(dòng)uboot。注意,這里uboot必須壓縮成.gz文件,否則會(huì)出錯(cuò)。 怎么編譯這三個(gè)源碼包呢,首先要建立一個(gè)arm的交叉編譯環(huán)境,關(guān)于如何建立,此處不予說(shuō)明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項(xiàng)目,正確填寫(xiě)你的編譯器的所在路徑。 對(duì)loader和boot,直接make。對(duì)uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會(huì)在當(dāng)前目錄下分別生成*.bin文件,對(duì)于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對(duì)loader和boot搞不清楚為什么要兩個(gè),有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動(dòng)uboot的功能,他要對(duì)uboot的壓縮文件進(jìn)行解壓,除此之外,他和loader并無(wú)大的區(qū)別,你可以把boot理解為在loader的基礎(chǔ)上加入了解壓縮.gz的功能而已。所以這兩個(gè)并無(wú)多大的本質(zhì)不同,只是他們的使命不同而已。 特別說(shuō)名的是這三個(gè)軟件包都是開(kāi)放源碼的,所以用戶(hù)可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。
上傳時(shí)間: 2013-10-27
上傳用戶(hù):wsf950131
關(guān)于PCB封裝的資料收集整理. 大的來(lái)說(shuō),元件有插裝和貼裝.零件封裝是指實(shí)際零件焊接到電路板時(shí)所指示的外觀和焊點(diǎn)的位置。是純粹的空間概念.因此不同的元件可共用同一零件封裝,同種元件也可有不同的零件封裝。像電阻,有傳統(tǒng)的針插式,這種元件體積較大,電路板必須鉆孔才能安置元件,完成鉆孔后,插入元件,再過(guò)錫爐或噴錫(也可手焊),成本較高,較新的設(shè)計(jì)都是采用體積小的表面貼片式元件(SMD)這種元件不必鉆孔,用鋼膜將半熔狀錫膏倒入電路板,再把SMD 元件放上,即可焊接在電路板上了。晶體管是我們常用的的元件之一,在DEVICE。LIB庫(kù)中,簡(jiǎn)簡(jiǎn)單單的只有NPN與PNP之分,但實(shí)際上,如果它是NPN的2N3055那它有可能是鐵殼子的TO—3,如果它是NPN的2N3054,則有可能是鐵殼的TO-66或TO-5,而學(xué)用的CS9013,有TO-92A,TO-92B,還有TO-5,TO-46,TO-52等等,千變?nèi)f化。還有一個(gè)就是電阻,在DEVICE 庫(kù)中,它也是簡(jiǎn)單地把它們稱(chēng)為RES1 和RES2,不管它是100Ω 還是470KΩ都一樣,對(duì)電路板而言,它與歐姆數(shù)根本不相關(guān),完全是按該電阻的功率數(shù)來(lái)決定的我們選用的1/4W 和甚至1/2W 的電阻,都可以用AXIAL0.3 元件封裝,而功率數(shù)大一點(diǎn)的話,可用AXIAL0.4,AXIAL0.5等等。現(xiàn)將常用的元件封裝整理如下:電阻類(lèi)及無(wú)極性雙端元件:AXIAL0.3-AXIAL1.0無(wú)極性電容:RAD0.1-RAD0.4有極性電容:RB.2/.4-RB.5/1.0二極管:DIODE0.4及DIODE0.7石英晶體振蕩器:XTAL1晶體管、FET、UJT:TO-xxx(TO-3,TO-5)可變電阻(POT1、POT2):VR1-VR5這些常用的元件封裝,大家最好能把它背下來(lái),這些元件封裝,大家可以把它拆分成兩部分來(lái)記如電阻AXIAL0.3 可拆成AXIAL 和0.3,AXIAL 翻譯成中文就是軸狀的,0.3 則是該電阻在印刷電路板上的焊盤(pán)間的距離也就是300mil(因?yàn)樵陔姍C(jī)領(lǐng)域里,是以英制單位為主的。同樣的,對(duì)于無(wú)極性的電容,RAD0.1-RAD0.4也是一樣;對(duì)有極性的電容如電解電容,其封裝為RB.2/.4,RB.3/.6 等,其中“.2”為焊盤(pán)間距,“.4”為電容圓筒的外徑。對(duì)于晶體管,那就直接看它的外形及功率,大功率的晶體管,就用TO—3,中功率的晶體管,如果是扁平的,就用TO-220,如果是金屬殼的,就用TO-66,小功率的晶體管,就用TO-5,TO-46,TO-92A等都可以,反正它的管腳也長(zhǎng),彎一下也可以。對(duì)于常用的集成IC電路,有DIPxx,就是雙列直插的元件封裝,DIP8就是雙排,每排有4個(gè)引腳,兩排間距離是300mil,焊盤(pán)間的距離是100mil。SIPxx 就是單排的封裝。等等。值得我們注意的是晶體管與可變電阻,它們的包裝才是最令人頭痛的,同樣的包裝,其管腳可不一定一樣。例如,對(duì)于TO-92B之類(lèi)的包裝,通常是1 腳為E(發(fā)射極),而2 腳有可能是B 極(基極),也可能是C(集電極);同樣的,3腳有可能是C,也有可能是B,具體是那個(gè),只有拿到了元件才能確定。因此,電路軟件不敢硬性定義焊盤(pán)名稱(chēng)(管腳名稱(chēng)),同樣的,場(chǎng)效應(yīng)管,MOS 管也可以用跟晶體管一樣的封裝,它可以通用于三個(gè)引腳的元件。Q1-B,在PCB 里,加載這種網(wǎng)絡(luò)表的時(shí)候,就會(huì)找不到節(jié)點(diǎn)(對(duì)不上)。在可變電阻
上傳時(shí)間: 2013-11-03
上傳用戶(hù):daguogai
Keil C51使用詳解Keil C51 是美國(guó)Keil Software 公司出品的51 系列兼容單片機(jī)C 語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C 語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C 來(lái)開(kāi)發(fā),體會(huì)更加深刻。Keil C51 軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。下面詳細(xì)介紹 Keil C51 開(kāi)發(fā)系統(tǒng)各部分功能和使用。第二節(jié) Keil C51 單片機(jī)軟件開(kāi)發(fā)系統(tǒng)的整體結(jié)構(gòu)C51 工具包的整體結(jié)構(gòu),如圖(1)所示,其中uVision 與Ishell 分別是C51 forWindows 和for Dos 的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE 本身或其它編輯器編輯C 或匯編源文件。然后分別由C51 及A51 編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51 創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51 連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS 文件由OH51 轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex 文件,以供調(diào)試器dScope51 或tScope51 使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如EPROM 中。圖(1) C51 工具包整體結(jié)構(gòu)圖第三節(jié) Keil C51 工具包的安裝81. C51 for Dos在 Windows 下直接運(yùn)行軟件包中DOS\C51DOS.exe 然后選擇安裝目錄即可。完畢后欲使系統(tǒng)正常工作須進(jìn)行以下操作(設(shè)C:\C51 為安裝目錄):修改 Autoexec.bat,加入path=C:\C51\BinSet C51LIB=C:\C51\LIBSet C51INC=C:\C51\INC然后運(yùn)行Autoexec.bat2. C51 for Windows 的安裝及注意事項(xiàng):在 Windows 下運(yùn)行軟件包中WIN\Setup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設(shè)置最簡(jiǎn)單(設(shè)安裝于C:\C51 目錄下)。然后將軟件包中crack 目錄中的文件拷入C:\C51\Bin 目錄下。第四節(jié) Keil C51 工具包各部分功能及使用簡(jiǎn)介1. C51 與A51(1) C51C51 是C 語(yǔ)言編譯器,其使用方法為:C51 sourcefile[編譯控制指令]或者 C51 @ commandfile其中 sourcefile 為C 源文件(.C)。大量的編譯控制指令完成C51 編譯器的全部功能。包控C51 輸出文件C.LST,.OBJ,.I 和.SRC 文件的控制。源文件(.C)的控制等,詳見(jiàn)第五部分的具體介紹。而 Commandfile 為一個(gè)連接控制文件其內(nèi)容包括:.C 源文件及各編譯控制指令,它沒(méi)有固定的名字,開(kāi)發(fā)人員可根據(jù)自己的習(xí)慣指定,它適于用控制指令較多的場(chǎng)合。(2) A51A51 是匯編語(yǔ)言編譯器,使用方法為:9A51 sourcefile[編譯控制指令]或 A51 @ commandfile其中sourcefile 為匯編源文件(.asm或.a51),而編譯控制指令的使用與其它匯編如ASM語(yǔ)言類(lèi)似,可參考其他匯編語(yǔ)言材料。Commandfile 同C51 中的Commandfile 類(lèi)似,它使A51 使用和修改方便。2. L51 和BL51(1) L51L51 是Keil C51 軟件包提供的連接/定位器,其功能是將編譯生成的OBJ 文件與庫(kù)文件連接定位生成絕對(duì)目標(biāo)文件(.ABS),其使用方法為:L51 目標(biāo)文件列表[庫(kù)文件列表] [to outputfile] [連接控制指令]或 L51 @Commandfile源程序的多個(gè)模塊分別經(jīng) C51 與A51 編譯后生成多個(gè)OBJ 文件,連接時(shí),這些文件全列于目標(biāo)文件列表中,作為輸入文件,如果還需與庫(kù)文件(.LiB)相連接,則庫(kù)文件也必須列在其后。outputfile 為輸文件名,缺少時(shí)為第一模塊名,后綴為.ABS。連接控制指令提供了連接定位時(shí)的所有控制功能。Commandfile 為連接控制文件,其具體內(nèi)容是包括了目標(biāo)文件列表,庫(kù)文件列表及輸出文件、連接控制命令,以取代第一種繁瑣的格式,由于目標(biāo)模塊庫(kù)文件大多不止1 個(gè),因而第2 種方法較多見(jiàn),這個(gè)文件名字也可由使用者隨意指定。(2) Bl51BL51 也是C51 軟件包的連接/定位器,其具有L51 的所有功能,此外它還具有以下3 點(diǎn)特別之處:a. 可以連接定位大于64kBytes 的程序。b. 具有代碼域及域切換功能(CodeBanking & Bank Switching)c. 可用于RTX51 操作系統(tǒng)RTX51 是一個(gè)實(shí)時(shí)多任務(wù)操作系統(tǒng),它改變了傳統(tǒng)的編程模式,甚至不必用main( )函數(shù),單片機(jī)系統(tǒng)軟件向RTOS 發(fā)展是一種趨勢(shì),這種趨勢(shì)對(duì)于186 和38610及68K 系列CPU 更為明顯和必須,對(duì)8051 因CPU 較為簡(jiǎn)單,程序結(jié)構(gòu)等都不太復(fù)雜,RTX51 作用顯得不太突出,其專(zhuān)業(yè)版軟件PK51 軟件包甚至不包括RTX51Full,而只有一個(gè)RTX51TINY 版本的RTOS。RTX51 TINY 適用于無(wú)外部RAM 的單片機(jī)系統(tǒng),因而可用面很窄,在本文中不作介紹。Bank switching 技術(shù)因使用很少也不作介紹。3. DScope51,Tscope51 及Monitor51(1) dScope51dScope51 是一個(gè)源級(jí)調(diào)試器和模擬器,它可以調(diào)試由C51 編譯器、A51 匯編器、PL/M-51 編譯器及ASM-51 匯編器產(chǎn)生的程序。它不需目標(biāo)板(for windows 也可通過(guò)mon51 接目標(biāo)板),只能進(jìn)行軟件模擬,但其功能強(qiáng)大,可模擬CPU 及其外圍器件,如內(nèi)部串口,外部I/O 及定時(shí)器等,能對(duì)嵌入式軟件功能進(jìn)行有效測(cè)試。
上傳時(shí)間: 2013-11-01
上傳用戶(hù):zhouxuepeng1
用51單片機(jī)設(shè)計(jì)的時(shí)鐘電路畢業(yè)論文第一章電路原理分析1-1 顯示原理1-2 數(shù)碼管結(jié)構(gòu)及代碼顯示1-3 鍵盤(pán)及讀數(shù)原理1-4 連擊功能的實(shí)現(xiàn)第 二 章 程序設(shè)計(jì)思想和相關(guān)指令介紹2-1 數(shù)據(jù)與代碼轉(zhuǎn)換2-2 計(jì)時(shí)功能的實(shí)現(xiàn)與中斷服務(wù)程序2-3 時(shí)間控制功能與比較指令2-4 時(shí)鐘誤差的分析附錄A 電路圖附錄B 存儲(chǔ)單元地址表附錄C 輸入輸出口功能分配表附錄D 定時(shí)中斷程序流程圖附錄F 調(diào)時(shí)功能流程圖附錄G 程序清單
標(biāo)簽: 51單片機(jī) 時(shí)鐘電路 畢業(yè)論文
上傳時(shí)間: 2013-10-29
上傳用戶(hù):hoperingcong
linux 中斷和設(shè)備驅(qū)動(dòng) 本章介紹L i n u x內(nèi)核是如何維護(hù)它支持的文件系統(tǒng)中的文件的,我們先介紹 V F S ( Vi r t u a lFile System,虛擬文件系統(tǒng)),再解釋一下L i n u x內(nèi)核的真實(shí)文件系統(tǒng)是如何得到支持的。L i n u x的一個(gè)最重要特點(diǎn)就是它支持許多不同的文件系統(tǒng)。這使 L i n u x非常靈活,能夠與許多其他的操作系統(tǒng)共存。在寫(xiě)這本書(shū)的時(shí)候, L i n u x共支持1 5種文件系統(tǒng): e x t、 e x t 2、x i a、 m i n i x、 u m s d o s、 msdos 、v f a t、 p r o c、 s m b、 n c p、 i s o 9 6 6 0、 s y s v、 h p f s、 a ffs 和u f s。無(wú)疑隨著時(shí)間的推移,L i n u x支持的文件系統(tǒng)數(shù)還會(huì)增加。
標(biāo)簽: linux 中斷 設(shè)備驅(qū)動(dòng)
上傳時(shí)間: 2013-11-13
上傳用戶(hù):zxh122
1. 文件比較器TKSDiff :a) 二進(jìn)制比較:支持字體設(shè)置和文件改動(dòng)監(jiān)測(cè),微調(diào)智能比較算法b) 支持文件拖拽,內(nèi)容替換和插入c) 支持復(fù)制選中文本和比較文件的文件名d) 支持選中內(nèi)容的導(dǎo)出e) 顯示智能比較完成度f(wàn)) 處理k-flash命令行g(shù)) 禁止大文件間的比較h) 修正部分內(nèi)存越界問(wèn)題i) 修正消除二進(jìn)制標(biāo)題時(shí)有時(shí)無(wú)問(wèn)題j) 修正目錄比較界面模塊資源泄漏問(wèn)題k) 修正快速比較設(shè)置起始地址 bug
標(biāo)簽: TKStudio IDE 集成開(kāi)發(fā)環(huán)境 記錄
上傳時(shí)間: 2013-10-13
上傳用戶(hù):CSUSheep
MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用TI公司的MSP430系列微控制器是一個(gè)近期推出的單片機(jī)品種。它在超低功耗和功能集成上都有一定的特色,尤其適合應(yīng)用在自動(dòng)信號(hào)采集系統(tǒng)、液晶顯示智能化儀器、電池供電便攜式裝置、超長(zhǎng)時(shí)間連續(xù)工作設(shè)備等領(lǐng)域。《MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用》對(duì)這一系列產(chǎn)品的原理、結(jié)構(gòu)及內(nèi)部各功能模塊作了詳細(xì)的說(shuō)明,并以方便工程師及程序員使用的方式提供軟件和硬件資料。由于MSP430系列的各個(gè)不同型號(hào)基本上是這些功能模塊的不同組合,因此,掌握《MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用》的內(nèi)容對(duì)于MSP430系列的原理理解和應(yīng)用開(kāi)發(fā)都有較大的幫助。《MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用》的內(nèi)容主要根據(jù)TI公司的《MSP430 Family Architecture Guide and Module Library》一書(shū)及其他相關(guān)技術(shù)資料編寫(xiě)。 《MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用》供高等院校自動(dòng)化、計(jì)算機(jī)、電子等專(zhuān)業(yè)的教學(xué)參考及工程技術(shù)人員的實(shí)用參考,亦可做為應(yīng)用技術(shù)的培訓(xùn)教材。MSP430系列超低功耗16位單片機(jī)原理與應(yīng)用 目錄 第1章 MSP430系列1.1 特性與功能1.2 系統(tǒng)關(guān)鍵特性1.3 MSP430系列的各種型號(hào)??第2章 結(jié)構(gòu)概述2.1 CPU2.2 代碼存儲(chǔ)器?2.3 數(shù)據(jù)存儲(chǔ)器2.4 運(yùn)行控制?2.5 外圍模塊2.6 振蕩器、倍頻器和時(shí)鐘發(fā)生器??第3章 系統(tǒng)復(fù)位、中斷和工作模式?3.1 系統(tǒng)復(fù)位和初始化3.2 中斷系統(tǒng)結(jié)構(gòu)3.3 中斷處理3.3.1 SFR中的中斷控制位3.3.2 外部中斷3.4 工作模式3.5 低功耗模式3.5.1 低功耗模式0和模式13.5.2 低功耗模式2和模式33.5.3 低功耗模式43.6 低功耗應(yīng)用要點(diǎn)??第4章 存儲(chǔ)器組織4.1 存儲(chǔ)器中的數(shù)據(jù)4.2 片內(nèi)ROM組織4.2.1 ROM表的處理4.2.2 計(jì)算分支跳轉(zhuǎn)和子程序調(diào)用4.3 RAM與外圍模塊組織4.3.1 RAM4.3.2 外圍模塊--地址定位4.3.3 外圍模塊--SFR??第5章 16位CPU?5.1 CPU寄存器5.1.1 程序計(jì)數(shù)器PC5.1.2 系統(tǒng)堆棧指針SP5.1.3 狀態(tài)寄存器SR5.1.4 常數(shù)發(fā)生寄存器CG1和CG2?5.2 尋址模式5.2.1 寄存器模式5.2.2 變址模式5.2.3 符號(hào)模式5.2.4 絕對(duì)模式5.2.5 間接模式5.2.6 間接增量模式5.2.7 立即模式5.2.8 指令的時(shí)鐘周期與長(zhǎng)度5.3 指令集概述5.3.1 雙操作數(shù)指令5.3.2 單操作數(shù)指令5.3.3 條件跳轉(zhuǎn)5.3.4 模擬指令的簡(jiǎn)短格式5.3.5 其他指令5.4 指令分布??第6章 硬件乘法器?6.1 硬件乘法器的操作6.2 硬件乘法器的寄存器6.3 硬件乘法器的SFR位6.4 硬件乘法器的軟件限制6.4.1 硬件乘法器的軟件限制--尋址模式6.4.2 硬件乘法器的軟件限制--中斷程序??第7章 振蕩器與系統(tǒng)時(shí)鐘發(fā)生器?7.1 晶體振蕩器7.2 處理機(jī)時(shí)鐘發(fā)生器7.3 系統(tǒng)時(shí)鐘工作模式7.4 系統(tǒng)時(shí)鐘控制寄存器7.4.1 模塊寄存器7.4.2 與系統(tǒng)時(shí)鐘發(fā)生器相關(guān)的SFR位7.5 DCO典型特性??第8章 數(shù)字I/O配置?8.1 通用端口P08.1.1 P0的控制寄存器8.1.2 P0的原理圖8.1.3 P0的中斷控制功能8.2 通用端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理圖8.2.3 P1、P2的中斷控制功能8.3 通用端口P3、P48.3.1 P3、P4的控制寄存器8.3.2 P3、P4的原理圖8.4 LCD端口8.5 LCD端口--定時(shí)器/端口比較器??第9章 通用定時(shí)器/端口模塊?9.1 定時(shí)器/端口模塊操作9.1.1 定時(shí)器/端口計(jì)數(shù)器TPCNT1--8位操作9.1.2 定時(shí)器/端口計(jì)數(shù)器TPCNT2--8位操作9.1.3 定時(shí)器/端口計(jì)數(shù)器--16位操作9.2 定時(shí)器/端口寄存器9.3 定時(shí)器/端口SFR位9.4 定時(shí)器/端口在A/D中的應(yīng)用9.4.1 R/D轉(zhuǎn)換原理9.4.2 分辨率高于8位的轉(zhuǎn)換??第10章 定時(shí)器?10.1 Basic Timer110.1.1 Basic Timer1寄存器10.1.2 SFR位10.1.3 Basic Timer1的操作10.1.4 Basic Timer1的操作--LCD時(shí)鐘信號(hào)fLCD?10.2 8位間隔定時(shí)器/計(jì)數(shù)器10.2.1 8位定時(shí)器/計(jì)數(shù)器的操作10.2.2 8位定時(shí)器/計(jì)數(shù)器的寄存器10.2.3 與8位定時(shí)器/計(jì)數(shù)器有關(guān)的SFR位10.2.4 8位定時(shí)器/計(jì)數(shù)器在UART中的應(yīng)用10.3 看門(mén)狗定時(shí)器11.1.3 比較模式11.1.4 輸出單元11.2 TimerA的寄存器11.2.1 TimerA控制寄存器TACTL11.2.2 捕獲/比較控制寄存器CCTL11.2.3 TimerA中斷向量寄存器11.3 TimerA的應(yīng)用11.3.1 TimerA增計(jì)數(shù)模式應(yīng)用11.3.2 TimerA連續(xù)模式應(yīng)用11.3.3 TimerA增/減計(jì)數(shù)模式應(yīng)用11.3.4 TimerA軟件捕獲應(yīng)用11.3.5 TimerA處理異步串行通信協(xié)議11.4 TimerA的特殊情況11.4.1 CCR0用做周期寄存器11.4.2 定時(shí)器寄存器的啟/停11.4.3 輸出單元Unit0??第12章 USART外圍接口--UART模式?12.1 異步操作12.1.1 異步幀格式12.1.2 異步通信的波特率發(fā)生器12.1.3 異步通信格式12.1.4 線路空閑多處理機(jī)模式12.1.5 地址位格式12.2 中斷與控制功能12.2.1 USART接收允許12.2.2 USART發(fā)送允許12.2.3 USART接收中斷操作12.2.4 USART發(fā)送中斷操作12.3 控制與狀態(tài)寄存器12.3.1 USART控制寄存器UCTL12.3.2 發(fā)送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率選擇和調(diào)制控制寄存器12.3.5 USART接收數(shù)據(jù)緩存URXBUF12.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF12.4 UART模式--低功耗模式應(yīng)用特性12.4.1 由UART幀啟動(dòng)接收操作12.4.2 時(shí)鐘頻率的充分利用與UART模式的波特率12.4.3 節(jié)約MSP430資源的多處理機(jī)模式12.5 波特率的計(jì)算??第13章 USART外圍接口--SPI模式?13.1 USART的同步操作13.1.1 SPI模式中的主模式--MM=1、SYNC=113.1.2 SPI模式中的從模式--MM=0、SYNC=113.2 中斷與控制功能13.2.1 USART接收允許13.2.2 USART發(fā)送允許13.2.3 USART接收中斷操作13.2.4 USART發(fā)送中斷操作13.3 控制與狀態(tài)寄存器13.3.1 USART控制寄存器13.3.2 發(fā)送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率選擇和調(diào)制控制寄存器13.3.5 USART接收數(shù)據(jù)緩存URXBUF13.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF??第14章 液晶顯示驅(qū)動(dòng)?14.1 LCD驅(qū)動(dòng)基本原理14.2 LCD控制器/驅(qū)動(dòng)器14.2.1 LCD控制器/驅(qū)動(dòng)器功能14.2.2 LCD控制與模式寄存器14.2.3 LCD顯示內(nèi)存14.2.4 LCD操作軟件例程14.3 LCD端口功能14.4 LCD與端口模式混合應(yīng)用實(shí)例??第15章 A/D轉(zhuǎn)換器?15.1 概述15.2 A/D轉(zhuǎn)換操作15.2.1 A/D轉(zhuǎn)換15.2.2 A/D中斷15.2.3 A/D量程15.2.4 A/D電流源15.2.5 A/D輸入端與多路切換15.2.6 A/D接地與降噪15.2.7 A/D輸入與輸出引腳15.3 A/D控制寄存器??第16章 其他模塊16.1 晶體振蕩器16.2 上電電路16.3 晶振緩沖輸出??附錄A 外圍模塊地址分配?附錄B 指令集描述?B1 指令匯總B2 指令格式B3 不增加ROM開(kāi)銷(xiāo)的指令模擬B4 指令說(shuō)明B5 用幾條指令模擬的宏指令??附錄C EPROM編程?C1 EPROM操作C2 快速編程算法C3 通過(guò)串行數(shù)據(jù)鏈路應(yīng)用\"JTAG\"特性的EPROM模塊編程C4 通過(guò)微控制器軟件實(shí)現(xiàn)對(duì)EPROM模塊編程??附錄D MSP430系列單片機(jī)參數(shù)表?附錄E MSP430系列單片機(jī)產(chǎn)品編碼?附錄F MSP430系列單片機(jī)封裝形式?
標(biāo)簽: MSP 430 超低功耗 位單片機(jī)
上傳時(shí)間: 2014-05-07
上傳用戶(hù):lwq11
單片機(jī)原理及應(yīng)用實(shí)驗(yàn)報(bào)告:實(shí)驗(yàn)1 WAVE軟件的學(xué)習(xí)應(yīng)用*.1實(shí)驗(yàn)2下載軟件的學(xué)習(xí)應(yīng)用*.2實(shí)驗(yàn)3運(yùn)算指令的應(yīng)用編程.3實(shí)驗(yàn)4 P0口輸入、輸出實(shí)驗(yàn).4實(shí)驗(yàn)5數(shù)碼管顯示5實(shí)驗(yàn)6按鍵的識(shí)別*6實(shí)驗(yàn)7計(jì)算器設(shè)計(jì)實(shí)驗(yàn)*7實(shí)驗(yàn)8中斷實(shí)驗(yàn)8實(shí)驗(yàn)9定時(shí)器/計(jì)數(shù)器實(shí)驗(yàn)9實(shí)驗(yàn)10串行口通訊實(shí)驗(yàn).10實(shí)驗(yàn)11直流電機(jī)調(diào)速實(shí)驗(yàn)*.12實(shí)驗(yàn)12 IC卡讀寫(xiě)實(shí)驗(yàn)*13實(shí)驗(yàn)13 TLC2543的應(yīng)用實(shí)驗(yàn)*14實(shí)驗(yàn)14溫度測(cè)量及控制實(shí)驗(yàn)*.15附錄A 偉福仿真器系統(tǒng)概述16附錄B STC-ISP-V3.1 界面23附錄C 實(shí)驗(yàn)板.24
標(biāo)簽: 單片機(jī)原理 實(shí)驗(yàn)報(bào)告
上傳時(shí)間: 2013-11-13
上傳用戶(hù):王小奇
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1