色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AT89C2051單片機與MT8880接口設計

          AT89C2051單片機與MT8880接口設計

          作者: 時間:2012-03-22 來源:網(wǎng)絡 收藏

          軟件

          基于圖1電路,在軟件時,只需模擬的控制時序,用指令對P1口進行讀寫操作,控制芯片內(nèi)部的CRA、CRB等寄存器,從而實現(xiàn)對的發(fā)送/接收控制。在此,僅給出用C51編制的程序。

          3.1 發(fā)送程序

          程序執(zhí)行后,將以DTMF方式發(fā)送預存在數(shù)組W_BUF中的7位數(shù)碼(5135535)。
          #include reg51.h>
          #define uc unsigned char
          #define ui unsigned int
          /* 子函數(shù)(子程序)說明 */
          void initialize(void);
          void tran_init(void);
          void transmit(uc data *p,uc count);
          void delay(ui l);
          /* 主函數(shù)(主程序) */
          void main(void)
          { uc data w_buf[7];
          SP=0x5f;
          /* 預存數(shù)碼5135535 */
          w_buf[0]=5;
          w_buf[1]=1;
          w_buf[2]=3;
          w_buf[3]=5;
          w_buf[4]=5;
          w_buf[5]=3;
          w_buf[6]=5;
          initialize();
          tran_init();
          transmit(w_buf,7);
          initialize();
          for(;;);}
          /* 初始化子函數(shù) */
          void initialize(void)
          { P1=0x3f; /* 讀SR */
          P1=0x20; /* CRA=0000 */
          P1=0x20; /* CRA=0000 */
          P1=0x28; /* CRA=1000 */
          P1=0x20; } /* CRB=0000 */
          /* 發(fā)送初始化子函數(shù) */
          void tran_init(void)
          { P1=0x29; /* CRA=1001 */
          P1=0x21; } /* CRB=0001 */
          /* 發(fā)送操作子函數(shù) */
          void transmit(uc data *p,uc count)
          { uc i;
          for (i=0;icount;i++,p++)
          { P1=*p; /* 發(fā)送數(shù)碼 */
          delay(6000); /* 延時 */
          P1=0x3f; }}/* 讀SR */
          /* 延時子函數(shù) */
          void delay(ui l)
          { ui i;
          for (i=0;il;i++);}



          評論


          相關推薦

          技術專區(qū)

          關閉