当前位置:早雪网网络学院编程文档其他语言 → 很久以前写的一个应用于51上面的多功能控制采集系统的..学习板内核程序

很久以前写的一个应用于51上面的多功能控制采集系统的..学习板内核程序

减小字体 增大字体 作者:未知  来源:supcode.com收集整理  发布时间:2005-7-1 14:39:56


作者:李金浩

单片机:At89S52

连接类型:232 |485 接口

校验方式:checksum

开发环境:keil C


仅供参考学习,请勿用于商业开发.


/***************************************************************************************
 * 作者:李金浩                                                                         *
 * E-MAIL:LTSoft918@163.com                                                            *
 * QQ:67260745                                                                         *
 * 晶振:11.0592M   波特率:19200     At89S52                                           *
 *                                                                                     * 
 * 模块地址设定:由P0口设定,模块地址用于多机通信
 * =================================================================================== *
 *     0        1              2            3         4            5         6         *
 * |---------------------------------------------------------------------------------| *
 * |[操作符] | [port]|    [位号]       | [数据]  | 模块地址 |CheckSUM  |固定结束符   | *
 * |---------+-------+-----------------+---------+----------+----------+-------------| *
 * |错误:0xFF| XX    |        XX       |    XX   |    XX    |  XX      |    0x7e     | * 
 * |---------+-------+-----------------+---------+----------+----------+-------------| *
 * |写:0x01  | 0~3   | 0~7|8为完全数据 |  数据   |    XX    |  XX      |    0x7e     | *
 * |---------+-------+-----------------+---------+----------+----------+-------------| *
 * |读:0x02  | 0~3   | 0~7|8为完全数据 |    XX   |    XX    |  XX      |    0x7e     | *
 * |---------+-------+-----------------+---------+----------+----------+-------------| *
 * |EA:0x03  |  XX   |00:写 .. 01读取  | 00(01)  |    XX    |  XX      |    0x7e     | * 
 * |---------------------------------------------------------------------------------| *

 *==========================TLC1549数据采集============================================*
 *  ADCLK=P2^0                                                                         *
 *  ADOUT=P2^1                                                                         *
 *  ADCS=P2^2                                                                          *
 *     0        1              2            3         4            5         6         *
 * |---------------------------------------------------------------------------------| *
 * |[操作符] |采集次数 |      高位     |   低位  | 模块地址  | CheckSUM |固定结束符  | *
 * |---------+---------+---------------+---------+-----------+----------+------------| *
 * |AD:0x04  |  XX     |       XX      |    XX   |    XX     |   XX     |   0x7e     | *
 * |---------------------------------------------------------------------------------| *
 
                        GetAD_With_VOL_Filter:软件滤波采集
 *      0        1              2            3         4            5         6         *
 * |----------------------------------------------------------------------------------| *
 * |[操作符] |  空     |      高位     |   低位  | 模块地址  | CheckSUM | 固定结束符  | *
 * |---------+---------+---------------+---------+-----------+----------+-------------| *
 * |AD:0x05  |  XX     |       XX      |    XX   |    XX     |  XX      |    0x7e     | *
 * |----------------------------------------------------------------------------------| *

                            8路切换采集 ---CD4051_PickVol
   CD4051---8选1模拟开关芯片
   sbit CD4051_A=P1^1;
   sbit CD4051_B=P1^2;                                          
   sbit CD4051_C=P1^3; 
   sbit CD4051_INH=P1^4; //CD4051_INH为1时,,所有通导都不导通
 * |----------------------------------------------------------------------------------|
 * |     0        1              2            3         4            5         6      | *
 * |----------------------------------------------------------------------------------| *
 * |[操作符] |  选通编号 |      高位     |   低位  | 模块地址  | CheckSUM | 固定结束符| *
 * |---------+-----------+---------- ----+---------+-----------+----------+-----------| *
 * |AD:0x06  |  XX       |       XX      |    XX   |    XX     |  XX      |    0x7e   | *
 * |----------------------------------------------------------------------------------| *
                                 0x07:8路巡检采集CD4051_LoopPickVol
 * |----------------------------------------------------------------------------------|
 * |     0        1              2            3         4            5         6      | *
 * |----------------------------------------------------------------------------------| *
 * |[操作符] | 最大通道数|      高位     |   低位  | 模块地址  | CheckSUM | 固定结束符| *
 * |---------+-----------+---------- ----+---------+-----------+----------+-----------| *
 * |AD:0x07  |  XX       |       XX      |    XX   |    XX     |  XX      |    0x7e   | *
 * |----------------------------------------------------------------------------------| *
 *======================================================================================*
 
 
 *===============================AT24C04串行EEPROM操作==================================*
 *  sbit  SDA=P2^3;//SDA                                                                *
 *  sbit  SCL=P2^4;//SCL                                                                *
 *  sbit  WP=P2^5;//WP                                                                  *
 *      0        1              2            3         4            5         6         *
 * |----------------------------------------------------------------------------------| *
 * |[操作符] |  地址   |      数据     |  片地址 | 模块地址  | CheckSUM | 固定结束符  | *
 * |---------+---------+---------------+---------+-----------+----------+-------------| *
 * |读:0x08  |  XX     |       XX      |    XX   |    XX     |  XX      |    0x7e     | *
 * |---------+---------+---------------+---------+-----------+----------+-------------| *
 * |写:0x09  |  XX     |       XX      |    XX   |    XX     |  XX      |    0x7e     | *
 * |----------------------------------------------------------------------------------| *
 *======================================================================================*

 *===================================4位数码管理显示====================================*
 *                                 SetLedData()                                         *
 * P0.0-P0.3==》显示的数据发送至74ls47                                                  *
 * P0.4-P0.7==》数码管选择                                                              *
 * uchar LED_BIT[4]; //用于显示的每一位数据码的内容                             *
 * uchar LED_NUM[]={0x00,0x10,0x20,0x40,0x80};//选择显示位                      *
 *      0        1              2            3         4            5         6         *
 * |-----------------------------------------------------------------------------------|*
 * |[操作符] |  LEDNUM | 显示内容数据 | 开启/关闭 | 模块地址  | CheckSUM | 固定结束符  |*
 * |---------+---------+--------------+-----------+-----------+----------+-------------|*
 * |读:0x0A  |    XX   |       XX     |    XX     |    XX     |  XX      |    0x7e     |*
 * |---------+---------+--------------+-----------+---------

[1] [2] [3] [4] [5]  下一页

[数据载入中...] [返回上一页] [打 印]