yt5408 发表于 2012-4-13 19:00:55

例子是屏做主机,单片机做人机吗?

yt5408 发表于 2012-4-13 19:22:04

最好给个屏作从机的例子:P

xzw 发表于 2012-4-27 12:39:47

楼主,你们的这个例子(参考网站上www.weinview.cn 范例下载D40:与单片机通讯示例)有BUG,比如在通讯过程中,拔掉通讯线,然后再插上去,就有可能再也通讯不上了。此时必须重新复位单片机才能通讯上。我猜情况应该是通讯了一半,断线了,插上去后,单片机再也收不到完整的MODBUS帧了,所以也不会回数给触摸屏。

liuweiplc 发表于 2012-4-30 16:40:13

D40例子用232接口通讯,可以返回数据,485通讯不能返回数据,程序中没有给出R/T控制,大家自己加上吧,做做实验还行

liuweiplc 发表于 2012-5-1 10:05:02

T0= RECIEVE;
P3.4口是R/T控制

何素峰 发表于 2012-5-14 20:54:54

最近在研究 屏与单片机通讯 看了论坛D40代码其中有句uchardata *port _at_ 0x7F ; 不懂请大家指教

bhbyuanyuan 发表于 2012-5-28 14:56:24

版主,你好!我将例程分别烧到了MT6070iH和1T的单片机,可以通讯得上,但是出现了旋钮自动复位的现象,即在触摸屏上点击旋钮TS_0,其会自动返回之前的状态,不能保持切换的状态,而离线模拟的时候则不会。想咨询下这是由上面原因造成的呢?单片机这边的程序有什么要修改的吗?(论坛中貌似有帖提到程序有点小问题,但是不知道该哪里)谢谢~

liuweiplc 发表于 2012-5-29 19:51:31

SlaveOutputBuf=~P2; // send data of master force coil val
   SlaveOutputBuf=~P0;
   i=CommBuf+3;
   for(CommIndex=3;CommIndex<i;CommIndex++) // send data Reg to Master
   CommBuf=SlaveOutputBuf; // hight 8 bit is first send
   crc16tem=crc16(CommBuf,CommIndex); // then send low 8 bit data
   CommBuf=(uchar)(crc16tem & 0x00ff); // send crccheck low 8 bit is front
   CommBuf=(uchar)(crc16tem>>8); // then send hight 8 bit
   CommIndexEnd=CommIndex;
   CommIndex=0;
   SBUF=CommBuf;
   break;
   case ForceSingleCoil:
   // SlaveInputBuf=CommBuf; // get data 0x00 or 0xff

   if (CommBuf==0xff)

   {
      switch(CommBuf)
{
case 0:
LED0=0;
break;
case 1:
LED1=0;
   break;
case 2:
LED2=0;
   break;
case 3:
LED3=0;
   break;
case 4:
LED4=0;
   break;
case 5:
LED5=0;
   break;
case 6:
LED6=0;
   break;
case 7:
LED7=0;
   break;
   
   case 8:
LED8=0;
break;
case 9:
LED9=0;
   break;
case 10:
LED10=0;
   break;
case 11:
LED11=0;
   break;
case 12:
LED12=0;
   break;
case 13:
LED13=0;
   break;
case 14:
LED14=0;
   break;
case 15:
LED15=0;
   break;

}
}
else

{
switch(CommBuf)
{
case 0:
LED0=1;
   break;
case 1:
LED1=1;
   break;
case 2:
LED2=1;
   break;
case 3:
LED3=1;
   break;
case 4:
LED4=1;
   break;
case 5:
LED5=1;
   break;
case 6:
LED6=1;
   break;
case 7:
LED7=1;
   break;
case 8:
LED8=1;
break;
case 9:
LED9=1;
   break;
case 10:
LED10=1;
   break;
case 11:
LED11=1;
   break;
case 12:
LED12=1;
   break;
case 13:
LED13=1;
   break;
case 14:
LED14=1;
   break;
case 15:
LED15=1;
   break;
}
}

// LED0=!LED0;
ForceCoilBuf=CommBuf;
forceval=CommBuf;
CommBuf=SlaveID; // 0
CommBuf=ForceSingleCoil; // 1
CommIndex=2;
// CommBuf=0x00;
// CommBuf=0x01;
// CommBuf=0x00;
// CommBuf=0xff;
// forcesendF=1;
CommBuf=CommBuf; // 2
CommBuf=CommBuf; // 3
CommBuf=CommBuf; // 4
CommBuf=CommBuf; // 5
crc16tem=crc16(CommBuf,CommIndex); // then send low 8 bit data
CommBuf=(uchar)(crc16tem & 0x00ff); // send crccheck low 8 bit is front
CommBuf=(uchar)(crc16tem>>8); // then send hight 8 bit
CommIndexEnd=CommIndex;
CommIndex=0;
SBUF=CommBuf;
count=0;
break;
看看有什么不一样,:loveliness:

liuweiplc 发表于 2012-5-29 19:53:40

uchar idata SlaveOutputBuf; // Hight 8 bit of word is front,Low 8 bit is back

uchar idata SlaveInputBuf;

uchardata *port _at_ 0x7F ;

/* exp data define */
//#define SlaveAdr XBYTE
sbit LED0=P2^0;
sbit LED1=P2^1;
sbit LED2=P2^2;
sbit LED3=P2^3;
sbit LED4=P2^4;
sbit LED5=P2^5;
sbit LED6=P2^6;
sbit LED7=P2^7;
sbitLED8=P0^0;
sbitLED9=P0^1;
sbit LED10=P0^2;
sbit LED11=P0^3;
sbit LED12=P0^4;
sbit LED13=P0^5;
sbit LED14=P0^6;
sbit LED15=P0^7;

uchar idata ForceCoilBuf;
uchar count=0;
uchar forceval=0x00;
//bit forcesendF=0;
/* Table Of CRC Values for high-order byte */
uchar code auchCRCHi[] = {
0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,
0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,
0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,

guozhujun 发表于 2012-5-31 19:49:44

谢谢分享,真是需要之时。顶顶顶顶顶顶顶!

鹤岗殷工 发表于 2012-7-16 19:26:38

版主不是校验员

lf8013 发表于 2012-8-3 21:54:07

谢谢提供的资料

徐明明 发表于 2012-8-16 11:40:58

PC与触摸屏通讯时,PC设备的PLC类型选的是Free Protocol,如果是采用MODBUS通讯协议让avr128单片机与触摸屏通讯,那设置设备属性时,PLC类型是指通讯方式吗?是根据所选方式是ASCII或RTU相应选择MODBUS ASCII或MODBUS RTU吗?

286405902 发表于 2012-9-11 21:49:31

上面的51单片机MODBUS示例.rar (版主怎么在触摸屏设置1X    0x    地址

bhbyuanyuan 发表于 2012-9-20 19:58:22

触摸屏做从站(modbus server),单片机做主站该怎么做啊?有例子吗?有没有人做过啊?

fuhuafeng72 发表于 2012-9-21 14:48:04

谢谢下载看看

fish198868 发表于 2012-9-25 20:19:29

学习中,不错,太感谢了。

机速英雄 发表于 2012-11-10 22:33:09

很高深,不懂。都是高手高手高高手,顶一下!!

hxjlm 发表于 2013-1-5 19:33:00

非常感谢楼主!正在搜集资料研究此问题,谢谢!

junming6385 发表于 2013-1-22 11:16:10

太好了,感谢感谢
页: 1 [2] 3 4
查看完整版本: 关于触摸屏与单片机MODBUS通讯