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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
没有好好学习,所以很多地方都不懂,过来请教一下。有没有大佬愿意提供一下思路,意见,万分感谢!控制板是SAB80c537,存储芯片M27C512。目的是能通过串口通信在电脑上检测一块控制板有没有故障,顺便采集电压并显示大小。
9 J  V$ e, j, ^6 N; g8 O- ~7 ]; `控制板有电压输出和采集,但是采集口较少,需要38译码器绘制PCB但是不太懂(电压采集 电压量的大小如何检测,是在要设计的PCB板上加一些东西嘛?)' T2 E* |" m( r& O" F
" I& k, A( O/ {: u0 X7 m
串口调试方面,是不是只要能够实现通讯这个功能就可以,对程序有没有要求
( h6 `3 C7 w/ @! O1 \如果我要对采集的IO数据编辑处理,设置面板那种电脑上按键控制后面直接显示某个电压值难度高嘛?是在绘制PCB的时候通过硬件电路就能直接处理,还是在采集完信号之后通过烧录的程序处理?, @, D5 n9 u2 z8 d/ [
: {% O$ u- _; g/ a8 a- ^
附上目前的单片机程序:
% Z, Z5 \) @- k/ @+ u: I+ v串口的:#include "reg52.h" //包函8051 内部资源的定义
, E$ F( N: i  Lunsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容$ F4 T1 X) |% [+ d2 O/ L* u" x, j  v
sbit gewei=P2^4; //个位选通定义
7 p" a/ q% p: I- R6 \sbit shiwei=P2^5; //十位选通定义
1 q- T& D/ p( O9 q& `sbit baiwei=P2^6; //百位选通定义
" `1 c3 t, G' z( iunsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; //1~10
2 M! f, u, U) uvoid Delay(unsigned int tc) //延时程序
6 a8 z9 O: r8 P- G! `( C% O5 U3 P{+ v+ G, ^. G) Y5 B1 j
while( tc != 0 )
% W' k6 d3 a7 E8 U" n# e( l{unsigned int i;& C% B% f6 s" O2 `. L8 o2 a) M9 ^" F
for(i=0; i<100; i++);2 y& I/ ?& u7 H2 i6 n9 |
tc--;}7 l6 r. R1 P" H7 Q, ^* R# S
}
6 @- U& x5 i& q7 c- p( Pvoid LED() //LED显示接收到的数据(十进制)
0 o! ]8 h9 w( Z4 b/ B{
/ s8 W5 F3 Y  A; Ygewei=0; P0=table[dat%10]; Delay(10); gewei=1;
" ~6 S# r% f- l0 y7 k9 h4 c" Zshiwei=0; P0=table[dat/10]; Delay(10); shiwei=1;7 }0 e* d+ ?+ b! c; C
baiwei=0; P0=table[dat/100]; Delay(10); baiwei=1;' a1 Y% U# l: z4 |
}
: ]% K7 b  W8 _  W///////功能:串口初始化,波特率9600,方式1/////////9 n5 i  l. m4 I( M6 y" d# J" a
void Init_Com(void)
: X/ |: o, Y6 Q2 k6 R7 }) X{
  ?/ q3 I* [  B6 hTMOD = 0x20;
$ ]5 y$ B. U' D& }0 x" a2 ]PCON = 0x00;) U# H# V5 l  g" Z3 {
SCON = 0x50;% W+ n6 ~( g$ s5 G
TH1 = 0xFd;/ c& p. E5 `. ?) s
TL1 = 0xFd;
- O( ^( G7 a# U( X( g: bTR1 = 1;
1 |! x0 w  W$ u& Z3 t% S}/ J& [$ A. a2 h- Z+ j" d% |
/////主程序功能:实现接收数据并把接收到的数据原样发送回去///////& }# R& r' ?* M0 {0 ?
void main()% ?, O* d4 r% H+ D6 w6 H- `! Y
{' k: ^9 Z; }' K  {, u9 C# s4 b$ y4 ~: s
Init_Com();//串口初始化2 ~# o) i- I2 M0 E
while(1)
; z% `+ _  G" }{                     
, }: R6 }7 @+ }# Fif ( RI ) //扫描判断是否接收到数据,# d  y. S( r* T* U  k
{+ D0 M1 V1 L8 ]0 C+ B7 e
dat = SBUF; //接收数据SBUF赋与dat
( u) C: i8 E- \3 y4 _8 q5 gRI=0; //RI 清零。. N: P% m. X" h
SBUF = dat; //在原样把数据发送回去(接收数据为发送数据的ASCII码,如发送q显示为113)( E, l! `4 D" |% n; U/ s5 m
}3 V. s1 |# M; I7 U; \/ h( g3 t
LED(); //显示接收到的数据: R* T. y( ^& F) Q/ J3 |$ X
}2 J5 \" F1 @7 w" g+ _/ L) {* X
}2 S  H) A5 H. H6 y: V3 z9 p
$ B: Z' Y+ z2 B

, C; r' f, S5 {/ a+ }; J

该用户从未签到

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

1 [2 ]" A, |1 J, o- P% V: \9 oAD电压采集:电阻分压,然后通过IO口测量,按分压比例算出实际电压值,发到屏幕显示
# u  `7 R  ]% x( h

该用户从未签到

3#
发表于 2022-1-14 16:52 | 只看该作者
与硬件有关,不是一时半会可以说清楚的。需要面对面解决。7 @: K0 F" T6 G7 e8 C0 G
  • TA的每日心情
    奋斗
    2025-1-1 15:26
  • 签到天数: 584 天

    [LV.9]以坛为家II

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

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-2 11:02 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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