




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
技術(shù)LSDSCIENCE&TECHNOLOGY 實(shí)驗(yàn)指導(dǎo) 項(xiàng)目名稱:F5XX學(xué)習(xí)項(xiàng)目型號:LSD-TEST430F5438-提交時(shí)間:200810目第一章簡 MSP430F5438硬件資源簡 MSP430F5438引腳圖及結(jié)構(gòu)框 LSD-TEST430F5438-01_V1.1學(xué)習(xí)板介 LSD-TEST430F5438-01_V1.1學(xué)習(xí)板實(shí)物 LSD-TEST430F5438-01_V1.1學(xué)習(xí)板硬件資源介 第二章實(shí)驗(yàn)編譯環(huán)境介 硬件連 軟件使用介 IAR4.11B使用過程其它配 第三章LSD-TEST430F5438-01_V1.1C語言實(shí) 實(shí)驗(yàn)I/O端口操作實(shí)驗(yàn)實(shí)驗(yàn)UCS操作實(shí)驗(yàn)實(shí)驗(yàn)FLASH操作實(shí)驗(yàn)實(shí)驗(yàn)實(shí)驗(yàn)16位定時(shí)器Timer_A操作實(shí)驗(yàn)實(shí)驗(yàn)DMA操作實(shí)驗(yàn)實(shí)驗(yàn)Timer_B操作實(shí)驗(yàn).....................................................................實(shí)驗(yàn)硬件乘法器操作實(shí)驗(yàn)實(shí)驗(yàn)九RTC操作實(shí) 實(shí)驗(yàn)十RAM操作實(shí) 實(shí)驗(yàn)十二UART端口操作實(shí) 實(shí)驗(yàn)十三I2C通訊端口實(shí) 實(shí)驗(yàn)十四SPI通訊實(shí) 實(shí)驗(yàn)十五CRC操作實(shí) 第四章LSD-TEST430F5438-01_V1.1.綜合實(shí) 實(shí)驗(yàn)一LCD操作實(shí)驗(yàn)........................... 實(shí)驗(yàn)二語音處理實(shí) 實(shí)驗(yàn)三利用加速度傳感器實(shí)現(xiàn)光標(biāo)功 實(shí)驗(yàn)四利用無線模塊實(shí)現(xiàn)數(shù)據(jù)傳 MSP430F5438硬件資源簡2.2-3.6V(MSP430F543X,MSP430F541X),1.8-3.6V(MSP430F543XAMSP430F541XA單片機(jī)處于運(yùn)行模 160ALPM3RTC模 2.6- 1.6- 0.118MHZ系統(tǒng)時(shí)鐘(MSP430F543X,MSP430F541X),可以達(dá)到25MHZ系統(tǒng)時(shí)鐘(MSP430F543XA,MSP430F541XA靈活得電源管理系統(tǒng)提供DVCC,VcoreSupervision,Monitoering,以及Brownout低功耗/低頻率內(nèi)部時(shí)鐘源低頻率內(nèi)部時(shí)鐘 XT132768HZXT210.達(dá)到4個(gè)通用通RTC-MSP430F5438256KB+512B16KB MSP430F5436192KB+512B16K-MSP430F5419128KB+512B16KB-MSP430F5437256KB+512B16KBMSP430F5438引腳圖及結(jié)構(gòu)框 MSP430F5438引腳 MSP430F5438結(jié)構(gòu)框LSD-TEST430F5438學(xué)習(xí)板簡 該MSP430F5438部分有代表性的模塊做出應(yīng)用。用戶可以很方便利用該學(xué)習(xí)板,只要對SMCLK,MCLK,ACLK1.4LSD-TEST430F5438SMCLK,MCLK,ACLK1.4LSD-TEST430F54381.3F5XXUSB128KbitLDORF2500TeZ430-RF2500TZigbeeZigbeeMCUMCUP3,P4引腳接口LSD-TEST430F5438擇,如圖1-4所示。1-4LSD-TEST430F5438LSDLSDMCUTECHNOLOGY 1-5如圖1-61-6SW1JTAG無線射頻部分CC1100、CC2420、CC25001-71-8,RF1,RF2Zigbee1-8Zigbee1-9RF2500T1-10eZ430-RF2500TV1.0CC2500/CC1100,MCUMCU兩種無線模塊,為了使無線者,能夠很容易學(xué)習(xí)RF知識,本學(xué)習(xí)板預(yù)留帶MCU和不帶MCU無線接口,很好滿足用戶對RF學(xué)習(xí)的需求。如圖1-11為不帶MCU無線模塊接口原理圖,現(xiàn)在支持的無線模塊型號為LSD-RF1100-A433_V1.0,利爾達(dá)公司技術(shù)部會陸續(xù)推出CC2500等無線模塊,如圖1-12LSD-RF1100-A433_V1.0實(shí)物圖1-12LSD-RF1100-A433_V1.01-2LSD-RF1100-A433_V1.0LSD-RF2500-AM_V1.1等,其中LSD-RF1100-AM433_V1.0實(shí)物圖,如圖1-14。1-14LSD-RF1100-AM433_V1.01、LSD-RF1100-AM433_V1.0無限模塊主要功能工作在4332、支持多種調(diào)制模式:2-(90us4、低功耗,發(fā)射電流:28mA;接收電流:18mA,睡眠電流:<58、用戶可選擇保存配置信息方便下次操作(配置斷電保持本學(xué)習(xí)板采用型號為F ,字符型點(diǎn)陣液晶,像素為138X110,擁有四晶部分實(shí)物圖如圖1-17。1-15LSD-TEST430F5438LCD1-161-17度控制,液晶的CGRAM如圖1-181-188168個(gè)像素點(diǎn)后,AC1,當(dāng)執(zhí)LCDSPIHD66753制來實(shí)現(xiàn),HD66753IR,SR,R00-R12IRR00-R12R04為對比度配置該液晶有128級對比度可供配置選擇,R07灰度選擇,R11CGRAMR12CGRAM存器進(jìn)行配置,為讓HD66753識別是對IR寄存器進(jìn)行配置的指令,該規(guī)定一個(gè)開始RSR/W一起控制寄存器讀寫方式。比如當(dāng)首字節(jié)為那么就告訴HD66753IR進(jìn)行配置,接下來的數(shù)據(jù)就會寫入到IR寄存器中。1-19LSD-TEST430F54383LEDLED1F5438P1.0LED2F5438的P1.1口,LED3連接到電源管理TPS77301D的輸出端,用來顯示USB已經(jīng)可以進(jìn)行供電,如圖1-21,實(shí)物圖如圖1-22。 1-22LED1.6.6USBUSBF5438USCII2CUATR接口,可以和上位機(jī)進(jìn)行UART通信,實(shí)現(xiàn)數(shù)據(jù)傳輸,同時(shí)也可以對學(xué)習(xí)板上的外接EEPROM進(jìn)行讀寫。另外,也可以通USB1-23,USB1-24。1-24USB1.5.71-26。1-25LSD-TEST430F54381-26可以實(shí)現(xiàn)模擬信號->數(shù)字信號->模擬信號的轉(zhuǎn)換,可以實(shí)現(xiàn)、重復(fù)功能。當(dāng)輸入模擬信號,經(jīng)高頻濾波后經(jīng)過TLV2760電壓放大,使得信號增強(qiáng),再經(jīng)ADC12轉(zhuǎn)換,形成數(shù)字信號,實(shí)現(xiàn)快速傳輸,經(jīng)過單片機(jī)處理,輸出占空比與輸入電壓成正比,最后經(jīng)過帶通濾1-27(聲音信號1-271.5.8本學(xué)習(xí)板采ADXL330軸加速度傳感器,加速度傳感器檢測X,Y,Z向上加速度分分量加速度或者角度,電路如圖1-28,加速度傳感器部分實(shí)物圖如圖1-29。1-28
1-29邊是溫度傳感器,里面是密閉的氣腔,工作時(shí)在加熱體的作用下,氣體在內(nèi)部形成一個(gè)熱氣容感式和熱感式既能感應(yīng)“動”加速度,又能感應(yīng)“靜態(tài)”加速度。1-30ADXL3301-31ADXL330測量范 最小單極2.0V3.6V運(yùn)行溫度-25-X,Y帶寬0.5HZ-1600HZ,Z帶寬0.5-
1-1第二章實(shí)驗(yàn)編譯環(huán)境硬件連杭州利爾達(dá)公司提供兩種仿真器燒寫,一種并口仿真器,一端通過25PC2-1。2-1USB軟件使用介2-2IAR4.11B2-3IAR4.11CCmain,OK3-52-4圖2-5工程地址選2-6USBCPU2-6optionoption界面選項(xiàng)中選擇generaloption2-7XMS430F5438MSP430F5438CPU表框中選相應(yīng)CPU類型。optionFETDebugger2-8connection選項(xiàng)中選擇USB仿真器還是并口仿真器。driver中選擇軟件仿真或者硬件仿真。2-7option2-82-9編譯。點(diǎn)擊project->compile和make,在message窗口上會顯示結(jié)果如果沒有錯誤圖2-圖2- 編譯應(yīng)選項(xiàng)可以全速,單步,復(fù)位等操作。2-11IAR4.11B
2-12xcl由于F5XX單片機(jī)FLSH空間256K,flash空間超過64k范圍,那么如果要64K外空間,在匯編語音里面可以利用MOVA,MOVX等MSP430X指令完成對超過64K外存儲空間,但是對于C語言工程中除了利用編譯器提供函數(shù)外還可以對IAR進(jìn)行如下設(shè)置來對option->generaloptionsdatamodellarge,如2-13。圖2-13擴(kuò)展空間配第三章LSD-TEST5438-01_V1.1C語言實(shí)實(shí)驗(yàn)一、I/O端口操作實(shí)S1,S2,P1.0,P1.1分別接LED1,LED2.P1,P2P1P2P1IVP2IV就會反復(fù)進(jìn)入中斷程序,如果不PXIV可以軟件清除中斷標(biāo)志位。拉,具體配置如表3-13-100XO1O0111XX過控制PXOUT來配置上拉還是下拉,以配置上拉電阻為例:PXDIR&= PXREN|= PXOUT|= 3-1,S1,S2P2.6,P2.7S1,S2后端口電壓變位低電平,因此P2.6,P2.7S1,S2后就可以進(jìn)入端LED1,LED2分別和P1.OP1.1連接,因此可以通過控制P1.0P1.1來控制LED2 按鍵原理 資料光盤/Code/IAR4.11BCCode/lab1/LSD-TEST430F5438-01-PORT1.c 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-**版本:IAR********功能 利用S1,S2控制LED1LED2亮**LSD-TEST430F5438-01**修改日 ||--||LED1-P2.7|--LED2--P2.6|-->port2-**相關(guān)說明 1.P3-P11PJ有6個(gè)寄存器配置PXINPXOUTPXDIRPXRENPXDSP1-P2有10個(gè)寄存器配置PXINPXOUTPXDIRPXRENPXDSPXSELPXIEPXIFGPXIESPXIV2.其中只有P1,P2具有端口中斷能力。P1P2P1IV#include"msp430x54x.h"voidmain(){WDTCTL=WDTPW+ P2DIR&=~(BIT6+ //P2.6P2.7P1DIR|=BIT1+ //P1.0P1.1P2REN|=BIT6+ P2OUT|=BIT6+ //P2.6P2.7P2IES|=BIT6+ //P2.6P2.7P2IE|=BIT6 //P2.6P2.7P2IFG }/*******************端口中斷程序#pragmavector=PORT2_VECTORinterruptvoidport2(void){{case0x0e:P1OUT^=BIT0;break; //LED1亮(滅)case0x10:P1OUT^=BIT1;break; default:break;}}P2DIR&=P2REN|=P2OUT|=實(shí)驗(yàn)二UCS時(shí)鐘操作實(shí) 別2、實(shí)現(xiàn)功能:ACLKREFOMCLK~2MHz,SMCLK=3、實(shí)驗(yàn)現(xiàn)象:ACLK32768,MCLK~2MHz,SMCLK~1MHZ,LED1ACLKMCLKSMCLF5XXMCLK,SMCLK,ACLKXT1,REFOXT2時(shí)鐘源,時(shí)鐘配置寄存器因此用戶在調(diào)節(jié)頻率過程中必須要正確配置該位,否則配置不當(dāng)會造成DCO時(shí)鐘失效,DCORSELX3-4。在默認(rèn)狀態(tài)下XT1是關(guān)閉狀態(tài)的,如果模塊時(shí)鐘選擇XT1提供時(shí)鐘源,那么系統(tǒng)內(nèi)部時(shí)鐘REFO就會暫時(shí)替代XT1REFO精度和穩(wěn)定性比XT1議使用XT1.如果將XIN,XOUT引腳設(shè)置為特殊引腳,那么晶體就會起振。XT1DRIVE10的時(shí)候低驅(qū)動能力,將XT1失效,XT1停止振蕩例如將時(shí)鐘配置為MCLK=SMCLK=2MHZ,ACLK=XT1P7SEL|= XT1UCSCTL1= //選 DCO范UCSCTL4=SELM_4+SELA_0+SELS_4; //MCLK=MCLK=DCO,ACLK=XT1while(SFRIFG1&OFIFG) OFIFG,XT1OFFG,DCOFFG{UCSCTL7&=~(XT1LFOFFG+DCOFFG);SFRIFG1&=~OFIFG;}硬件電路如圖3-5。3-5SMCLK,MCLK,ACLK頻率測主程 時(shí)鐘函資料光盤/Code/IAR4.11BCCode/lab2/LSD-TEST430F5438-CLK- 杭州利爾達(dá)科技**LSD-TEST430F5438-CLK-**版本 IAR4。****作者 楊超**生成日期**功能 ACLK=REFO,MCLK=~2MHz,SMCLK=~1MHZ,DCO參考頻率來自 /|\ XIN -- P1.0|**LSD-TEST430F5438-01****相關(guān)說明 UCS配置需要注意一下方面在默認(rèn)狀態(tài)下XT1是關(guān)閉狀態(tài)的,如果模塊時(shí)鐘選擇XT1提供時(shí)鐘源,那么系REFOXT1REFOXT1#include<msp430x54x.h>voidInit_Clk(void);void{WDTCTL=WDTPW+ P11DIR=BIT0+BIT1+ //ACLK,MCLK P11SEL=BIT0+BIT1+P1DIR|= LED1{P1OUT^= //LEDfor(unsignedinti=60000;i>0;i }}函數(shù)(模塊)名稱:void功能:時(shí)鐘初始化本函數(shù)(模塊)調(diào)用的函數(shù)(模塊):調(diào)用本函數(shù)(模塊)的函數(shù)(模塊):輸入?yún)?shù):void輸出參數(shù):voidInit_Clk(void){UCSCTL1= UCSCTL3|= UCSCTL4=SELM_3+SELA_2+SELS_4; //MCLK=DCOC,SMCLK=DCODIV,ACLK=REFOwhile(SFRIFG1&OFIFG) //清除OFIFG,and XT1OFFG,DCOFFG{UCSCTL7&=~(XT1LFOFFG+DCOFFG);SFRIFG1&=~OFIFG;}}察各自的頻率以及LED1是否會閃爍?配置MCLK=DCOCLK SMCLK= ACLK=XT1(不失效MCLK=DCOCLK=16MHZ實(shí)驗(yàn)三、FLASH操作實(shí)[并比較F5XXFLASH方面和以前系列單片機(jī)的區(qū)別。PMM模塊配置產(chǎn)生一個(gè)大于1.6V的內(nèi)核電壓,提供給FLASH模塊使用,以segment擦除為例,F(xiàn)LASH模塊在塊擦除操作過程中,被分配一個(gè)最大512個(gè)字/字節(jié)的擦除時(shí)間,對該塊進(jìn)行一個(gè)空寫,實(shí)現(xiàn)一個(gè)塊擦除操作。FLASH擦除必須以Segment為最小單位進(jìn)行擦除,不同類型SegmentFLASHSegment512Information128MEARSERASE3-3-2擦除配置011011segment擦除charflase_erase=(char FCTL3= FCTL1=FWKEY+ *flase_erase= FCTL3=FWKEY+ //LOCK主程 系統(tǒng)初始化函 塊擦除函資料光盤/Code/IAR4.11BCCode/lab3/LSD-TEST430F5438-01-flash_segment- 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-flash_segment-**版本:IAR******生成日期:20089**功能 對FLASH實(shí)現(xiàn)塊擦**LSD-TEST430F5438-01****相關(guān)說明 1。在擦寫的FLASH過程中需要提供VCORE大于1.8V電#include"msp430x54x.h"void voidInit_System(void); voidInit_Clk(void);rootconstcharvoidmain(void){unsignedintWDTCTL=WDTPW+ {P1OUT^=for(i=0;i<}}函數(shù)(模塊)名稱:void功能:系統(tǒng)初始化本函數(shù)(模塊)調(diào)用的函數(shù)(模塊):調(diào)用本函數(shù)(模塊)的函數(shù)(模塊):void{P1DIR|=P1OUT|=}函數(shù)(模塊)名稱:void功能 完成FLASH塊檫其它說明 注意:次程序?yàn)樵贔LASH中,不需要檢查voidSeg_Erase(void){charflase_erase=(char FCTL3= FCTL1=FWKEY+ *flase_erase= FCTL3=FWKEY+ //LOCK}函數(shù)(模塊)名稱:void功能 時(shí)鐘初始化MCLK=2MHZ,ACLK=XT1,SMCLK=本函數(shù)(模塊)調(diào)用的函數(shù)(模塊):調(diào)用本函數(shù)(模塊)的函數(shù)(模塊):voidInit_Clk(void){P7SEL|= XT1UCSCTL1= DCOUCSCTL3|=SELREF_2; //配置Fll參考頻率REFOUCSCTL4=SELM_3+SELA_0+SELS_4; //配置MCLK=DCOC,SMCLK=DCODIVwhile(SFRIFG1& OFIFG,andXT1OFFG{UCSCTL7&=~(XT1LFOFFG+DCOFFG);SFRIFG1&=~OFIFG;}}10XFFFFCIAR中指針變量分配的地址是兩個(gè)字節(jié)的,但大于64K以后空間需要至少20位地址變量,如何在C實(shí)驗(yàn)四、WDT操作實(shí)時(shí)器模式,對WDT寄存器進(jìn)行配置可以完成不同時(shí)間間隔的定時(shí)。3-626292132152192232272311,1同時(shí),也會產(chǎn)生一個(gè)復(fù)位信號。1,如果中斷使能打WDTHOLD,WDTTMSEL選擇定時(shí)器模式還是看門狗模式。TCL用來清除32位計(jì)數(shù)器數(shù)值,TCL用來選擇定時(shí)間隔。WDTCTL=WDTPW+WDTTMSEL TCL+WDTSSEL0+[程序流程]主程 系統(tǒng)初始化函 看門狗中資料光盤/Source/IAR4.11BCCode/lab4/LSD-TEST430F5438-WDT-01.c[范例程序] 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-WDT-**版本:IAR******生成日期**功能:250ms250msLED1 /|\ XIN -- P1.0|**LSD-TEST430F5438-01**#include<msp430x54x.h>voidInit_Clk(void);voidmain(void){ }********************#pragmavector=WDT_VECTORinterruptvoidwatchdog_timer(void){P1OUT^= LED1}函數(shù)(模塊)名稱:void功能:系統(tǒng)初始化本函數(shù)(模塊)調(diào)用的函數(shù)(模塊):調(diào)用本函數(shù)(模塊)的函數(shù)(模塊):輸入?yún)?shù):void輸出參數(shù):{WDTCTL=WDTPW+WDTCTL=//WDT250ms,SFRIE1|=WDTP1DIR|=}函數(shù)(模塊)名稱:void功能 時(shí)鐘初始 voidInit_Clk(void){P7SEL|= XT1P1DIR|= P1.0UCSCTL1= DCOUCSCTL4=SELA_0; //設(shè)置MCLK=DCOC,MCLK=DCO,ACLK=XT1while(SFRIFG1&OFIFG) //清除OFIFG,andXT1OFFG,DCOFFG{UCSCTL7&=~(XT1LFOFFG+DCOFFG);SFRIFG1&=~OFIFG;}}
實(shí)驗(yàn)五、16位定時(shí)器Timer_A操作[實(shí)驗(yàn)要求]3、實(shí)驗(yàn)現(xiàn)象:LED1Timer_A,TAR用來將計(jì)數(shù)器TAR數(shù)據(jù)清除。F5XX中TA有5個(gè)捕獲比較寄存器在使用過程中是用做比較器波形輸出還是作為捕獲模式CMx較模式還是捕獲模式。OUTMODX用來控制輸出模式選擇。TA0CTL=TA0CCTL0=+SMCLK,CCR0TA0CCR0=TA0CTL|=[程序流程]主程 TA中斷程資料光盤/Code/IAR4.11BCCode/lab5/TA/LSD-TEST430F5438-01-Timer0_A5- 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-Timer0_A5-**版本:IAR******生成日期:200810**功能 TimerA作為定時(shí)器使用實(shí)現(xiàn)LED閃**LSD-TEST430F5438-01**修改日 ||--|||||P1.0|-->#include<msp430x54x.h>voidmain(void){WDTCTL=WDTPW+ P1DIR|= P1.0 _BIS_SR(LPM0_bits+ }函數(shù)(模塊)名稱:void功能 TA0初始輸入?yún)?shù):void voidInit_Ta0(void){TA0CTLTASSEL_2 SMCLK,TA0CCTL0= TA0CCR0= TA0CTL|= } #pragmavector=TIMER0_A0_VECTORinterruptvoidTimer_A{P1OUT^= //LED1TA0CCR0+= //CCR0}中斷里面不TA1IV,那么CCR1對應(yīng)中斷標(biāo)志位是否會自動清除實(shí)驗(yàn)六、DMA3、實(shí)驗(yàn)現(xiàn)象:在上位機(jī)上看到oworld!輸DMA是實(shí)現(xiàn)將數(shù)據(jù)從外設(shè)或者一個(gè)區(qū)域傳到另一個(gè)區(qū)域或者提供給外設(shè)備功能。在DMA傳送數(shù)據(jù)的過程中是不需要CPU,DMA每傳輸一個(gè)字節(jié)或者字需要兩個(gè)MCLK時(shí)鐘,傳輸模式如表3-3010110單次模0DMAENDMAEN1。DMADTX100是當(dāng)DMASZ為0后,DMAEN仍然置位。塊傳輸模DMADTX001個(gè)塊數(shù)據(jù)后,DMAEN自動清除。DMADTX101完一個(gè)塊數(shù)據(jù)后,DMAEN突發(fā)塊模每傳輸節(jié)/字,就提供兩個(gè)時(shí)鐘給CPU,CPU在這里利用率20%,當(dāng)DMASZ為0后DMAEN自動清除。如果需要重新開始傳輸需要另外將DMAEN置1。程中每傳輸節(jié)/字,就提供兩個(gè)時(shí)鐘給CPU,CPU在這里利用率20%,當(dāng)DMASZ為0后DMAEN仍然置1。的寄存器,T-SAT-SZT-DA,DMASA,DMASZ,DMADADMADT-SZ,分別賦數(shù)值給T-SAT-DA,DMASZ3-4DMADMAxCTL是對通道配置非常重要的一個(gè)寄存器,DMADTX用來選擇傳輸模式,DMADSTINCRx用來設(shè)置目的地址是增,減還是不變。DMASRCINCRX是用來設(shè)置源地址是增,減還是不變。例如:配置UTXIFG1String傳DMACTL0= UTXIFG1DMA0SA= DMA0DA= DMA0SZ= DMA0CTLDMASRCINCR_3DMASBDBDMALEVELPC機(jī)USB單片機(jī)上?。眨樱陆樱校脵C(jī)USB單片機(jī)上小USB接3-7USB否為"Ibelieveyoucan!"資料光盤/Code/IAR4.11BCCode/lab6/LSD-TEST430F5438-01-DMA3.C[范例程序] 杭州利爾達(dá)科技文件名:LSD-TEST430F5438-01-版本:IAR作者 楊超生成日期:20089功能 利用DMA將數(shù)據(jù)以1S一次的速度傳送到發(fā)送緩沖器中進(jìn)行發(fā)LSD-TEST430F5438-01修改日 | | -- |------------- P5.6|---- P5.7|--------------**相關(guān)說明 1.將JP5的插上2個(gè)蓋注意在利用串口發(fā)送緩沖器中斷標(biāo)志啟動觸發(fā)數(shù)據(jù)傳送時(shí)候要注意發(fā)送1DMA#include"msp430x54x.h"constunsignedcharString1[30]="\nIbelieveyoucan!";void{WDTCTL P5SEL|=BIT6+ P5DIR|=P5DIR&=UCA1CTL1=UCA1CTL0= UCA1CTL0&= 8bitUCA1CTL1|= UCA1BR0=UCA1BR1=0;UCA1MCTL=0x04A;UCA1CTL1&=~UCSWRST;DMACTL0=UTXIFG1DMA0SA=DMA0DA=DMA0SZ= DMA0CTLDMASRCINCR_3DMASBDBDMALEVELSFRIE1|=bis_SR_register(LPM3_bits+ }#pragmavector= interruptvoid{DMA0CTL|= }實(shí)驗(yàn)七、Timer_B操作實(shí)[實(shí)驗(yàn)要求]Timer_B,TARTB使用方法與TA通過設(shè)置位MCx來設(shè)置TB計(jì)數(shù)器模式,停止模式,增模式,連續(xù)模式,增減模式。TBCLR用來將計(jì)數(shù)器TBR數(shù)據(jù)清除。CMx較模式還是捕獲模式。OUTMODX用來控制輸出模式選擇。TBCCR0= CCR0TBCTL=TBSSEL_2+TBCLR; TBCTL|=MC_2;[程序流程]主程 TB中斷程資料光盤/Code/IAR4.11BCCode/lab7/LSD-TEST430F5438-01-Timer_B7-01.c[范例代碼] 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-Timer_B7-**IAR******生成日期:200810**功能 Timer_B7CCR0做定時(shí)器使LED1按一定頻率翻**LSD-TEST430F5438-01**修改日 |||--||||P1.0|--#include<msp430x54x.h>void{WDTCTL=WDTPW+ P1DIR|= P1.0TBCCTL0= CCR0TBCCR0= CCR0TBCTL=TBSSEL_2+TBCLR; TBCTL|=MC_2;_BIS_SR(LPM0_bits+ }/******TimerB0中斷服務(wù)程序#pragmavector=TIMERB0_VECTORinterruptvoidTimer_B(void){P1OUT^= TBCCR0+= }
實(shí)驗(yàn)八、硬件乘法器操作實(shí)2、實(shí)現(xiàn)功能:8*8MAY8位,16MAYS8位,16MAC816MACS8位,16 當(dāng)結(jié)果是32位時(shí)候,從寄存器RESH164RES0-8*8MPY= OP2= MAC= OP2=資料光盤/Code/IAR4.11BCCode/lab8/LSD-TEST430F5438-01-MPY_8*8usign.c[范例代碼] 杭州利爾達(dá)科技**LSD-TEST430F5438-01-**版本:IAR******生成日期:20089**功能 8*8無符號累加硬件乘**LSD-TEST430F5438-01**#include<msp430x54x.h>void{WDTCTL MPY= OP2= MAC= OP2= //}[練習(xí)]3232
實(shí)驗(yàn)九、RTC安全讀時(shí)間時(shí)LED1亮(滅BCD模式下。提供32RTC器時(shí)RTCSSEL11101S,RTCSEC(秒)加一秒,RTCDAY功能,我們可以設(shè)置Alarm寄存器的RTCAMIN,RTCAHOUR,RTCADAY,RTCADOW(星期).3-8RTCRTCCTL01RTCMODE位來實(shí)現(xiàn)對工作模式的選擇,當(dāng)選擇工作在日歷模式的時(shí)候,RT0PS時(shí)鐘源自動選擇ACLK,TP0PS分頻系數(shù)自動為/256,RT1PS時(shí)鐘源來自RT0PS輸出,RT1PS分頻系數(shù)自動配置為/128,因此配置ACLK時(shí)鐘為32768HZ。08:23完畢后,將最為AE設(shè)置為1,就會鬧鐘有效果,每個(gè)小時(shí)的第23分鐘鬧鐘響。3FZKPPMRTCCTL2512HZ512.009HZ18PPM,18PPM,RTCCTL2RTCCALS0,LSBRTCCAL9。RTCCTL01=RTCBCD+RTCHOLD+RTCMODE+RTCTEV_0;RTCPS0CTL=RT0PSHOLD; RTCPS1CTL=RT1PSHOLD;RTCSEC RTCMIN0X59 RTCHOUR=0X21; RTCDOW=0X02;RTCDAY RTCMON 0X11 RTCYEAR= RTCAMINHR= RTCADOWDAY= RTCCTL01&= RTCPS0CTL&= RTCPS1CTL&= RCCTL0|=RTCAIE+ 主程 系統(tǒng)初始化函 RTC中斷程RTCCASE2CASE6CASE資料光盤/Code/IAR4.11BCCode/lab9/LSD-TEST430F5438-RTC-01-02.c[范例代碼] 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-RTC-01-**版本:IAR******生成日期:200810**功能 實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘,完成鬧鐘功 | | -- |-- |-->**LSD-TEST430F5438-01** 1.由于每1SRTC更新一次,因此為安全時(shí)間,讀時(shí)間時(shí)候應(yīng)該當(dāng)每RTCRDYIFG1#include"msp430x54x.h"voidInit_Rtc(void);voidInit_Clk(void);void{WDTCTL=WDTPW+ bis_SR_register(LPM3_bits+ }#pragmavector=RTC_VECTORinterruptvoid{{case2:P1OUT^=BIT0;break; case4:break;case6:P1OUT|=BIT1;break; case8:break;case10:}}函數(shù)(模塊)名稱:void功能:本函數(shù)(模塊)調(diào)用的函數(shù)(模塊):調(diào)用本函數(shù)(模塊)的函數(shù)(模塊):輸入?yún)?shù):void輸出參數(shù):void:voidvoidInit_System(void){ //RTCP1DIR|=BIT1+ //P1.1P1.0P1OUT&=~(BIT1+}函數(shù)(模塊)名稱:void功能:RTC輸入?yún)?shù) 輸出參數(shù):void:voidvoid RTCCTL01=RTCBCD+RTCHOLD+RTCMODE+RTCTEV_0RTCPS0CTL=RT0PSHOLD; RTCPS1CTL=RT1PSHOLD;RTCSEC RTCMIN0X59 RTCHOUR=0X21; RTCDOW=0X02;//RTCTIM1=RTCDAY RTCMON0X11 RTCYEAR= RTCAMINHR= RTCADOWDAY= RTCCTL01&= RTCPS0CTL&= RTCPS1CTL&= RTCCTL0|=RTCAIE+ //打開安全使能,鬧鐘使}函數(shù)(模塊)名稱:void本函數(shù)(模塊)調(diào)用的函數(shù)(模塊):調(diào)用本函數(shù)(模塊)的函數(shù)(模塊):輸入?yún)?shù):void輸出參數(shù):void:voidvoidInit_Clk(void){P7SEL|= UCSCTL1= //DCOUCSCTL4=SELM_3+SELA_0+ while(SFRIFG1& {UCSCTL7&=~(XT1LFOFFG+DCOFFG);SFRIFG1&=~OFIFG;}}
實(shí)驗(yàn)十、RAM1、編程要求:利用C語言完成 3關(guān)閉Section0RAMRAM每個(gè)Section關(guān)閉可以由RCCTL0來控制,一旦某個(gè)section被關(guān)閉后那么以前的數(shù)據(jù)都將丟失,對已經(jīng)關(guān)閉的SECTION進(jìn)行寫是沒有效果的,被關(guān)閉RAMSECTION0;F5XX16K的RAMsection0section1,section2,section3各個(gè)部分空間地址為:0--1--2–3–2.在三次賦值處設(shè)置斷點(diǎn)*point=0x02;*point0x03;*point=0x04;單步執(zhí)行觀察*point數(shù)值的變化,LED1是否閃爍。資料光盤/Code/IAR4.11BCCode/lab10//RAM/LSD-TEST430F5438-01-RAM.c[范例代碼] 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-**版本:IAR****作者 楊超**生成日期:20089**RAMsection3**LSD-TEST430F5438-01** F5XXRAM器根據(jù)RAM空間的不同,分為多個(gè)Section每個(gè)Section4k擁有四種模式。每個(gè)Section關(guān)閉可以由RCCTL0來控制,一旦某個(gè)section被關(guān)閉后那么以前的數(shù)據(jù)都將丟失對已經(jīng)關(guān)閉的SECTION進(jìn)行寫是沒有效果的,被關(guān)閉RAMSECTION部分讀為0;#include"msp430x54x.h"#includeunsignedchar*point;voidmain(void{unsignedcharmm;unsignedintWDTCTL=WDTPW+ P1DIR|= P1OUT|= //LED1point=(unsigned //指向RAM空*point RCCTL0=RCKEY+ section*point RCCTL0=RCKEY *point=0x04;mm=*point;printf("\nmmprintf("\nmm=%d",mm); {for(temp=0;temp<50000;temp++);P1OUT^=BIT0;{}0X2000sectionRAM1、本實(shí)驗(yàn)采用了AD(AVCC-AVSS)/2、A12、A13ADC12SC中斷轉(zhuǎn)換值,以后采樣轉(zhuǎn)換自動進(jìn)行。ADC12RESADC12CTL2=ADC12RES_2+ //開啟ADC內(nèi)核,設(shè)置采樣速率,選擇參考源為2.5VADC12CTL0=ADC12ON+ADC12MSC+ADC12SHT03+ADC12REFON+ADC12REF2_5V;ADC12MCTL0|=ADC12SREF_1ADC12INCH_10;(VREF~AVSS)ADC12CTL1=ADC12SHP+ AD中斷程序流程 ADCode/IAR4.11BCCode/lab11/LSD-TEST430F5438-01-ADC12.c[范例程序] 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-**工作環(huán)境:IAR**作者 谷**生成日期:**AD Vin0-- Vin1-- Vin2-- Vin3-- 采樣時(shí)間要大于(RS+RI)*ln(213)*CI+800ns的最低采樣時(shí)間****#include<msp430x54x.h>unsignedint ****工作環(huán)境:IAR**作者 谷**生成日期:****voidmain(void){unsignedintWDTCTL P7SEL|= UCSCTL6|= while((SFRIFG1 {UCSCTL7&=~(XT1LFOFFG+ SFRIFG1&= }UCSCTL4=SELMDCOCLK+SELS P7DIR&=~(BIT4+ P7SEL|=(BIT4+ P7ADC12CTL2=ADC12RES_2+ //ADADC12CTL0ADC12ONADC12MSCADC12SHT03ADC12REFONADC12REF2_5V;ADC12MCTL0|=ADC12SREF_1+ADC12INCH_10; //采樣溫度ADC12MCTL1|=ADC12SREF_1+ADC12INCH_11;//采樣VACC/2ADC12MCTL2|=ADC12INCH_12; //通道12輸入ADC12MCTL3|=ADC12INCH_13+ADC12EOS;//通道13輸入ADC12CTL1=ADC12SHP+ADC12CONSEQ_3;//選擇轉(zhuǎn)換模for UCSCTL8|=ADC12IE|= ADC12CTL0|= ADC12CTL0|= }**工作環(huán)境:IAR**作者 谷**生成日期:**功能 保存轉(zhuǎn)換****#pragmavector=ADC12_VECTORinterruptvoidADC12ISR(void){results[0]= results[1]= results[2]= results[3]= }實(shí)驗(yàn)十二、UART操作實(shí)1、PCPCPC機(jī),單片機(jī)接收后,又將數(shù)據(jù)發(fā)回給PC機(jī)。實(shí)驗(yàn)中,PC機(jī)的USB端口通過TUSB3410來實(shí)MSP430F54381所示:PC PC1TUSB34103-6UCA1BR0UCA1CTL1=UCSWRST; UCA1CTL0=UCMODE_0; UCA1CTL0&= UCA1CTL1|=UCSSEL_1; //鐘源來源SMCLKUCA1BR0=3; UCA1BR1=0;UCA1MCTL= UCA1CTL1&= 圖3-9TUSB3410硬件連接TUSB3410為TI公司推出的一款用于USB-TO-UARTUSB總線與主機(jī)中止、恢復(fù)及喚醒功能;同時(shí),其內(nèi)部包含一個(gè)8052的CPU核、16KBRAM、包含I2C引導(dǎo)10KBROM,4I/0USB[程序流程 主程 接收中斷程利用數(shù)據(jù)線將PC機(jī)USB接口和單片機(jī)小USB接口連接,跳出 3-3-10 找到新硬件向?qū)?-12找到新硬件向?qū)?驅(qū)動程序?qū)?-14安裝驅(qū)動軟件 安裝完成提示信圖3-16所示。 另一新設(shè)備提示信H“USBSerialPort” 完成查看安裝正確與端資料光盤/Code/IAR4.11BCCode/lab12/LSD-TEST430F5438-01-UART.C[范例程序] 杭州利爾達(dá)科技**文件名 LSD-TEST430F5438-01-**工作環(huán)境:IAR**作者 谷**生成日期:**功能 串口UART1-->USB**相關(guān)文件:DC0-->MCLK=SMCLK XT1-->ACLK= | |-- |9600- P5.7/UCA1RXD|<-----------**#include<msp430x54x.h>****工作環(huán)境:IAR**作者 谷**生成日期:****voidhalUsbInit(); //初始化函數(shù)voidmain(void{WDTCTL=WDTPW+ P7SEL|= UCSCTL4=SELMDCOCLKDIV+SELA_0+SELSwhile(SFRIFG1& {UCSCTL7&=~(XT1LFOFFG+DCOFFG);SFRIFG1&=~OFIFG;} }****工作環(huán)境:IAR**作者 谷**生成日期:******voidhalUsbInit(){P5SEL|=BIT6+ P6DIR|= TXDP6DIR&= RXDUCA1CTL1= UCA1CTL0= UCA1CTL0&= 8UCA1CTL1|= UCA1BR0= //UCA1BR1=UCA1MCTL= UCA1CTL1&= UCA1IE|= }****工作環(huán)境:IAR**作者 谷**生成日期:******#pragmavector=USCI_A1_VECTORinterruptvoid{while(!(UCA1IFG& UCA1TXBUF= }實(shí)驗(yàn)十三、I2C通訊端口操作24LC128的字節(jié)寫、隨機(jī)讀、連續(xù)讀等基本操作。在對24LC128進(jìn)行數(shù)據(jù)操作的時(shí)候,其單元從0~104存取內(nèi)容為TUSB3410的設(shè)備ID,廠商ID等USB的信息,是不能被擦除的,所1040x200,隨機(jī)讀的單元為0x200,連續(xù)讀的單元從0x201單元開始。3-7I2C,UCB3CTL1|=UCSWRST; //置位UCSWRSTUCB3CTL0=UCMST+UCMODE_3+UCSYNC; //I2C主機(jī),同步模式UCB3CTL1|= //UCB3BR0=12; //fSCL=SMCLK/12=~100kHzUCB3BR1=0;UCB3I2CSA= UCB3CTL1&= UCB3IE|= 電,用兩蓋帽將JP4口的短接。
24LC128接線24LC128管腳圖如圖3-19所示圖3-1924LC128字節(jié)寫流程主程序流程隨機(jī)讀流程:第98240資料光盤/Code/IAR4.11BCCode/lab13/LSD-TEST430F5438-01-I2C.C[范例程序] 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-**工作環(huán)境:IAR**作者 谷**生成日期:**功能:24LC128中0X200空間后的數(shù)據(jù)****#include<msp430x54x.h>:第99240unsignedcharRXData;unsignedcharvoidIIC_init(void); //初始化設(shè)置voidEEPROM_Write(unsignedcharhigh_Address,unsignedcharlow_Address,unsignedcharWord);voidEEPROM_radom(unsignedcharhigh_Address,unsignedcharvoid ****工作環(huán)境:IAR**作者 谷**生成日期:****voidDelay(){for(unsignedchari=0;i<0xff;i++);for(unsignedchari=0;i<0xff;i++);for(unsignedchari=0;i<0xff;i++);for(unsignedchari=0;i<0xff;i++);for(unsignedchari=0;i<0xff;i++);}****工作環(huán)境:IAR**作者 谷**生成日期:****voidmain(void){WDTCTL=WDTPW+ for(unsignedchar }****工作環(huán)境:IAR**作者 谷**生成日期:****voidIIC_init(void){P10SEL|=BIT1+BIT2;P10REN|=BIT1+UCB3CTL1|=UCSWRST; //置位UCSWRSTUCB3CTL0=UCMST+UCMODE_3+UCSYNC; //I2C主機(jī),同步模式UCB3CTL1|=UCSSEL_2; //SMCLKUCB3BR0=12; //fSCL=SMCLK/12=~100kHzUCB3BR1=0;UCB3I2CSA= UCB3CTL1&= UCB3IE|= }****工作環(huán)境:IAR**作者 谷**生成日期:**功能:向相關(guān)的單元寫入數(shù)****voidEEPROM_Write(unsignedcharhigh_Address,unsignedcharlow_Address,unsignedcharWord){while(UCB3CTL1& UCB3CTL1|=UCTXSTT+ UCB3TXBUF= //發(fā)送地while((UCB3IFG& UCB3TXBUF= while((UCB3IFG& UCB3TXBUF= while((UCB3IFG& UCB3CTL1|= while((UCB3CTL1& }****工作環(huán)境:IAR**作者 谷**生成日期:**功能 連續(xù)讀發(fā)送設(shè)****voidEEPROM_read(){UCB3CTL1&= while(UCB3CTL1& UCB3CTL1|= }****工作環(huán)境:IAR**作者 谷**生成日期:**功能 隨機(jī)讀發(fā)送設(shè)****voidEEPROM_radom(unsignedcharhigh_Address,unsignedcharlow_Address){while(UCB3CTL1&UCTXSTP); UCB3CTL1|=UCTXSTT+UCTR; UCB3TXBUF=high_Address; //發(fā)送地址位while((UCB3IFG&UCTXIFG)==0); //判斷是否發(fā)送完畢UCB3TXBUF=low_Address; //發(fā)送地址位低位while((UCB3IFG&UCTXIFG)==0); //判斷是否發(fā)送完畢UCB3CTL1&=~UCTR; //確定為接收while(UCB3CTL1&UCTXSTP); //判斷總線是否被釋放UCB3CTL1|=UCTXSTT; //重新發(fā)送起始位while((UCB3CTL1&UCTXSTT)==1); //判斷起始位是否發(fā)送成功for(unsignedchari=0x0;i<0x2f;i++);//延時(shí)確定數(shù)據(jù)已經(jīng)被發(fā)送出去UCB3CTL1|=UCTXSTP+UCTXNACK; //發(fā)送停止位和NACK位}****工作環(huán)境:IAR**作者 谷**生成日期:**功能 保存接收到的數(shù)****#pragmavector=USCI_B3_VECTORinterruptvoid{if(UCB3IFG& {RXData=}}
實(shí)驗(yàn)十四SPI通訊實(shí)驗(yàn)操3-20UCCKPL為低電平,UCCKPH,UCCKPL共同決定在何時(shí)接收和發(fā)送數(shù)據(jù),如圖3-12。UCMSB決定是最先發(fā)送出去還是低位,當(dāng)為1的時(shí)候,首先發(fā)送出去,UC7BITP3SEL|=BIT0+BIT3+BIT4+ P3.3,2,1,0SPIP3DIR|=BIT0+BIT4;UCA0CTL1|=UCSWRST;UCA0CTL0|=UCMST+UCSYNC+UCCKPL+UCMSB; UCA0CTL1|=UCSSEL_2; //SMCLKUCA0BR0= //UCA0BR1=UCA0CTL1&= 從 主學(xué)習(xí)板和PC機(jī)連接。主程 SPI中斷程主程 SPI中斷程P3.5,GND按圖3-21連接。[范例路徑]資料光盤/Code/IAR4.11BCCode/lab14/LSD-TEST430F5438-01-SPI1- TEST430F5438-01-SPI1- 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-SPI1-**版本:IAR******生成日期:200810**LSD-TEST430F5438-01**修改日 ||--- |-||--- || <-----|-||| _||---1200--UARTPc| >-P3.5分別對應(yīng)接通#include<msp430x54x.h>unsignedcharMST_Data=0x000;voidInit_SPI(void);voidmain(void){WDTCTL while(!(UCA0IFG& UCA0TXBUF= _BIS_SR(LPM0_bits+ }函數(shù)(模塊)名稱:void功能:SPI本函數(shù)(模塊)調(diào)用的函數(shù)(模塊):調(diào)用本函數(shù)(模塊)的函數(shù)(模塊):輸入?yún)?shù):void輸出參數(shù):void:voidvoidInit_SPI(void){P3SEL|=BIT0+BIT3+BIT4+ P3.3,2,1,0SPIP3DIR|=BIT0+BIT4;UCA0CTL1|=UCSWRST;UCA0CTL0|=UCMST+UCSYNC+UCCKPL+UCMSB; UCA0CTL1|=UCSSEL_2; //SMCLKUCA0BR0= //UCA0BR1=UCA0CTL1&= UCA0IE|=}函數(shù)(模塊)名稱:voidUart初始化200bit/s傳輸本函數(shù)(模塊)調(diào)用的函數(shù)(模塊):調(diào)用本函數(shù)(模塊)的函數(shù)(模塊):輸入?yún)?shù):void輸出參數(shù):void:voidvoidInit_Uart(void){P5SEL|=BIT6+ P5DIR|=P5DIR&=UCA1CTL1=UCA1CTL0= UCA1CTL0&= 8bitUCA1CTL1|= UCA1BR0=27; UCA1BR1=0;UCA1MCTL=0x04A;UCA1CTL1&=~UCSWRST;}#pragmavector=USCI_A0_VECTORinterruptvoidUSCIB0_ISR{while(!(UCA1IFG& UCA1TXBUF=UCA0RXBUF; while(!(UCA0IFG&UCTXIFG)); //UA0發(fā)送數(shù)據(jù)準(zhǔn)備好?UCA0TXBUF= } 杭州利爾達(dá)科技文件名:LSD-TEST430F5438-01-SPI1-版本:IAR作者 楊超生成日期:200810功能 主機(jī)通過SPI發(fā)送數(shù)據(jù)給從機(jī),從機(jī)返回?cái)?shù)據(jù)給主機(jī),主機(jī)把接收的數(shù)據(jù)過UARTLSD-TEST430F5438-01修改日 從 |||||---|--- | <-----||-||- _||P5.6|---- -| >-#include<msp430x54x.h>voidvoid{WDTCTL= while(!(UCA0IFG&UCA0TXBUF=0xf0;_BIS_SR(LPM4_bits+ }函數(shù)(模塊)名稱:void功能:SPI本函數(shù)(模塊)調(diào)用的函數(shù)(模塊):調(diào)用本函數(shù)(模塊)的函數(shù)(模塊):輸入?yún)?shù):void輸出參數(shù):void:voidvoidInit_SPI(void){P3SEL|=BIT0+BIT3+BIT4+BIT5;P3DIR|=BIT5;UCA0CTL1= **SPIUCA0CTL0|=UCSYNC+UCCKPL //3線,8位,最先傳UCA0CTL1&= //**USCI轉(zhuǎn)為工作模式UCA0IE|= }SPI#pragmavector=USCI_A0_VECTORinterruptvoidUSCIA0_ISR{while(!(UCA0IFG& UCA0TXBUF= } 法和標(biāo)準(zhǔn)CRC-CCITT區(qū)別。[實(shí)驗(yàn)原理]F5XX單片機(jī)內(nèi)部硬件CRC是符合CRC-CCITT標(biāo)準(zhǔn),是將信息碼左移動16位,然后除以生成為了簡化運(yùn)算不讓計(jì)算過程出現(xiàn)借位,采用移位和模2加運(yùn)算,模2加運(yùn)算實(shí)際就是一個(gè)異或運(yùn)如果為1,則校驗(yàn)數(shù)值和生成多項(xiàng)式進(jìn)行異或,在校驗(yàn)寄存器中,是從最低位向最進(jìn)行移動的,最移出后如果為1,則校驗(yàn)數(shù)值和生成多項(xiàng)式進(jìn)行異或。出后,如果為1,則校驗(yàn)數(shù)值和生成多項(xiàng)式進(jìn)行異或,在校驗(yàn)寄存器中,是從最低位向最進(jìn)3-22CRC其中F為校驗(yàn)寄存器最。因此比如對與0X0001的CRC-CCITT的校驗(yàn)值為0X1021,而CRCCRC0X8000,這樣就使操作很不方便,因此為了和標(biāo)準(zhǔn)的數(shù)值進(jìn)行兼容,本程序?qū)⑤斎霐?shù)據(jù)在求CRC前進(jìn)行顛倒。和接收字節(jié)組成16位后才發(fā)送給CRCDI,在接收的時(shí)候直接把數(shù)據(jù)和校此可以判斷最后的CRCINIRES是否為0,來判斷傳輸數(shù)據(jù)是不是錯的。主程 CRC計(jì)算函接收緩沖器中的校驗(yàn)數(shù)值錯誤,最后的CRCINIRES數(shù)值怎么樣?資料光盤/Code/IAR4.11BCCode/lab15/LSD-TEST430F5438-01-CRC1。C 杭州利爾達(dá)科技**文件名:LSD-TEST430F5438-01-**版本:IAR******生成日期:200811**功能: 入CRC進(jìn)行校驗(yàn)。**相關(guān)文件:LSD-TEST430F5438-01** 1。由于被校驗(yàn)證數(shù)據(jù)和它校驗(yàn)數(shù)值一起校驗(yàn)數(shù)值為0,到最高8位,最低8位為0個(gè)數(shù)據(jù),則在接收到校驗(yàn)數(shù)據(jù)前一個(gè)字節(jié)后將移動到高8位,低8位為0。4。本程序接收和發(fā)送數(shù)據(jù)協(xié)議包長+發(fā)送數(shù)據(jù)+CRC校驗(yàn)其中數(shù),CRC兩個(gè)字節(jié)unsignedintCCITT(unsignedinttemp); CRC *temp,unsignedintunsignedcharutxbuffer[]=; {0x04,0x01,0xDC,0xE5,0x10,0x21,0x00,0x00,0x02,0x20}unsignedintCRC_Value= void{WDTCTL=WDTPW+ unsignedchartranst_buffer_point=utxbuffer;receive_buffer_point=CRCINIRES= CRCCRC_Value=CCITT_Stting(1,transt_buffer_point,transt_buffer_point[0]-CRCutxbuffer[utxbuffer[0]-2]=(unsignedchar)(CRC_Value>>8);utxbuffer[utxbuffer[0]-1]=(unsignedchar)(CRC_Value);CRCINIRES= CRC_ValueCCITT_Stting(0,receive_buffer_point,receive_buffer_point[0]}函數(shù)(模塊)名稱:unsignedintCCITT(unsignedint輸入?yún)?shù) 輸出參數(shù) unsignedint輸出為輸入位顛倒數(shù)值,例如輸入為其它說明:1。由于F5XX單片機(jī)內(nèi)部CRC模塊是CRCDI輸入的數(shù)據(jù)是從向低位低位向最移動,當(dāng)校驗(yàn)寄存器中最移出為1,就和生成多最移出如果是1,那么校驗(yàn)寄存器就會與生成多項(xiàng)式子異或,那么就直接調(diào)用CCITT(OXOOO1)就可以,求出與標(biāo)準(zhǔn)一致的CRCunsignedintCCITT(unsignedinttemp){unsignedintmm=0;unsignedinti=0x00;for(i=0x8000;i!=0;i {if(temp& {mm>>= mm|= } {mm>>=1 }}return }unsigned CCITT_Stting(unsignedchartranst_flag,unsigned*temp,unsignedintCRC輸入?yún)?shù) 1發(fā)送數(shù)據(jù)校驗(yàn),計(jì)算校驗(yàn)數(shù)值,添0,接收數(shù)據(jù)校 輸出參數(shù) unsignedintCRC校驗(yàn)數(shù)值。當(dāng)transt_flag為1,產(chǎn)生包長+待發(fā)有數(shù)據(jù)校驗(yàn)數(shù)值,如果正確,結(jié)果為0; *temp,unsignedint{unsignedintt=if(transt_flag== {for(unsignedinti={t<<= t|=(unsignedint)(*temp++);8if((len%2)&&(i==len- 現(xiàn)t<<= if((i%2)||(i==len- i}}
CRCDI=CCITT(t);t=0;}{for(unsignedinti= {t<<= t|=(unsignedint)(*temp++);if((len%2)&&(i==len-3))t<<=if(((i%2)&&(i<=len-3))||(i==len-1)||((len%2)&&(i==len-{CRCDI t=}}}return}第四章LSD-TEST430F5438-01_V1.1[實(shí)驗(yàn)原理]像素的灰度控制,液晶的CGRAM如圖4-14-1行Segment168后,AC地址指針就會自動指向下一行首地址進(jìn)行繼續(xù)執(zhí)行對顯存空間寫操作。通控制來實(shí)現(xiàn),HD66753內(nèi)部的寄存器有IR,SR,R00-R12,其中IR為指令寄存器用來指明將要對R00-R12中對應(yīng)的寄存器進(jìn)行配置R04為對比度配該液晶有128級對比度可供配置選擇,R07灰度選擇,R11CGRAMR12CGRAM寄存器進(jìn)行配置,為讓HD66753識別是對IR寄存器進(jìn)行配置的指令,該規(guī)定一個(gè)開始信801110ID+RS+R/WIDHD66753IM0RSR/W一起控制寄存器讀寫方式。比如當(dāng)首字節(jié)為那么就告HD66753IR存器進(jìn)行配置,接下來的數(shù)據(jù)就會寫入到IR寄存器中。光盤/sorcecode/綜合程序/LCD/code/lcdoperate.C,就可以使用里面的函數(shù)對該液晶進(jìn)如圖4-24-2LCD顯示主程 TA中斷服務(wù)程LCD初始化子程 發(fā)送指令子程 LCD16X16漢字文本子程 LCD16X16漢字子程的型號在IAR里面正確配置。[范例路徑]資料光盤/Code/IAR4.11BCCode/lab16/LSD-TEST430F5438-V1.1_lcd.c[范例程序] 杭州利爾達(dá)科技**文件名 LSD-TEST430F5438-**工作環(huán)境:IAR****生成日期:**相關(guān)文件:lcdoperate.h;**#include<msp430x54x.h>#include"lcdoperate.h"#include"lcdlogo.h"unsignedinty1[5],y[5],x,zifinish,logoflag;charzi[2];voidsysteminit(){===========PDOUT=PDSEL=0;PEDIR=0xFFFF;PEOUT=0;PESEL=0;P11DIR=0xFF;P11OUT=0;P11SEL=0;PJDIR=0xFF;PJOUT=0;}voidmain(void{ LCDTA1CTL=TASSELACLK+TAIE+TACLR;TA1CCR0=32768/4;TA1CTL|=MCUP;zifinish={for(int{zi[0]=hanzi[2*i];zi[1]=hanzi[2*i+1];}if(logoflag=={ }}}interruptvoidTA(void){staticintnum1=0,num2=1,t=0;TA1CTL&=~TAIFG;if(t==num2=if(t==num2=if(t==num2=if(t==num2=if(t==num1=if(t==num1=if(t==num1=if(t==num1=for(int{y1[i]=y[i]=(x-i*4)*(x-}if((t==30)||(t==34)||(t==38)||(t==42)||(t==46))if(t>{logoflag=TA1CTL&=}}void{P7SEL|= XT1UCSCTL1= UCSCTL2= UCSCTL4=SELM_3+SELA_0+SELS_3; MCLKDCOC,MCLK=DCO,ACLK=XT1while(SFRIFG1& OFIFG,andXT1OFFG{UCSCTL7&=~(XT1LFOFFG+DCOFFG);SFRIFG1&=~OFIFG;}}
#defineLCD_BACKLIGHT_PIN#define #define voidlcdinit();voidlcdactive();void mand(unsignedcharvoidlcdsetbacklight(unsignedcharunsignedcharlcdtext(char*p,unsignedintx,unsignedinty);unsignedcharhanzitext(char*p,unsignedintx,unsignedinty);unsignedcharlcdhanzi(chara[],unsignedintx,unsignedintunsignedcharlcdfonts(unsignedintfont,unsignedintx,unsignedintunsignedchardrawppoint(unsignedintx,unsignedinty,unsignedintunsignedintunsignedchardrawpicture(constunsignedcharpicture[],unsignedintunsignedinty,unsignedintlength,unsignedintunsignedchardrawpline(unsignedintx1,unsignedinty1,unsignedintunsignedinty2,unsignedintgray,unsignedintunsignedcharblockscreenclean(unsignedintx,unsignedintunsignedintlength,unsignedintwide);unsignedcharCursor(unsignedintx1,unsignedinty1,unsignedintx2,unsignedinty2,unsignedintunsignedchardrawcircle(unsigned
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 元旦晚會游戲課件
- 俄語學(xué)院面試題及答案
- pisa考試題及答案
- 生命教育珍愛生命方案
- 架空人車培訓(xùn)
- 2025年農(nóng)村地區(qū)新能源汽車充電樁建設(shè)社會穩(wěn)定風(fēng)險(xiǎn)評估報(bào)告
- 重癥患者管路安全護(hù)理
- 2024-2025年(下)七年級地理(定稿)
- 建筑工程驗(yàn)收合格證明書及施工記錄(6篇)
- 2025年互聯(lián)網(wǎng)廣告精準(zhǔn)投放算法在智能安防行業(yè)的應(yīng)用效果研究報(bào)告
- 2024版國開電大法學(xué)本科《合同法》歷年期末考試總題庫
- 2023-2024學(xué)年人教版小學(xué)英語四年級下冊期末測試卷含答案
- 信息技術(shù)對商業(yè)運(yùn)營的變革影響
- 2024年福州首邑文化旅游投資有限公司招聘筆試參考題庫含答案解析
- 排水系統(tǒng)聯(lián)合排水實(shí)驗(yàn)報(bào)告
- 《競爭情報(bào)分析》課件
- 急診科外科急癥的處理與救治
- 安全編碼和開發(fā)培訓(xùn)
- 電氣工程及其自動化-10KV某中學(xué)教學(xué)樓配電系統(tǒng)設(shè)計(jì)
- 基于零知識證明和同態(tài)加密的隱私保護(hù)算法研究
- 《酒店服務(wù)情景英語》課程整體設(shè)計(jì)說明
評論
0/150
提交評論