中国IEEE
关于我们 | 会员登陆 | 收藏本站 | 留 言 薄
 

 | 网站首页 | 电子知识 | 单片机知识 | 电路设计 | 微电子技术 | SCADA系统 | 资源下载 | 给我留言 | 谷歌商城 | 视频教程 | ieee | 
热门搜索关键字: 单片机教程 | 三极管 | 二极管 |  C语言汇编语言SCADA元器件模拟电子 |
cnieee.com baidu
栏目导航  
栏目更新推荐  
·单片机实现数据远程监控
·单片机控制的模拟开关灯实验
·最常应用的流水闪烁灯实验
·第二章   Keil C软件使用…
·第一章  AT89S51单片机实验及实践…
·运算放大器的噪声分析
·RS-232C接口标准详解
·利用串口对 89S 系列单片机编程…
点击TOP(10)  
  • 此栏目下没有热点文章
  • 图片文章  

    单片机实现数据远程…

    单片机控制的模拟开…

    最常应用的流水闪烁…

    第二章   Keil C软…
     
    您现在的位置: 中国IEEE中国电气电子工程师网 >> 单片机知识 >> 行业动态 >> 正文

    单片机实现数据远程监控
    文章来源:本站整理 点击数: 更新时间:2008-5-16 【字体:
    (欢迎光临中国IEEE,希望本文能对您有所帮助http://www.cnieee.com)


    相关文章:

    用单片机实现高速数据采集

  • 上一个文章:

  • 下一个文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    关于〖单片机实现数据远程监控〗的最新评论:

    为方便调试,采用模块化编程,共分1个主模块及5个子模块,各模块功能说明及流程图如下(源程序见附录):

    1、主模块(rand_main.a51

    上电后程序显示初始化标志并等待3秒,然后进入巡回模式,自动检测地址为A10)至F15)的智能仪表,对在线的仪表及已使用通道以3秒为周期自动巡回读取实时温度并送数码管显示,仪表未在线或未用通道则自动跳过;定点模式时根据上、下按键情况自动向前或向后移动一个通道后等待下一次按键(向上至最高通道号时跳到上一个仪表的最低在用通道,向下至最低通道号时跳到下一个仪表的最高在用通道);等待期间以3秒为周期读取当前仪表当前通道实时温度并送数码管显示,另外,为了区分巡回、定点工作模式,定点工作模式时最低位数码管以约0.5Hz的频率闪烁显示。当检测到巡回/定点切换键按下时自动在巡回及定点模式间转换,当检测到温度值低于-199.9度时显示-199.9度。

           主模块流程图见下:

     


    YD_N100=仪表地址

    TD_N=通道号

    Y

    N

    开始

    上电初始化

    SP

    巡回/定点标志=1?

    #0ah=>yd_n100,#0=>td_n

    清闪烁、调用命令发送模块

    接收正确吗?

    调用数据转换程序

    正常吗?

    Y

    N

    送显示并延时3

    Td_n+1=>td_n

    Td_n=8?

    Y

    N

    0=>Td_n

    N

    Y

    Yd_n100+1=>yd_n100

    Yd_n100=10h?

    0ah=>yd_n100

    start

    Td_n=0?

    开外部中断1并置最低位闪烁

    清软硬看门狗

    2秒定时到?

    下键

    上键?

    N

    N

    N

    Y

    Y

    Y

     

    调用命令发送程序

    调用数据转换程序

    正确吗?

    正确吗?

    送显示

    Y

    N

    N

    Y

    7=>td_n

    Yd_n100-1=>yd_100

    Yd_n100=9?

    0fh=>yd_100

    N

    N

    Y

    Y

    Td_n-1=>td_n

    调用命令发送程序

    正确吗?

    正确吗

    调用数据转换程序

    N

    Y

    Y

    N

    送显示、置2S定时初值

    上键处理流程与下键相似,此处从略。

    N

    Y


    2、数据转换子模块(rand_data.a51

    功能:  本模块先将ASCII码转换成BIN码,然后将BIN码转换成BCD码并将数据转换成可直接显示的格式

    入口:  a=通道号

    出口:   r1=个位,r2=十位,r3=百位,r4=千位(显示数据)

    a=0表示该通道未用

    注:本子模块中直接将小数点信息加到相应位数据上,如需在某位显示小数点,则将该位数据加10H,显示子模块根据此信息显示小数点

    各子程序功能介绍:

    l         bcd2_bcd1:将r3,r4中的4bcd码由低至高分别存入r1,r2,r3,r4中;

    l         ascii4_bcd3:将(r0)为首地址的4字节ascii码转换成bcd码并将bcd码由低至高依次存放在r3,r4,r5中,r3,r4中各存放2bcd码,r5中存放一位bcd码;

    l         bin_bcd:将r1,r2中的bin码转换成bcd码并将bcd码由低至高依次存放在r3,r4,r5中,r3,r4中各存放2bcd码,r5中存放一位bcd码;

    l         ascii4_bin2:将(r0)为首地址的4字节ascii码转换成2bin码存放在r1(低字节),r2(高字节)中;

    注:[r0)指r0中内容]

    l         ascii_bin:将(r0)为地址的一位ascii码转换成bin码存A中。

    (高级子程序调用低级子程序以实现更强的功能,源程序中对各子程序有较详细的注释,故此处仅画出主流程图)

     

    开始

    计算通道数据首地址

    调用数据转换程序

    还原小数位数存R6

    BCD码超过5位吗?

    该通道数据为0X0ffff吗?

    返回该通道未用信息

    Y

    Y

    N

    N

    退出

    转换成可显示数据存R1-R4

    有效位前的零消除处理

     

    返回数据正确信息

    负数处理,当数据小于-199.9时显示-199.9


    3、显示、软件看门狗、20ms定时器子程序(rand_disp.a51

    功能:  通过定时器01MS为周期动态显示缓冲区中的内容;同时完成20ms定时器及软件看门狗计数;当软件看门狗定时器溢出时自动复位。

    入口:   disp_buf为首地址依次存放从个位至十万位待显示数据,以disp_wc为首地址(位地址)依次存放个位至千位闪烁控制位信息,为'0'常亮,'1'闪烁.

    T0中断入口

    保护现场

    显示码表地址=>dptr

    Disp_s_c取反

    Disp_c+1=>disp_c

    Disp_c=>R0

    Disp_s-1=>disp_s,Disp_s=0?

    Y

    N