TA的每日心情 | 开心 2019-11-20 15:00 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
胎压监测单片机串口传输的Proteus仿真与源程序 胎压监测,利用了单片机串口传输数据,也可以只用一个蓝牙模块,通过发送端的单片机,连接蓝牙模块,然后手机连接蓝牙,并且下载一个蓝牙串口助手,就可以实现手机与单片机通讯了,还可以通过接受数据来实现各种指令,再进一步就可以单独写一个APP来与单片机通讯了8 R$ ]9 c4 V8 W
& I, z- y ^, N8 b5 k3 V2 c+ K
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)" _- p5 z! G- F- D: P
& j5 `$ I6 B0 p2 F+ }' K
2 `! o3 D: R8 k! d/ ^
( M$ A1 D7 f, U; b% `
, X. B8 ?) a3 m" B9 @9 d
( Y1 d+ K, t5 V, Z& x$ R
6 f2 T2 \3 O3 q
/ U* K$ P7 f1 H. T ^胎压监测接收端单片机源程序如下(发送端程序在附件中): | #include <reg52.h>
7 D* k" X' W- t3 W, [7 l#include <intrins.h>, R/ D% R! U6 {/ C) U; S, V
#include <1602.h>" X% r4 ]$ `9 }! k2 b
typedef unsigned int u16; //对数据类型进行声明定义
: k- t0 J4 b d- vtypedef unsigned char u8;
2 h( q/ R" k8 a# Q6 B" mu8 y,changdu=0;
2 _1 ]1 N' |4 O q' ]unsigned char x[3];
4 p6 Z0 X N" ovoid delayms(unsigned char xms)
# J! ]5 e' O4 m D# z{
# z& ]! J8 \3 e# `6 m6 I; n2 Vunsigned char i,j;
3 p9 _9 l4 m* r8 V8 ffor(j=xms;j>0;j--)
3 L! M# v6 m2 H% d! W& I5 o9 vfor(i=114;i>0;i--);
- _6 Y6 s, g2 H; g# N3 R- h ~}
0 L. t- p1 I! Ovoid init()
1 ?6 S5 ^% ^# l. N* s{
* I! z7 P; d# P, T# H0 u SCON=0X50; //设置为工作方式1
7 j9 x3 k. l w! e9 w) |1 k! D TMOD=0X20; //设置计数器工作方式2
6 h- f" U/ f* O8 F; v ]; _ PCON=0X80; //波特率加倍
/ L3 h9 x8 W. J$ ]/ g TH1=0XF4; //计数器初始值设置,注意波特率是4800的
* N6 s: W$ n" W% {' q TL1=0XF4;: z* `/ T. M* t2 }' t3 e
ES=1; //打开接收中断* P( _; R: E% N9 r2 l
EA=1; //打开总中断
) o8 l: o# _+ A [6 x. s TR1=1; //打开计数器8 E1 A4 k9 N6 C5 X' x3 T
}" _, ?! i, [6 A! ]; I
void Usart() interrupt 48 r* B# T! b$ _0 ]9 Y4 @( e6 `
{
( V" \) |$ H# [
}3 N+ W% F9 p- A( ] x[changdu]=SBUF;//出去接收到的数据
% R9 ?& I3 Y# P if(RI)% [1 U" Y/ v9 _3 D5 m
{% H7 F v' q# d; k$ J
changdu++;% L2 q: z7 Y# Q* q0 H: }1 A4 {. A! A5 x
RI = 0;//清除接收中断标志位
7 g1 S3 H3 I" X+ X6 `# M! g2 t }) I- r! c! J& O" ^$ V9 V0 V+ K/ \
}+ B& o9 s6 f! \' k( @3 v9 ]
void main()% b, O. f7 E& G8 T
{6 w' T6 N, j# p; `! ~8 A
init();# L5 e% g* ~9 b
LCD_init();! w' ]( c' m) W
while(1)
1 c2 ^2 A; l5 _$ F {
! x# ?' `' ^1 [+ q2 f3 Y8 z if(changdu>3)
6 p3 z2 b( `6 C; ~ {3 n: z; z! b0 D9 a" X) ^# y% h
LCD_disp_char(0,1,num[x[0]]);
& M9 v1 ]" m/ ~$ g LCD_disp_char(1,1,num[x[1]]);
. Q% ^# \0 j; C. Z9 K LCD_disp_char(2,1,num[x[2]]);0 w! h9 O4 A+ t5 R' V4 W! q7 d+ |( ~- X* |' [
LCD_disp_char(3,1,num[x[3]]);
5 S0 ?. {/ e0 ~% p4 r% x delayms(1000);- p) z9 k* e5 z7 y7 e
// LCD_disp_char(0,2,num[y/1000]);
! S* {( q4 b% p% g5 n// LCD_disp_char(1,2,num[y/100%10]);+ ]( i% r$ a: x4 k- P% h( k
// LCD_disp_char(2,2,num[y%100/10]);2 S2 O. T: [) \( u
// LCD_disp_char(3,2,num[y%10]);
- }; P& L2 Y e changdu=0;' e5 k$ j4 `1 h! f! [+ o9 P [
}# a8 ]1 B8 Z. z
} T1 G# L! O3 B* F
}& w; H! m# r; x$ a* F& @
8 O1 L* `1 \ U7 v% Z7 k0 p( S0 l C9 G* f& U9 [3 ?
|
|