找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2478|回复: 0
打印 上一主题 下一主题
收起左侧

多路温度巡回检测仪的设计 数据通过串行口(RS485)发送到上位机。

[复制链接]
跳转到指定楼层
楼主

这里是protues电路图和keil程序:(我是用protues8做的,打不开工程,可以直接打开DSN文件)
所有资料下载: chuan.rar (96.47 KB, 下载次数: 58)



设计一个多路温度检测仪,共有8个测温点,每个点连续检测8次,以平均值代表该点温度,并轮流在LED显示器上显示。测试检测元件为铂热电阻Pt1000, 温度测量范围为100℃ ——+500℃,测量精度为±1℃。系统每隔10秒完成一个点的测量,测量值除在LED显示器上显示外,还必须通过串行口(RS485)发送到上位机。任何时刻,可以通过按键切换显示通道。

各位大神,小弟初学c51。这次是做一个课程设计,其余的部分基本都完成了,但是”数据通过串行口(RS485)发送到上位机“一直没能实现。我用c51的txd,rxd直接连接9孔插口,仿真出来,数据输出到了虚拟串口上了。
但是加上max487和max232就不行了。查资料是说得用max487和max232组合实现,max232调整电平。但小弟照着网上的画出来,还是不行。
简化我的程序:


char code str[] ={"0123456789"};        //发送用的字符数组

void Senddata(unsigned char dat)            //发送子程序
{
   SBUF=str[dat];
   while(TI==0);
    TI=0;
        delay(10);
}


void main()
{
   TMOD=0x20;  //TMOD=0010 0000B,定时器T1工作于方式2
   SCON=0x40;  //SCON=0100 0000B,串口工作方式1           PCON=0x00;  //PCON=0000 0000B,波特率9600
   TH1=0xfd;    //根据规定给定时器T1赋初值
   TL1=0xfd;    //根据规定给定时器T1赋初值
   TR1=1;      //启动定时器T1
while(1)
  {
    wei=0x05;
    Senddata(wei);
  }

上述程序目的是输出“5”
但是就是这么简单都发送不出去。求大神帮忙,如果知道我哪里错了求指点
这样连,都有数据传出来:



这样连,9孔版驱动不了,没显示:


查资料说是,组合起来才行,但组合了还是没数据:


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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