TA的每日心情 | 开心 2019-11-20 15:00 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
胎压监测单片机串口传输的Proteus仿真与源程序 胎压监测,利用了单片机串口传输数据,也可以只用一个蓝牙模块,通过发送端的单片机,连接蓝牙模块,然后手机连接蓝牙,并且下载一个蓝牙串口助手,就可以实现手机与单片机通讯了,还可以通过接受数据来实现各种指令,再进一步就可以单独写一个APP来与单片机通讯了
: F$ G5 d9 q2 n" @4 K" c+ x9 [! {* n9 Z2 I4 W6 `
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
3 F/ j% G4 S- y9 i, d# H# B7 x
/ h ]% M5 T, v% c8 N" L4 Y
5 e, e5 V, O/ H
. E: D7 b; p8 L) W8 o3 k+ A! {% W
0 c5 N4 k/ p+ | {
2 {9 J% U8 u. k0 A
# ^+ P7 M& y( s8 ]' m V& n; H* q9 U1 [) |% r0 n' j' d
胎压监测接收端单片机源程序如下(发送端程序在附件中): | #include <reg52.h>
0 i, L. L7 t- s* u4 B0 S3 ]! u6 a; w! N#include <intrins.h>0 A! Y% B. X6 A4 f
#include <1602.h> `3 O# n q( R$ {+ R; T
typedef unsigned int u16; //对数据类型进行声明定义
3 g1 O1 [8 U1 Ytypedef unsigned char u8;( l/ x4 [# s7 I* M; k
u8 y,changdu=0;$ y1 G+ B; U& Z. e
unsigned char x[3];. ]. E( B7 }) e) o8 `$ s4 q1 I2 N
void delayms(unsigned char xms)5 T' c! H- t; r" c. }: B) Q4 b
{
! [. {3 O2 `9 }unsigned char i,j;' a: L% P$ z1 H0 b: L3 \# g
for(j=xms;j>0;j--)
5 o- J" u3 `9 `5 k3 b* z7 }6 z) S6 dfor(i=114;i>0;i--);9 X' }' F2 @( {" m. q7 C
}9 a E1 R! x! O v
void init()2 L7 @/ r5 D* V# n
{
+ i4 P7 z+ U6 z! T# r SCON=0X50; //设置为工作方式10 _( E0 g% Z3 O4 j& |/ {+ o8 h( ^
TMOD=0X20; //设置计数器工作方式2
9 _$ W- }+ v& ] PCON=0X80; //波特率加倍) `9 f. `% R- O' P: p
TH1=0XF4; //计数器初始值设置,注意波特率是4800的: g* ?/ z0 x: w3 ^' x
TL1=0XF4;
/ q' c: c5 o) O: t. b9 N* {! z ES=1; //打开接收中断
! V! \- L3 z0 g3 P3 L. w. u EA=1; //打开总中断
) u$ ~; ]- t7 Z TR1=1; //打开计数器
- \ ]' G6 Z! X}7 `$ B& y( h6 D& r
void Usart() interrupt 4
0 R8 r( j8 O5 D: m( A8 Q{
$ d& C2 e) r0 |0 i
* j! ]* _4 Q) @: D$ A6 S7 V x[changdu]=SBUF;//出去接收到的数据
: H) E2 @) ]" i6 w2 U% Z if(RI)( Y/ F# `6 F5 x' N$ p+ R; z
{7 \3 [2 P7 ^0 V1 r5 l/ z0 p
changdu++;( S$ ?+ a4 K V9 f, e
RI = 0;//清除接收中断标志位! E A G4 h7 g6 A
}( v8 ]2 |3 f# T
}0 a' d7 U& w- X- b4 g' I/ k
void main()
, q5 W& ~( }) ]. M3 ~( i. I{
$ v0 d0 g7 D9 X/ O% a init();
7 _3 c0 g4 Q) U LCD_init();
; x" u9 A# A: d. e [0 T& x while(1)
' m& n7 X. Q/ j! v6 @ {
U7 D% y" p& o4 p$ ] if(changdu>3)
A/ o' }9 I7 p4 E& c& ?8 }$ b {
* V+ ^: q; f. ^( o LCD_disp_char(0,1,num[x[0]]);. o# P. H y! x8 ^' ]9 X" W6 l
LCD_disp_char(1,1,num[x[1]]);
3 ]+ u3 v! i( b LCD_disp_char(2,1,num[x[2]]);0 G! B- P- G0 B3 r
LCD_disp_char(3,1,num[x[3]]);# j: R$ A# s( V& f
delayms(1000);
" }3 \/ ^5 F7 ?- b% A0 r+ Y// LCD_disp_char(0,2,num[y/1000]);% i: O' E, y; n) V
// LCD_disp_char(1,2,num[y/100%10]);
/ l0 E: C: \3 V& y. ?1 G! q: g0 }& v// LCD_disp_char(2,2,num[y%100/10]);0 a) O( C8 D7 E! N3 @
// LCD_disp_char(3,2,num[y%10]);
4 k9 |. r8 D5 T% |- ?6 f changdu=0;
* ]9 ^5 S5 S7 A, z) F+ M }
% p. K) M* ]/ x2 H9 A7 O( G }
9 x5 `0 ]1 d. B# L, }7 I}1 y: f% O X1 T5 e; A8 u3 H
' r4 X2 \8 {1 i2 ~+ ?; m% l
0 Z3 e; l R- [8 U
|
|