TA的每日心情 | 开心 2019-11-20 15:00 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
胎压监测单片机串口传输的Proteus仿真与源程序 胎压监测,利用了单片机串口传输数据,也可以只用一个蓝牙模块,通过发送端的单片机,连接蓝牙模块,然后手机连接蓝牙,并且下载一个蓝牙串口助手,就可以实现手机与单片机通讯了,还可以通过接受数据来实现各种指令,再进一步就可以单独写一个APP来与单片机通讯了
* w) C$ [$ h( W! @- a, i( ~+ k+ B n0 v* W) ^4 b% ^
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)* o0 n! p4 }# T! y& i
9 k( r, p4 n( m* A- Q3 g9 ~ ( a. R G' s. I
+ G% |. ~* Z2 N' @) D$ f8 I
8 X g( w: ~2 b
+ n& l. D. N+ y% [/ z 3 w9 |) ]7 f$ Y4 J% E& J
! D b3 y+ u1 Y+ n
胎压监测接收端单片机源程序如下(发送端程序在附件中): | #include <reg52.h>
. ?: I& i p Z3 R E#include <intrins.h>
; \# `: K4 Y' ?#include <1602.h>
$ {# ^) g* o' M) ]7 R5 ]typedef unsigned int u16; //对数据类型进行声明定义% K4 X) `4 E/ J2 m8 r* o' a
typedef unsigned char u8;
- ]2 T3 H# C( ?6 ^1 f9 Lu8 y,changdu=0;( d* ]! l8 \! Z! L3 d0 Z
unsigned char x[3];
4 k# r' l3 }, K& g/ U6 E; Lvoid delayms(unsigned char xms)
0 ~% y( S, \) F/ }- p; L1 r, C{
& Y( l8 J1 a8 o- E, M" r. Aunsigned char i,j; l) k3 Y, c# L7 ~8 y# I
for(j=xms;j>0;j--) ' H8 _* j, P$ |: t7 g
for(i=114;i>0;i--);
3 j9 L1 N; k4 ^6 g4 a$ i) u b}; B, v; Y* `6 |- D8 O: L
void init()
# A* J5 Y- v/ q4 |$ x: ]{
! h0 v# q. a' \2 G/ {& J. ? SCON=0X50; //设置为工作方式12 v. A9 \% A- }7 ^5 w
TMOD=0X20; //设置计数器工作方式2$ b" D$ B8 R) q9 V+ Y+ L6 K. E6 h
PCON=0X80; //波特率加倍1 z7 A% v; j+ {" r
TH1=0XF4; //计数器初始值设置,注意波特率是4800的" j9 v* g3 H* ~# T5 K1 o7 @
TL1=0XF4;
7 ~4 s; r$ {, w: e/ a; A ES=1; //打开接收中断
0 l7 q" Z. z- m1 U! U B& U6 ]: j EA=1; //打开总中断8 A7 e7 ^& v" _" ^7 w6 w" w
TR1=1; //打开计数器+ T: f# }7 ?3 S2 S$ a% }
}
5 r. a% X9 U% x, O/ Y1 F# \void Usart() interrupt 4
% Y" k0 h2 b# {, k9 P{
; E( g% W7 H+ V7 ^8 F& Y! _) V( x
2 o; }/ c$ l) `" p; U x[changdu]=SBUF;//出去接收到的数据
8 \9 S: T* [0 P" }! K if(RI)
' O0 C1 K I1 Q2 _9 ~# J5 l f {
: i5 s4 x. r) Q$ `4 a) ] changdu++;! V% `8 S1 U, X+ d, x' M. f: g
RI = 0;//清除接收中断标志位
$ }- I2 G5 B2 ?8 S1 Z7 ` }
+ h/ \; `, U* }}6 k) \7 ^* |5 J- P1 L/ `
void main()% q. _; }& b+ t' o
{$ L# o6 N$ `1 y* I# H& D! P
init();1 m. p( E4 I; U
LCD_init();& {6 c+ d) c7 J5 _! u% | _( v# k
while(1)+ S. W" ?' g; z$ z. e" k/ I% y0 @
{
" h: d/ t0 g |, K if(changdu>3)
3 E0 [! v+ N8 ?7 M" b {: H- ]3 G( b& b
LCD_disp_char(0,1,num[x[0]]);* Q& |: M0 _& ~# a- B' w! g
LCD_disp_char(1,1,num[x[1]]);- Z3 Z7 E7 P1 b' z' F6 k P: |
LCD_disp_char(2,1,num[x[2]]);
' m7 Q8 g% O$ m0 ^0 w LCD_disp_char(3,1,num[x[3]]);3 R3 s' L( f7 |9 Y+ N4 t+ {. _# Z
delayms(1000);/ |5 K7 B% N8 N# J& E
// LCD_disp_char(0,2,num[y/1000]);9 L9 h, X+ C1 v4 Q
// LCD_disp_char(1,2,num[y/100%10]);
5 o E6 u% B7 C/ ]2 z4 ?8 ]4 T) Y: `// LCD_disp_char(2,2,num[y%100/10]);$ P- D9 \ V3 k( Z. [
// LCD_disp_char(3,2,num[y%10]); L8 Q4 ?3 k8 l4 u! A) J, \, T G
changdu=0;% U `" U1 D5 q" ]$ P
}
# p% f/ J2 p" M$ E }+ ]) [; v* z+ R3 _7 s+ H1 n* `9 a
}
8 b1 t/ f o8 {" y/ \1 ~- O
6 Y- @9 S, R. N }- k5 |; Z3 ?, k+ |2 C: @- C
|
|