资源描述:
《msp430超声波测距程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include"msp430x14x.h"#include"1602.c"#defineuintunsignedint#defineucharunsignedcharvoidUSARTinit();voidtimeinit();longstaticuintdistance=0;uchartable[]="guzhuanyuan";/*voiddelay(uinty){uintx;for(;y>0;y--)for(x=100;x>0;x--);}*/uchari=0,j=0;voidmain(){//Stopwatchdogtimertoprevent
2、timeoutresetWDTCTL=WDTPW+WDTHOLD;//USARTinit();P1DIR
3、=BIT0;P2DIR=0XFF;timeinit();lcdinit();display_string(3,1,table);P1IE=BIT1;P1IES&=~BIT1;while(1){P1OUT
4、=BIT0;delay(1);P1OUT&=~BIT0;delay(1000);display_one(1,0,(distance/10000)%10+0x30);display_one(2,0,(distance/1000)%10+0x30);d
5、isplay_one(3,0,(distance/100)%10+0x30);display_one(4,0,(distance/10)%10+0x30);display_one(5,0,distance%10+0x30);}}voidtimeinit(){TACTL=TASSEL_2+ID_3+MC_1;//ID_2表示八分频!MC_1表示连续计数模式!BCSCTL2=0x88;//选择SMCLK的信号源XT2CLK(8MHz)CCR0=65535;_EINT();//打开总中断!}#pragmavector=PORT1_VECTOR__interr
6、uptvoidport1_int(void){if((P1IN&BIT1)==BIT1){TACTL
7、=MC_1+TACLR;P1IES
8、=BIT1;}else{TACTL&=~MC_3;P1IES&=~BIT1;distance=TAR*5/3;P2OUT=TAR;}P1IFG&=~BIT1;}#include"msp430x14x.h"#defineuintunsignedint#defineucharunsignedcharvoidlcdinit();voidwritecommand(ucharwdata);voidwritedata(uchar
9、wdata);voiddelay(uinty);voiddisplay_xy(ucharx,uchary);voiddisplay_one(ucharx,uchary,ucharc);voiddisplay_string(ucharx,uchary,uchar*s);voidlcdinit(){P4DIR=0XFF;P3DIR=0xff;delay(1);writecommand(0x38);//必须要有,显示模式设置,设置为16*2显示,5*7点阵,8位数据接口!//delay(50);writecommand(0x08);//关闭显示,要不要都可以
10、writecommand(0x01);//显示清屏writecommand(0x0f);//开显示,显示光标,光标闪烁!!writecommand(0x06);//读/写作用时地址自动加一}voidwritecommand(ucharwdata){P3OUT&=~BIT0;//使RS=0,表示写命令P3OUT&=~BIT1;//rw=0,表示向1602里面写数据//P3OUT&=~BIT2;//E=0delay(1);P3OUT
11、=BIT2;//使能E置一P4OUT=wdata;//送命令delay(10);//短暂延时,代替检测忙状态,产生方波!P3
12、OUT&=~BIT2;//使能E=0,下降沿将命令货数据送入1602}voidwritedata(ucharwdata){P3OUT
13、=BIT0;//使RS=1,表示写数据P3OUT&=~BIT1;//rw=0,表示向1602里面写数据//P3OUT&=~BIT2;可以加,也可以不加!!delay(1);P3OUT
14、=BIT2;P4OUT=wdata;delay(10);P3OUT&=~BIT2;}voiddelay(uinty){uintx;for(;y>0;y--)for(x=100;x>0;x--);//用8MHz的总频率!!!}voiddisp
15、lay_xy(ucharx,uchary)//找字符串的地址!!{if(y==0x01){x=