新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > DEI1016功能和原理簡介及其與單片機的接口設計

        DEI1016功能和原理簡介及其與單片機的接口設計

        作者: 時間:2012-06-01 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/171365.htm

        mov a,#d2h ;取字2的高8位

        movx @dptr,a ;把字2的高8位鎖入U3

        clr p3.4 ;打開U3、U4的輸出

        nop

        clr p1.4 ;字2數據裝入DEI1016

        nop

        setb p3.4

        setb p1.4

        用U1接收數據,應將DR1、DR2及TXR經與門U13接至U1的INT0,在INT0口產生中斷后,U1便執行讀操作,并通過RD和Y5控制U14、U15以讀入DR1、DR2及TXR的狀態。U2接收到數據或發送數據完畢后,即向U1的INT0口申請中斷,并在中斷程序中判斷DR1、DR2及TXR的狀態。TXR為低表明發送完畢,而DR1或DR2為低則表明已收到數據。此時可置P1.2(SEL)為低電平,同時也置P1.0(接DEI1016的OE1)或P1.1 ?接DEI1016的OE2?為低電平,以使字1的數據出現在數據總線上,而使P1.0、P1.1經U11異或后輸出以使U5、U6的G端為高電平,從而把數據鎖入U5、U6。由于RD分別與Y7、Y6相或后的輸出是與U5、U6的OE門相連接的,因此,U1 執行讀操作時,應先后打開U5、U6的OE門來把數據讀入。其接收程序如下:(以接收器1為例)。 DEI1016的兩路接收可能產生同時接收的現象。即在上述兩路共用一個中斷源時,如果某一路申請中斷已進入接收程序,那么另一路同時接收的數據就可能被屏蔽。解決方法是:進入中斷程序后,在接收數據過程中再查詢另一路DR的狀態。當然,如果每路單獨使用一個中斷源,效果將會更好。

        clr p1.2 ;置DEI1016的SEL=0,讀字1

        clr p1.0 ;置DEI1016的/OE1=0

        setb p1.1 ;置DEI1016的/OE2=1

        nop

        mov dptr,#e000h

        movx a,@dptr ;把字1的低8位讀入

        mov 10h,a

        mov dptr,#c000h

        movx a,@dptr ;把字1的高8位讀入

        mov 11h,a

        setb p1.2 ;置DEI1016的SEL=1,讀字2

        nop

        mov dptr,#e000h

        movx a,@dptr ;把字2的低8位讀入

        mov 12h,a

        mov dptr,#c000h

        movx a,@dptr ;把字2的高8位讀入

        mov 13h,a

        setb p1.0 ;置DEI1016的/OE1=1

        setb p1.1 ;置DEI1016的/OE2=1

        setb p1.2 ;置DEI1016的SEL=1

        4 結束語

        實際上,上述AT89C52與DEI1016的電路經改進也可以應用到其它16位數據總線的電路中,而如果用ISP器件替代鎖存器門電路,還可大大減小電路板的面積。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 湖南省| 六枝特区| 正镶白旗| 海晏县| 清丰县| 灵寿县| 扬中市| 都江堰市| 班戈县| 富民县| 南昌市| 长宁区| 昌平区| 波密县| 舟山市| 永寿县| 江山市| 革吉县| 河西区| 通河县| 新丰县| 昌黎县| 汶上县| 左贡县| 柞水县| 平山县| 汾西县| 乾安县| 长丰县| 灵璧县| 鱼台县| 靖西县| 永兴县| 伊川县| 昌邑市| 来安县| 玉树县| 北海市| 增城市| 正蓝旗| 筠连县|