找回密码
 注册

QQ登录

只需一步,快速开始

搜索

基于51单片机仿真485通信,单片机转发上位机虚拟串口发送字符

[复制链接]
coolice 发表于 2020-1-29 23:22:33 | 显示全部楼层 |阅读模式
基于51单片机仿真485通信,单片机接收上位机单个字符后,转发给上位机虚拟串口接收。 485-PC-单片机转发上位机字符.zip (305.83 KB, 售价: 1 E币)
150536iu8zedee4bdec94o.png
  1. #include <reg52.h>

  2. unsigned char T0RH = 0;  //T0重载值的高字节
  3. unsigned char T0RL = 0;  //T0重载值的低字节

  4. void ConfigTimer0(unsigned int ms);
  5. extern void UartDriver();
  6. extern void ConfigUART(unsigned int baud);
  7. extern void UartRxMonitor(unsigned char ms);
  8. extern void UartWrite(unsigned char *buf, unsigned char len);

  9. void main()
  10. {
  11.     EA = 1;            //开总中断
  12.     ConfigTimer0(1);   //配置T0定时1ms
  13.     ConfigUART(9600);  //配置波特率为9600
  14.    
  15.     while (1)
  16.     {
  17.         UartDriver();  //调用串口驱动
  18.     }
  19. }
  20. /* 串口动作函数,根据接收到的命令帧执行响应的动作
  21.    buf-接收到的命令帧指针,len-命令帧长度 */
  22. void UartAction(unsigned char *buf, unsigned char len)
  23. {
  24.     //在接收到的数据帧后添加换车换行符后发回
  25.     buf[len++] = '\r';
  26.     buf[len++] = '\n';
  27.     UartWrite(buf, len);
  28. }
  29. /* 配置并启动T0,ms-T0定时时间 */
  30. void ConfigTimer0(unsigned int ms)
  31. {
  32.     unsigned long tmp;  //临时变量
  33.    
  34.     tmp = 11059200 / 12;      //定时器计数频率
  35.     tmp = (tmp * ms) / 1000;  //计算所需的计数值
  36.     tmp = 65536 - tmp;        //计算定时器重载值
  37.     tmp = tmp + 33;           //补偿中断响应延时造成的误差
  38.     T0RH = (unsigned char)(tmp>>8);  //定时器重载值拆分为高低字节
  39.     T0RL = (unsigned char)tmp;
  40.     TMOD &= 0xF0;   //清零T0的控制位
  41.     TMOD |= 0x01;   //配置T0为模式1
  42.     TH0 = T0RH;     //加载T0重载值
  43.     TL0 = T0RL;
  44.     ET0 = 1;        //使能T0中断
  45.     TR0 = 1;        //启动T0
  46. }
  47. /* T0中断服务函数,执行串口接收监控 */
  48. void InterruptTimer0() interrupt 1
  49. {
  50.     TH0 = T0RH;  //重新加载重载值
  51.     TL0 = T0RL;
  52.     UartRxMonitor(1);  //串口接收监控
  53. }
复制代码
PC串口COMPIM设置.JPG 串口调试结果(发送数据).JPG 单片机-485-PC串口通信.jpg 虚拟串口设置.JPG 单片机-485-PC串口通信proteus仿真 程序资料.JPG

微鑫科技 发表于 2020-2-6 21:01:02 | 显示全部楼层
这个不是单片机的基础全程吗?有什么特殊的吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|ELEOK |网站地图

GMT+8, 2024-12-22 12:22

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表