求助:rs232通讯 点击:1143 | 回复:4



wkingw

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 13回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2004年4月12日
发表于:2004-08-21 19:00:00
楼主
为了避免重复劳动,跪求51单片机rs232的通讯源程序。谢谢各位大虾了!!



wkingw

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 13回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2004年4月12日
发表于:2004-08-26 09:41:00
1楼
rs232的程序搞定了。但以后要有人问我什么,我是不会理会了。其实大家干这行的都不容易,挺苦的。自己人不帮自己人,还有谁会帮你呢?我多希望能有个地方,大家抛开私念,资源共享,互相帮助,大家不再是孤立无援。你会发现,你付出一个,会有成千上万个回报。每个工控人都能很从容的面对难关了。 可惜有这样理想的人又少了一个。。。。

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2004-08-26 12:32:00
2楼
其实去买一本C51的书就有。下面是前些日子写的一段程序,可以参考 //初始化串口 void InitPort() { //serial port initail IP = 0x10; //high priority interrupt TCON = 0x05; TMOD = 0x21; //timer1 auto-load mode, timer0 work mode 1 PCON = 0x80; //baud rate double SCON = 0x50; //serial work mode 1, allow receive TH1 = 0x0F4; //9600 at 22.1184MHz TL1 = 0x0F4; // TR1 = 1; //start timer 1 EA = 1; //enable interrupt ES = 1; //enable serial interrupt // BUSY=1; REQ=0; } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //函数名称:GetChar //------------------------------------------------------------------------------------------------ //输入参数: //输出参数: //------------------------------------------------------------------------------------------------ //说明:串口接收字 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< char GetChar() { char SData; bit E; E = EA; EA = 0; SData = SBUF; RI = 0; EA = E; return SData; } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //函数名称:SerialRcv_INT //------------------------------------------------------------------------------------------------ //输入参数: //输出参数: //------------------------------------------------------------------------------------------------ //说明:串口接收中断//Serial Receive Interrupt react program //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< void SerialRcv_INT(void) interrupt 4 using 3 { char Rcv; EA = 0; Rcv = GetChar(); //将接收字符做处理--协议自定 EA = 1; } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //函数名称:PutChar //------------------------------------------------------------------------------------------------ //输入参数:char SData //输出参数: //------------------------------------------------------------------------------------------------ //说明:串口发送字符//Put Charactor<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< void PutChar(char SData) { bit E; E = EA; EA = 0; SBUF = SData; while(TI == 0); TI = 0; EA = E; } PCON = 0x80; //baud rate double SCON = 0x50; //serial work mode 1, allow receive // TH1 = 0x0FC; //9600 at 7.3746MHz // TL1 = 0x0FC; // TH1 = 0x0F4; //9600 at 22.1184MHz TL1 = 0x0F4; // TR1 = 1; //start timer 1 EA = 1; //enable interrupt ES = 1; //enable serial interrupt // BUSY=1; REQ=0; } //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //函数名称:GetChar //------------------------------------------------------------------------------------------------ //输入参数: //输出参数: //------------------------------------------------------------------------------------------------ //说明:串口接收字 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< char GetChar() { char SData; bit E; E = EA; EA = 0; SData = SBUF; RI = 0; EA = E; return SData; }

wkingw

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 13回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2004年4月12日
发表于:2004-08-26 23:17:00
3楼
果然还是有仗义之人。谢了!我编了一个查询方式的程序。用max232a转换电频,信号到了max232的输入脚,输出脚却死活不出转换信号。不知除芯片和连线有问题外,还会有什么因素会导致这样?因为板已经做好,max232是贴片,不好换。最好完全确定是他的问题再换。连线图也不敢保证,不知max232a的输入输出脚用不用上拉电阻什么的,我是直接连上的。

wkingw

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 13回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2004年4月12日
发表于:2004-08-27 10:11:00
4楼
能不能传我份电路图? wzjmzy2000@163.com

热门招聘
相关主题

官方公众号

智造工程师