找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4134|回复: 1
收起左侧

单片机io模拟串口进行通信的proteus仿真及源程序

[复制链接]
ID:137190 发表于 2016-10-9 22:55 | 显示全部楼层 |阅读模式
用51单片机普通io口来模拟串口通信的原理图:
0.png 0.png

仿真工程文件及所有完整程序等资料下载地址:
http://www.51hei.com/bbs/dpj-56304-1.html

2个单片机的源程序:
  1. #include <AT89X51.H>
  2. #define uchar unsigned char
  3. #define RXD P1_0
  4. #define TXD P1_1

  5. //计数器初始化
  6. void S2INI(void)
  7. {
  8.     TMOD |=0x02;                //计数器0,方式2
  9.     TH0=0xA0;                    //预值为256-96=140,十六进制A0
  10.     TL0=TH0;        
  11.     TR0=1;                        //开始计数
  12.     TF0=0;
  13. }

  14. //查询计数器溢出标志位
  15. void WaitTF0( void )
  16. {
  17.     while(!TF0);
  18.     TF0=0;
  19. }

  20. void WByte(uchar input)
  21. {
  22.     //发送启始位
  23.     uchar i=8;
  24.     TR0=1;
  25.     TXD=(bit)0;
  26.     WaitTF0();
  27.     //发送8位数据位
  28.     while(i--)
  29.     {
  30.         TXD=(bit)(input&0x01);     //先传低位
  31.         WaitTF0();
  32.         input=input>>1;
  33.     }
  34.     //发送校验位(无)
  35.     //发送结束位
  36.     TXD=(bit)1;
  37.     WaitTF0();
  38.     TR0=0;
  39. }   
  40. void delay()
  41. {
  42. uchar i,j,k;
  43. for(i=100;i>0;i--)
  44. for(j=20;j>0;j--)
  45. for(k=248;k>0;k--);
  46. }
  47. void main(void)
  48. {
  49. S2INI();
  50. while(1)
  51. {
  52.    WByte(0x7f);
  53.    delay();
  54.    WByte(0xff);
  55.         delay();
  56. }
  57. }
复制代码
  1. #include <reg51.h>

  2. //初始化串行口
  3. void csh()
  4.         {
  5.                 SM0=0;
  6.                 SM1=1;
  7.                 REN=1;
  8.                 TI=0;
  9.                 RI=0;
  10.                 PCON=0;
  11.                 TH1=0xFD;
  12.                 TL1=0XFD;
  13.                 TMOD=0X20;
  14.                 EA=1;
  15.                 ET1=0;
  16.                 ES=1;
  17.                 TR1=1;
  18.         }

  19. void main()
  20.         {
  21.                 csh();
  22.                 while(1)
  23.                 {;}
  24. }

  25. void intrr() interrupt 4
  26.         {
  27.                 char temp;
  28.                 temp=SBUF;
  29.                 P1=temp;
  30.         RI=0;
  31.         }
复制代码
回复

使用道具 举报

ID:684968 发表于 2020-6-3 14:23 | 显示全部楼层
楼主您好,可以把您的工程发一下吗

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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