欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6651|回復(fù): 2
收起左側(cè)

單片機1通過串口通信向單片機2發(fā)送“你好”,MAX487,RS485通信

[復(fù)制鏈接]
ID:591620 發(fā)表于 2020-6-19 20:13 | 顯示全部樓層 |閱讀模式

    以485通信為例,其中包括AT89C52,MAX487芯片和虛擬中端,實現(xiàn)兩個單片機之間的通訊。
雙機通信.png

    MAX487-MAX491以及MAX1487是用于baiRS-485與RS-422通信的低功耗收發(fā)器,du每個器件中都具有一個驅(qū)動器和一zhi個接收器。MAX483、MAX487、MAX488以及daoMAX489具有限擺率驅(qū)動器,可以減小EMI,并降低由不恰當(dāng)?shù)慕K端匹配電纜引起的反射,實現(xiàn)最高250kbps的無差錯數(shù)據(jù)傳輸。MAX481、MAX485、MAX490、MAX491、MAX1487的驅(qū)動器擺率不受限制,可以實現(xiàn)最高2.5Mbps的傳輸速率。
    這些收發(fā)器在驅(qū)動器禁用的空載或滿載狀態(tài)下,吸取的電源電流在120μA至500μA之間。另外,MAX481、MAX483與MAX487具有低電流關(guān)斷模式,僅消耗0.1μA。所有器件都工作在5V單電源下。
MAX487.png

max487.jpg

    驅(qū)動器具有短路電流限制,并可以通過熱關(guān)斷電路將驅(qū)動器輸出置為高阻狀態(tài),防止過度的功率損耗。接收器輸入具有失效保護特性,當(dāng)輸入開路時,可以確保邏輯高電平輸出。
    MAX487與MAX1487具有1/4單位負載的接收器輸入阻抗,使得總線上最多可以有128個MAX487/MAX1487收發(fā)器。使用MAX488-MAX491可以實現(xiàn)全雙工通信,而MAX481、MAX483、MAX485、MAX487與MAX1487則為半雙工應(yīng)用設(shè)計。


分別對兩個單片機下載程序
發(fā)送端
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int


  4. void delay_ms(uint ms)
  5. {
  6.         uchar time;
  7.         while(ms--)
  8.         for(time=0;time<115;time++);       
  9. }


  10. void UART_sendOneByte(uchar dat)
  11. {
  12.         SBUF=dat;//將被發(fā)送的單字節(jié)數(shù)據(jù)放入串口SBUF數(shù)據(jù)發(fā)送緩沖器
  13.         while(TI==0);//等待SBUF緩沖器中的數(shù)據(jù)被發(fā)送完畢(發(fā)送完畢后TI被硬件寫1)
  14.         TI=0;//將TI位(發(fā)送完成標(biāo)志位)清零
  15. }

  16. void UART_sendEnter(void)
  17. {
  18.         UART_sendOneByte(0x0d);
  19.         UART_sendOneByte(0x0a);
  20. }

  21. void UART_sendstring(uchar *str)
  22. {
  23.         while(*str)
  24.         {
  25.                 UART_sendOneByte(*str);
  26.                 str++;               
  27.         }
  28. }



  29. void main()
  30. {

  31.     uchar temp=0;
  32.     TMOD=0x20;  //設(shè)置定時器T1為方式2
  33.     TH1=0xfd;  //波特率9600
  34.     TL1=0xfd;
  35.     SCON=0x40;       //串口初始化方式1發(fā)送,不接收
  36.     PCON=0x00;       //SMOD=0
  37.     TR1=1;  //啟動T1
  38.    
  39.      while(1)
  40.     {
  41.                            UART_sendstring("你好");
  42.                 delay_ms(1000);//延時1秒
  43.                    UART_sendstring("你好");
  44.                 delay_ms(1000);//延時1秒
  45.                 UART_sendstring("你好");
  46.                 delay_ms(1000);//延時1秒
復(fù)制代碼

接收端
  1. #include<reg52.h>

  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. void delay_ms(uint ms)
  5. {
  6.         uchar time;
  7.         while(ms--)
  8.         for(time=0;time<115;time++);       
  9. }


  10. void UART_sendOneByte(uchar dat)
  11. {
  12.         SBUF=dat;//將被發(fā)送的單字節(jié)數(shù)據(jù)放入串口SBUF數(shù)據(jù)發(fā)送緩沖器
  13.         while(TI==0);//等待SBUF緩沖器中的數(shù)據(jù)被發(fā)送完畢(發(fā)送完畢后TI被硬件寫1)
  14.         TI=0;//將TI位(發(fā)送完成標(biāo)志位)清零
  15. }

  16. void UART_sendEnter(void)
  17. {
  18.         UART_sendOneByte(0x0d);
  19.         UART_sendOneByte(0x0a);
  20. }

  21. void UART_sendstring(uchar *str)
  22. {
  23.         while(*str)
  24.         {
  25.                 UART_sendOneByte(*str);
  26.                 str++;               
  27.         }
  28. }


  29. void main( )
  30. {
  31. uchar temp=0;
  32.     TMOD=0x20;  //設(shè)置定時器T1為方式2
  33.     TH1=0xfd;  //波特率9600
  34.     TL1=0xfd;
  35.     SCON=0x50;       //設(shè)置串口為方式1接收,REN=1
  36.     PCON=0x00;       //SMOD=0
  37.     TR1=1;  //啟動T1
  38.     while(1)
  39.    {
復(fù)制代碼
串口通信Proteus仿真.zip (43.88 KB, 下載次數(shù): 80) RS485雙機通信程序.zip (28.13 KB, 下載次數(shù): 96)




評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:560110 發(fā)表于 2020-6-24 22:31 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:866258 發(fā)表于 2021-1-8 09:53 | 顯示全部樓層
不對啊,沒有用到485使能io口啊,單純就是串口發(fā)送和接收
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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