找回密码
 注册
关于网站域名变更的通知
查看: 205|回复: 5
打印 上一主题 下一主题

哪位大神指导一下STC8单片机的485通讯程序?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-15 10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

使用串口3定时器3做波特率发生器写了一个小程序,但是通讯实现不了,求指教

#include "STC81.h"
# m. C  N" [# v% P, j8 X" L! k#include "intrins.h"
/ k& q( X/ ^3 i  ?' S  t( ?#include "485.h"7 Y: [, L7 }( g
#define FOSC   24000000UL, B. p/ N5 o$ j+ p
#define BRT  (65536-FOSC/9600/4)
2 P" }5 j1 `$ [7 J$ C9 ~#define uchar unsigned char
5 }% [7 o2 A& |$ x( p4 n/ \bit busy;
/ i, g0 Z: i. i1 o7 F% cchar wptr;  N8 O; r& Z2 V( G; b
char rptr;! N! [0 ^( d6 E+ s; q
char buffer[16];
# ]1 L3 w+ C. |void Uart3Isr()interrupt 17 using 19 Z6 @0 ?! \8 k1 k. r
{
8 Z- d( s( U% Y9 q9 ] if(S3CON&0x02)4 Q' {, R7 V3 c& o5 t4 D8 L3 Y% W
{
; E- V# V1 A' _2 L5 }- @  S3CON&=~0x02;
6 Q& p" F7 H3 E  busy=0;. E$ x; a8 t9 `
}' {# b3 e4 @0 R4 [% i9 U! x1 ?
if(S3CON&0x01)0 n1 v& R2 K. a( \2 Y
{4 v2 M+ _. e1 o. N
  S3CON&=~0x01;* y+ ?1 q2 o* b6 n  L5 p: R: x6 o* Y
  buffer[wptr++]=S3BUF;
9 [4 m/ @6 w/ Z8 m$ ~  wptr&=0x0f;
' E  t* `2 v" L) B: {$ m        if((buffer[7]==0x00)&&(buffer[8]==0x00))
: B% f5 O5 ?# h  [" G6 _   {
! ^& e$ A- u4 X! C+ O! `$ N   RUN11=RUN21=RUN31=RUN41=0;
; M" D/ j/ {/ I) C8 R        STOP11=STOP21=STOP31=STOP41=0;
/ y" f) |4 ]( j   }4 s1 t; ?6 H/ R. U8 |
}6 l, D' u+ R  D
}: P+ z5 T6 d3 E3 E
void Uart3Init()+ L; H+ t* t4 I" n
{! s, n- U: r+ a" t1 V  o4 f$ A
RE485=0;//RS485设置为接收方向) E9 Z/ A4 O8 }& {& k
S3CON=0x50; 9 t9 y) w; d4 Q; N
T3L=BRT;  g/ e. e+ J/ L" H, w
T3H=BRT>>8;
/ ?1 A7 o. k, U- k+ }! l T4T3M=0x0a;2 p9 ^$ v: p* F% o" U/ a/ R
wptr=0x00;1 |4 k% C# s/ y9 o' ]4 |, U
rptr=0x00;
: d2 o, {/ T! F2 Q8 D' T; p4 Z" | busy=0;; S+ L2 y* z2 Q3 ]7 A  l
}/ o- }9 `% l! U; x- t. w2 W& ^
void Uart3Send(char dat)# i1 D. o8 a8 f2 q( L
{
1 y( b6 B) `+ j; a+ g) D6 g while(busy);$ u& B3 V8 ]$ a1 w# H# |1 F
busy=1;
- R% S8 \6 J( ~3 y S3BUF=dat;9 q% J" N: H/ @* r
}0 ?" ^' p* I( [
void main()
) @- V2 w) Q6 e( t{. S0 h# K; i. B
P_SW2=0x02;& w; H, V9 [* r: }) P! v) }
Uart3Init();5 j9 F" R  z# Z
IE2=0x08;6 c- l# G9 K8 o
EA=1;! Y" t3 w& @$ b! }
while(1)
9 F6 P- u; X/ ^- w7 i7 R+ c {: c# O0 Z- N( ?  V
  if(rptr!=wptr)
. t& x, _2 Y/ \. v6 V, g  {
: g2 ]3 Y& u& u2 q6 H; O, G   Uart3Send(buffer[rptr++]);
" D$ B- n' r$ w! E5 Z9 h& g   rptr&=0x0f;
3 m7 }* Y( r, D* B% c, E' ^) J  }
, }  m0 e1 B; Z! P }1 B% z7 P, X' P. i0 r4 c% a6 v7 t! l
}


, G3 G) l  _$ P, `

该用户从未签到

2#
发表于 2020-5-15 13:16 | 只看该作者
这个感觉有点难

该用户从未签到

4#
发表于 2020-5-15 15:51 | 只看该作者
虽然我也不懂,但是我觉得你应该从器件手册研究
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
    发表于 2020-5-18 20:18 | 只看该作者
    这个程序能用吗
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-3 11:04 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表