新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > AD7543與89C2051實現串行接口的設計

        AD7543與89C2051實現串行接口的設計

        作者: 時間:2012-04-18 來源:網絡 收藏

        實現的設計

        介紹12位串行輸入的數-模轉換器通過的P1口實現的方法。
        關鍵詞:D/A轉換器,單片機,
          
        1 引言
          是美國AD公司生產的12位CMOS單片串行輸入的數模轉換器(DAC)。它是一種專為串行接口而設計的精密乘法型DAC。其數字數據由高位到低位逐次一位一位地輸入。AD7543的主要特性與技術指標:

        分辨率    12位

        非線性誤差 ±1/2LSB

        輸入方式 串行

        串行加載 正或負選通進行

        初始化 非同步清除輸入

        工作電壓 +5V

        最大功耗 400mW

          AD7543的片內邏輯電路由12位串行輸入并行輸出移位寄存器(寄存器A)和12位DAC輸入寄存器(寄存器B)組成。出現在AD7543的SRI腳上的數據,在選通輸入信號STB1、STB2或STB4的上升沿或STB3的下降沿(由用戶選擇)情況下,定時地把SRI腳上的串行數據裝入寄存器A,一旦寄存器A裝滿,在加載脈沖的控制下,寄存器A的數據便裝入寄存器B。

        2 接口方式
        是一種高性能單片機,與MCS51系列指令高度兼容,由于無專用的串行數據接口,只能通過可編程的I/O腳和相應的軟件,實現與AD7543的接口。從圖1可知,P1.0為串行數據輸出口,它與AD5743的SRI相連;AD7543內部寄存器A四個控制輸入端之一的STB1與P1.1相連作為接收數據的脈沖,STB2、STB4接地,STB3接+5V;AD7543的寄存器B清零輸入CLR與P1.3相連;寄存器B的兩個控制加載輸入端LD1、LD2分別接地和接P1.2。硬件電路連接完成以后,剩下的就是軟件工作。


          51系列豐富的指令系統,給串行輸入的D/A轉換帶來了極大的方便。假設12位的數據分別放在單片機R2、R3寄存器中,通過對單片機的累積器A、進位標志和P1口的操作,就可實現串行數據的傳輸。下面為D/A轉換子程序清單:

        STATR:      CLR   P1.3

        CLR P1.3

        SETB P1.2

        CLR C

        CLR A

        MOVA, R2

          MOV R7, #4

        LOOP1: PLC A

        DJNE R7, LOOP1

        MOV R7, #4

           LOOP2:      LCALL  PRD

        DJNE R7, LOOP2

        CLR      C

        CLR  A

        MOV  A, R3

          MOV R7, #8

        LOOP3:LCALL PRD

        DJNE R7,LOOP3

        CPL P1.2裝入數據,啟動轉換

         RET

        讀數據子程序:

        PRD: RLC A

        MOV P1.0,C

        SETB P1.1

        CPL P1.1

        RET
          以上給出的程序,可單獨作為調用AD7543轉換器與51系列單片機串行接口的子程序。
        3 結束語
          這種接口方法充分利用了單片機自身的軟、硬件資源,簡化了電路設計。但因數據是被逐個讀入的,而且還與轉換器的數據位數有關,故這種接口方式僅適用于對時間要求不高場合。

        1 涂時亮等.單片機軟件設計技術.科學技術方獻出版社重慶分社

        2 AT89C系列單片機技術手冊.北京威立姆電子技術有限責任公司



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 浦城县| 聂拉木县| 平度市| 贡山| 江北区| 临朐县| 石柱| 淮阳县| 乌鲁木齐市| 大理市| 汾阳市| 介休市| 永丰县| 上栗县| 宜宾县| 喜德县| 铜梁县| 邵阳市| 南昌市| 商都县| 镇巴县| 阆中市| 仁布县| 中江县| 水富县| 莱阳市| 台湾省| 喜德县| 奉新县| 察雅县| 安阳县| 延川县| 嘉兴市| 阿克陶县| 东明县| 中西区| 西乡县| 特克斯县| 山东省| 河南省| 兴山县|