倒车雷达设计程序.docx
- 文档编号:29212361
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:38
- 大小:29.64KB
倒车雷达设计程序.docx
《倒车雷达设计程序.docx》由会员分享,可在线阅读,更多相关《倒车雷达设计程序.docx(38页珍藏版)》请在冰豆网上搜索。
倒车雷达设计程序
#include"HT46RU232.h"
#defineucharunsignedchar
#defineuintunsignedint
#defineruanqi_pa1
#defineshuxuan_pa2
#pragmavectorisr_timer1@0x0c;
#pragmavectorUart_ISR@0x10//串口中断入口
#defineLCD_EN_pa5//串行时钟
#defineLCD_RS_pa7//数据、命令选择信号
#defineLCD_RW_pa6//数据端口
//#defineLCD_PSB_pa4//串并选择H:
并L:
串
#defineCY_c//盛群芯片中进位(借位)标志位为_c
#defineRX_pc3//echo
#defineTX_pc2//trlg
//unsignedcharDataSbuf[10];
constcharAT[]="AT";
constcharAT_CMGSS[]="AT+CMGS=\"+8613594643027\"";//设置接收短信号码
constcharAT_CMGF[]="AT+CMGF=1";//设置短信的格式为text格式
constucharnumber[]="0123456789";
constcharCMTI[]="+CMTI";
constcharCMGR[]="+CMGR";
constucharbeiwei[]="北纬";
constucharnanwei[]="南纬";
constuchardongjing[]="东经";
constucharxijing[]="西经";
constucharsudu[]="速度";
constucharchenggong[]="发送成功";
constucharinputnum[]="请设置电话号码:
";
constucharqinren[]="亲人:
";
constucharleida[]="倒车雷达启动中..";
constucharcheju[]="车距:
";
constucharinit0[]="HOLTEK-MCU";
constucharinit1[]="1.设置号码";
constucharinit2[]="2.倒车雷达";
constucharinit3[]="3.车辆导航";
constuchardingwei[]="车辆定位坐标";
constucharwuren[]="无人模式";
charrev_buf[72];
charbuf1[12];
charinfo[6];
chartelnum[12];
ucharlatitude_Degree;//度
ucharlatitude_Cent;//分
intlatitude_Second;//秒
ucharlongitude_Degree;//度
ucharlongitude_Cent;//分
intlongitude_Second;//秒
intspeed;//速度
intdirection;//航向
bitgps_flag;
bitdataflag;
bitkey_flag;
bitflag;
ucharbaojing_flag;
uchargps_num;
ucharchehuo_flag;
ucharren_flag;
ucharrev_start;
ucharrev_stop;
ucharnum;
ucharNS;
ucharEW;
uinttemp1;
voiddelayms(uintt)
{
uinti;
for(i=0;i { _delay(984); } } voidLcd_WriteCmd(unsignedcharcmd) { unsignedchari; _delay(200); LCD_RS=1; for(i=5;i>0;i--) { LCD_RW=1; LCD_EN=1; LCD_EN=0; } for(i=3;i>0;i--) { LCD_RW=0; LCD_EN=1; LCD_EN=0; } for(i=4;i>0;i--) { cmd=cmd<<1; LCD_RW=CY; LCD_EN=1; LCD_EN=0; } for(i=4;i>0;i--) { LCD_RW=0; LCD_EN=1; LCD_EN=0; } for(i=4;i>0;i--) { cmd=cmd<<1; LCD_RW=CY; LCD_EN=1; LCD_EN=0; } for(i=4;i>0;i--) { LCD_RW=0; LCD_EN=1; LCD_EN=0; } LCD_RS=0; } voidLcd_WriteDat(unsignedcharLCDdata) { unsignedchari;_delay(200); LCD_RS=1; for(i=5;i>0;i--) { LCD_RW=1; LCD_EN=1; LCD_EN=0; } LCD_RW=0;//RW LCD_EN=1; LCD_EN=0; LCD_RW=1;//RS LCD_EN=1; LCD_EN=0; LCD_RW=0; LCD_EN=1; LCD_EN=0; for(i=4;i>0;i--) { LCDdata=LCDdata<<1; LCD_RW=CY; LCD_EN=1; LCD_EN=0; } for(i=4;i>0;i--) { LCD_RW=0; LCD_EN=1; LCD_EN=0; } for(i=4;i>0;i--) { LCDdata=LCDdata<<1; LCD_RW=CY; LCD_EN=1; LCD_EN=0; } for(i=4;i>0;i--) { LCD_RW=0; LCD_EN=1; LCD_EN=0; } LCD_RS=0; } voidLcd_Init(void) { //LCD_PSB=0;//并口方式 Lcd_WriteCmd(0x34);//扩充指令操作 _delay(500); Lcd_WriteCmd(0x30);//基本指令操作 _delay(500); Lcd_WriteCmd(0x0C);//显示开,关光标 _delay(500); Lcd_WriteCmd(0x01);//清除LCD的显示内容 delayms(15); Lcd_WriteCmd(0x06); _delay(500); } voidgps_init() { uchari; Lcd_WriteCmd(0x80); for(i=0;i<12;i++) {Lcd_WriteDat(init0[i]);_delay(50);} Lcd_WriteCmd(0x90); for(i=0;i<12;i++) {Lcd_WriteDat(init1[i]);_delay(50);} Lcd_WriteCmd(0x88); for(i=0;i<12;i++) {Lcd_WriteDat(init2[i]);_delay(50);} Lcd_WriteCmd(0x98); for(i=0;i<12;i++) {Lcd_WriteDat(init3[i]);_delay(50);} } voidLcd_SetPos(ucharX,ucharY) { ucharpos; if(X==0) {X=0x80;} elseif(X==1) {X=0x90;} elseif(X==2) {X=0x88;} elseif(X==3) {X=0x98;} pos=X+Y; Lcd_WriteCmd(pos);//显示地址 } voidLcd_DispLine(char*str) { inti=0; while(str[i]! ='\0') { Lcd_WriteDat(str[i]); i++; } } voidUart_rinit() { _ucr1=0x80;//设置BNO,PRT,PREN,STOP位 _ucr2=0x64;//使能TXEN、RXEN _brg=51;//设置波特率,8M,9600 _euri=1;//开串口中断 _emi=1;//开总中断 //_rxen=1; } voidUart_tinit() { _ucr1=0x80;//设置BNO,PRT,PREN,STOP位 _ucr2=0xe4;//使能TXEN、RXEN _brg=51;//设置波特率,8M,9600 _euri=1;//开串口中断 _emi=1;//开总中断 //_rxen=1; } voidsendchar(unsignedchardata) { unsignedchari; _txen=1; i=_usr; _txr_rxr=data; _delay(2000);//延时 } voidsend_AT() { ucharp; for(p=0;p<2;p++) {sendchar(AT[p]);} sendchar(0x0D);//回车指令 sendchar(0x0A);//换行指令 } voidsend_AT_CMGSS()//设置短信号码 { ucharp; for(p=0;p<24;p++) sendchar(AT_CMGSS[p]); sendchar(0x0D);//回车指令 sendchar(0x0A);//换行指令 } voidsend_AT_CMGSS1()//设置短信号码 { ucharp; for(p=0;p<8;p++) sendchar(AT_CMGSS[p]); sendchar('"'); sendchar('+'); sendchar('8'); sendchar('6'); for(p=0;p<11;p++) sendchar(telnum[p]); sendchar('"'); sendchar(0x0D);//回车指令 sendchar(0x0A);//换行指令 } voidsend_AT_CMGF()//设置短信格式 { ucharp; for(p=0;p<9;p++) sendchar(AT_CMGF[p]); sendchar(0x0D);//回车指令 sendchar(0x0A);//换行指令 } voidsend_shuju1()//发送数据 { ucharm; sendchar('*'); sendchar(longitude_Degree/10+'0'); sendchar(longitude_Degree%10+'0'); sendchar('.'); sendchar(longitude_Cent/10+'0'); sendchar(longitude_Cent%10+'0'); sendchar(longitude_Second/100+'0'); sendchar(longitude_Second%100/10+'0'); sendchar(longitude_Second%10+'0'); sendchar('#'); sendchar('('); sendchar(latitude_Degree/100+'0'); sendchar(latitude_Degree%100/10+'0'); sendchar(latitude_Degree%10+'0'); sendchar('.'); sendchar(latitude_Cent/10+'0'); sendchar(latitude_Cent%10+'0'); sendchar(latitude_Second/100+'0'); sendchar(latitude_Second%100/10+'0'); sendchar(latitude_Second%10+'0'); sendchar(')'); sendchar('<'); if(speed/100! =0) sendchar(speed/100+'0'); sendchar(speed%100/10+'0'); sendchar(speed%10+'0'); sendchar('>'); sendchar('%'); sendchar(direction/100+'0'); sendchar(direction%100/10+'0'); sendchar(direction%10+'0'); sendchar('&'); } voidstart_GSM() { ruanqi=0; delayms(500); ruanqi=1; delayms(500); } voidshining(ucharn) { uchari; for(i=0;i {_pa3=0;delayms(100); _pa3=1;delayms(100); } } voidsendshuju() { send_AT_CMGSS();//发送短信号码 delayms(1000);//延时,TC35会返回一个">"符号 send_shuju1();//发送数据 sendchar(0x0D);//回车指令 sendchar(0x0A);//换行指令 delayms(20); sendchar(0x1A);//发送结束标志 shining(3); } voidsendshuju2() { send_AT_CMGSS1();//发送短信号码 delayms(1000);//延时,TC35会返回一个">"符号 send_shuju1();//发送数据 sendchar('h'); sendchar('e'); sendchar('l'); sendchar('p'); sendchar(0x0D);//回车指令 sendchar(0x0A);//换行指令 delayms(20); sendchar(0x1A);//发送结束标志 shining(3); } voidGSM_INIT(void)//初始化TC35模块 { unsignedinti; //for(i=10;i>0;i--) //DataSbuf[i]=0; send_AT(); delayms(1000); shining(4); } ucharGetComma(ucharnum,char*str) { uchari,j=0; intlen=0; while(str[len]! ='\0') len++; for(i=0;i { if(str[i]==',') j++; if(j==num) returni+1; } return0; } voidget_num(uinta) { uchari,j,k; i=GetComma(a,rev_buf); j=GetComma(a+1,rev_buf); k=j-i-1; for(j=0;j { buf1[j]=rev_buf[i]; i++; } } intGPS_RMC_Parse() { ucharch,status; ch=rev_buf[5]; status=rev_buf[GetComma(2,rev_buf)]; if(ch=='C') { if(status=='A') { NS=rev_buf[GetComma(4,rev_buf)]; EW=rev_buf[GetComma(6,rev_buf)]; return1; } } return0; } voidInt_To_Str(intx,char*Str) { intt; char*Ptr,Buf[5]; inti=0; Ptr=Str; if(x<10)//当整数小于10时,转化为"0x"的格式 { *Ptr++='0'; *Ptr++=x+0x30; } else { while(x>0) { t=x%10; x=x/10; Buf[i++]=t+0x30;//通过计算把数字转化成ASCII码形式 } i--; for(;i>=0;i--)//将得到的字符串倒序 { *(Ptr++)=Buf[i]; } } *Ptr='\0'; } voiddisplay() { uchari,j,k,n,cent_flag; intspeed_tmp,direction_tmp,cent_tmp; longintcent; //floatspeed_tmp1; cent=0; cent_tmp=0; temp1=0; if(GPS_RMC_Parse()) { cent_flag=0; get_num(5);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 倒车 雷达 设计 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)