TA的每日心情 | 开心 2019-11-20 15:00 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
胎压监测单片机串口传输的Proteus仿真与源程序 胎压监测,利用了单片机串口传输数据,也可以只用一个蓝牙模块,通过发送端的单片机,连接蓝牙模块,然后手机连接蓝牙,并且下载一个蓝牙串口助手,就可以实现手机与单片机通讯了,还可以通过接受数据来实现各种指令,再进一步就可以单独写一个APP来与单片机通讯了
, E m6 l( ~" g9 p, @$ @) a0 I1 _0 c/ n" M) m) N( E, Z
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)& V5 M9 S6 L. f* |" E8 Z
1 v* W* M) T$ ]' o
; E% M. T1 m r j' z
3 s0 o$ s" t4 t) M& V h
/ _6 e" K; y) e: F$ H" V
8 a2 x$ J% S& c ^+ E/ R( B
; ^+ f( x% i# ~' U' X
8 ]2 W5 {* B: [% i- B- X/ M3 _胎压监测接收端单片机源程序如下(发送端程序在附件中): | #include <reg52.h>8 c) {! j* L6 D7 o
#include <intrins.h>/ O% i# Q; V# Y* X8 m
#include <1602.h>
3 K* g, ~: h/ p* s9 C9 I7 Ctypedef unsigned int u16; //对数据类型进行声明定义
& [% v8 x' |! B' m" m) b" Otypedef unsigned char u8;
! T) g# r! b$ K0 c& Ju8 y,changdu=0;1 N5 O2 Y. [; y% ^4 J
unsigned char x[3];9 H0 @8 z' E. w0 s1 p6 r
void delayms(unsigned char xms). d. U7 Q8 T' O+ O
{4 x/ |2 u" J) }7 X6 {
unsigned char i,j;) z8 @& B; _. F: f3 Q, ^! g9 ^/ T
for(j=xms;j>0;j--)
' N3 ?: k, U* H7 ]9 f E) Wfor(i=114;i>0;i--);3 L8 i: i6 x" G7 U) `* E1 m& Q
}6 z! K# e5 q! \. X# i
void init()/ C9 |& L& R/ q0 c! Q* t0 L2 P
{
& }: [7 Q7 O& L2 [ SCON=0X50; //设置为工作方式17 b+ v [, f$ G0 H, i1 J/ u
TMOD=0X20; //设置计数器工作方式2- q9 \9 z; Y0 D6 K0 W' ^
PCON=0X80; //波特率加倍: I& a' }7 O; T. S! S' d0 G3 \
TH1=0XF4; //计数器初始值设置,注意波特率是4800的
. n* N' {4 h* K, f b8 r- X TL1=0XF4;. \7 Z$ E F% c
ES=1; //打开接收中断6 Z; C7 O& v, s
EA=1; //打开总中断% D: e" x/ P% h M$ h' N ]% z
TR1=1; //打开计数器
( Y( z1 |+ K: D; p}
% G* m6 W/ e" V* X( \void Usart() interrupt 40 Y6 t6 ^$ P1 K9 L
{: T# V# d' s8 X8 F( H2 d
3 s |, C" f _' H8 k
x[changdu]=SBUF;//出去接收到的数据
" X7 u2 n8 c- ~4 x if(RI)2 z5 |' Z8 ]& E( k4 ~
{
# v9 a0 p' C5 @ changdu++;: Y9 z& @7 {. f+ f4 w* W# s
RI = 0;//清除接收中断标志位: D p8 D, v5 c
}5 U, o5 p9 \- Z
}
8 j9 K- R, u: ^void main()
2 s% K S, B2 l+ W/ c9 q! Y{
9 B$ h+ z# ]. I* f init();4 R9 i. J6 z9 |' q U
LCD_init();
5 k8 F, L7 }6 o+ d) l1 N while(1)+ `/ b9 ?% b: v) Y; a, w' Q
{
# |" h" n! v, D2 Q if(changdu>3)1 w2 D: \, k0 w( I8 j2 R% ^5 A
{
1 I$ {* H* b- T LCD_disp_char(0,1,num[x[0]]);7 ]! _% w* l7 l; u v
LCD_disp_char(1,1,num[x[1]]);
: W P/ K/ i; T X- _ LCD_disp_char(2,1,num[x[2]]);) l# A n" X- d1 n& T! J! O0 v
LCD_disp_char(3,1,num[x[3]]);
7 H3 N; V3 [1 ]0 ?5 N delayms(1000);
! ~! z6 Z5 z6 Z/ f/ b- A// LCD_disp_char(0,2,num[y/1000]);2 c( G" |* t/ u1 B$ h
// LCD_disp_char(1,2,num[y/100%10]);
4 Z }. u+ C) J9 r. X6 y% x$ y// LCD_disp_char(2,2,num[y%100/10]);4 f. s5 d, S! u# K/ W
// LCD_disp_char(3,2,num[y%10]);
" B& S6 e* U( j( E+ u- K changdu=0;& l! A% _, J9 v( O, J5 A& O
}. ]& F+ M0 p0 q* H" J' [! L
}$ X) q; _. y8 b
}
$ D) s1 \: r% T% [$ f c6 t6 m ~6 C1 Q
& b% Z, E% F7 H0 ^" C6 @5 n
|
|