找回密码
 注册
1月份电巢直播计划
查看: 146|回复: 4

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

[复制链接]

该用户从未签到

发表于 2022-1-14 14:33 | 显示全部楼层 |阅读模式

EDA365欢迎您登录!

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

x
没有好好学习,所以很多地方都不懂,过来请教一下。有没有大佬愿意提供一下思路,意见,万分感谢!控制板是SAB80c537,存储芯片M27C512。目的是能通过串口通信在电脑上检测一块控制板有没有故障,顺便采集电压并显示大小。  W0 j3 w/ U- @+ B/ {; R! Q
控制板有电压输出和采集,但是采集口较少,需要38译码器绘制PCB但是不太懂(电压采集 电压量的大小如何检测,是在要设计的PCB板上加一些东西嘛?)
  W, A6 _5 T4 {) j8 d" _
; f7 n( z2 K! c6 G" j串口调试方面,是不是只要能够实现通讯这个功能就可以,对程序有没有要求, T) U9 r, r9 c0 e; ]2 d: j
如果我要对采集的IO数据编辑处理,设置面板那种电脑上按键控制后面直接显示某个电压值难度高嘛?是在绘制PCB的时候通过硬件电路就能直接处理,还是在采集完信号之后通过烧录的程序处理?4 m! f& d& u# }! ~

, h" E2 {: Q7 K7 K附上目前的单片机程序:0 z- A+ T4 t) `, M. e) M
串口的:#include "reg52.h" //包函8051 内部资源的定义
. C/ `& B1 D% w; X: T0 N! r" runsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容) _4 [: n' Y( Q* U
sbit gewei=P2^4; //个位选通定义
: y) x3 ]% {9 V; T2 _sbit shiwei=P2^5; //十位选通定义
9 J6 D1 O( o/ f" z5 I' S) zsbit baiwei=P2^6; //百位选通定义' {; V$ d  Q8 W3 C- O4 [1 g
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; //1~10/ y" V, L: v! M, E, O( k8 K4 _2 H) F) e
void Delay(unsigned int tc) //延时程序
: [& G: H5 ]: |- i- }, ~* Y{
( n: E+ L' K- z# `* Iwhile( tc != 0 )
/ B5 z2 {3 G) |/ \. ^{unsigned int i;
) L$ h' e4 w* H5 r5 W5 w* L/ Zfor(i=0; i<100; i++);
9 P$ Z! d+ O; _- ^5 X9 ]; ^tc--;}5 j6 i6 P2 u% T- ~6 v
}- a% o2 q* `* C# ]7 ]# l* o
void LED() //LED显示接收到的数据(十进制)
, T. m4 p  p. O+ H" z& l) E6 E{5 D+ o4 `; O- g. m1 k: r. q
gewei=0; P0=table[dat%10]; Delay(10); gewei=1;
9 w( M# h3 M! y" I: |8 ^shiwei=0; P0=table[dat/10]; Delay(10); shiwei=1;) t: m/ ]9 Q, n; ?
baiwei=0; P0=table[dat/100]; Delay(10); baiwei=1;) J: f/ j3 K- |! Y; w# b
}
' }0 R3 L- W9 s& w% J///////功能:串口初始化,波特率9600,方式1/////////( J; ~; n7 n% P7 C2 `
void Init_Com(void)+ N# I8 m5 h( d& E/ I
{
4 |9 k4 m, r$ jTMOD = 0x20;
* n3 M1 l2 e$ D4 h  iPCON = 0x00;0 H( B5 s5 X% f; d4 o
SCON = 0x50;
% T+ B# R- A. E0 E* ~  q4 W& ATH1 = 0xFd;1 D) Q& m  O+ i/ P- X$ P( n; b
TL1 = 0xFd;
; q$ |3 F6 Q: x- QTR1 = 1;! x# U4 ^' x& J. t: K; {
}
$ y) t' f! f9 q* g  R/////主程序功能:实现接收数据并把接收到的数据原样发送回去///////
* D' P5 n2 y4 ?, [void main()
/ z' g$ W4 z4 ~- M, Y3 M8 L. a# A{
% v9 o, y, h; mInit_Com();//串口初始化
* ]8 [( I0 K6 `5 nwhile(1)
! @- X! |9 P) Q, H: G% E# d{                     
0 C& O7 D$ l: p' @4 t. A9 m# V& b! C: kif ( RI ) //扫描判断是否接收到数据,4 r9 P7 q# ]- u0 N$ p
{7 j" F' q$ G5 k
dat = SBUF; //接收数据SBUF赋与dat
1 w, c! ?* ~# D+ QRI=0; //RI 清零。
3 M! y, h, V2 X" H; Q: ASBUF = dat; //在原样把数据发送回去(接收数据为发送数据的ASCII码,如发送q显示为113)3 E/ J: s4 @7 Y- n" Q
}
3 b2 t$ m% P6 L0 L' D3 |LED(); //显示接收到的数据
4 W3 `9 E+ K6 p9 |}; o9 r/ E# w7 R( |, N. a
}
* B* i) ?4 H& c9 G1 f4 Z
! |  T( A! ?7 F* y+ A
, `6 t% _% P2 o0 B, G& z

该用户从未签到

发表于 2022-1-14 16:35 | 显示全部楼层

; ~8 _$ Q& U  ^AD电压采集:电阻分压,然后通过IO口测量,按分压比例算出实际电压值,发到屏幕显示+ O+ _* f' e& u1 b4 b( A" G

该用户从未签到

发表于 2022-1-14 16:52 | 显示全部楼层
与硬件有关,不是一时半会可以说清楚的。需要面对面解决。, t. |* F% K, Z) J" p  E$ a
  • TA的每日心情
    奋斗
    2022-1-23 15:20
  • 签到天数: 322 天

    [LV.8]以坛为家I

    发表于 2022-1-16 20:20 | 显示全部楼层
    看看大佬们怎么说

    该用户从未签到

    发表于 2022-1-17 09:32 | 显示全部楼层
    我的理解是需要设计一个测试板,电脑可以通过该测试板与控制板通讯,另外测试板可以检测控制板的电压并显示。/ u" X. Y4 X& `
    这样的话测试板就是两个功能,一个串口通讯转接电路,就是把控制板上的串口电平转换成和电脑串口一致的(电脑一般是RS232);另一个就是检测控制板的输出电压,这个的话前面有人说了,电阻分压之后再ADC检测换算、显示就可以了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    EDA365公众号

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

    GMT+8, 2022-1-24 08:58 , Processed in 0.062500 second(s), 22 queries , Gzip On.

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

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

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