msp430-test44x v3.0a c语言实验指导书gtf修改_第1页
msp430-test44x v3.0a c语言实验指导书gtf修改_第2页
msp430-test44x v3.0a c语言实验指导书gtf修改_第3页
msp430-test44x v3.0a c语言实验指导书gtf修改_第4页
msp430-test44x v3.0a c语言实验指导书gtf修改_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目第一章简 MSP430F449简 特 结构框 引脚 学习板实物 学习板硬件电路详 MSP430F449电源系 LED显 LCD显 矩阵键盘、独立按 通讯电 12位 外部FLASHDATE扩 串行 Timer_A捕获/比较模 实验项 第二章基础实验--汇编语 实验一、I/O端口操 实验二、时钟模块操 实验三、FLASH读写操 实验四、看门 实验五、Timer_A操 实验六、Timer_B操 实验七、比较器操 实验八、基本定时器,LCD,LED显示操 实验九、ADC12操 实验十、通讯操 实验十一、键盘操 实验十二、LCD点阵操 实验十三、扩展DATA 实验十四、EEPROM操 活动模式 待机模式掉电模式(RAM)0.1µA5可编程电压监测器图 图

图1.3MSP430F449部分组成:(100)LCD显示(段码、点阵FLASHDATEAT45DB041EEPROM24LC021.4断开第一、二、三脚:JTAG内部供电短接第二脚、第三脚:JTAG供电图 LED显示电P4.274HC373LED0。刷新时间是3.3mS一位,20mS刷新一遍,保证显示不会出现闪烁现象。LCDLSD048,714MUX方式,其、3449S0~S14、31.6。图1.6 段码LCD显示电LCD0——1——2——3——4——5——6——7——8——9——图 LCD点阵显示电控制:KS0107B、ELAC110V、工作电压:+3.30V0.5V成,共用一个端口。其原理见图1.8。1.8的P_KEYP3、P4、P5INC、有的仪表总线规范M-BUS。实现232通讯。SP3222E的具体资料可参考随板光盘。图 S4324321图 J-SPISPI的具体内容可参考相关书籍。其安装方便和独特的远传供电而更显优势。M-BUS有以下主要特点:实现异步通讯,300在学习板上,我们为您集成了TI的M-BUSTSS721。从电路原理图可以看USART0PC232J_usartP2、P5ON侧,其余的拨到数字侧。USART0PC485J_usartP1、P4ON侧,其余的拨到数字侧。12位GUIDE>>,ADC12部分。FLASHDATEDATE扩展接口,采用了AT45DB041。电路原理见图1.12所示。1.12FLASHSI:SerialSO:Serial1.13串行EEPOM.......Single.

.图 .版本的编译器实验,光盘里附有IAR3.41A的程序,只要您按操作说明建立工程文件, ,供学习、开发参FLASH看门作实*.S43IAR 参考可的《MSP430系列单片机C语言程序设计与开发》。WorkbenchI/OP5.1是否发生改变。图 实验连接2.2#include<msp430x44x.h>void{WDTCTL=WDTPW+ P5DIR|= for{unsignedintP5OUT P5.1i= do(i--while(i!=}}1、使用外接高速晶体(450K—4492274的XTAL1、VLO、DCOMCLK、SMCLK、1,使用外接高速晶体(450K—2.3Y2.43、程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB2\src#include"msp430x44x.h"void{unsignedintWDTCTL=WDTPW+ FLL_CTL0= FLL_CTL1=FLL_CTL1& // {FLL_CTL0=FLL_CTL0& //频模式下振荡失效标志for(i=50000;i;i }while(FLL_CTL0& FLL_CTL1= //SMCLK=P1DIR= P1.1,P1.4&P1.5P1SEL= //P1.1,P1.4&P1.5为模块使//MCLK,SMCLK& }

2.52、程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB2\src#include"msp430x44x.h"void{WDTCTL=WDTPW+ SCFI0|= FLL_CTL0= SCFQCTL= //(74+1)x32768=P1DIR= P1.1&P1.5P1SEL= //P1.1&P1.5分别输出MCLK&}2.62.62、程序:MSP430-TEST44XV2.0B\Source//ACLK=LFXT1=32768,MCLK=SMCLK=DCOCLK=(n+1)x2xvoidmain(void){WDTCTL=WDTPW+ SCFI0|= x2DCODCOSCFQCTL=121; //(121+1)x32768x2=7.99MhzFLL_CTL0=DCOPLUS+XCAP18PF; P1DIR= P1.1&P1.5P1SEL= P1.1&P1.5tMCLK& }及编程频率有严格的要求,可参考DATASHEET。1、449FLASH图 FLASH结同的要求可以存放程序,也可以存放数据,有10万次的擦写。2.8段擦除段A段内容复制到B段加锁段擦除段2.93、程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB3\src#include<msp430x44x.h>char A8voidwrite_SegA(charvalue);//函数voidcopy_A2B(void); //函数voidmain(void){WDTCTL=WDTPW+ FCTL2=FWKEY+FSSEL0+ FLASHvalue= { }}voidwrite_SegA(char{unsignedinti;Flash_ptr=(char*) FCTL1=FWKEY+ FCTL3= //FLASH*Flash_ptr=FCTL1=FWKEY+ for(i=0;i<128;{*Flash_ptr++=}

FLASH128FCTL1=FCTL3=FWKEY+}

