找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1234|回复: 1
打印 上一主题 下一主题
收起左侧

单片机普通IO口模拟串口程序及Proteus仿真原理图

[复制链接]
跳转到指定楼层
楼主
io模拟串口仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  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. }
复制代码

Keil代码与Proteus7.5版本的仿真下载(注意:不能兼容其他版本 只能用7.5 ;7.8打开):
模拟串口.zip (47.8 KB, 下载次数: 18)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:284226 发表于 2023-5-11 21:01 | 只看该作者
input是关键字?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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