找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6386|回复: 0
收起左侧

当单片机与计算机串行通讯时无MAX232电平转换芯片时怎么办?

[复制链接]
ID:70976 发表于 2014-12-27 14:57 | 显示全部楼层 |阅读模式



  • 用分立元件搭建的串口电平转换电路:特点是电路简单实用,具时效性!使用时只需将TO_MCU的接口接到目标单片机板中与相应的串口引脚相连!DB通过串口线直接与计算机串口相连接即能完成单片机与计算机之间的通讯!
    以下是模块化之后的PCB版图:

    同时,当与计算机通讯之时接利用计算机超级终端软件或串口调试助手与单片机进行通讯!
    注意计串行通讯学习的几个要点:
    1、数据流方式:并行和串行,并行特点是传输速度快,适合短距离传输,同时占用的IO资源多,造价高。串行特点是传输速度不及并行,但是能够完成远距离的数据传输,同时占用的资源少。
    2、通讯方式:同步和异步,同步是指两个或多个实体模块之间采用同一个系统时钟作为系统驱动源,异步是指两个或多个实体模块之间采用各自的时钟信号作为自己的驱动源信号。当多个模块并存时,在同一个系统中可同时存在异步和同步的混合通讯方式。结合1说法就有了同步并行和异步并行,同步串行和异步串行四种数据传输通讯方式。
    3、重点了解异步串行通讯:
    A、通讯方式:单工、半双工、全双工!重点学习全双工…
    B、通讯方式中掌握波特率的计算方法
    C、定时器的在串行通讯中的运用(重点)
    D、串行特殊功能寄存器和控制寄存器的运用
    E、收发寄存器SBUF在收与发过程中的含义 例如:(重点)
       SBUF=R;//(发送) 此时会将并行数据+加上帧信息位(起始位,校验位,停止位)数据转化成串行数据送出
       R=SBUF;//(接收)此时会将发收到到的串行数据(由数据位和帧信息位)提取其中的数据位并将提取到的数据转化成并行数据在单片机中进行需要的处理
       其中R可以为char R型变量或多重char型指针数组R
       必须重点掌握:可完成通过计算对单片机在工业控制、数据采集、实时监测、智能模块等等的运用!
    举例:




  1. //==========================================================================
  2. //功能:系统将计算机发送来的数据送给P1口进行显示或作用到外部设备,同时系统将
  3. //      接收到的数据返回到计算机中
  4. //调试工具:kiel_C 串口调试助手
  5. //程序制作人:张建刚
  6. //时间 :2009年04月26日
  7. //==========================================================================
  8. #include<reg52.h>
  9. #include<stdio.h>
  10. #define uchar unsigned char
  11. #define uint  unsigned int
  12. bit flag;
  13. uchar r;
  14. void main()
  15. {
  16. r=0;   //初始化
  17. TMOD=0x20;//设置定时器1为工作方式2
  18. TH1=0xfd; //定时器装入初值
  19. TL1=0xfd;
  20. TR1=1;   //启动定时器
  21. REN=1;   //串行使能
  22. SM0=0;
  23. SM1=1;   //通讯方式1,可变波特率
  24. EA=1;   //开总中断
  25. ES=1;   //开串行中断
  26. while(1)
  27. {
  28.   if(flag==1) //等待收到完成标志位
  29.   {
  30.    ES=0; //禁止串行中断
  31.    flag=0; //接收完成标志位置0
  32.    SBUF=r; //将输入的值返回给计算机
  33.    while(!TI); //等待发送标中断志位置1
  34.    TI=0; //清除发送标中断志位
  35.    ES=1;// 开启串行中断
  36.   }
  37. }
  38. }
  39. void ser() interrupt 4   //串行中断服务子程序 当接收中断标志被置1
  40. {    //此时程序将会执行中断服务程序
  41. RI=0;   //清除接收中断标志
  42. P1=SBUF;         //将接收到的数据送到P1口进行显示或者作用给外部设备
  43. r=SBUF;   //将接收到的数据送给r定义寄存器
  44. flag=1;   //接收完成标志置1
  45. }
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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