<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于I2C總線的銀行排隊系統(tǒng)接口設計

          基于I2C總線的銀行排隊系統(tǒng)接口設計

          作者: 時間:2013-04-19 來源:網(wǎng)絡 收藏

          3 軟件模擬的實現(xiàn)方法

          原理圖如圖4所示,由P3.4、P3.3模擬串行的SDA端及SCL輸出端,構(gòu)成模擬的IIC串行??偩€功能的實現(xiàn)除了簡單硬件連接,大部分功能通過軟件模擬來實現(xiàn),下面給出部分總線常用子程序,這些子程序通用性較好,基本適用于大部分IIC總線的芯片[2-3]。

          3.1 總線啟動、停止函數(shù)

          void IIC_Start(void)
          {
          IIC_SCL=1;
          IIC_Delay();
          IIC_SDA=1;
          IIC_Delay();
          IIC_SDA=0;
          IIC_Delay();
          IIC_SCL=0;
          IIC_Delay();
          }
          void IIC_Stop(void)
          {
          IIC_SDA=0;
          IIC_Delay();
          IIC_SCL=1;
          IIC_Delay();
          IIC_SDA=1;
          IIC_Delay();
          IIC_SCL=1;
          IIC_Delay();
          }

          3.2 從IIC器件指定位置讀若干字節(jié)

          bit RetBit;
          unsigned char i;
          IIC_Start(); /*啟動總線*/
          RetBit=IIC_Write_Byte(Device_Addr);
          /*發(fā)送器件從地址*/ if(RetBit==0)
          return(0);
          RetBit=IIC_Write_Byte(Mem_Addr);
          /*發(fā)送器件子地址*/ if(RetBit==0)
          return(0);
          IIC_Stop(); /*結(jié)束總線*/    IIC_Start(); /*重新啟動總線*/
          RetBit=IIC_Write_Byte(Device_Addr+1);
          if(RetBit==0)
          return(0);
          for(i=0;iNum-1;i++)
          {
          *DataPointer=IIC_Read_Byte(); /*接收數(shù)據(jù)*/
          IIC_Ack(0); /*發(fā)送應答位*/
          DataPointer++;
          }
          *DataPointer=IIC_Read_Byte(); /*接收數(shù)據(jù)*/
          IIC_Ack(1);
          IIC_Stop(); /*結(jié)束總線*/
          return(1);

          3.3 向IIC發(fā)送1字節(jié)函數(shù)

          bit Ack_Flag;
          unsigned char i;
          for(i=0;i8;i++) /*要傳送的數(shù)據(jù)長度為8位*/
          {
          IIC_SDA=(bit)((Datai)0x80);
          /*依次判斷待發(fā)送位高低*/
          IIC_Delay();
          IIC_SCL=1;
          /*置時鐘線為高,通知E2PROM開始接收數(shù)據(jù)位*/
          IIC_Delay();
          IIC_SCL=0;
          IIC_Delay();
          }
          IIC_SDA=1;
          /*8位數(shù)據(jù)發(fā)送完后釋放數(shù)據(jù)線,準備接收應答位*/
          IIC_Delay();
          IIC_SCL=1;
          IIC_Delay();
          if(IIC_SDA)
          Ack_Flag=0; /* E2PROM無應答*/    else
          Ack_Flag=1; /*數(shù)據(jù)成功發(fā)送*/
          IIC_SCL=0;
          IIC_Delay();
          return(Ack_Flag); /*返回E2PROM應答標志*/

          3.4 系統(tǒng)仿真

          經(jīng)過軟件分析后,即可利用keil c集成開發(fā)環(huán)境uVision2對用C語言編寫的程序進行編譯、調(diào)試,通過JTAG口將編譯好的程序燒寫到單片機中,完成所需功能。系統(tǒng)經(jīng)過仿真測試,得到入口處擺放機供儲戶索取排隊編號,打印編號;柜臺內(nèi)工作人員通過按鈕可以實現(xiàn)叫號;叫號后在大屏幕顯示上顯示并通過喇叭播放叫號信息;工作人員可以通過后臺進行系統(tǒng)的相關設置。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術(shù)專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();