• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > AT89S51單片機并行I/O端口的擴展

    AT89S51單片機并行I/O端口的擴展

    作者: 時間:2009-11-03 來源:網絡 收藏

      1 引言

      單片機面向工業控制領域,控制功能強,在工業測控系統、智能儀表、智能通信產品、智能家用電器和智能終端設備等領域得到廣泛應用。最常用的80C51系列單片機有4個并行端口(P0,P1,P2,P3端口),但對稍復雜的應用系統,真正可供用戶使用的并行端口只有P1端口,且常因I2C和SPI的器件需占用P1端口,迫使用戶不得不并行端口以滿足實際需要。

      這里研究80C51系列單片機中的并行I/O端口的,采用并行可編程接口器件 擴展并行I/O端口,并在擴展的I/O端口上實現數碼管動態顯示。

      2 系統設計

      2.1 系統硬件設計

       接口方法(圖1):P0接的地址數據線AD0~AD7;單片機的ALE接8155的ALE;8155的CE與單片機的 P2.6相連接;8155的復位線RESET與單片機復位線RESET相連接;8155的RD和WR與的RD和WR一一對應相連;IO/M 和P2.7相連。

    AT89S51單片機并行I/O端口的擴展

      為節省I/O端口線,常使用數碼管動態顯示方式。將所有數碼管的a,b,c,d,e,f,g,sp引線并聯在一起,由一個8位I/O端口控制,而公共端由另一個I/O端口控制。動態方式顯示時,各數碼管分時輪流選通,在某一時刻只選通一位數碼--管,并送出相應的段碼,在另一時刻選通另一位數碼管。并送出相應的段碼。依此規律循環,即可使各位數碼管顯示將要顯示的字符。雖然這些字符是在不同的時刻分別顯示,但由于人眼存在視覺暫留效應,只要每位顯示間隔足夠短就可給人以同時顯示的感覺。

       8155的PB0~PB7接3個共陰極數碼管的a~dp引腳,PA0~PA2接3個共陰極數碼管的com端,B端口送段碼.A端口送位選通;共陰極數碼管的a~dp引腳分別接上拉電阻以提高數碼管顯示的亮度。系統硬件電路如圖1所示。

      2.2 系統軟件設計

      系統軟件采用匯編語言編寫,設計原理為LED數碼管動態掃描,8155初始化設置A端口,B端口為輸出端口,R5中查表項數為0,R3中為位選通碼,采用查表法查出段碼,送至8155的B端口,LED數碼管位選通碼送至A端口,延時,在最左邊的數碼管上顯示0;查表項數加1,位選通左移,查出段碼送至8155的B端口,位選通碼送至A端口,延時,在中間的數碼管上顯示1,3個數碼管輪流顯示循環往復。圖2為軟件流程。

    軟件流程

      3 設計及調試

      3.1

      是指用最少的元件組成的單片機可以工作的系統。對于80C51系列單片機,最小系統一般應包括:單片機、晶振電路、復位電路、顯示輸出等。

      3.1.1 最小系統電路的組成

      圖3為電路圖,其組成有:

    單片機最小系統電路圖

      (1)單片機:1片AT89S51;(2)晶振電路:典型的晶振取12 MHz,C2和C3選用30 μF的電容;(3)復位電路:具有上電復位和手動復位功能的復位電路,由電容串聯電阻并在電容上并接復位按鍵構成,由圖3并結合“電容電壓不能突變”的性質,可知,當系統上電或復位鍵按下后,RST引腳均會出現高電平,高電平持續時間由電路的RC值決定。典型的51單片機當RST引腳的高電平持續2個機器周期以上將復位。所以,適當組合RC的取值就可保證可靠復位。設計中C1取10μF,R2取1 kΩ;(4)對于31引腳(EA/Vpp),當接高電平時,單片機在復位后從內部ROM的0000H開始執行;當接低電平時,復位后直接從外部ROM的 0000H開始執行。此設計將程序燒寫到AT89S51內部ROM中,因此,31引腳(EA/Vpp)接高電平。(5)為在P1端口實現LED燈顯示, P1.7端口上外接發光二極管,發光二極管接3.6 kΩ的上拉電阻。

      3.1.2 單片機最小系統的調試

      對單片機最小系統進行測試:將P1.7引腳所接的LED二極管閃爍程序代碼燒寫到AT89S51單片機片內ROM中,在單片機最小系統電路板上插上單片機,接通電源,若發光二極管閃爍則說明最小系統電路工作正常,反之則需要檢查錯誤。

      3.2 系統電路的調試

      3.2.1 調試方法

      在最小系統電路中按照圖1完成并行I/O端口擴展的系統硬件電路。編寫系統軟件程序并在Keil C軟件環境下編譯、連接、調試程序,修改錯誤。用ISP編程器將實驗程序代碼寫入AT89S51單片機片內ROM中。在單片機系統硬件電路板上插上單片機,開機運行,若3個數碼管依次顯示“0”、“1”、“2”,則說明系統工作正常。

      3.2.2 調試中出現的問題及原因

      在調試初期,由于未考慮8155復位比單片機復位慢,一開始未加100 ms延時程序,系統運行時出現3位數碼管顯示均為“8.”。為找出發生此現象的原因,將數碼管改由AT89S51單片機P1口送段碼,P2口送位選通,將動態顯示的程序做相應修改,調試通過后用ISP編程器將代碼寫入AT89S51單片機片內ROM中,開機運行,3個數碼管動態顯示“0”、“1”、 “2”。此實驗現象說明8155器件工作不正常。按照圖1連線,核實連線及端口地址無誤后,再次用ISP編程器將實驗程序代碼寫入AT89S51單片機片內ROM中,開機運行,3個數碼管顯示均為“8.”。此現象說明8155器件工作不正常的原因不是硬件電路的問題。研究8155的特性參數后發現8155 復位比單片機復位慢,在系統初始化時存在時差。在系統復位后應加100 ms的延時,以保證8155完成復位工作。在設計實驗程序開始加100 ms延時程序,將實驗程序代碼寫入AT89S51單片機片內ROM中,開機運行,3個數碼管動態顯示“0”、“1”、“2”,達到設計目標。

      4 結論

      通過AT89S51與Intel 8155器件接口實現了并行I/O端口的擴展,實現了3個數碼管動態顯示。由實驗可知,采用8155擴展并行I/O端口方便、實用、成本低、且擴展的FO 端口可編程。由于Intel 8155內部自帶256B的SRAM和一個14位的加1計數器,因此在單片機外擴展8155不僅增加了并行I/O端口,同時豐富了SRAM與計數器等資源。值得注意的是8155復位比單片機復位慢,在程序開始應加延時程序,調整系統初始化時,應調整Intel 8155和單片機的復位時差。

    51單片機相關文章:51單片機教程


    單片機相關文章:單片機教程


    單片機相關文章:單片機視頻教程


    單片機相關文章:單片機工作原理


    上拉電阻相關文章:上拉電阻原理


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 巨鹿县| 太康县| 高青县| 循化| 鄂托克旗| 河曲县| 调兵山市| 辉县市| 涞水县| 利川市| 馆陶县| 盐山县| 扶余县| 泊头市| 资兴市| 阳西县| 普安县| 黎城县| 浦江县| 平山县| 敖汉旗| 奉节县| 吉水县| 蒲城县| 井研县| 唐山市| 井冈山市| 黑水县| 白山市| 天台县| 邵阳市| 正镶白旗| 内江市| 柘城县| 诏安县| 大荔县| 皋兰县| 嘉义市| 介休市| 柘城县| 溆浦县|