TA的每日心情 | 开心 2019-11-20 15:00 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
胎压监测单片机串口传输的Proteus仿真与源程序 胎压监测,利用了单片机串口传输数据,也可以只用一个蓝牙模块,通过发送端的单片机,连接蓝牙模块,然后手机连接蓝牙,并且下载一个蓝牙串口助手,就可以实现手机与单片机通讯了,还可以通过接受数据来实现各种指令,再进一步就可以单独写一个APP来与单片机通讯了; R/ I9 E8 i" l' y* g/ f7 }
+ I3 j! Q5 R* ^& i t3 V5 F; f6 A
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)) \# y/ W# K1 y: k1 B
4 p% }- T" X1 S( K
2 {7 X/ O$ z0 G1 C, t: h W6 `: {7 c- a
/ W# y" i/ L0 O# \# I
* a: L" L/ a# C/ o
\! D" L) p! l* y# q4 Q) h% @+ P
2 ?) C; P3 m2 ^2 [4 C3 v
胎压监测接收端单片机源程序如下(发送端程序在附件中): | #include <reg52.h>
" K! o1 D1 m" ^4 A- a+ p#include <intrins.h>3 M) f' @, j1 V9 Q. ]5 B! I) D3 _
#include <1602.h>
7 ]) A T8 c& R7 y- b8 m& [+ M0 Jtypedef unsigned int u16; //对数据类型进行声明定义
* _8 x1 \# m0 L7 rtypedef unsigned char u8;- E+ p0 v |& z( z
u8 y,changdu=0;; h! h1 `' G! Z* p: j; c& \- E
unsigned char x[3];- q1 E3 ~8 a: a; `
void delayms(unsigned char xms)
# M" f# ^. V x, m$ H{
) h$ P# V ^9 t! {+ {# g* gunsigned char i,j;: @: ^. y* v( p5 Q
for(j=xms;j>0;j--) . |6 X0 x$ ]3 ~$ y% n8 [; l
for(i=114;i>0;i--);# }% S0 |* k/ l* b3 u5 u6 ?
}* J7 m. n3 g' F7 }/ H7 H
void init()# Y$ I! a& q$ U& S, }
{* {' H. \# o" A* e k
SCON=0X50; //设置为工作方式11 Z. X1 A: X- N" s' d! L
TMOD=0X20; //设置计数器工作方式2$ }/ G" P( ]& Q ?& a" C3 c
PCON=0X80; //波特率加倍
" O5 `4 N5 ~5 z1 Z! y TH1=0XF4; //计数器初始值设置,注意波特率是4800的# Y v3 W- R2 M }, T6 X7 _
TL1=0XF4;
( \9 E0 _) [2 I, F ES=1; //打开接收中断
" ]# q; h. O# ?1 ^2 d EA=1; //打开总中断) ?/ ]* }8 ]7 D+ l, [: @5 _
TR1=1; //打开计数器
) N( W4 _# C) @ U( {2 b; I* o4 ?! `0 a" \}" s% m. R* e, W8 `
void Usart() interrupt 4
; z3 ^% F# J9 i5 K: J0 S{
* f# V& h' [6 ?6 U+ q
. M) \# r6 ?0 k$ q x[changdu]=SBUF;//出去接收到的数据; V$ X2 X. q" @" f6 i
if(RI)- A1 }* _7 e( K3 I6 h7 |9 Y3 ]* @
{
3 m* w5 d$ y8 |/ S8 d changdu++;
* P; L- E/ y7 i$ u0 p RI = 0;//清除接收中断标志位( y2 n: m# D* H- K$ E5 `* B8 t
}; U6 G$ ^7 m% Q) }/ Y# _6 F
}7 y: q- W$ q+ A( N6 C( c6 D4 P7 [# o
void main()0 A/ `5 q; V3 t, k5 j* V* Y3 W ?" W: O
{
5 @( c: d# O& X1 _3 t G# S init();2 N) f, W) @' o: v! P. s( v
LCD_init();9 x0 v- _) J( s4 F% [+ E3 F
while(1)
' x6 c8 |4 C, U1 s6 J6 L {
7 R- r: T5 E | d; N/ W if(changdu>3)+ }' T, Q) U6 t* Z7 K; `
{5 S6 Q# N, b( D* a& ]7 x2 I
LCD_disp_char(0,1,num[x[0]]);
, D& p1 M! u* N1 T- i$ g LCD_disp_char(1,1,num[x[1]]);
6 }" k1 W! D! K% R LCD_disp_char(2,1,num[x[2]]);: L+ i! T4 J! [
LCD_disp_char(3,1,num[x[3]]);
" f& `5 d+ |* l& D delayms(1000);4 P c$ m! j) \0 h' B
// LCD_disp_char(0,2,num[y/1000]);
* P) C9 Y% R6 R+ n8 a# k8 d// LCD_disp_char(1,2,num[y/100%10]);
4 r- I0 \. A' B7 @+ `// LCD_disp_char(2,2,num[y%100/10]);; h/ ]2 f" N. m. J3 g& Q
// LCD_disp_char(3,2,num[y%10]);4 z" B/ x2 ?: s4 V! U; K3 M# k4 v
changdu=0;* [! g8 q! X" t6 ^, K/ L
}5 l+ h$ `$ W0 z$ r
}
+ R Z( U" @, Y1 ^! A}# E6 A8 V4 Y0 h
! p; l0 F, q i$ ]9 F# ?" ^: P6 A( G8 _
|
|