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

关于通过RS232串口通信&采集信号检测电压的硬件软件的求助

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
没有好好学习,所以很多地方都不懂,过来请教一下。有没有大佬愿意提供一下思路,意见,万分感谢!控制板是SAB80c537,存储芯片M27C512。目的是能通过串口通信在电脑上检测一块控制板有没有故障,顺便采集电压并显示大小。5 x! |# ^, f8 @) r2 R) |
控制板有电压输出和采集,但是采集口较少,需要38译码器绘制PCB但是不太懂(电压采集 电压量的大小如何检测,是在要设计的PCB板上加一些东西嘛?)
2 V9 ^  |- ~* M5 Y$ L
" ?7 v. l( w4 I: X+ ^串口调试方面,是不是只要能够实现通讯这个功能就可以,对程序有没有要求7 I, g" m1 f% Y; S, k7 l( F  m
如果我要对采集的IO数据编辑处理,设置面板那种电脑上按键控制后面直接显示某个电压值难度高嘛?是在绘制PCB的时候通过硬件电路就能直接处理,还是在采集完信号之后通过烧录的程序处理?
8 V6 o1 |; i0 L2 o" C3 H: R4 v" H( o- ~* }- V+ @- i
附上目前的单片机程序:" i7 d& H; \; h1 ~
串口的:#include "reg52.h" //包函8051 内部资源的定义9 g0 K# @) c( {3 U+ T; c
unsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
" Y& m$ K$ Z% U- O7 U( @sbit gewei=P2^4; //个位选通定义( o: A4 B. k( c- _
sbit shiwei=P2^5; //十位选通定义
  {' b% z+ B# X% Dsbit baiwei=P2^6; //百位选通定义
# Q0 W$ e" B' U1 E7 X  x2 f3 runsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; //1~10. ^8 X; Q  z7 B* M# c; W' b
void Delay(unsigned int tc) //延时程序
, b1 @+ V6 J- b0 v9 F{: ?! K( K5 F- C8 E' _
while( tc != 0 )
2 M. D  k( |2 L* C5 s: u{unsigned int i;9 v$ R( s3 q" M5 C
for(i=0; i<100; i++);
* Y& t& ?5 D0 v; x2 i# N# M+ K& Ztc--;}
: A3 M- Z. e! x0 y. P}
: |! j8 _( B9 w, y) J; j' Wvoid LED() //LED显示接收到的数据(十进制)
! y! _$ C# s/ `! C$ q{
& w( l6 n" o) m# |3 ^gewei=0; P0=table[dat%10]; Delay(10); gewei=1;
+ s! [* }( S) Y: m  Zshiwei=0; P0=table[dat/10]; Delay(10); shiwei=1;
8 C6 z% V7 ^( Y3 Obaiwei=0; P0=table[dat/100]; Delay(10); baiwei=1;% S. v9 Y; W3 f1 p" J
}
% G4 E5 b' o; P. Q6 m8 L1 D" y///////功能:串口初始化,波特率9600,方式1/////////, Z+ ^2 h+ `/ T3 D* B
void Init_Com(void)$ G5 ?' m( Q4 c* x
{) U, t1 v0 D( q& t- y7 S' b4 c
TMOD = 0x20;! ^" b0 h3 y* z, ?9 u' y
PCON = 0x00;
7 m$ v, _: ~, o3 k; s5 ]SCON = 0x50;, |" D) M) I  H
TH1 = 0xFd;4 I6 Z  u. Y4 t3 r! d( E: r
TL1 = 0xFd;
4 G: K# P1 c6 X  STR1 = 1;
: S$ W  l' \1 E}
7 L# M3 Y4 Q  X/////主程序功能:实现接收数据并把接收到的数据原样发送回去///////9 E) F$ ~+ B6 k/ q% C& O
void main()
0 R3 Q" x* z5 v  w, i; V& o0 n/ \{
, u4 e  w3 t0 M0 s  t+ ?: Z$ |Init_Com();//串口初始化' p' y' B7 G7 H# B' w! s1 A
while(1)
) Z- R6 e( P0 Y4 n7 I' C{                     
/ Z, u+ Y! B% Uif ( RI ) //扫描判断是否接收到数据,7 ?. M. H1 |# m4 k
{
% W8 b* \9 H: k& k+ ddat = SBUF; //接收数据SBUF赋与dat
% [& B9 G/ M! T& U- f+ rRI=0; //RI 清零。
) l  l2 ~* i8 Z: w  W8 OSBUF = dat; //在原样把数据发送回去(接收数据为发送数据的ASCII码,如发送q显示为113)) i) n$ u5 \1 t& ]3 {
}
( m+ }1 ?. o0 A. V# xLED(); //显示接收到的数据
; ]6 w$ Y1 G, i- j* A/ o  ]# T4 W}
- ~2 N+ R# Q- P1 @  D3 J" r}
# t6 U: E5 k  g9 v0 I4 {1 o- S7 d6 ~$ u! ~# [  D( \" m$ m, w6 |
7 q/ [$ k/ u0 _" ?$ U+ v5 J( n

该用户从未签到

2#
发表于 2022-1-14 16:35 | 只看该作者

& ?3 m9 a# T' R- _AD电压采集:电阻分压,然后通过IO口测量,按分压比例算出实际电压值,发到屏幕显示" P9 H% {' T: i2 \+ F* y

该用户从未签到

3#
发表于 2022-1-14 16:52 | 只看该作者
与硬件有关,不是一时半会可以说清楚的。需要面对面解决。
+ W; m' K6 T9 t% j7 z
  • TA的每日心情
    奋斗
    2025-1-1 15:26
  • 签到天数: 584 天

    [LV.9]以坛为家II

    4#
    发表于 2022-1-16 20:20 | 只看该作者
    看看大佬们怎么说

    该用户从未签到

    5#
    发表于 2022-1-17 09:32 | 只看该作者
    我的理解是需要设计一个测试板,电脑可以通过该测试板与控制板通讯,另外测试板可以检测控制板的电压并显示。
    / d3 |- S0 i8 R; |: b5 k. d- D这样的话测试板就是两个功能,一个串口通讯转接电路,就是把控制板上的串口电平转换成和电脑串口一致的(电脑一般是RS232);另一个就是检测控制板的输出电压,这个的话前面有人说了,电阻分压之后再ADC检测换算、显示就可以了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-30 17:36 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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