voidcopy_A2B{char*Flash_ptrA;char*Flash_ptrB;unsignedinti;Flash_ptrA=(char*)0x1080;Flash_ptrB=(char*)0x1000;FCTL1=FWKEY+ERASE;FCTL3=*Flash_ptrB=0;FCTL1=FWKEY+WRT;

//for(i=0;i<128;{*Flash_ptrB++*Flash_ptrA++;A}FCTL1=FCTL3=FWKEY+ }2、看门狗模式:将WDT(WDTTMSEL=0。在看门狗模式下,当看

2.102.113、程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB4\src#include<msp430x44x.h>voidmain(void{unsigned P5DIR|= P5.1P5OUT&=~ P5.1for P5OUT|= P5.1for while}2.122、程序:MSP430-TEST44XV2.0B\Source2.12voidmain(void{unsigned P5DIR|= P5OUT&=~ for P5OUT|= for while(1);{ }}

2.132.143、程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB4\src#include<msp430x44x.h>void{WDTCTL= IE1|= WDTP1DIR|= P1.0 for{ }}#pragmavector=WDT_VECTOR]interruptvoidwatchdog_timer(void){P5OUT^= P5.1}输出单元的8种模式输出选择,波形的产生方法;50000SMCLKP5.1LED3ATimer_ASMCLK=32768*32,输出模式设置为OUTMOD_ 出1,定时器A实验连接图:光盘资料/Source2.152.16程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB5\src#include<msp430x44x.h>void{WDTCTL=WDTPW+ //停止TACTL=TASSEL1+ //SMCLK,清CCTL0= CCR0CCR0=P5DIR|= P5.1TACTL|= Timer_A for{ CPU }}#pragmavector=TIMERA0_VECTORinterruptvoidTimer_A(void){P5OUT^= CCR0+= }流程图:光盘资料/Source定时器ACCCIFG=1CCR2值存入first_valueCCIFG=1CCR2值存入second_value关Timer_启动TIMER1Czp_value=second_value-first_valuCCR2捕获内部ACL2.17程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB5\src#include<msp430x44x.h>volatileunsignedint intmain(void{volatileunsignedint {IFG1&=~OFIFG;} 数,清TARTACCTL2 TACCTL2 TACCTL2 TACCTL2&=~MC1; return}

2.18捕获2.19程序:MSP430-TEST44XV2.0B\Source//MSP430TEST44XDemo-Timer_ATA1-2upmode,DCO////来实现周期是488uS,占空比分别为75%(P1.2)和25%(p2.0)的输出#include<msp430x44x.h>void{WDTCTL=WDTPW //停止FLL_CTL0|= TACTL=TASSEL1+ //SMCLK,清CCR0=512- CCTL1= //CCR1= //CCR1周CCTL2= CCR2CCR2= //CCR2周P1DIR|= P1.2P1SEL|= P1.2TA1P2DIR|= P2.0P2SEL|= P2.0TA2TACTL|= Timer_Afor{ }}Timer_A使P5.1闪烁程序#include<msp430x44x.h>void{WDTCTL=WDTPW+ TACTL=TASSEL1+ SMCLK,CCTL0= CCR0CCR0=P5DIR|= P5.1TACTL|= for{ }}#pragmavector=TIMERA0_VECTORinterruptvoidTimer_A(void){{P5OUT^= P5.1CCR0+= }#include<msp430x44x.h>void{WDTCTL=WDTPW+ TBCTL=TBSSEL1+ SMCLK,TBCCTL0= CCR0TBCCR0=P5DIR|= P5.1TBCTL|= for{ }}#pragmavector=TIMERB0_VECTORinterruptvoidTimer_B(void){P5OUT^= P5.1TBCCR0+= }16位一样。您可以自己写个程序测试,这里就不再重复了。2.20

025VccP16NYP51P512.21MSP430-TEST44XV2.0B\SourceCode\C\LAB7\src#includevoidmain{WDTCTL=WDTPW+ P5DIR|=BIT1; //P5.1定义为输出CACTL1=CARSEL+CAREF0+CAON; //0.25Vcc=-comp,onCACTL2=P2CA0; //P1.6=+compwhile {if((CAOUT&CACTL2)==P1OUT|=BIT1; P5OUT&= }}LED.

. 图 LED的管脚结习板的硬件LED电路原理见下图。82 82 13P3 18P317P318P317P314P313P311P4图 LED的电路原LED2E30361-L074HC373P3.0~P3.7LED态。此时不管P3口如何变化,1Q~8Q数据保持不变。D45LED1)P4.13)P4.14)P4.06)P4.00—— 1—— 2——3——4——5—— 6—— 7——8——9——BCD码,一个字节存放2个,低4位为显示的低位数据,高4位为显示的数据。显示格式为XX.XX.XX。依次为小时、分、秒。BTBT05SLCDLEDLCDLEDSec+Sec=0Min+Min<60Min=0Hour+Hour<237373

