新聞中心

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

        基于I2C總線的銀行排隊系統接口設計

        作者: 時間:2013-04-19 來源:網絡 收藏

        3 軟件模擬的實現方法

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

        3.1 總線啟動、停止函數

        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器件指定位置讀若干字節

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

        3.3 向IIC發送1字節函數

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

        3.4 系統仿真

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 衡南县| 昌平区| 色达县| 蓬莱市| 原平市| 通辽市| 屏东市| 盐亭县| 元氏县| 嘉善县| 麻栗坡县| 博兴县| 兴业县| 彰化县| 桦甸市| 正阳县| 霸州市| 来安县| 建平县| 沙洋县| 温宿县| 渑池县| 绥棱县| 榆树市| 迁西县| 河东区| 巴彦县| 轮台县| 汝阳县| 竹北市| 民县| 云霄县| 西畴县| 哈尔滨市| 水富县| 琼中| 上饶县| 营山县| 东乡族自治县| 齐齐哈尔市| 双峰县|