mc9s12xs128常用模塊超詳細(xì)中文_第1頁(yè)
mc9s12xs128常用模塊超詳細(xì)中文_第2頁(yè)
mc9s12xs128常用模塊超詳細(xì)中文_第3頁(yè)
mc9s12xs128常用模塊超詳細(xì)中文_第4頁(yè)
mc9s12xs128常用模塊超詳細(xì)中文_第5頁(yè)
已閱讀5頁(yè),還剩113頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

目 第一章PWM模 第一節(jié)PWM模塊介 第二節(jié)PWM寄存器簡(jiǎn) 第三節(jié)PWM應(yīng)用實(shí) 第一節(jié)ECT模塊介 簡(jiǎn) 特 運(yùn)行模 第二節(jié)ECT寄存器簡(jiǎn) 第三節(jié)ECT應(yīng)用實(shí) 通道6輸出比 通道7輸出比 第三章SCI模 第一節(jié)SCI寄存器簡(jiǎn) 第二節(jié)SCI應(yīng)用示 第四章SPI模 第一節(jié)SPI模塊介 第二節(jié)SPI寄存器簡(jiǎn) 第三節(jié)SPI應(yīng)用實(shí) 第五章A/D轉(zhuǎn)換模 第一節(jié)A/D模塊介 第二節(jié)A/D寄存器簡(jiǎn) 第三節(jié)A/D應(yīng)用示 第六章EEPROM模 第一節(jié)EEPROM模塊介 第二節(jié)EEPROM寄存器簡(jiǎn) 第三節(jié)EEPROM應(yīng)用實(shí) 第七章FLASH模 第一節(jié)FLASH模塊介 第二節(jié)FLASH寄存器簡(jiǎn) 配置寄存器 安全寄存器 保護(hù)寄存器 狀態(tài)寄存器FSTAT狀態(tài)寄存 命令寄存器 第三節(jié)FLASH應(yīng)用實(shí) 第八章CodeWarriorIDE12應(yīng) PWM第一節(jié)PWMPWM8個(gè)輸出通道,每一個(gè)輸出通道都可以獨(dú)立的進(jìn)行輸出。每5PWM0時(shí),改變周第二節(jié)PWM圖 PWME寄存而實(shí)際的PWM波形的輸出還取決于時(shí)鐘源。用法:PWME7=1;7通道可對(duì)外輸出波形。PWME7=0;7在串聯(lián)模式時(shí)(PWMCTL寄存器中的CONxx位被設(shè)置,那么使能相應(yīng)的16圖 PWMPOL寄存時(shí)翻轉(zhuǎn)。此功能就是由PWMPOL寄存器實(shí)現(xiàn)的。用法:PWMPOL0=10圖 PWMCLK寄存4、5A、SA時(shí)鐘,2、3、6、7B、SB通道。此寄存器用法:PCLK1=1;1SA。PCLK1=0;1A圖 PWMPRCLK寄存源進(jìn)行預(yù)分頻。這6位可以隨時(shí)被讀、被寫(xiě)。復(fù)位時(shí)置0。 圖 時(shí)鐘A預(yù)分頻選擇 圖 時(shí)鐘B預(yù)分頻選擇圖 PWMCAE寄存PWMCAE8PWM通道設(shè)置左對(duì)齊輸出或居圖 PWMCTL寄存制字有用。例如:7通道的PWME寄存器決定了他們的輸出情況,7通道的寄存器決定了他們兩個(gè)的時(shí)鐘源,7PWMCAE寄存器決定了他們是左對(duì)CON67=06,7CON45、CON23、CON01CON67相似。設(shè)置此控制字的意義在于擴(kuò)大了PWM對(duì)外輸出脈沖的頻率范圍。圖 SA是通過(guò)對(duì)PWMSCLA寄存器的設(shè)置來(lái)對(duì)A時(shí)鐘進(jìn)行分頻而產(chǎn)生的。ClockSA=ClockAPWMSCLB寄存器同PWMSCLA寄存器相似,時(shí)鐘SB就是通過(guò)對(duì)ClockSB=ClockBPWMCNTx8PWMCNT0為例對(duì)PWMCNTx寄存器進(jìn)行介紹。圖 PWMCNT0寄存計(jì)數(shù),也不影響對(duì)PWM通道的操作。PWMCNT00,且其計(jì)數(shù)方向會(huì)0(PWMEx=0周期寄存器同緩沖器一起閉鎖。圖12所示的是PWMPER0寄存器。

圖 PWMPER0寄存器1)CAEx=0PWMx周期=通道時(shí)鐘周期*PWMPERx2)CAEx=1PWMx周期=通道時(shí)鐘周期PWMDTYx8個(gè),每一個(gè)通道都有一個(gè)這樣的占空比常數(shù)寄存0(PWMEx=0當(dāng)PPOL=0時(shí):占空比=[(PWMPERx—PWMDTYx)/PPOL=1占空比=(PWMDTYx/第三節(jié)PWM例1 nsPPOLx=0, PWMx輸出頻率=10MHz/4=2.5MHzPWMx輸出周期=1/(2.5 PWMx占空比=3/4=25%PWMx輸出頻率=時(shí)鐘頻率PPOLx=0/PPOLx=1占空比=[PWMDTYx/例2 nsPPOLx=0, PWMx輸出頻率=10MHz/(4*2)=1.25MHzPWMx輸出周期=1/(1.25M)=800nsPWMx占空比=3/4=25%當(dāng)PPOLx=0時(shí)/PPOLx=1占空比=[PWMDTYx/PWMDTYx和PWMPERx進(jìn)行設(shè)置時(shí),PWMPERx寄存器的值應(yīng)當(dāng)大于PWMDTYx寄存器的值。1、禁止PWM 2Selectclockprescalerandscale)forthePWMPWMPRCLK,PWMSCLA,3、選擇極性Selectpolarity4SelectcenterorleftalignedmodePWMDTYx,PWMPERx6PWM通道EnableusedPWMchannels實(shí)驗(yàn)設(shè)備:HCS12JPb80#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"void{ PWMCLK_PCLK0=0;//設(shè)A為其時(shí)鐘源 PWMDTY0=0X01;//占空比為25%的波形 //輸出為500Hz的波PWMCNT0=0X00;//0通道計(jì)數(shù)器清0PWME_PWME0=1;//0通道使能,0通道為輸出通道}#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"intvoid{EnableInterrupts;//中斷設(shè)置 PWMCTL_CON01=1;//對(duì)PWM控制寄存器進(jìn)行設(shè)置,0,1PWMCNT1=0X00;//0,1通道計(jì)數(shù)器清0PWMCLK_PCLK1=0;//設(shè)A為其時(shí)鐘源 //不對(duì)A時(shí)鐘進(jìn)行分頻{ PWME=0;//0,1通道關(guān)閉}#pragma NEAR_SEGinterruptvoid{{}}T第一節(jié)ECTTHC12增強(qiáng)型捕捉計(jì)時(shí)器模塊在HC12標(biāo)準(zhǔn)定時(shí)器的基礎(chǔ)上增加了一些特點(diǎn),用以擴(kuò)展它的應(yīng)用范圍,特別是在汽車(chē)ABS方面。16位的可編程計(jì)數(shù)器,其時(shí)鐘源來(lái)自一個(gè)預(yù)8IC8僅支持IP16等待:計(jì)數(shù)器保持運(yùn)行,直到TSCR($06)TSWAI位被置1。移量。總地址是ECT模塊的基地址與偏移地址之和。ECT8IC/OC通道、48216位的脈沖累加器(PAD4ICTIM模塊相近,當(dāng)相關(guān)引腳出現(xiàn)預(yù)定動(dòng)作時(shí),通過(guò)各自的捕捉寄存器TCn記錄定時(shí)器的值;另外四個(gè)IC通道,除了捕捉寄存器連續(xù)兩次捕捉定時(shí)器的值。48PAl0-34ICIC0-3相關(guān)聯(lián),并共享輸入引腳PORTT0-3。每一個(gè)脈沖累加器通道都擁有一個(gè)緩沖器8位的脈沖累加器還可以通過(guò)級(jí)聯(lián)形成16PACA、PACB。MDC0時(shí),將在給定的時(shí)間段內(nèi)控IC/OC寄PORTnPORT(n-4)的延遲計(jì)數(shù)器輸出,使用更加P時(shí)鐘(模塊時(shí)鐘)進(jìn)行計(jì)數(shù),當(dāng)?shù)竭_(dá)設(shè)定的計(jì)數(shù)值后,延遲計(jì)數(shù)器在其輸出端式下,每個(gè)有效的引腳事件只將自由定時(shí)器的值放入捕捉寄存器TCn,而TCn到保持寄存器TCnH的傳送必須依賴遞減模數(shù)計(jì)數(shù)器回0或者其他強(qiáng)制鎖存命令TCnTCnH形成了一個(gè)類似先進(jìn)先出的隊(duì)列,每個(gè)捕捉結(jié)果從TCn進(jìn)入,然TCnCPU提方式下,PAIIC都可以同時(shí)工作,對(duì)同一引腳進(jìn)行記錄,前者記錄脈沖或者PACA、PACB,它可以統(tǒng)計(jì)輸入引腳上出現(xiàn)的有效邊沿的數(shù)量,也可以IC工作在兩種不同的隊(duì)列方式PAC保持寄存器也處于不同的工作狀態(tài),在鎖存方式下,PCnH的加載依MDCICTCnH讀命令??梢?jiàn)在ECT模塊下,ICPAI的工作聯(lián)系更加緊密。0,這時(shí),計(jì)數(shù)值$FF255,16位遞減模數(shù)計(jì)數(shù)器(MDC)可以用作時(shí)鐘基準(zhǔn),產(chǎn)生周期性的中斷請(qǐng)求,IC寄存器和脈沖累加器的值鎖存到各自的保持寄存器中。鎖存動(dòng)作可以通過(guò)程序設(shè)定為周期性的或一次性的。MDC的時(shí)鐘頻率可通過(guò)獨(dú)立的定標(biāo)器與MDC計(jì)數(shù)器使用相同的地址,加載時(shí)通過(guò)特殊的時(shí)序?qū)崿F(xiàn)。的緩沖寄存器傳輸。反映了MDC在IC、PAI系統(tǒng)中的作用。ECT的自由定時(shí)器與TIM模塊基本相同,惟一的區(qū)別是TMSK2中的TIM6個(gè)選項(xiàng),這樣定時(shí)器時(shí)鐘頻率可以更低,周期更長(zhǎng)。MDC($37、$36)MCCNT和預(yù)分頻器,分別為成$FFFFMCEN1,MDC啟16MCCTLMCPR1MCPRO確定(MCCTL計(jì)數(shù)方式,回到$0000后停止,反之為循環(huán)工作方式。MDC0MCFLG($27)0IC、PAC發(fā)出數(shù)據(jù)保持命令(IC、PAC部分),這是MDCMODMC=1時(shí),MDC0后還將自每次讀操作的具體訪問(wèn)對(duì)象。當(dāng)RDMCL=0/1時(shí),讀操作分別返回MDC和MCCNTMCCNTMODMC=1MDCFLMC位寫(xiě)1可以實(shí)現(xiàn)MDC的立即加載,同時(shí)還將復(fù)位預(yù)分頻器。如果MODMC:0,對(duì)地址$37、$36進(jìn)行寫(xiě)入操作也將復(fù)位預(yù)分頻器,并用寫(xiě)入值立MDC計(jì)數(shù)器,然后開(kāi)始一次遞減計(jì)數(shù),回到$0000后停止??梢?jiàn)在單次方式下可以直接指定定時(shí)常數(shù),而在連續(xù)方式下則必須通過(guò)常數(shù)寄存器ICSYS($AB)LATQ、BUFEN1時(shí),如果將$0000寫(xiě)入MCCNT和模數(shù)計(jì)數(shù)器,輸入捕捉和脈沖累加寄存器將被鎖存。將$0000寫(xiě)入IC通道分為緩沖與非緩沖兩類,緩沖類又具有鎖存與隊(duì)列兩種工作方式,ICPT0-3TCn的基IC通道主要由有效輸入邊沿檢測(cè)、延遲濾波、捕捉與保持寄存器1024P時(shí)鐘周期。延遲計(jì)數(shù)結(jié)束后,計(jì)數(shù)器自動(dòng)清除,輸入信號(hào)兩個(gè)有效邊ICOVW、ICSYSTFLGlCOFCOF置位,如果I=1CP$FFEFTFLG1C0F1將清除該標(biāo)志位。對(duì)于鎖存方式和隊(duì)列些情況包括模數(shù)計(jì)數(shù)器自然回0、向模數(shù)計(jì)數(shù)器直接寫(xiě)$0000、向控制寄存器那么捕捉寄存器和保持寄存器必須處于清空狀態(tài)才允許寫(xiě)入,否則不能寫(xiě)入。這樣可以避免讀取或者轉(zhuǎn)移到保持寄存器前,TC0被覆蓋。ICICOVWNOVWx0,而這時(shí)式下,C3F-C0F中斷標(biāo)志的建立條件如圖7-6所示。這類通道與TIM模塊相似,但是增加了覆蓋控制位、入口處的延遲計(jì)數(shù)器及引入了雙引腳控制(PT0)PT4引腳出現(xiàn)有效事件時(shí),主定時(shí)器的值可捕捉事件時(shí),IC寄存器將用新的時(shí)間值覆蓋上次捕捉結(jié)果。1IC寄存器將不被覆蓋,除非此時(shí)它處于清空ECT的四個(gè)8位的脈沖累加器可以獨(dú)立使用,也可級(jí)聯(lián)使用,這樣可以滿8PAC3-016ABPAC通道時(shí)對(duì)應(yīng)引腳必須通過(guò)寄存器TIOSIC方式。有效邊沿將被送到延遲計(jì)數(shù)部分進(jìn)行窄脈沖消除,然后分別送到PACN0/TCL4單獨(dú)設(shè)置,可選項(xiàng)包括DLYCT設(shè)置,可選0、256、512、1024P時(shí)鐘周期,但所有通道共用一個(gè)延遲時(shí)間,不能分別設(shè)置。PACN3PACN2PACN3從$FF回滾到$ooPBFLGPBOVF1PBCTL中的PBOVI=1,同時(shí)CPU全局中斷屏蔽位I=1,將向CPU申請(qǐng)中斷,中斷矢量為后續(xù)事件的計(jì)數(shù),而保持在$FFPACNx=$FF說(shuō)明其計(jì)數(shù)結(jié)果大于或者等與255。ICSYSBUFEN=1PAlH、PAOH有效,用來(lái)保存沖累加器的值將被轉(zhuǎn)移到與它對(duì)應(yīng)的保持寄存器,其自身同時(shí)清0。LATQ=0(隊(duì)列方式)IC此外,PAC設(shè)置了覆蓋限制功能,當(dāng)保持寄存器為空時(shí),將允許進(jìn)行結(jié)果ICSYS實(shí)現(xiàn)。PACN2A(PAl)TIM保持一致,PAlPT7,過(guò)程與TIM的PAI完全相同。PACN0BPT0FT0的邊沿檢測(cè)和延遲電路,但沒(méi)有門(mén)控時(shí)間累加方式,此外該通道只有溢出中斷,這與通道ABA6章的第二節(jié)ECT寄存器偏移量 復(fù)位后 IOSn=0n為輸入捕捉(1C)IOSn=1n認(rèn)為$00,TSCRTEN0I/O方式,將IC的通道具有內(nèi)部上拉功能,但上電后均處于關(guān)閉狀態(tài),可以根據(jù)需要啟寄存器偏移量 復(fù)位后 前面已經(jīng)說(shuō)明,OC77個(gè)輸出OC7M決定哪些通OC7OC7MPORTT口寄存器的各位一一對(duì)DDROC7Mn并不改變DDR相應(yīng)位的狀態(tài)。OC7MTCTL1TCTL2OMnOLnOC7M1OM和OL設(shè)定的動(dòng)作。寄存器偏移量 復(fù)位后 則內(nèi)部邏輯將OC7Dn送到對(duì)應(yīng)引腳。OC7M176-0的動(dòng)作發(fā)生在同一個(gè)周期,前者將覆蓋后者。因此各個(gè)通道的動(dòng)作將依賴于OC7D寄存器偏移量:$0004-復(fù)位后 在特殊模式下,TCNT可寫(xiě),但因?yàn)閷?xiě)操作與預(yù)分頻器時(shí)鐘不同步,TCNT寄存器偏移量 復(fù)位后 待、BDM方式下的行為,還包括標(biāo)志的管理方式。其各位的意義如下:IC/OCTEN置位。如果因?yàn)槟撤N原因定時(shí)器沒(méi)有使能,脈ECLK/64ECLK/64是由定時(shí)器的分頻器產(chǎn) 1MCU進(jìn)入中斷等待模式時(shí),禁止計(jì)時(shí)器。 不能停止脈沖累加。TFFCA: 自動(dòng)清除相應(yīng)的標(biāo)志位CnF。TFLG2($0F)TCNT寄存器($04、$05)的訪問(wèn)均會(huì)清PAFLG寄存器($21)PAOVFPAIFPACN1PACN0寄存器寄存器偏移量 復(fù)位后 較模式下有效,它的優(yōu)先級(jí)高出強(qiáng)制輸出比較,而低于通道7的輸出比較。 寄存器偏移量 復(fù)位后 寄存器偏移量 復(fù)位后 寄存器偏移量 復(fù)位后 寄存器偏移量 復(fù)位后 TCTLl-TCTL4ICOC16個(gè)二進(jìn)TCTLl、TCTL2OC通道應(yīng)引腳的何種動(dòng)作,包括禁止IC的響應(yīng)。各個(gè)控制位的作用如下:OL0)編碼后用于指定通道比較成功后的輸出動(dòng)作(參看表7-3)。如果每對(duì)當(dāng)中至當(dāng)二者同時(shí)為0時(shí),OC與輸出引腳斷開(kāi)。7-300011011EDGnB、EDGnA8對(duì)控制位(EDG7B、EDG7A—EDGOB、EDGOA)對(duì)輸入捕捉的邊沿檢測(cè)電路進(jìn)行設(shè)置(7-4。當(dāng)二者同時(shí)為0時(shí),IC與輸入引腳斷開(kāi)。7-400011011OMn、OLn指定的引腳動(dòng)作有效,OC7M中的對(duì)應(yīng)位必/OC0IOSn:1、OMn=0、OLn=0OC7M寄存器偏移量 復(fù)位后 TIETFLG1TIE中寄存器偏移量 000復(fù)位后 TC7=#FFFFTCRE=1,TCNT從$FFFF到$0000表7- 分頻因子選Prescale0001001201040118100101110111 寄存器偏移量 復(fù)位后 寄存器偏移量 0000000復(fù)位后 CnF=1IC/OC通道有動(dòng)作。TFLG2只有一個(gè)標(biāo)志位TOFTOF=1時(shí)說(shuō)明核心計(jì)數(shù)器溢出。要CnF,對(duì)TCNT的任何訪問(wèn)將自動(dòng)清除TFLG2。0:上次清除標(biāo)志以來(lái),IC/OC1:IC/OC通道已經(jīng)出現(xiàn)動(dòng)作。將寄存器ICSYS($2B)中的TFMOD位和置位。將$80TFLG2TMSK2TCRETCnOC(輸出比較)通道,程所指定的輸出動(dòng)作。定時(shí)器模塊共有TC7-TC0816IC/OC寄存器。$0000 寄存器偏移量:$0010-復(fù)位后 寄存器偏移量:$0012-復(fù)位后 寄存器偏移量:$0014-復(fù)位后 寄存器偏移量:$0016-復(fù)位后 寄存器偏移量:$0018-復(fù)位后 寄存器偏移量:$001A-復(fù)位后 寄存器偏移量:$001C-復(fù)位后 寄存器偏移量:$001E-復(fù)位后 寄存器偏移量 0復(fù)位后 入部分才進(jìn)行引腳信號(hào)檢測(cè),同時(shí)8位脈沖累加器PAC3、PAC2被禁止。PAMODTEN=0ECLK/64時(shí)鐘,如果啟動(dòng)PAI, 1。PEDGE:脈沖累加器有效邊沿設(shè)定位,該位的作用效果與PAMOD的狀態(tài)PAMOD:0(事件計(jì)數(shù)模式)時(shí): 脈沖累加器,并在隨后的輸入弓I腳下降沿置位PAIF標(biāo)志。脈沖累加器,并在隨后的輸入引腳上升沿置位PAIF標(biāo)志。寫(xiě)入后立即生效。其作用見(jiàn)表7-6。7-6000110111:當(dāng)PAOVF置位時(shí)申請(qǐng)中斷。寄存器偏移量 000000復(fù)位后 PAOVF:脈沖累加器溢出標(biāo)志位。0:上次清除以來(lái),PACNT沒(méi)有回滾到$0000。 上次清除以來(lái),PAI引腳尚未檢測(cè)到預(yù)期的有效邊沿。位置1,將$01寫(xiě)入到PAFLG將自動(dòng)清除該位. 寄存器偏移量654321復(fù)位后 寄存器偏移量654321復(fù)位后 寄存器偏移量654321復(fù)位后 寄存器偏移量654321復(fù)位后 PACNl從$FF回滾到$00PBFLG($31)PBOVF中斷標(biāo)志置1。訪問(wèn)高/低位字節(jié)可能得到錯(cuò)誤的結(jié)果。但如果只需要寄存器的高8位或低8寄存器偏移量 復(fù)位后 是否申請(qǐng)中斷取決于MCZI。0010后,加載最新設(shè)定值,并開(kāi)始新一0:返回模數(shù)計(jì)數(shù)器的當(dāng)前值。1ICLAT:捕捉寄存器強(qiáng)制轉(zhuǎn)移控制位。當(dāng)輸入捕捉工作在鎖存方式時(shí)TC0-TC38位脈沖累加器的內(nèi)容轉(zhuǎn)移到保持寄存器,同時(shí)相FLMC:模數(shù)計(jì)數(shù)器強(qiáng)制加載控制位。該位只在模數(shù)遞減計(jì)數(shù)器允許時(shí)MODMC=0時(shí),計(jì)數(shù)器開(kāi)始計(jì)數(shù),并在到達(dá)$0000后停止。讀該位總是返回0。01MCPR1、MCPR0=00、01、10、11時(shí),對(duì)應(yīng)的分頻常數(shù)分別為1、4、8、16。寄存器偏移量 0000復(fù)位后 PEN1AEPAxEN=18位脈沖累加器通道x使能,反之則禁止。寄存器偏移量 復(fù)位后 NOVWx:1,對(duì)應(yīng)寄存器偏移量 復(fù)位后 SHxy:x、y0:x、y1xx、yy通道上也引發(fā)與x通道相同的動(dòng)作。TFOISYS($2)TFOD位與寄IO(2)不是每次捕捉事件都產(chǎn)生中斷,兩次捕捉的結(jié)果分別存放在捕捉和保持寄存器FD1WnTn,下一個(gè)事件發(fā)生時(shí),Tn中的數(shù)值將首先被轉(zhuǎn)移到保持寄TnH,然后更新Tn。這時(shí),nF0:當(dāng)對(duì)應(yīng)的輸入引腳滿足預(yù)定的捕捉條件時(shí),寄存器TFLGl($0E)中的標(biāo)志C3F-COF將被相應(yīng)置位。1:如果在隊(duì)列方式 (BUFEN=1且LATQ=0),那么標(biāo)志位C3F-飽和功能允許時(shí)$FF255或更多。換言之,可記憶是否曾0:正常工作,計(jì)數(shù)達(dá)到$FF后,下一計(jì)數(shù)使其回到$oo1:計(jì)數(shù)達(dá)到$FF1BUFENIC0:IC及PAC1:IC及PAC保持寄存器使能。鎖存方式由控制位LATQ設(shè)定,當(dāng)位LATQ:輸入鎖存及隊(duì)列方式允許位。當(dāng)控制位BUFEN=1時(shí),ICPAC0:IC工作在隊(duì)列方式。當(dāng)輸入引腳滿足預(yù)定的捕捉條件時(shí),主定時(shí)器1IC0MCCNT移到保持寄存器,同時(shí)8位的脈沖累加器清0。寄存器偏移量 000000復(fù)位后 形成的。當(dāng)PBEN1時(shí),PACB啟動(dòng),它與IC0共享同一個(gè)輸入引腳。PBENBTENPBEN=1,脈沖累加器B即可工作,與定時(shí)器是否允許無(wú)關(guān),這與脈沖累加器A不同。0B禁止。8PAClPAC0可通過(guò)各自的允許位(在寄存器ICPACR中,地址$28)使能。0:PBOVF1:PBOVF=1寄存器偏移量 0000000復(fù)位后 83(PACl)從$FF回滾到$001。將$01PBFLGTSCR($06)TFFCAPACNlPACN0 寄存器偏移量654321復(fù)位后 寄存器偏移量654321復(fù)位后 寄存器偏移量654321復(fù)位后 寄存器偏移量654321復(fù)位后 為PAn提供鎖存功能。復(fù)位后 MDC啟動(dòng)后,MCCNT用來(lái)對(duì)定標(biāo)器輸出的時(shí)鐘進(jìn)行遞減計(jì)數(shù),也可作為MCCNT和模數(shù)計(jì)數(shù)器,輸入捕捉和脈沖累加寄存器將被鎖存。將$0000寫(xiě)入到MCCTL($26)FLMC位可以將新值立即加載到計(jì)數(shù)器。如果模數(shù)方式未允許(MODMC=0)0 寄存器偏移量:$0038-復(fù)位后 寄存器偏移量:$003A-復(fù)位后 寄存器偏移量:$003C-復(fù)位后 寄存器偏移量:$003E-復(fù)位后 定時(shí)器與I/O共享引腳的說(shuō)明16A、B6TIM模塊有關(guān)說(shuō)

禁止(TEN=0)MDC停止,但寄存器可訪問(wèn)。ECLK/64(8)PAEN:1:16位脈沖累加器A激活。(9)PAEN:0:832可以激活。(10)PBEN:1:16位脈沖累加器B激活。第三節(jié)ECTvoid{ =1; =1; }#pragma NEAR_SEGvoid{ }#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"intcount=0;floatf;voidmain(void){ {;}#pragma NEAR_SEGinterruptvoid{}interruptvoid{}doublecount,counter;voidmain(void){{;}#pragma NEAR_SEGinterruptvoid{}74較產(chǎn)生不同脈寬的波形,此方法產(chǎn)生的波形既可以改變周期同時(shí)也能夠改變脈#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"doublecount,counter;voidmain(void){;}#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"longcounter=0;void{{;}#pragma NEAR_SEGinterruptvoid{{}{}{}{}}SCI第一節(jié)SCISCINRZ格式的異步串行通信接口,它內(nèi)置獨(dú)立的波特率產(chǎn)生SCI89個(gè)數(shù)據(jù)位(其中一位可以指定為奇或偶SCIMCU與其他計(jì)算機(jī)或設(shè)備之間的通信,幾個(gè)獨(dú)立的MCU也能通過(guò)SCI實(shí)現(xiàn)串行通信,形成網(wǎng)絡(luò)。SCI1SCIBDHSCIBDL16位的波特率控制寄存器。位波特率因子—通常選用波特率為9600。喚醒、空閑檢測(cè)類型以及奇偶校驗(yàn)等,見(jiàn)表9-3。其各位意義如下:位MLOOPS:SCI回送模式/單線模式允許位,接收器的輸入由RSRC位選擇確DDRS位(SI/O方向控制位)控制。要使用回送1TxDSCI的信號(hào);如果方向控0RSRC=0,TxD引腳就變成高電平(空閑狀態(tài)),反之若RSRC=1,TxD引腳就變成高阻態(tài)。0:SCIRSRCLOOPS=1時(shí),RSRC決定接收器的內(nèi)部反饋M:方式選擇位(選擇字符幀格式)0:1個(gè)起始位,8個(gè)數(shù)據(jù)位,11:1個(gè)起始位,89個(gè)數(shù)據(jù)位,1置1。位置1時(shí)產(chǎn)生SCI中斷請(qǐng)求。TE:010:1:允許SCI發(fā)送部分工作,TxD引腳(PSl/PS3)RE:0:1;SCIRWU:0,當(dāng)前的全“0”幀發(fā)送結(jié)束后,TxDSBK開(kāi)0:和接收器的出錯(cuò)信息,見(jiàn)表9-5。位讀SCI硬件處于某些狀態(tài)時(shí),SCISR1中的對(duì)應(yīng)位置位,并通過(guò)特定的確認(rèn)SCISR1SCIDRL(RDRF、IDLE、ORNF、FEPF)SCISR1SCIDRL將清除與發(fā)送有關(guān)的標(biāo)志位(TDRE和TC)。TDRE:SCISR1TDRE=1,然后將新的數(shù)據(jù)寫(xiě)入發(fā)送保持器以開(kāi)始發(fā)送過(guò)程。復(fù)位后該位為1。0:SC0DRTC:發(fā)送結(jié)束標(biāo)志。該位在發(fā)送器空閑(無(wú)發(fā)送動(dòng)作)SCISRl,然后寫(xiě)SCIDR將清除該位。線變?yōu)榛顒?dòng),然后重新變成空閑以后,IDLE位才會(huì)被再次置1。0:SCIDR1:SCIDRIDLE:RxD端空閑(1011個(gè)以上連續(xù)的“1”)RWU11。該位被清除后,必須等0:RxD1:RxDNF:RDRF在同一個(gè)周器內(nèi)置位,但讀取寄存器SCISRlSCIDR將清除FE標(biāo)志。無(wú)意義位聲或波特率匹配錯(cuò)誤引起)時(shí),該位清0。該位由接收器前端控制,SCISCIDRL訪位讀000000寫(xiě)TDRM=19位數(shù)據(jù)模式時(shí),SCIDRL位讀000000寫(xiě)是從串行數(shù)據(jù)流中接收到的第9位。數(shù)據(jù)流的第9位。該位不必為每個(gè)數(shù)據(jù)重新設(shè)置,每次發(fā)送可重復(fù)使用。R7T7-ROT0:收/發(fā)數(shù)據(jù)位7-0,讀操作返回只讀寄存器RDR的內(nèi)容,寫(xiě)操作寫(xiě)入只寫(xiě)寄存器TDR。第二節(jié)SCI面的顯示區(qū)就會(huì)將其以ASCII碼或十六進(jìn)制的形式(可選)顯示出來(lái)。#include /*commondefinesandmacros#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"bytevoiddatawhile(!SCI0SR1_TDRE);//SC0DR處于忙狀態(tài),等待。SCI0DRL=data;}voidSCI_Receive(byte{}void{SCI0BDL=0x34;//總線為8M,波特率為9600{ }}#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"byte}data){while(!SCI0SR1_TDRE);}voidSCI_Receive(byte}voidprintf(char*str){}}casecasebreak;casecasecase}}{printf("welcometolipu'sfootball-quizsystem!\n\r");printf("choosetheproblemnumber(1to5)\n\r");}}voidprintf("\nyouareRIGHT.\nchoosethenextquestion\n\r");}voidWrong(void){printf("\nyouareWRONG.\nchoosethenextquestion\n\r");}intNO1(void){printf(".whichcountryisthechampionofWorldCupat2006?\n\r") casecase'B':}}intprintf(".whichcountryhavethemostchampionsofWorldCup?\n\r"); casecase'A':}}intprintf(".whichclubisthechampionofSpanishPrineraDivisonat06-07\n\r"); B:RealMadrid\n\r");casecase'B':}}intprintf(".whichclubisthechampionofItalianSerieAat06-07\n\r");printf("A:InterMilanB:AC.Milan\n\r");while(!SCI0SR1_RDRF);casecase'A':}}intprintf(".whoistheFIFAWorldPlayerat2006\n\r"); casecase'A':}}SPI第一節(jié)SPISIU具備了與外圍設(shè)備以及其他微處理器進(jìn)行同步通信的能力,也能夠在多主系統(tǒng)中實(shí)現(xiàn)處理器間的通信??蛇B接的設(shè)備包括簡(jiǎn)單的移位寄存器(例如74Sl65用作并行輸入口,或74Sl64用作并行輸出口等)DIDU可選8SI9S12DP256的SPI全(6)從機(jī)位傳送頻率最大4MHz,允許頻率范圍為0-4MHz。PLL、D/A、鎖存器、LCD顯示驅(qū)SPISPI8位移位寄存器、時(shí)鐘控制邏輯、引腳控制邏輯、SPI控制邏輯和分頻器以及波特率寄存器SPIBR、狀態(tài)寄存器SPISR、控制寄存器SPI8位移位寄存器。發(fā)送或接收時(shí),引腳的數(shù)據(jù)流在時(shí)鐘SPIDR將直接進(jìn)入移位寄存器,即所謂單緩沖;證移位寄存器正在接收時(shí),CPU能正確讀取上一個(gè)收到的字節(jié)。SCKSPIBD的設(shè)定存器SPISR保存SPI的工作狀態(tài),包括傳送結(jié)束、寫(xiě)沖突和模式錯(cuò)誤等。SPI0PSPS7-PS4引腳,SPI1PPPP7-PP4引腳SPI2與仍可用作通用I/O。SPI和低有效的從機(jī)選擇線SS。在SPI系統(tǒng)關(guān)閉時(shí),這四個(gè)引腳用作通用I/O線PS7-PS4I/ODDRSPS口引腳的數(shù)從機(jī)選擇信號(hào)SSMSTR=0時(shí),MCUSPI被設(shè)置為從機(jī)方式,其SS引腳為自身工作允SCKMISO引腳為高阻抗?fàn)顟B(tài)。當(dāng)SS0時(shí),SPISSOE的控制,固定為器件選擇輸入引腳。MSTR=1,SPI處于主機(jī)方式,其SSSS0SCK的作用下接收或發(fā)送數(shù)據(jù)。當(dāng)SS1SS輸出自動(dòng)變DDS7=SSOE=1SSSPI系統(tǒng)的工作方式?jīng)_突錯(cuò)誤檢測(cè)輸入,會(huì)發(fā)現(xiàn)SS已經(jīng)為邏輯0,表示已經(jīng)存在主機(jī),于是發(fā)生了工作方式?jīng)_突錯(cuò)誤,SPIMODFSPIE=1時(shí)申請(qǐng)中斷,通知CPU處理。當(dāng)DDS7=0、SSOE=1SS引腳為系統(tǒng)保留功能,用戶不能使用。串行數(shù)據(jù)線(MISO、MOSI)。MISO為主入/從出線,MOSI為主出/從入線,它們用于串行接收和發(fā)送數(shù)據(jù);數(shù)據(jù)高低位傳送順序由LSBF選擇。每個(gè)MOSI、MISOSPICRMSTR1時(shí),SPIMISOMOSI分別是數(shù)據(jù)輸入/輸出線,這時(shí)主機(jī)從SCK引腳、MISOMOSISPI的SCKSPISCKSPIMOSI引腳SPI的MOSISPIMISO輸出,送到主SPI的MISO引腳。SCKSCK8個(gè)SPIBRSPI數(shù)據(jù)與位時(shí)鐘之間的傳送定時(shí)關(guān)系必須相同(SPICR1CPOLCPHA位控制)。DDRS1SPI的雙向模式(MOMI或MOSIMOMIMISOSISO,引腳數(shù)DDRS1所示。在使用雙向模式的系統(tǒng)中,所有器件或從器件,均有一引腳重新獲得通用I/O功能。SPICPOL1相當(dāng)于在時(shí)鐘信號(hào)中串入一個(gè)反相器。除此以外,SPI還可以選擇MISO、MOSI、SCK分別直23CPHA0、1時(shí),單個(gè)字節(jié)數(shù)據(jù)傳送的時(shí)序。由圖可見(jiàn),每個(gè)字節(jié)需要8個(gè)時(shí)鐘周期,傳送期間從器件選中信號(hào)SS必須有效。這SCKMOSI線,保存結(jié)果。在SCKSCK的上升沿,從器件又采樣MOSI線,保存結(jié)果,如此循環(huán)八次,數(shù)據(jù)傳送結(jié)束,然后SS再延遲半個(gè)時(shí)3SS有效后,時(shí)鐘信號(hào)沒(méi)有立即輸出,因此傳送過(guò)程并沒(méi)有真正MOSI線,保存結(jié)果,其他與圖9-5類似。SPI16位寄存器。當(dāng)進(jìn)行數(shù)據(jù)傳輸時(shí),該寄存器在主器SCK8位,于是數(shù)據(jù)在主從器件之間實(shí)現(xiàn)了數(shù)據(jù)SPIDR寄存器的數(shù)據(jù)成為送往從器件的輸出數(shù)據(jù),經(jīng)傳輸操作后,從SPIDR讀出的數(shù)據(jù)則是來(lái)自從器件的輸入數(shù)據(jù)。SPISPICR1SPE=1時(shí),SPI系統(tǒng)使能。SPICR1中的相在主機(jī)方式中,CPUSPIDR時(shí)(SPIDR8位移位寄存器中),起動(dòng)一個(gè)傳送過(guò)程。SCK腳輸出8個(gè)位傳送時(shí)鐘,MOSI腳此后,CPU可讀出它的內(nèi)容。每完成一次數(shù)據(jù)傳送,SPRF狀態(tài)位置位,讀SPISR(SPRF1時(shí)),訪問(wèn)SPIDRSPIF0。在從機(jī)方式中,CPUSPIDR寫(xiě)入需傳送到主機(jī)的數(shù)據(jù),該數(shù)據(jù)從內(nèi)在SCK的第一個(gè)跳變沿采樣輸入,在另一個(gè)跳變沿將數(shù)據(jù)的次高位輸出,當(dāng)CPHA=1且SS=0時(shí),SCK引腳的第一個(gè)跳變沿啟動(dòng)從機(jī)移位,將數(shù)據(jù)的最高位1,這時(shí)讀SPSRSPIDRSPRF0。SPIDR起動(dòng)一次發(fā)送過(guò)程。對(duì)于主機(jī)收、從傳送,對(duì)從機(jī)若寫(xiě)入SPIDR,對(duì)數(shù)據(jù)的傳送無(wú)影響。 visor( 1)*2(SPR1傳輸正在進(jìn)行,否則處于關(guān)閉狀態(tài)以降低功率消耗。詳見(jiàn)波特率寄存器SPIBRSPI設(shè)置了兩種中斷,一是數(shù)據(jù)傳送結(jié)束中斷,另一個(gè)是模式?jīng)_突中斷,二SPIESPIFMODF狀態(tài)標(biāo)志置位時(shí),若SPISPIFSPOSRSPI數(shù)據(jù)寄存器將清除標(biāo)志位MODF。第二節(jié)SPI時(shí)鐘及位順序等,甚至包括引腳工作特性的設(shè)置,見(jiàn)表2。其各位意義如下:位0:SPI1:SPRF或MODF1:SPI1:SPTEFCPOL、CPHA:SPI時(shí)鐘極性、相位選擇位,這兩位用來(lái)指定SPI的時(shí)鐘格式。當(dāng)無(wú)傳輸動(dòng)作且CPOL=0時(shí),主器件的SCK引腳處于低電平,而如果CPOL=1,SCK則閑置在高電平。參看圖9-6、圖9-7。SSOE從器件選中輸出信號(hào)SS)SS輸出功能只有在主模式下通過(guò)置位SSOE和DDRS7實(shí)現(xiàn)。0:禁止SS1:允許SSDDRS71讀寫(xiě)操作正常進(jìn)行,即高位(MSB)7位(BIT7)MC9S12DP256構(gòu)備或器件連接時(shí),SPILSBF。0:數(shù)據(jù)傳輸高位(MSB)1:數(shù)據(jù)傳輸?shù)臀?LSB)位SPPR2~SPPR0SPR2~SPR0位 visor( 1)*2(SPR1清0,見(jiàn)表9—12。其各位意義如下:位讀SPIF:SPI中斷請(qǐng)求位,在數(shù)據(jù)傳輸過(guò)程中,SPRF8SCK周期后置位,通過(guò)讀SPISR寄存器并隨后讀或?qū)憯?shù)據(jù)寄存器SPIDR0。1CPU發(fā)出中斷請(qǐng)求。讀SPISRSPIDR將清除該位。MODF:SPIMSTR=1時(shí),如果從選擇引腳SS在外部DDRS7=1時(shí),PS7是通用輸出或SSSPI系統(tǒng)的SS輸入引腳,在這種特殊情況下,后位TTL邏輯電路:或者只有接TTL邏輯電SPODRSPODR中的第三節(jié)SPI實(shí)驗(yàn)設(shè)備:HCS12編程器、開(kāi)發(fā)板、MC14489#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"wordt1,t2,time;byte/*SPI初始化*/voidSPIvoid}void }voiddelay(word}}}voidDanZiJie(void){}voidSanZiJievoid){}{}}#pragma NEAR_SEGinterruptPortJISR(void){ case0x01:mode=0; for(;;){}}}99999第一節(jié)A/D足夠的時(shí)間內(nèi)保持抽樣值恒定,以保證輸出值可以被A/D轉(zhuǎn)換器精確轉(zhuǎn)換。N2N次方,分辨率為12A/D8個(gè)輸入通道,使用時(shí)應(yīng)以標(biāo)頭ATD0或ATD1標(biāo)識(shí)。2.1A/D模塊的功能結(jié)構(gòu),這個(gè)功能模塊被虛線劃分成為圖示所示的虛線所隔離的三個(gè)部分:IP總線接口、轉(zhuǎn)換模式控制/寄存器列表,自定義IPA/DI/O的目的,左/右對(duì)齊有符號(hào)/88個(gè)16位的存儲(chǔ)器和反映工作狀態(tài)的若干標(biāo)志位。第二節(jié)A/D中,ATDCTL2,3,4,5為常用的控制寄存器,ATDSTAT0,1為常用的兩個(gè)狀態(tài)控制器,ATDDR0-7為八個(gè)結(jié)果寄存器。ATD每次啟動(dòng)要進(jìn)行若干個(gè)掃描循環(huán),每個(gè)掃描循環(huán)稱為一個(gè)轉(zhuǎn)換序列,每個(gè)轉(zhuǎn)換序列能包含1-8最多8次轉(zhuǎn)換,由控制寄存器ATDCTL3中的S8C/S4C/S2C/S1C等位來(lái)決定。可以使外部模擬輸入,也可以是參考電壓或其他保留信號(hào),ATD可支持多種不ATDCTL5CC、CB、CA決過(guò)一次啟動(dòng)命令快速瀏覽多個(gè)信號(hào),中間無(wú)需CPU干涉,節(jié)約了CPU時(shí)間。后ATD模塊暫停。位將自動(dòng)清0。轉(zhuǎn)換過(guò)程的啟動(dòng)是通過(guò)寫(xiě)入寄存器5ATDCTL5實(shí)現(xiàn)的。ATD轉(zhuǎn)換所需要的時(shí)鐘周期數(shù)是固定不變的,但是采樣時(shí)間和時(shí)鐘頻率可以通過(guò)ATDCTL4在一定范圍內(nèi)選擇,因此轉(zhuǎn)換時(shí)間也可以選擇。ADPUA/D電源使能/1 A/D0 AFFCA/D1=快速標(biāo)志位清零順 每次讀取結(jié)果寄存器自動(dòng)清0=正常標(biāo)志位清零順 需要手動(dòng)對(duì)狀態(tài)標(biāo)志位清AWAIA/D1=0=ASCIEA/Dxx00xx01001X011X101X111XFIFO–1=0=IgnoreFinishconversion,thenFreezeSRES8A/D1=80=105PRS[4:00,注:設(shè)置PRS[4:0]時(shí) A/DClock不能大于2除

A/D例(2MHZA/D時(shí)鐘頻率InitialSampleTimeProgrammedSampleTimeResolution=2+2+10=14A/D=例轉(zhuǎn)換時(shí)間InitialSampleTimeProgrammedSampleTimeResolution=2+16+10=28A/D000=Chan1 =ChanDJM–1=0=SCAN–1=0=DSGN–1=0=MULT–多通道采樣模1=0=采樣通道的數(shù)量取決于1

SCF-(SCAN(SCAN當(dāng)(AFFC=0)1清零.ETORF- CCF沒(méi)有清零)-A/D結(jié)果寄存器被讀出時(shí),清零,注意當(dāng)AFFC位不同時(shí)的情況第三節(jié)A/D#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"{ATD0DIEN=0x00;}{ }void{ ={ PORTB }}除干擾,得到精度較高的A/D轉(zhuǎn)換結(jié)果。#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"staticlongADValue0,ADValue1,ADValue2,ADValue3;longa,b,c,d;longmax();longmin();{ATD0CTL5=0x86;//定義寄存器5ATD0DIEN=0x00;禁止數(shù)字輸入}{ }{ADValue1ATD0DR1;//1}{ADValue2ATD0DR2;//2}{ADValue3ATD0DR3;//3}void{ DDRB=0xFF; {}}A/DA/D處理程序。CCF1A/D轉(zhuǎn)換,由程序狀態(tài);=1表示為等待定時(shí)時(shí)間到,以便下次采樣。#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"intADValue0;unsignedinti=0; {ATD0CTL5=0xa0;//定義寄存器5ATD0DIEN=0x00;禁止數(shù)字輸入}{ }void{ =7; //prescalefactoris8,busclock/128=8Mhz/8 =1; //timeroverflowinterruptenable =1; //timerenable DDRB=0xFF; =for(;;){}}#pragmaCODE_SEGNON_BANKED#pragmaTRAP_PROCvoid{{{ PORTB=(int)ADValue0; }} = //cleartimeroverflow}#pragmaCODE_SEG作而設(shè)置了各種保護(hù)措施。本章主要介紹EEPROM的功能、特點(diǎn)及使用,包括第一節(jié)EEPROM單總線周期內(nèi)完成。EEPROM是一種非易失性存儲(chǔ)介質(zhì),具有穩(wěn)定、保密性好的特點(diǎn),在系統(tǒng)掉電后,EEPROM中的內(nèi)容仍能可靠保持不變,可以用來(lái)保存一些短時(shí)間不變的內(nèi)容(如環(huán)境參數(shù)、產(chǎn)品序列等。EEPROMRAM一EEPROMRAM多的時(shí)間,即需要一段特定的程序來(lái)寫(xiě)EEPROM。$0000~$0FFF4KBEEPROMEEPROM地戶可以訪問(wèn)的是$0400$0FFF的3KB的存儲(chǔ)空間。EEPROM設(shè)有保護(hù)機(jī)制,用戶可以通過(guò)編程$0FFD,在普通模式下設(shè)定需要址也在所保護(hù)的區(qū)域中,所以一旦用戶在普通模式下對(duì)$0FFD的內(nèi)容進(jìn)行了編EPROT寄存器,而一旦在特殊模式下取消了保密屬性,該區(qū)的內(nèi)容也就被擦除第二節(jié)EEPROM之前,擦寫(xiě)和編程eeprom將引起進(jìn)入錯(cuò)誤和命令不被執(zhí)行。-EEPROM-EDIV[5:0]PRDIV8和EDIV[5:0]150~200KHZ。注意:在對(duì)EEPROM進(jìn)行操作之前,必須對(duì)時(shí)鐘進(jìn)行初始化EEPROM12.8MHZ,PRDIV8置1位,CLK=OSCCLK/8。反之,PRDIV8置零,CLK=OSCCLK。EK/(EDI[5:]+1CCIE—0:所有EEPROM塊保護(hù)。0:EEPROMCCIF命令完成中斷標(biāo)志,表明不再有未決的指令。該標(biāo)志通過(guò)硬件寫(xiě)入BLANK—1=EEPROM被完全擦除0EEPROMACCERR—1=0=沖突。以下命令序列會(huì)引起ACCERR置位:ERASE:EEPROM0:1:在MASS=0MASS=10:1EEPROM編程。0:無(wú)意義。1:MASS01有關(guān)寄存器ECMD的命令字的設(shè)置:第三節(jié)EEPROMEEPROM時(shí)鐘分頻寄存器(ECLKDIV_EDIVLD)是否已EEPROM命令寄存器(ECMD)寫(xiě)入編程命令#include<hidef.h> /*commondefinesandmacros*/#include<mc9s12dp256.h> /*derivativeinformation*/#pragmaLINK_INFODERIVATIVE"mc9s12dp256b"#defineportb(*((volatileunsignedchar*)(0x0001)))#defineddrb (*((volatileunsignedchar*)(0x0003)))#defineeclkdiv (*((volatileunsignedchar*)(0x0110)))#defineecnfg(*((volatileunsignedchar*)(0x0113)))#defineeprot(*((volatileunsignedchar*)(0x0114)))#defineestat (*((volatileunsignedchar*)(0x0115)))#defineecmd (*((volatileunsignedchar*)(0x0116)))#defineany (*((volatileunsignedchar*)(erase)))#defineprotection (*((volatileunsignedchar*)(0xffd)))unsignedchar*erase;unsignedchar*eeaddr;unsignedchari;unsignedintj=0;voidPortInit(void){}void{eeaddr=(volatileunsignedchar*)(0x800);if(StateFlag==1){{while(!SCI0SR1_RDRF)*eeaddr++;}}}void{erase=(volatileunsignedchar*)(0x800);if(StateFlag==1){ {while(erase<(volatileunsigned{ while(!(estat&0x80)){} while(!(estat&0x40)){}}})//{ while(!(estat&0x80)){}while(!(eprot&0x80)){}}}}void{if{}}void{ ESTAT=0x30;any={}{}}void{{{case0{}case1{}}}}#pragma NEAR_SEGPortJISR(void){case0x01:mode=0; case0x02: }}}data){while(!SCI0SR1_TDRE);}intSCI_Receive(byte}FLASH作而設(shè)置了各種保護(hù)措施。本章主要介紹flash的功能、特點(diǎn)及使用,包括擦除第一節(jié)FLASH總線周期內(nèi)完成??梢源娣耪麄€(gè)程序或者需要高速訪問(wèn)或經(jīng)常運(yùn)行的程序代碼,如操作系統(tǒng)核心或標(biāo)準(zhǔn)子程序庫(kù)、數(shù)據(jù)表格等。FASH模塊對(duì)于單芯片應(yīng)用系FlashRAM的讀取一樣方便,EPROM還要快。同時(shí),在系統(tǒng)掉電后,F(xiàn)lash中的內(nèi)容仍16KB256B,即$FF00~$FFFF是中斷向量表空間。由于FLASHSTAR12(16位)64KB空間,因此模塊采用從一個(gè)$8000~$BFFF16KB地址窗口分配地址,其余的地址位分配在分頁(yè)寄存器按照16位二進(jìn)制方式組織,支持按字節(jié)或字方式訪問(wèn)。字節(jié)和規(guī)則字的訪問(wèn)可256KBFLASH4個(gè)2第二節(jié)FLASH之前,擦寫(xiě)和編程FLASH將引起進(jìn)入錯(cuò)誤和命令不被執(zhí)行FCLKDIVFCLKDIVPRDIV88-FLASH-FDIV[5:0]CBEIE—1CBEIF0=CCIE—1CCIF0=KEYACC—1=flash模塊被解釋成打開(kāi)后門(mén)的密匙0FlashKEYEN1將FCNFGKEYACC0使MCU處于非安全狀態(tài)。SEC0[1:0]存儲(chǔ)安全位。這2位決定設(shè)備的安全狀態(tài)。如表1FPHDISFPLDISFLASH0FPHDIS—Flash1=0=FPHS[1:0]—Flash保護(hù)高地址范圍FPLDIS—Flash1=0=FSTATCBEIF—1=0=CCIF—1=0=PVIOL—CBEIFCCIF被清除時(shí)寫(xiě)一條新的,有效1=0=ACCERR—1=0=突。以下命令序列會(huì)引起ACCERR置位:當(dāng)分頁(yè)寄存器沒(méi)有選擇16KBFLASH塊,向$8000~$BFFFFLASHFLASH在命令序列已開(kāi)始或擦除/FLASH塊讀取。這樣讀到無(wú)效數(shù)據(jù),但能讀其他沒(méi)有編程的FLASH塊。部擦除,標(biāo)志寫(xiě)“1”清零

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論