2.24BT0BT0.5SLCDTA "msp430x44x.h"//1F449LCDLCD//钟没,另外,也控制LED//ON//3unsignedchar void voiddis //LCD显示程voiddisy_dec(unsignedchari,unsignedcharvoidled_disy(unsignedchar //LED显示程void{intpp=ttWDTCTL=WDTPW+ BT0.5S BT lcd LCD for(i=0;i<8; LCDLCDMEM[i]= { }}#pragmavector=BASICTIMER_VECTORinterruptvoidbasic_timer(void){ dis }#pragmavector=TIMERA0_VECTORinterruptvoidTimer_A(void){ {case1:led_discase2:led_dis case4:led_discase8:led_disy(led_table[min%10]+0x20);break;case16:led_disy(led_table[(sec>>1)/10]);break;case32:led_disy(led_table[(sec>>1)%10]);}}voidrtc {if(++sec<120)sec=if(++min<60)min=if(++hour<24)hour=}voiddis{int dis dis }voiddisy_dec(unsignedchari,unsignedchar{ 0X80}voidled_disy(unsignedchar{ //发送LED 373 //发送LED 373}2.26

425:2.28程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB9\src staticunsignedintresults;voidmain(void){WDTCTL P6SEL|=0x01; //输入通道为A0ADC12CTL0=ADC12ON+SHT0_15; //开ADC12,设置采样时间ADC12CTL1= ADC12IE= ADC12CTL0|= {ADC12CTL0|= }}#pragmainterruptvoidADC12ISR ADC{results= LPM0,}

2.31AADC2.32程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB9\src#include"msp430x44x.h"#defineNum_of_ResultsstaticunsignedintA0results[Num_of_Results];//定义全局数组staticunsignedintA1results[Num_of_Results];//定义全局数组staticunsignedintA2results[Num_of_Results];staticunsignedintA3results[Num_of_Resultsvoid{WDTCTL P6SEL= ADC12CTL0= //开ADC12CTL1=SHP+CONSEQ_3; ADC12MCTL0=INCH_0; //ref+=AVcc,channel=A0ADC12MCTL1= //ref+=AVcc,channel=ADC12MCTL2=INCH_2; //ref+=AVcc,channel=A2ADC12MCTL3=INCH_3+EOS; ref+=AVcc,channelA3,列ADC12IE= ADC12CTL0|= ADC12CTL0|= }#pragmavector=ADC_VECTORinterruptvoidADC12ISR{staticunsignedintindex=A0results[index]=ADC12MEM0;A1results[index]=ADC12MEM1;A2results[index]=ADC12MEM2;A3results[index]=ADC12MEM3;//结果=(index+1)%Num_of_Results;//结}

2.33程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB9\src staticunsignedintADCresult;staticunsignedlongintDegC,DegF;void{unsignedintWDTCTL= ADC12CTL0= ADC12,ADC12CTL1= ADC12MCTL0= A10,ADC12IE= for(i=0;i<0x3600; {}ADC12CTL0|= {ADC12CTL0|= DegC=((((long)ADCresult-1615)*704)/4095);DegF=((DegC* }}#pragmavector=ADC_VECTORinterruptvoidADC12ISR(void){ADCresult= //结 }

2.35程序:MSP430-TEST44XV2.0B\Source//BuiltwithIAREmbeddedWorkbenchVersion://ID:MSP430-//////2、对拨动开关P_232、P1、U_USARTU_USARTP2P5到ON的位置;//3,显示数据如fefe68100100000000000001031F90002c#include<msp430x44x.h>void{WDTCTL=WDTPW+ FLL_CTL0|= UTCTL0= //UCLK=UBR00= //1MHzUBR10= //1MHzUMCTL0= UCTL0= ME1|=UTXE0+ IE1|= P2SEL|= //P2.4,5=USART0P2DIR|= P2.4 for{ }}#pragmavector=UART0RX_VECTORinterruptvoidusart0_rx(void){while((IFG1&UTXIFG0)== TXBUF0= }2.362.37程序:光盘资料/Source//////2U_USARTP1P4ON//3、显示数据如fefe68100100000000000001031F90002c//4#include<msp430x44x.h>voiddelay(inta,int{for(inti=a;i>0;i--for(intj=b;j>0;j--}void{WDTCTL=WDTPW+FLL_CTL0|=UTCTL0=UCLK=UBR00=1MHzUBR10=1MHzUMCTL0=noUCTL0=8-bit字节ME1|=UTXE0+IE1|=P2SEL|=P2.4,5=USART0P2DIR|=P2.4P4DIRP4.2P4OUTfor{进入}}#pragmavector=UART0RX_VECTORinterruptvoidusart0_rx(void){P4OUT TXBUF0= RXBUF0while((IFG1&UTXIFG0)== P4OUT}2.38NYNY2.39程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB10\src#include"msp430x44x.h"void{WDTCTL=WDTPW+ FLL_CTL0|= ME1|= SPIUTCTL0= SMCLK,3-pinUCTL0= 8-bitSPI主模式UBR00= //UBR10= //UMCTL0= P3SEL|= P3.1-3SPIP3DIR|= P3.0 while{unsignedfor(i0xFFFF;i0;i while((IFG1&UTXIFG0)== P3OUT&=~0x01; 'HC165P3OUT|=0x01;TXBUF0= RXBUF0}2.40有个按键,按键的A、B端分别接在行线和列线上。1,3条P1.1—P1.3输出低电平,读列线.P1.4—P1.7。如果有按键按下,则列线读进来的P1.1—P1.3P1.4—P1.7的办法来得知是否有按键被按使输出P1.1为低电平,其余为高;平被上拉;再测试P1.5,直到测试完P1.7;平被上拉;再测试P1.5,直到测试完P1.7;1.71,4443*4行列式键盘,采用扫描法扫描键盘。程序共分为判键、按键识别,得到键码两块。口线P1.1~P1.3为行线,P1.4~P1.7XXX中DIP拨动开关P_KEYP3、P4、P5拨到"ON"一端.LLEDBTLCDledIO2.42程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB11\src#include"msp430x44x.h"//F449I/O(P1.1、P1.2、P1.3)//显示(LED//显示//和键盘//////P3P4ON//staticunsignedcharled_disp_bit=0x40;//LEDstaticunsignedcharfun_buffer; staticunsignedcharkey_flag; unsignedcharkey_temp; #definekey_inc //INC键定义#define #define unsignedcharlcd_table[12]={ unsignedchar LEDvoidvoiddisvoiddisy_dec(unsignedchari,unsignedcharj);voidled_disy(unsignedchari);voidinc(void);voiddec(void);voidfun(void);void{intWDTCTL=WDTPW+WDTHOLD; for(i=0;i<8; //LCDLCDMEM[i]= { switch{case6:inc();break;case12:fun();}}}#pragmavector=BASICTIMER_VECTORinterruptvoidbasic_timer(void){ dis }#pragmainterruptvoid{{if{}} }}#pragmavector=PORT1_VECTORinterruptvoidPORT1_1(void){}voidrtc{if(++sec<120)sec=if(++min<60)min=if(++hour<24)hour=}voiddis{inti;}voiddisy_dec(unsignedchari,unsignedchar{}voidled_disy(unsignedchar{}voidinc{switch{casecase3:sec+=2;gotortc_inc;case2:min+=1;gotortc_inc;case1:hour+=1;if(sec>119)sec=sec-120;if(min>59)min=min-60;if(hour>23)hour=hour-}}void{switch{casecase3:sec-=2;gotortc_dec;case2:min-=1;gotortc_dec;case1:hour-=1;sec=256-}}void{}F,每按一键在LCD上显示键值,如同时按下多键,以第一个键值为主。硬件连接:必须连接所有短接器,LCD显示不受拨动开关的影响;必须将拨动开关P_KEY的第P2、P3、P4、P5拨到数字一端。LCLCD设置设置BT025S中LCD清屏BT中断服务2.44程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB11\src#include"msp430x44x.h"//程序功能:该程序是用F449I/OP1.1、P1.2、P1.3、P1.4、P1.5、P1.6////E、FLCD////关P_KEY 第P2、P3、P4、P5拨到数字一端 unsignedcharunsignedcharunsignedcharunsignedcharunsignedcharunsignedchar//lcdunsignedchar voidvoiddisvoiddisy_dec(inti,intj);voidlcd_disy(void);voidmain(void){intWDTCTL=WDTPW+WDTHOLD; //BT0.25S lcdfor(i=0;i<8;++i) LCDMEM[i]=0x00;{ }}#pragmavector=BASICTIMER_VECTORinterruptvoidbasic_timer(void){ {}}voidrtc{if(++sec<240)sec=if(++min<60)min=if(++hour<24)hour=}voiddis{inti;}voiddisy_dec(inti,int{}voidlcd_disy{intfor(i=0;i<7;i++)}void{unsignedcharcounter;unsignedcharbuffer;unsignedcharcom_byte;unsignedcharkey_num; for(counter=0x03;counter>0;counter--){ } }}

2.45P3P4ONCP1.1P3.6、P1.2P3.5、P1.3开始开始设置TB下降沿中断设置LC2.46程序:MSP430-TEST44XV2.0B\SourceF449P3.4、P3.5、P3.6P1.1、P1.2、////LEDLCD(P1.1=FUN;P1.2=DEC;P1.3=INC)//////P3P4ON////CP1.1P3.6、P1.2P3.5、P1.3和#include<msp430x44x.h>unsignedintkey_count=0x00;unsignedcharkey_value=0xff;unsignedcharkinput=0x00;unsignedcharktemp=0x00;unsignedcharkstore=0x00;unsignedcharkready=0x00;unsignedcharkoutput=0x00;unsignedchargetkey=0x00;unsignedcharkey_flag=0x00;constunsignedkconst=0x70;#defineten_ms #definekey_1_5s #definekey_error0xee;#definekey_3_5s #definekey_2_3 #definekey_3_2 unsignedcharlcd_table[16]={0x7B, /*"0"*/0x12,/*"1"*/0x4F,/*"2"0x1F,/*"3" //0-F0x36,/*"4"0x3D,/*"5"0x7D,/*"6"0x13,/*"7"0x7F,/*"8"0x3F,/*"9"0x77,/*"A"0x7C,/*"B"0x69,/*"c"0x5E,/*"D"0x6D,/*"E"0x65,/*"F"void intWDTCTL=WDTPW+WDTHOLD;TBCTL=TBSSEL0+TBCLR;TBCCTL3CM_2+SCS+CAP+CCIE+CCIS_1;//下降沿捕获,CCI3B为信号源TBCCTL4CM_2+SCS+CAP+CCIE+CCIS_1;//下降沿捕获,CCI4B为信号源TBCCTL5CM_2+SCS+CAP+CCIE+CCIS_1;//下降沿捕获,CCI5B|= //BT0.25S中断 lcdfor(i=0;i<8;++i) lcdLCDMEM[i]=0x00; { }}#pragmavector=TIMERB1_VECTORinterruptvoidTimer_B1(void){switch{

case6:gotokey;case8:gotokey;case10:gotoif{kinput=kready=ktemp&kinput|kready&(ktemp^kinput);ktemp=kinput;koutput=kready&(~kstore|kconst);kstore=kready;elseif(koutput==0x20)elseif(koutput==0x40)}{TBCTL|=MC_1+TBIE;TBCCTL3=CCIE;TBCCR3=ten_ms;TBCCR0=}switch{case0x00:gotokey_00;case0x10:gotokey_10;case0x20:gotokey_20;case0x30:gotokey_30;case0x40:gotokey_40;case0x50:gotokey_50;case0x60:gotogototb_init;}gototb_init;gototb_init;}gototb_init;elseTBCTL=TBCCTL3CM_2+SCS+CAP+CCIE+CCIS_1;//下降沿捕获,CCI3B为信号源TBCCTL4CM_2+SCS+CAP+CCIE+CCIS_1;//下降沿捕获,CCI4B为信号源TBCCTL5CM_2+SCS+CAP+CCIE+CCIS_1;//下降沿捕获,CCI5B}}}#pragmavector=BASICTIMER_VECTORinterruptvoidbasic_timer(void){}示LCD点阵图形了。控制:KS0107B、2.412.422.412.42 2.22.3控制和显示64128*64CS1、CS2JC1、JC2.123123..3.43449P2.0——P2.1——P2.2——P2.3——P2.6——P2.7——P3.0——P3.1——P3.2——P3.6——P3.3——P3.7——P3.4——P3.5——2.50449LCDLLCD

LCD清屏程 LCD初始化程显示16*19文字程 2.51实验流程程序:MSP430-TEST44XV2.0B\SourceLOGO#include"msp430x44x.h"typedefunsignedintWORD;typedefunsignedchar constBYTE{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,constBYTECHAR_0[5]={0x3E,0x51,0x49,0x45,0x3E};constBYTECHAR_1[5]={0x00,0x42,0x7F,0x40,0x00};constBYTECHAR_2[5]={0x42,0x61,0x51,0x49,0x66};constBYTECHAR_3[5]={0x23,0x41,0x45,0x4B,0x31};constBYTECHAR_4[5]={0x18,0x14,0x52,0x7F,0x50};constBYTECHAR_5[5]={0x27,0x45,0x45,0x45,0x39};constBYTECHAR_6[5]={0x3C,0x4A,0x49,0x49,0x30};constBYTECHAR_7[5]={0x03,0x71,0x09,0x05,0x03};constBYTECHAR_8[5]={0x36,0x49,0x49,0x49,0x36};constBYTECHAR_9[5]={0x06,0x49,0x49,0x29,0x1E};constBYTECHAR_A[5]={0x7E,0x11,0x11,0x11,0x7E};constBYTECHAR_B[5]={0x7F,0x49,0x49,0x49,0x36};constBYTECHAR_T[5]={0x03,0x41,0x7F,0x41,0x03};constBYTECHAR_E[5]={0x41,0x7F,0x49,0x5D,0x63};constBYTECHAR_L[5]={0x41,0x7F,0x41,0x40,0x60};constBYTE{ // //[1]'-constBYTE constBYTE LSDstaticBYTEnum;staticBYTEbt_num;voidport_ini(void){P3DIR=0xFF;P3OUT=0x00;P2DIR=P2OUT=P2_3_CS1|P2_3_CS2|P2_3_RST;P2OUT&=~P2_3_RST;P2OUT|=P2OUTP2OUT|=} mand(BYTEnByte{P3DIR=P2OUT|=P2_3_CS1+P2_3_CS2;P2OUTP3OUT=nByte;P2OUT|=P2_2_EN;P2OUT}voidwrite_char(BYTEnByte,BYTECS1,BYTECS2{P3DIR=if(CS1)P2OUT|=elseP2OUT&=~P2_3_CS1;if(CS2)P2OUT|=P2_3_CS2;elseP2OUT&=~P2_3_CS2;P2OUT|=P2_0_RS;P2OUT&=~P2_1_RW;P3OUT=nByte;P2OUT|=P2_2_EN;P2OUT}voidclear_lcd(void{BYTE{{elsewrite_char(0,0,1);}}}voiddisy_hz(BYTE*chr,BYTEnRow,BYTEnCol{BYTE{{}{}}{{}{}}}voiddisy_16_16_icon(BYTE*chr,BYTEnRow,BYTEnCol{BYTE{{}{}}{{}{}}}voiddisy_char(BYTE*chr,BYTEnRow,BYTEnCol{BYTE{{}{mand(0x40|(tmpCol-}}}void{BYTEWDTCTL=WDTPW+WDTHOLD; FLL_CTL0|=XCAP14PF; disy_16_16_icon((BYTE //显示LSD图disy_hz((BYTE*)&Lierda_13_19[0][0],3,30);//显示利disy_hz((BYTE*)&Lierda_13_19[1][0],3,60);//显示尔disy_hz((BYTE*)&Lierda_13_19[2][0],3,90);//显示disy_char((BYTE //显示disy_char((BYTE //显示disy_char((BYTE*)&CHAR_L[0],6,28); //显示Ldisy_char((BYTE*)&Symbols[0][0],6,hAddr);//显示0disy_char((BYTE*)&CHAR_0[0],6,hAddr+6);//显示5disy_char((BYTE*)&CHAR_5[0],6,hAddr+12);//显示7disy_char((BYTE*)&CHAR_7[0],6,hAddr+18);//显示1disy_char((BYTE*)&CHAR_1[0],6,hAddr+24);//显示disy_char((BYTE*)&Symbols[1][0],6,hAddr+30);//显示-disy_char((BYTE*)&CHAR_8[0],6,hAddr+36); //显示8disy_char((BYTE*)&CHAR_8[0],6,hAddr+42); //显示8disy_char((BYTE*)&CHAR_8[0],6,hAddr+48); //显示8disy_char((BYTE*)&CHAR_0[0],6,hAddr+54); //显示0disy_char((BYTE*)&CHAR_0[0],6,hAddr+60); //显示0disy_char((BYTE //显示disy_char((BYTE*)&CHAR_0[0],6,hAddr+72); //显示0disy_char((BYTE //显示 {}}实验十三、扩展DATAAT45DB041是ATMEL公司的一款低功耗、低电压外扩DATAFLASHmemory,其memory单元结构如下图所示。LoworHigh、SPI0SPI3。两种工作模式的时序如图2.46所示。2.46AT45DB0412.49AT45DB041令,故只给出54H的时序图也比较简单。如图2.51所示。从图中可以清楚的看到AT45DB041449的连接情况,下面就介绍对TABR10buffer 写FL写FLASH读FLASH2.613、程序:MSP430-TEST44XV2.0B\SourceCode\C\LAB13\src4、#include"msp430x44x.h"//出,并 数据放入250为首地址的RAM 通过本实验了解MSP430对扩展的用法,写入的数据是21,22,23,24,25,26//硬件连接:必须将拨动开关P_MEMORYP1、P2、P3、P4、P5、P6、P7//charword;charR_word;charchar*Ram_addr;char*Buff_addr;{inti;for{P6OUT&=Tamp=word;Tamp&=0x80;P6OUT&=P6OUT|=0x10;P6OUT|=0x20;word=word<<}}void{P6DIR|=0X30;P6OUT|=word=cmd_word;}void{P6DIR&=0X00;P6DIR|=0X63;P6OUT|=}void{intP6DIR|=0X40;P6OUT&=cmd_word=0x84;word=0x00;word=0x00;word=0x1A;{word=tab[j];}Buff_addr=(char*)0x1A;}void{intP6DIR|=0X20;P6DIR&=R_word=0x00;P6OUT&={P6OUT&=0xDF;P6OUT|=0X20;if(P6IN&0x08)R_word|=0x01;R_word&=0xFE;P6OUT&=0xDF;R_word=R_word<<}R_word=R_word>>}void{intP6DIR|=0X40;//CSoutP6OUT&=0XBF;cmd_word=0x54;word=0x00;word=0x00;word=0x1A;word=0xff;{*Ram_addr++=}}void{intm=WDTCTL=WDTPW+WDTHOLD;FLL_CTL1=SELM_A+FLL_DIV_8;P6DIR&=0X00;P6SEL&=0X00;P6DIR|=0X63;P6OUT|=while(m-->0);Ram_addr=(char

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论