具備處理外部模擬信號功能是很多電子設(shè)備的基本要求。為了將模擬信號轉(zhuǎn)換為數(shù)字信 號,就需要藉助A/D 轉(zhuǎn)換器。將A/D 功能和MCU 整合在一起,就可減少電路的元件數(shù)量和 電路板的空間使用。 HT45F23 微控制器內(nèi)建6 通道,12 位解析度的A/D 轉(zhuǎn)換器。在本應(yīng)用說明中,將介紹如何 使用HT45F23 微控制器的A/D 功能。
上傳時(shí)間: 2013-10-27
上傳用戶:nostopper
a_bit equ 20h ;個(gè)位數(shù)存放處 b_bit equ 21h ;十位數(shù)存放處 temp equ 22h ;計(jì)數(shù)器寄存器 star: mov temp,#0 ;初始化計(jì)數(shù)器 stlop: acall display inc temp mov a,temp cjne a,#100,next ;=100重來 mov temp,#0 next: ljmp stlop ;顯示子程序 display: mov a,temp ;將temp中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制 mov b,#10 ;10進(jìn)制/10=10進(jìn)制 div ab mov b_bit,a ;十位在a mov a_bit,b ;個(gè)位在b mov dptr,#numtab ;指定查表啟始地址 mov r0,#4 dpl1: mov r1,#250 ;顯示1000次 dplop: mov a,a_bit ;取個(gè)位數(shù) MOVC A,@A+DPTR ;查個(gè)位數(shù)的7段代碼 mov p0,a ;送出個(gè)位的7段代碼
標(biāo)簽: 直接驅(qū)動(dòng) 數(shù)碼管 計(jì)數(shù)器 程序
上傳時(shí)間: 2013-11-06
上傳用戶:lx9076
單片機(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ù)直接參與操作,所以又稱立即數(shù),有“#”號表示。立即數(shù)就是存放在程序存儲器中的常數(shù),換句話說就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。 例如:MOV A,#3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能是把立即數(shù)3AH送入累加器A中。MOV DPTR,#8200H在前面學(xué)單片機(jī)的專用寄存器時(shí),我們已學(xué)過,DPTR是一個(gè)16位的寄存器,它由DPH及DPL兩個(gè)8位的寄存器組成。這條指令的意思就是把立即數(shù)的高8位(即82H)送入DPH寄存器,把立即數(shù)的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在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ī)中,直接地址只能用來表示特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲器以及位地址空間,具體的說就是:1、內(nèi)部數(shù)據(jù)存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個(gè)單元地址形式給出、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就是一個(gè)立即數(shù)),數(shù)據(jù)前面沒有加“#”號的,就表示后面的是一個(gè)地址地址(如,MOV 65H,A這條指令的65H就是一個(gè)單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個(gè)工作寄存器組共有32個(gè)通用寄存器,但在指令中只能使用當(dāng)前寄存器組(工作寄存器組的選擇在前面專用寄存器的學(xué)習(xí)中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態(tài)設(shè)置,來進(jìn)行對當(dāng)前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進(jìn)位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC R3這條指令的意思是把寄存器R3中的內(nèi)容加1 從前面的學(xué)習(xí)中我產(chǎn)應(yīng)可以理解到,其實(shí)寄存器尋址方式就是對由PSW程序狀態(tài)字確定的工作寄存器組的R0-R7進(jìn)行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機(jī)規(guī)定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內(nèi)部或外部數(shù)據(jù)存儲器的256個(gè)單元。為什么會是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,所以訪問片外數(shù)據(jù)存儲器時(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í)行后會把內(nèi)部RAM地址30H內(nèi)的值放到RAM的61H內(nèi)。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個(gè),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單元是一個(gè)特殊的尋址區(qū),除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內(nèi)容送入累加器A。 堆棧操作指令(PUSH和POP)也應(yīng)算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標(biāo)志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計(jì)數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時(shí),把兩者的內(nèi)容相加,所得到的結(jié)果作為操作數(shù)的地址。這種方式常用于訪問程序存儲器ROM中的數(shù)據(jù)表格,即查表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進(jìn)行尋址,或者說它是專門針對程序存儲器的尋址方式。例: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)容做為一個(gè)16位的地址,執(zhí)行JMP這條指令是,程序就轉(zhuǎn)移到A+DPTR指定的地址去執(zhí)行。 第二、三條指令MOVC A,@A+DPTR和MOVC A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現(xiàn)詳細(xì)說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個(gè)16位的數(shù)據(jù)指針寄存器,按理,它們的尋址范圍都應(yīng)是64K。我們在學(xué)習(xí)特殊功能寄存器時(shí)已知道,程序計(jì)數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說,PC的值是隨程序的執(zhí)行情況自動(dòng)改變的,我們不可以隨便的給PC賦值。而DPTR是一個(gè)數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進(jìn)行賦值。我們再看指令MOVC 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)用中,可能就會有一個(gè)問題,如果我們需要查詢的數(shù)據(jù)表在256個(gè)地址單元之內(nèi),則可以用MOVC A,@A+PC這條指令進(jìn)行查表操作,如果超過了256個(gè)單元,則不能用這條指令進(jìn)行查表操作。剛才我們已說到,DPTR是一個(gè)數(shù)據(jù)指針,這個(gè)數(shù)據(jù)指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC A,@A+DPTR這條指令的尋址范圍達(dá)到64K。這就是這兩條指令在實(shí)際應(yīng)用當(dāng)中要注意的問題。 變址尋址方式是MCS-51單片機(jī)所獨(dú)有的一種尋址方式。 位尋址 80C51單片機(jī)有位處理功能,可以對數(shù)據(jù)位進(jìn)行操作,因此就有相應(yīng)的位尋址方式。所謂位尋址,就是對內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個(gè)位,直接加以置位為1或復(fù)位為0。 位尋址的范圍,也就是哪些部份可以進(jìn)行位尋址: 1、我們在第十二課學(xué)習(xí)51單片機(jī)的存儲器結(jié)構(gòu)時(shí),我們已知道在單片機(jī)的內(nèi)部數(shù)據(jù)存儲器RAM的低128單元中有一個(gè)區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個(gè)單元,一個(gè)單元是8位,所以位尋址區(qū)共有128位。這128位都單獨(dú)有一個(gè)位地址,其位地址的名字就是00H-7FH。這里就有一個(gè)比較麻煩的問題需要大家理解清楚了。我們在前面的學(xué)習(xí)中00H、01H。。。。7FH等等,所表示的都是一個(gè)字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們在指令中,或者在程序中如何來區(qū)分它是一個(gè)單元地址還是一個(gè)位地址呢?這個(gè)問題,也就是我們現(xiàn)在正在研究的位尋址的一個(gè)重要問題。其實(shí),區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應(yīng)的指令形式的。這個(gè)問題我們在后面的指令系統(tǒng)學(xué)習(xí)中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關(guān)于專用寄存器的相關(guān)文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進(jìn)行位尋址,當(dāng)然并不是全部,大家在應(yīng)用當(dāng)中應(yīng)引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態(tài)字PSW來進(jìn)行說明 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 這四種方法實(shí)現(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 間接尋址方式 改錯(cuò)題 請判斷下列的MCS-51單片機(jī)指令的書寫格式是否有錯(cuò),若有,請說明錯(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
MSP430系列flash型超低功耗16位單片機(jī)MSP430系列單片機(jī)在超低功耗和功能集成等方面有明顯的特點(diǎn)。該系列單片機(jī)自問世以來,頗受用戶關(guān)注。在2000年該系列單片機(jī)又出現(xiàn)了幾個(gè)FLASH型的成員,它們除了仍然具備適合應(yīng)用在自動(dòng)信號采集系統(tǒng)、電池供電便攜式裝置、超長時(shí)間連續(xù)工作的設(shè)備等領(lǐng)域的特點(diǎn)外,更具有開發(fā)方便、可以現(xiàn)場編程等優(yōu)點(diǎn)。這些技術(shù)特點(diǎn)正是應(yīng)用工程師特別感興趣的。《MSP430系列FLASH型超低功耗16位單片機(jī)》對該系列單片機(jī)的FLASH型成員的原理、結(jié)構(gòu)、內(nèi)部各功能模塊及開發(fā)方法與工具作詳細(xì)介紹。MSP430系列FLASH型超低功耗16位單片機(jī) 目錄 第1章 引 論1.1 MSP430系列單片機(jī)1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 結(jié)構(gòu)概述2.1 引 言2.2 CPU2.3 程序存儲器2.4 數(shù)據(jù)存儲器2.5 運(yùn)行控制2.6 外圍模塊2.7 振蕩器與時(shí)鐘發(fā)生器第3章 系統(tǒng)復(fù)位、中斷及工作模式3.1 系統(tǒng)復(fù)位和初始化3.1.1 引 言3.1.2 系統(tǒng)復(fù)位后的設(shè)備初始化3.2 中斷系統(tǒng)結(jié)構(gòu)3.3 MSP430 中斷優(yōu)先級3.3.1 中斷操作--復(fù)位/NMI3.3.2 中斷操作--振蕩器失效控制3.4 中斷處理 3.4.1 SFR中的中斷控制位3.4.2 中斷向量地址3.4.3 外部中斷3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗應(yīng)用的要點(diǎn)23第4章 存儲空間4.1 引 言4.2 存儲器中的數(shù)據(jù)4.3 片內(nèi)ROM組織4.3.1 ROM 表的處理4.3.2 計(jì)算分支跳轉(zhuǎn)和子程序調(diào)用4.4 RAM 和外圍模塊組織4.4.1 RAM4.4.2 外圍模塊--地址定位4.4.3 外圍模塊--SFR4.5 FLASH存儲器4.5.1 FLASH存儲器的組織4.5.2 FALSH存儲器的數(shù)據(jù)結(jié)構(gòu)4.5.3 FLASH存儲器的控制寄存器4.5.4 FLASH存儲器的安全鍵值與中斷4.5.5 經(jīng)JTAG接口訪問FLASH存儲器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序計(jì)數(shù)器PC5.1.2 系統(tǒng)堆棧指針SP5.1.3 狀態(tài)寄存器SR5.1.4 常數(shù)發(fā)生寄存器CG1和CG25.2 尋址模式5.2.1 寄存器模式5.2.2 變址模式5.2.3 符號模式5.2.4 絕對模式5.2.5 間接模式5.2.6 間接增量模式5.2.7 立即模式5.2.8 指令的時(shí)鐘周期與長度5.3 指令組概述5.3.1 雙操作數(shù)指令5.3.2 單操作數(shù)指令5.3.3 條件跳轉(zhuǎn)5.3.4 模擬指令的簡短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 無符號數(shù)相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符號數(shù)相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 無符號數(shù)乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符號數(shù)乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的軟件限制6.4.1 尋址模式6.4.2 中斷程序6.4.3 MACS第7章 基礎(chǔ)時(shí)鐘模塊7.1 基礎(chǔ)時(shí)鐘模塊7.2 LFXT1與XT27.2.1 LFXT1振蕩器7.2.2 XT2振蕩器7.2.3 振蕩器失效檢測7.2.4 XT振蕩器失效時(shí)的DCO7.3 DCO振蕩器7.3.1 DCO振蕩器的特性7.3.2 DCO調(diào)整器7.4 時(shí)鐘與運(yùn)行模式7.4.1 由PUC啟動(dòng)7.4.2 基礎(chǔ)時(shí)鐘調(diào)整7.4.3 用于低功耗的基礎(chǔ)時(shí)鐘特性7.4.4 選擇晶振產(chǎn)生MCLK7.4.5 時(shí)鐘信號的同步7.5 基礎(chǔ)時(shí)鐘模塊控制寄存器7.5.1 DCO時(shí)鐘頻率控制7.5.2 振蕩器與時(shí)鐘控制寄存器7.5.3 SFR控制位第8章 輸入輸出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中斷控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口邏輯第9章 看門狗定時(shí)器WDT9.1 看門狗定時(shí)器9.2 WDT寄存器9.3 WDT中斷控制功能9.4 WDT操作第10章 16位定時(shí)器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定時(shí)器模式控制10.2.2 時(shí)鐘源選擇和分頻10.2.3 定時(shí)器啟動(dòng)10.3 定時(shí)器模式10.3.1 停止模式10.3.2 增計(jì)數(shù)模式10.3.3 連續(xù)模式10.3.4 增/減計(jì)數(shù)模式10.4 捕獲/比較模塊10.4.1 捕獲模式10.4.2 比較模式10.5 輸出單元10.5.1 輸出模式10.5.2 輸出控制模塊10.5.3 輸出舉例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕獲/比較控制寄存器CCTLx10.6.4 Timer_A中斷向量寄存器10.7 Timer_A的UART應(yīng)用 第11章 16位定時(shí)器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定時(shí)器長度11.2.2 定時(shí)器模式控制11.2.3 時(shí)鐘源選擇和分頻11.2.4 定時(shí)器啟動(dòng)11.3 定時(shí)器模式11.3.1 停止模式11.3.2 增計(jì)數(shù)模式11.3.3 連續(xù)模式11.3.4 增/減計(jì)數(shù)模式11.4 捕獲/比較模塊11.4.1 捕獲模式11.4.2 比較模式11.5 輸出單元11.5.1 輸出模式11.5.2 輸出控制模塊11.5.3 輸出舉例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕獲/比較控制寄存器CCTLx11.6.4 Timer_B中斷向量寄存器第12章 USART通信模塊的UART功能12.1 異步模式12.1.1 異步幀格式12.1.2 異步通信的波特率發(fā)生器12.1.3 異步通信格式12.1.4 線路空閑多機(jī)模式12.1.5 地址位多機(jī)通信格式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 多處理機(jī)模式對節(jié)約MSP430資源的支持12.5 波特率計(jì)算 第13章 USART通信模塊的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的從模式13.2 中斷與控制功能 13.2.1 USART接收/發(fā)送允許位及接收操作13.2.2 USART接收/發(fā)送允許位及發(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章 比較器Comparator_A14.1 概 述14.2 比較器A原理14.2.1 輸入模擬開關(guān)14.2.2 輸入多路切換14.2.3 比較器14.2.4 輸出濾波器14.2.5 參考電平發(fā)生器14.2.6 比較器A中斷電路14.3 比較器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比較器A應(yīng)用14.4.1 模擬信號在數(shù)字端口的輸入14.4.2 比較器A測量電阻元件14.4.3 兩個(gè)獨(dú)立電阻元件的測量系統(tǒng)14.4.4 比較器A檢測電流或電壓14.4.5 比較器A測量電流或電壓14.4.6 測量比較器A的偏壓14.4.7 比較器A的偏壓補(bǔ)償14.4.8 增加比較器A的回差第15章 模數(shù)轉(zhuǎn)換器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC內(nèi)核15.2.2 參考電平15.3 模擬輸入與多路切換15.3.1 模擬多路切換15.3.2 輸入信號15.3.3 熱敏二極管的使用15.4 轉(zhuǎn)換存儲15.5 轉(zhuǎn)換模式15.5.1 單通道單次轉(zhuǎn)換模式15.5.2 序列通道單次轉(zhuǎn)換模式15.5.3 單通道重復(fù)轉(zhuǎn)換模式15.5.4 序列通道重復(fù)轉(zhuǎn)換模式15.5.5 轉(zhuǎn)換模式之間的切換15.5.6 低功耗15.6 轉(zhuǎn)換時(shí)鐘與轉(zhuǎn)換速度15.7 采 樣15.7.1 采樣操作15.7.2 采樣信號輸入選擇15.7.3 采樣模式15.7.4 MSC位的使用15.7.5 采樣時(shí)序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 轉(zhuǎn)換存儲寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中斷標(biāo)志寄存器ADC12IFG.x和中斷允許寄存器ADC12IEN.x15.8.5 中斷向量寄存器ADC12IV15.9 ADC12接地與降噪第16章 FLASH型芯片的開發(fā)16.1 開發(fā)系統(tǒng)概述16.1.1 開發(fā)技術(shù)16.1.2 MSP430系列的開發(fā)16.1.3 MSP430F系列的開發(fā)16.2 FLASH型的FET開發(fā)方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 標(biāo)準(zhǔn)復(fù)位過程和進(jìn)入BSL過程16.3.2 BSL的UART協(xié)議16.3.3 數(shù)據(jù)格式16.3.4 退出BSL16.3.5 保護(hù)口令16.3.6 BSL的內(nèi)部設(shè)置和資源附錄A 尋址空間附錄B 指令說明B.1 指令匯總B.2 指令格式B.3 不增加ROM開銷的模擬指令B.4 指令說明(字母順序)B.5 用幾條指令模擬的宏指令附錄C MSP430系列單片機(jī)參數(shù)表附錄D MSP430系列單片機(jī)封裝形式附錄E MSP430系列器件命名
上傳時(shí)間: 2014-04-28
上傳用戶:sssnaxie
pic單片機(jī)實(shí)用教程(提高篇)以介紹PIC16F87X型號單片機(jī)為主,并適當(dāng)兼顧PIC全系列,共分9章,內(nèi)容包括:存儲器;I/O端口的復(fù)位功能;定時(shí)器/計(jì)數(shù)器TMR1;定時(shí)器TMR2;輸入捕捉/輸出比較/脈寬調(diào)制CCP;模/數(shù)轉(zhuǎn)換器ADC;通用同步/異步收發(fā)器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特點(diǎn):通俗易懂、可讀性強(qiáng)、系統(tǒng)全面、學(xué)練結(jié)合、學(xué)用并重、實(shí)例豐富、習(xí)題齊全。<br>本書作為Microchip公司大學(xué)計(jì)劃選擇用書,可廣泛適用于初步具備電子技術(shù)基礎(chǔ)和計(jì)算機(jī)知識基礎(chǔ)的學(xué)生、教師、單片機(jī)愛好者、電子制作愛好者、電器維修人員、電子產(chǎn)品開發(fā)設(shè)計(jì)者、工程技術(shù)人員閱讀。本教程全書共分2篇,即基礎(chǔ)篇和提高篇,分2冊出版,以適應(yīng)不同課時(shí)和不同專業(yè)的需要,也為教師和讀者增加了一種可選方案。 第1章 EEPROM數(shù)據(jù)存儲器和FIASH程序存儲器1.1 背景知識1.1.1 通用型半導(dǎo)體存儲器的種類和特點(diǎn)1.1.2 PIC單片機(jī)內(nèi)部的程序存儲器1.1.3 PIC單片機(jī)內(nèi)部的EEPROM數(shù)據(jù)存儲器1.1.4 PIC16F87X內(nèi)部EEPROM和FIASH操作方法1.2 與EEPROM相關(guān)的寄存器1.3 片內(nèi)EEPROM數(shù)據(jù)存儲器結(jié)構(gòu)和操作原理1.3.1 從EEPROM中讀取數(shù)據(jù)1.3.2 向EEPROM中燒寫數(shù)據(jù)1.4 與FLASH相關(guān)的寄存器1.5 片內(nèi)FLASH程序存儲器結(jié)構(gòu)和操作原理1.5.1 讀取FLASH程序存儲器1.5.2 燒寫FLASH程序存儲器1.6 寫操作的安全保障措施1.6.1 寫入校驗(yàn)方法1.6.2 預(yù)防意外寫操作的保障措施1.7 EEPROM和FLASH應(yīng)用舉例1.7.1 EEPROM的應(yīng)用1.7.2 FIASH的應(yīng)用思考題與練習(xí)題第2章 輸入/輸出端口的復(fù)合功能2.1 RA端口2.1.1 與RA端口相關(guān)的寄存器2.1.2 電路結(jié)構(gòu)和工作原理2.1.3 編程方法2.2 RB端口2.2.1 與RB端口相關(guān)的寄存器2.2.2 電路結(jié)構(gòu)和工作原理2.2.3 編程方法2.3 RC端口2.3.1 與RC端口相關(guān)的寄存器2.3.2 電路結(jié)構(gòu)和工作原理2.3.3 編程方法2.4 RD端口2.4.1 與RD端口相關(guān)的寄存器2.4.2 電路結(jié)構(gòu)和工作原理2.4.3 編程方法2.5 RE端口2.5.1 與RE端口相關(guān)的寄存器2.5.2 電路結(jié)構(gòu)和工作原理2.5.3 編程方法2.6 PSP并行從動(dòng)端口2.6.1 與PSP端口相關(guān)的寄存器2.6.2 電路結(jié)構(gòu)和工作原理2.7 應(yīng)用舉例思考題與練習(xí)題第3章 定時(shí)器/計(jì)數(shù)器TMR13.1 定時(shí)器/計(jì)數(shù)器TMR1模塊的特性3.2 定時(shí)器/計(jì)數(shù)器TMR1模塊相關(guān)的寄存器3.3 定時(shí)器/計(jì)數(shù)器TMR1模塊的電路結(jié)構(gòu)3.4 定時(shí)器/計(jì)數(shù)器TMR1模塊的工作原理3.4.1 禁止TMR1工作3.4.2 定時(shí)器工作方式3.4.3 計(jì)數(shù)器工作方式3.4.4 TMR1寄存器的賦值與復(fù)位3.5 定時(shí)器/計(jì)數(shù)器TMR1模塊的應(yīng)用舉例思考題與練習(xí)題第4章 定時(shí)器TMR24.1 定時(shí)器TMR2模塊的特性4.2 定時(shí)器TMR2模塊相關(guān)的寄存器4.3 定時(shí)器TMR2模塊的電路結(jié)構(gòu)4.4 定時(shí)器TMR2模塊的工作原理4.4.1 禁止TMR2工作4.4.2 定時(shí)器工作方式4.4.3 寄存器TMR2和PR2以及分頻器的復(fù)位4.4.4 TMR2模塊的初始化編程4.5 定時(shí)器TMR2模塊的應(yīng)用舉例思考題與練習(xí)題第5章 輸入捕捉/輸出比較/脈寬調(diào)制CCP5.1 輸入捕捉工作模式5.1.1 輸入捕捉摸式相關(guān)的寄存器5.1.2 輸入捕捉模式的電路結(jié)構(gòu)5.1.3 輸入捕捉摸式的工作原理5.1.4 輸入捕捉摸式的應(yīng)用舉例5.2 輸出比較工作模式5.2.1 輸出比較模式相關(guān)的寄存器5.2.2 輸出比較模式的電路結(jié)構(gòu)5.2.3 輸出比較模式的工作原理5.2.4 輸出比較模式的應(yīng)用舉例5.3 脈寬調(diào)制輸出工作模式5.3.1 脈寬調(diào)制模式相關(guān)的寄存器5.3.2 脈寬調(diào)制模式的電路結(jié)構(gòu)5.3.3 脈寬調(diào)制模式的工作原理5.3.4 脈定調(diào)制模式的應(yīng)用舉例5.4 兩個(gè)CCP模塊之間相互關(guān)系思考題與練習(xí)題第6章 模/數(shù)轉(zhuǎn)換器ADC6.1 背景知識6.1.1 ADC種類與特點(diǎn)6.1.2 ADC器件的工作原理6.2 PIC16F87X片內(nèi)ADC模塊6.2.1 ADC模塊相關(guān)的寄存器6.2.2 ADC模塊結(jié)構(gòu)和操作原理6.2.3 ADC模塊操作時(shí)間要求6.2.4 特殊情況下的A/D轉(zhuǎn)換6.2.5 ADC模塊的轉(zhuǎn)換精度和分辨率6.2.6 ADC模塊的內(nèi)部動(dòng)作流程和傳遞函數(shù)6.2.7 ADC模塊的操作編程6.3 PIC16F87X片內(nèi)ADC模塊的應(yīng)用舉例思考題與練習(xí)題第7章 通用同步/異步收發(fā)器USART7.1 串行通信的基本概念7.1.1 串行通信的兩種基本方式7.1.2 串行通信中數(shù)據(jù)傳送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的碼型、編碼方式和幀結(jié)構(gòu)7.1.5 串行通信中的檢錯(cuò)和糾錯(cuò)方式7.1.6 串行通信組網(wǎng)方式7.1.7 串行通信接口電路和參數(shù)7.1.8 串行通信的傳輸速率7.2 PIC16F87X片內(nèi)通用同步/異步收發(fā)器USART模塊7.2.1 與USART模塊相關(guān)的寄存器7.2.2 USART波特率發(fā)生器BRG7.2.3 USART模塊的異步工作方式7.2.4 USART模塊的同步主控工作方式7.2.5 USART模塊的同步從動(dòng)工作方式7.3 通用同步/異步收發(fā)器USART的應(yīng)用舉例思考題與練習(xí)題第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知識8.1.1 SPI接口信號描述8.1.2 基于SPI的系統(tǒng)構(gòu)成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相關(guān)的寄存器8.2.2 SPI接口的結(jié)構(gòu)和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的從動(dòng)方式8.3 SPI接口的應(yīng)用舉例思考題與練習(xí)題第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C總線的背景知識9.1.1 名詞術(shù)語9.1.2 I(平方)C總線的技術(shù)特點(diǎn)9.1.3 I(平方)C總線的基本工作原理9.1.4 I(平方)C總線信號時(shí)序分析9.1.5 信號傳送格式9.1.6 尋址約定9.1.7 技術(shù)參數(shù)9.1.8 I(平方)C器件與I(平方)C總線的接線方式9.1.9 相兼容的SMBus總線9.2 與I(平方)C總線相關(guān)的寄存器9.3 典型信號時(shí)序的產(chǎn)生方法9.3.1 波特率發(fā)生器9.3.2 啟動(dòng)信號9.3.3 重啟動(dòng)信號9.3.4 應(yīng)答信號9.3.5 停止信號9.4 被控器通信方式9.4.1 硬件結(jié)構(gòu)9.4.2 被主控器尋址9.4.3 被控器接收——被控接收器9.4.4 被控器發(fā)送——被控發(fā)送器9.4.5 廣播式尋址9.5 主控器通信方式9.5.1 硬件結(jié)構(gòu)9.5.2 主控器發(fā)送——主控發(fā)送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的總線沖突和總線仲裁9.6.1 發(fā)送和應(yīng)答過程中的總線沖突9.6.2 啟動(dòng)過程中的總線沖突9.6.3 重啟動(dòng)過程中的總線沖突9.6.4 停止過程中的總線沖突9.7 I(平方)C總線的應(yīng)用舉例思考題與練習(xí)題附錄A 包含文件P16F877.INC附錄B 新版宏匯編器MPASM偽指令總表參考文獻(xiàn)
標(biāo)簽: pic 單片機(jī) 實(shí)用教程
上傳時(shí)間: 2013-12-14
上傳用戶:xiaoyuer
第八章 labview的編程技巧 本章介紹局部變量、全局變量、屬性節(jié)點(diǎn)和其他一些有助于提高編程技巧的問題,恰當(dāng)?shù)剡\(yùn)用這些技巧可以提高程序的質(zhì)量。 8.1 局部變量 嚴(yán)格的語法盡管可以保證程序語言的嚴(yán)密性,但有時(shí)它也會帶來一些使用上的不便。在labview這樣的數(shù)據(jù)流式的語言中,將變量嚴(yán)格地分為控制器(Control)和指示器(Indicator),前者只能向外流出數(shù)據(jù),后者只能接受流入的數(shù)據(jù),反過來不行。在一般的代碼式語言中,情況不是這樣的。例如我們有變量a、b和c,只要需要我們可以將a的值賦給b,將b的值賦給c等等。前面所介紹的labview內(nèi)容中,只有移位積存器即可輸入又可輸出。另外,一個(gè)變量在程序中可能要在多處用到,在圖形語言中勢必帶來過多連線,這也是一件煩人的事。還有其他需要,因此labview引入了局部變量。
上傳時(shí)間: 2013-10-27
上傳用戶:xieguodong1234
8051入間程序,包括串并轉(zhuǎn)換、數(shù)碼管驅(qū)動(dòng)、ADC、BCD、16x2 LCD、串口通訊、伺服器驅(qū)動(dòng)等。由本人編寫。
上傳時(shí)間: 2013-12-17
上傳用戶:ommshaggar
函數(shù)名稱:CRC-16 Process 函數(shù)原型:INT16U make_crc16(INT8U *msgaddr,INT8U datalen) 函數(shù)功能:進(jìn)行CRC校驗(yàn)和產(chǎn)生CRC代碼.這個(gè)函數(shù)只影響全局變量crc16. 校驗(yàn)字放在字符串最后,低8位在前高8位在后. msgaddr : 進(jìn)行CRC16校驗(yàn)的據(jù)塊的首地址 datalen : 進(jìn)行CRC16校驗(yàn)的據(jù)塊的個(gè)數(shù) CRC-ITU的計(jì)算算法如下: a.寄存器組初始化為全"1"(0xFFFF)。 b.寄存器組向右移動(dòng)一個(gè)字節(jié)。 c.剛移出的那個(gè)字節(jié)與數(shù)據(jù)字節(jié)進(jìn)行異或運(yùn)算,得出一個(gè)指向值表的索引。 d.索引所指的表值與寄存器組做異或運(yùn)算。 f.數(shù)據(jù)指針加1,如果數(shù)據(jù)沒有全部處理完,則重復(fù)步驟b。 g.寄存器組取反,得到CRC,附加在數(shù)據(jù)之后(這一步可省略)。
上傳時(shí)間: 2015-12-21
上傳用戶:llandlu
這個(gè)是基于在CCS開發(fā)環(huán)境下,用DM642-B-ICETEK-5100USB仿真器,實(shí)現(xiàn)的sobel邊緣檢測算法的程序。
標(biāo)簽: CCS 開發(fā)環(huán)境
上傳時(shí)間: 2016-08-14
上傳用戶:ecooo
基于 FPGA 的高速 AD 轉(zhuǎn)換 基于 FPGA 的高速 AD 轉(zhuǎn)換 基于 FPGA 的高速 AD 轉(zhuǎn)換 基于 FPGA 的高速 AD 轉(zhuǎn)換
標(biāo)簽: VHDL
上傳時(shí)間: 2015-05-15
上傳用戶:xiaobudong
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1