胎压监测,利用了单片机串口传输数据,也可以只用一个蓝牙模块,通过发送端的单片机,连接蓝牙模块,然后手机连接蓝牙,并且下载一个蓝牙串口助手,就可以实现手机与单片机通讯了,还可以通过接受数据来实现各种指令,再进一步就可以单独写一个APP来与单片机通讯了,不过我暂时还不会写APP,希望能有高手写这么个APP来共享一下
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
胎压监测接收端单片机源程序如下(发送端程序在附件中):
- #include <reg52.h>
- #include <intrins.h>
- #include <1602.h>
- typedef unsigned int u16; //对数据类型进行声明定义
- typedef unsigned char u8;
- u8 y,changdu=0;
- unsigned char x[3];
- void delayms(unsigned char xms)
- {
- unsigned char i,j;
- for(j=xms;j>0;j--)
- for(i=114;i>0;i--);
- }
- void init()
- {
- SCON=0X50; //设置为工作方式1
- TMOD=0X20; //设置计数器工作方式2
- PCON=0X80; //波特率加倍
- TH1=0XF4; //计数器初始值设置,注意波特率是4800的
- TL1=0XF4;
- ES=1; //打开接收中断
- EA=1; //打开总中断
- TR1=1; //打开计数器
- }
- void Usart() interrupt 4
- {
-
- x[changdu]=SBUF;//出去接收到的数据
- if(RI)
- {
- changdu++;
- RI = 0;//清除接收中断标志位
- }
- }
- void main()
- {
- init();
- LCD_init();
- while(1)
- {
- if(changdu>3)
- {
- LCD_disp_char(0,1,num[x[0]]);
- LCD_disp_char(1,1,num[x[1]]);
- LCD_disp_char(2,1,num[x[2]]);
- LCD_disp_char(3,1,num[x[3]]);
- delayms(1000);
- // LCD_disp_char(0,2,num[y/1000]);
- // LCD_disp_char(1,2,num[y/100%10]);
- // LCD_disp_char(2,2,num[y%100/10]);
- // LCD_disp_char(3,2,num[y%10]);
- changdu=0;
- }
- }
- }
复制代码
所有资料51hei提供下载:
胎压监测串口传输.zip
(92.75 KB, 下载次数: 105)
|