找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1974|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)普通IO口模擬串口程序及Proteus仿真原理圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
io模擬串口仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <AT89X51.H>
  2. #define uchar unsigned char
  3. #define RXD P1_0
  4. #define TXD P1_1

  5. //計(jì)數(shù)器初始化
  6. void S2INI(void)
  7. {
  8.     TMOD |=0x02;                //計(jì)數(shù)器0,方式2
  9.     TH0=0xA0;                    //預(yù)值為256-96=140,十六進(jìn)制A0
  10.     TL0=TH0;        
  11.     TR0=1;                        //開始計(jì)數(shù)
  12.     TF0=0;
  13. }

  14. //查詢計(jì)數(shù)器溢出標(biāo)志位
  15. void WaitTF0( void )
  16. {
  17.     while(!TF0);
  18.     TF0=0;
  19. }

  20. void WByte(uchar input)
  21. {
  22.     //發(fā)送啟始位
  23.     uchar i=8;
  24.     TR0=1;
  25.     TXD=(bit)0;
  26.     WaitTF0();
  27.     //發(fā)送8位數(shù)據(jù)位
  28.     while(i--)
  29.     {
  30.         TXD=(bit)(input&0x01);     //先傳低位
  31.         WaitTF0();
  32.         input=input>>1;
  33.     }
  34.     //發(fā)送校驗(yàn)位(無)
  35.     //發(fā)送結(jié)束位
  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. }
復(fù)制代碼

Keil代碼與Proteus7.5版本的仿真下載(注意:不能兼容其他版本 只能用7.5 ;7.8打開):
模擬串口.zip (47.8 KB, 下載次數(shù): 25)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:284226 發(fā)表于 2023-5-11 21:01 | 只看該作者
input是關(guān)鍵字?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表