新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PSD813F1及其接口編程技術

        PSD813F1及其接口編程技術

        作者: 時間:2012-03-17 來源:網絡 收藏

        3.1 硬件結構
        系統硬件結構如圖2所示,核心器件為80C196KC和PSD813F1,圖中簡化了復位等電路。

        80C196KC80c196kc為INTEL公司16位單片機。該單片機具有16位多路復用的地址/數據總線,工作于12MHz的時鐘頻率,系統主體程序采用C96語言設計,程序空間大小占用32K,系統設計要求采用非易失性存儲器進行數據存儲,另外需外擴SRAM用于數據緩存。程序存儲、數據存儲和數據緩存分別由PSD813F1的FLASH MEM、EEPROM和SRAM完成
        。 A/D轉換采用80C196KC自身的10位8路逐次比較型A/D,鍵盤/顯示接口芯片采用8279,與PC機通信采用MAXIM公司的MAX232用于RS-232通信,由MAX874經精密調整后給80C196KC提供4.096V電壓。8279的片選和地址譯碼由PSD813F1的FGPLD完成。
        3.2 軟件設計
        3.2.1 PSD813F1配置文件設計
        該電路在PSDSOFT(WSI公司提供的下載軟件)中的配置為:
        ·多路復用工作方式
        ·ALE高電平有效
        ·讀/寫控制選擇RD/WR
        PSD813F1以ABEL語言為硬件描述語言,在本電路中的設計方法為:
        (1)內部譯碼實現:
        fs0=!a15*!a14*!a13*!a12; /*fs為設計中FLASH MEM 的保留名 fs0地址空間為0000h~0fffh*/
        fs1=!a15*!a14*!a13*a12; /*fs1地址空間為1000h -->1fffh*/
        fs2=!a15*!a14*a13*!a12; /*fs2地址空間為2000h -->2fffh*/
        fs3=!a15*!a14*a13*a12; /*fs3地址空間為3000h -->3fffh*/
        ees0=!a15*a14*!a13*a12; /*ees為EEPROM的保留名, ees0地址空間為4000h-->4fffh*/
        ees1=!a15*a14*a13*!a12; /*ees1地址空間為5000h -->5fffh*/
        ees2=!a15*a14*a13*!a12; /*ees2地址空間為6000h -->6fffh*/
        ees3=!a15*a14*a13*a12;/*ees3地址空間為7000h -->7fffh*/
        rs0=a15*!a14*!a13*!a12*!a11*!a10; /*rs為SRAM 的保留名,地址空間為8000-83fffh*/
        csiop=a15*!a14*!a13*a12;/*csiop基地址為9000h*/
        2) 外部譯碼的實現:
        將PB的最低位端口設計為片選信號的設計方法為
        cs1 pin7; /*PB的0端口*/
        cs1=!a15 *a14*/a13*a12); /*8279的地址空間為 d000h-->dfffh*/
        3.2.2 程序設計
        程序設計語言為C96,其實現如下: 對SRAM的操作為:
        static const unsigned char *pointer_sram=0x8000; /*設置SRAM數據單元的基址指針*/
        pointer_sram=0xaa; /*將數據寫入基址單元*/
        pointer_sram[1]=0xbb; /*將數據寫入下一地址單元*/
        ……
        對EEPROM的操作為:
        static const unsigned char *pointer_ee=0x4000; /*設置EEPROM空間的基址指針*/
        pointer_ee=0xaa;
        …… /*延時等待,對EEPROM的單元寫入數 據時必須增添一定的時間延時*/
        pointer_ee[i]=0xbb; /*i為地址增量,即相對于基地 址的偏移量*/
        ……
        端口A、B的地址及各控制寄存器的地址由CSIOP的基地址加偏移地址來決定,本設計中PA.0用于為8279的A0提供地址信號。如不采用PSD813F1,則需在80C196KC和8279之間接74373用于地址鎖存輸出,采用PSD813F1則只需配置端口A的PA.0工作于地址鎖存工作方式,配置由A口的控制寄存器(占據一字節空間)決定,實現方法如下:
        static const unsigned char *csiop=0x9000;
        csiop[2]=0xfe; /*端口A的控制寄存器相對于 CSIOP基地址的偏移地址為02H;此時PA.0 在控制寄存器中的相應位為0,因此PA.0 工作于地址鎖存輸出方式,其他高7位相 應位為1,因此工作于MCU I/O方式*/ 對8279的初始化操作為:
        static const unsigned char *pointer_8279=0xd000h; /*基址為數據口地址*/
        pointer_8279[1]=0xd1;/*對命令端口寫入清除命令*/
        do{}
        whilepointer_8279[1]‖0x7f==0x7f); /*等待清除完成*/
        pointer 8279[1]=0x2a; /*送程序時鐘分頻常數*/pointer_
        8279[1]=0x08; /*寫鍵盤/顯示器工作方式命令*/
        pointer_8279[1]=0x90; /*寫顯示RAM命令*/
        pointer_8279=0x10;/*向數據口送入顯示數據0x10*/
        總之,本文通過設計該數據采集系統,表明PSD813F1芯片集FLASH MEM、EERPOM、SRAM、PLD等于一體,可代替電路設計中的程序存儲、數據存儲、數據緩存和譯碼等芯片,從而可使單片機系統大大簡化,一個實用系統可簡化為"兩片"系統,而其JTAG技術更是為該芯片的使用增添了便捷的設計和使用手段。

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 比如县| 桦南县| 海丰县| 深水埗区| 五台县| 梁山县| 伊宁市| 保德县| 宝兴县| 长治县| 昔阳县| 宁安市| 高邑县| 长海县| 灵丘县| 长治县| 石河子市| 南木林县| 乐山市| 涡阳县| 黄大仙区| 澄江县| 孟州市| 和龙市| 平安县| 恩平市| 南皮县| 浦县| 辉南县| 翁源县| 瓦房店市| 永宁县| 靖宇县| 东平县| 修武县| 三门峡市| 澄城县| 兴海县| 蒲城县| 临泽县| 高清|