标题: 单片机普通IO口模拟串口程序及Proteus仿真原理图 [打印本页]

作者: 繁星落叶    时间: 2022-12-8 13:56
标题: 单片机普通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, 下载次数: 25)


作者: hepen2002    时间: 2023-5-11 21:01
input是关键字?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1