資源簡介
此程序是用C語言編寫的一個51的程序。
作用是對MODBUS協議進行了實現,用的是ASCII方式,簡明易懂。
共實現的1讀線圈,2寫單個線圈,3寫多個線圈,4讀寄存器,5寫單個寄存器,6寫多個寄存器這幾個基本的功能,簡明易懂,是一個絕佳的MODBUS協議程序。
傳輸基于最普通的串口通信,嚴格按照協議說明。
程序中還做和詳盡的注解,本人水平有限,難免出錯,貽笑大方,獻丑了。
多多指教。。。。。。

代碼片段和文件信息
#include?“ds18b20.h“??????
/*********************************************************************************/??
/*函數名稱:?delay_124 ??????????????????????????
*輸入參數:??共?1?個參數;??
*輸出參數:??共?0?個參數;??
*返回值:??????
*需儲存的參數:?共?0?個參數;??????
*功能介紹:??延時?????????????
*修改日志:??
此延時函數針對的是12Mhz的晶振
delay_124(0):延時518us?誤差:518-2*256=6
delay_124(1):延時7us??
delay_124(10):延時25us????誤差:25-20=5
delay_124(20):延時45us????誤差:45-40=5
delay_124(100):延時205us?誤差:205-200=5
delay_124(200):延時405us?誤差:405-400=5
*[2010-12-14]??Ver.?1.00??
????????開始編寫;2010-12-12??
????????完成;??2010-12-12????????????????????????????????????
/*??????????????????????????????????????*/??
/*********************************************************************************/?
void?delay_124(unsigned?char?i_124)?
{
while(--i_124);?
}
/*********************************************************************************/??
/*函數名稱:?init18b20_124(void) ??????????????????????????
*輸入參數:??共?0?個參數;??
*輸出參數:??共?0?個參數;??
*返回值:??????
*需儲存的參數:?共?0?個參數;??????
*功能介紹:???初始化18B20?????????????
*修改日志:??
*[2010-12-14?]??Ver.?1.00??
????????開始編寫;2010-12-13??
????????完成;??2010-12-13???????????????????????????????????
/*??????????????????????????????????????*/??
/*********************************************************************************/?
void?init18b20_124(void)
{
?DQ_124?=?1;?
?delay_124(1);
?DQ_124?=?0;??????????//拉低數據線,復位總線;
?delay_124(255);?????//延時504us?
?DQ_124?=?1;?????????//提升數據線;
?delay_124(18);?????//延時32us;
?while(DQ_124);???????//等待從器件器件應答信號;存在脈沖
?delay_124(90);?????//延時128us;?
?DQ_124?=?1;??????????//提升數據線,準備數據傳輸;
}
/*********************************************************************************/??
/*函數名稱:?WR18b20_124(unsigned?char?cmd_124) ??????????????????????????
*輸入參數:??共?0?個參數;??
*輸出參數:??共?0?個參數;??
*返回值:??????
*需儲存的參數:?共?0?個參數;??????
*功能介紹:???向18B20寫入數據?????????????
*修改日志:??
*[2010-12-14?]??Ver.?1.00??
????????開始編寫;2010-12-13??
????????完成;??2010-12-13???????????????????????????????????
/*??????????????????????????????????????*/??
/*********************************************************************************/
void?WR18b20_124(unsigned?char?cmd_124)
{
????unsigned?char?k_124;
????for(k_124=0;k_124<8;k_124++)
????{
????????if(cmd_124?&?0x01)?? ????//低位在前;
????????{
????????????DQ_124?=?0;????
????????????delay_124(1);?
????????????DQ_124?=?1;??????????//發送數據;
????????}?????????????????
????????else?
????????{
????????????DQ_124?=?0;???? ???????
????????????delay_124(1);??
????????}
????????delay_124(30);?? ?//延時64us等待從器件采樣;
????????DQ_124?=?1;?????? ?????//拉高總線
????????delay_124(1);?????? ?
????????cmd_124?>>=?1;
????}
}
/*********************************************************************************/??
/*函數名稱:?RD18b20_124(void) ??????????????????????????
*輸入參數:??共?0?個參數;??
*輸出參數:??共?0?個參數;??
*返回值:??????
*需儲存的參數:?共?0?個參數;??????
*功能介紹:??由18B20讀取數據???????????
*修改日志:??
*[2010-12-14?]??Ver.?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????11014??2011-12-18?16:14??賴泊能modbus\bmp_pixel.h
?????文件???????5186??2011-12-18?16:14??賴泊能modbus\ds18b20.c
?????文件????????317??2011-12-18?16:14??賴泊能modbus\ds18b20.h
?????文件???????8685??2012-04-26?23:36??賴泊能modbus\ds18b20.LST
?????文件???????4641??2012-04-26?23:36??賴泊能modbus\ds18b20.OBJ
?????文件???????2965??2011-12-27?11:10??賴泊能modbus\EEPROM.c
?????文件????????557??2011-12-18?16:14??賴泊能modbus\EEPROM.h
?????文件???????5257??2012-04-26?23:36??賴泊能modbus\EEPROM.LST
?????文件???????4575??2012-04-26?23:36??賴泊能modbus\EEPROM.OBJ
?????文件???????4913??2011-12-18?16:14??賴泊能modbus\english_6x8_pixel.h
?????文件???????7416??2011-12-27?20:16??賴泊能modbus\main.c
?????文件???????1133??2011-12-27?11:10??賴泊能modbus\main.h
?????文件??????14053??2012-04-26?23:36??賴泊能modbus\main.LST
?????文件??????15000??2012-04-26?23:36??賴泊能modbus\main.OBJ
?????文件??????39986??2011-12-27?20:16??賴泊能modbus\modbus.c
?????文件????????775??2011-12-18?16:14??賴泊能modbus\modbus.h
?????文件??????77266??2012-04-26?23:36??賴泊能modbus\modbus.LST
?????文件??????50299??2012-04-26?23:36??賴泊能modbus\modbus.OBJ
?????文件??????73530??2012-04-26?23:36??賴泊能modbus\modbusasii2
?????文件??????21725??2012-04-26?23:36??賴泊能modbus\modbusasii2.hex
?????文件????????128??2012-04-26?23:36??賴泊能modbus\modbusasii2.lnp
?????文件??????80902??2012-04-26?23:36??賴泊能modbus\modbusasii2.M51
?????文件????????174??2012-05-06?22:56??賴泊能modbus\modbusasii2.plg
????.......?????62670??2012-05-06?22:09??賴泊能modbus\modbusasii2.uvopt
?????文件??????14078??2011-12-18?16:15??賴泊能modbus\modbusasii2.uvproj
????.......?????62670??2012-05-05?22:05??賴泊能modbus\modbusasii2_uvopt.bak
?????文件??????14574??2011-12-18?16:15??賴泊能modbus\modbusasii2_uvproj.bak
?????文件??????16057??2011-12-27?19:32??賴泊能modbus\nokia_5110.c
?????文件???????1237??2011-12-18?16:15??賴泊能modbus\nokia_5110.h
?????文件??????24167??2012-04-26?23:36??賴泊能modbus\nokia_5110.LST
............此處省略9個文件信息
評論
共有 條評論