機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
一種C51單片機(jī)并行口擴(kuò)展設(shè)計(jì)及應(yīng)用
一種C51單片機(jī)并行口擴(kuò)展設(shè)計(jì)及應(yīng)用
 更新時(shí)間:2009-10-24 15:53:45  點(diǎn)擊數(shù):0
【字體: 字體顏色

1  引言
    C51單片機(jī)是我們生活中最常用的系列,MCS-51系列單片機(jī)有4個(gè)并行口(P0,P1,P2,P3口),但對一個(gè)稍微復(fù)雜的應(yīng)用系統(tǒng)來說,真正可供用戶使用的并行口,只有P1口可用,況且常常因擴(kuò)展I2C和SPI的器件需占用某些P1口,迫使用戶不得不擴(kuò)展并行口以滿足實(shí)際的需要。習(xí)慣上,常用的并行口接口芯片有8255、8155,這兩種芯片功能比較齊全,可以使用在相對比較復(fù)雜的系統(tǒng)中,但如是對一般的系統(tǒng)而言,這些功能往往閑置不用。那么就可以選用一些本來閑置不用的口線作為選通信號(hào)來進(jìn)行并行口的擴(kuò)展,這樣就能充分利用單片機(jī)有限的I/O資源,在本設(shè)計(jì)中是將P1口擴(kuò)展成一個(gè)或幾個(gè)8位并行口,在每一個(gè)八位口上接入8個(gè)發(fā)光二極管做為輸出,二極管是做開關(guān)量來使用的,在這里設(shè)計(jì)了跑馬燈和流水燈程序,做到對開關(guān)量的開斷控制;配合開關(guān)量的控制筆者設(shè)計(jì)了一個(gè)共陽LED數(shù)碼管,用來顯示當(dāng)前發(fā)光二極管發(fā)亮的序號(hào),做到更加直觀的雙重控制效果,然后再將P0口通過D/A轉(zhuǎn)換器和一放大器輸出一個(gè)模擬信號(hào),其結(jié)果可以通過示波器看出。這樣整個(gè)系統(tǒng)即有了數(shù)字信號(hào)輸出和模擬信號(hào)輸出,也有數(shù)碼管顯示功能,實(shí)用性能大提高了。

2  基于89C51的系統(tǒng)硬件設(shè)計(jì)
2.1  并行口的擴(kuò)展的電路設(shè)計(jì)
    眾所周知,C51系列的單片機(jī)都有四個(gè)I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我們通常僅僅使用P1口作為并行口,而令其余口(P2、P3)處于閑置狀態(tài),所以這次設(shè)計(jì),我們就是使用閑置不用的P3口做為選能信號(hào)線來將P1口進(jìn)行并行口擴(kuò)展。
(1) 種方式的并行口擴(kuò)展優(yōu)點(diǎn)
     連線簡單;
    不占用存儲(chǔ)器空間;
(2) 編程也方便靈活。但也有很大的缺點(diǎn)
    并行口擴(kuò)展能力有限,(如使用74LS573(74LS373)且不進(jìn)行驅(qū)動(dòng)處理,則最多可擴(kuò)展4個(gè)同樣類型的并行輸出端口,當(dāng)然還需要與之對應(yīng)的四個(gè)選通信號(hào)。)
    如擴(kuò)展較多,選通信號(hào)占用并行口位數(shù)太多,例如欲擴(kuò)展8個(gè)并行輸出端口,則需要8個(gè)選能信號(hào),此時(shí),僅選能信號(hào)就占用了一個(gè)8位并行口,這對在I/O端口線有限的單片機(jī)系統(tǒng)中,如此浪費(fèi)資源的現(xiàn)象是不能容忍的。在本次的設(shè)計(jì)中,采用芯片74HC573(帶三態(tài)輸出的八進(jìn)制透明D型鎖存器)對P1口進(jìn)行了一個(gè)8位并行口的擴(kuò)展,選通信號(hào)選用P3口的P3.3引腳。原理圖如圖1所示:

圖1     PI口擴(kuò)展電路


2.2  擬信號(hào)輸出的電路設(shè)計(jì)
    模擬信號(hào)的輸出需要用到D/A轉(zhuǎn)換器,這里我使用最常用的8位的D/A轉(zhuǎn)換器DAC0832來轉(zhuǎn)換數(shù)字電壓信號(hào)。因DAC0832是并行D/A轉(zhuǎn)換集成電路,其輸出為電流型,在使用時(shí),必須額外增加一個(gè)運(yùn)算放大器,才能得到電壓信號(hào),在本次電路中使用了1個(gè)LM741放大器來放大信號(hào)輸出,LM741是一個(gè)普通的單操作的放大器,具有輸入電壓范圍大,短路電壓保護(hù),高增益和不需頻率補(bǔ)償?shù)葍?yōu)點(diǎn)。DAC0832的片選端口與單片機(jī)的P2.2相連,XFER和WR2接地,使之一直處于使能狀態(tài),即輸入數(shù)據(jù)寄存器中的數(shù)字信號(hào)可直接轉(zhuǎn)換為模擬信號(hào)。D/A轉(zhuǎn)換電路的輸出是一個(gè)周期的正弦波,通過外接示波器可以清淅的看到。另外模擬信號(hào)的輸出引在一個(gè)外接端子上,可以與其它系統(tǒng)相連接,做到通用性的效果。D/A轉(zhuǎn)換原理圖如圖2所示:

圖2     D/A轉(zhuǎn)換


2.3  靜態(tài)數(shù)碼管顯示的電路設(shè)計(jì)
    數(shù)碼管顯示器是各種儀器設(shè)備所不可缺少的重要組成部分,是儀器設(shè)備與人對話的一種重要形式,它告訴人們機(jī)器的運(yùn)行狀態(tài)、數(shù)據(jù)處理結(jié)果、提示操作人員下一步要進(jìn)行的操作等。按照顯示方法的不同,可分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種,這里我們所設(shè)計(jì)的電路顯示是屬于靜態(tài)顯示那種,是兩位靜態(tài)數(shù)碼管顯示,其主要的功能是顯示當(dāng)前發(fā)光LED的序號(hào),比如如果當(dāng)前是L1燈在亮的話,數(shù)碼管將顯示11,是L2燈亮,數(shù)碼管顯示22字樣等。電路的設(shè)計(jì)使用2個(gè)8位的移位寄存器(74HC164),和兩個(gè)八段的LED數(shù)碼管(共陽的)加上2個(gè)8×330Ω的排阻構(gòu)成。靜態(tài)數(shù)碼管顯示的優(yōu)點(diǎn)在于,編寫程序相對比較簡單,一旦將欲顯示的數(shù)據(jù)發(fā)送出去,只要當(dāng)前顯示的數(shù)據(jù)沒有變化,就無須理睬它。不足之處在于,如果顯示的位數(shù)太多,硬件的開銷和電源的功耗問題將會(huì)很嚴(yán)重(比如這里,只需顯示兩位,就需要用到兩塊74HC164和2個(gè)排阻)。電路原理圖如圖3所示:

圖3     顯示電路


2.4  電源部分電路的設(shè)計(jì)
    整個(gè)電路系統(tǒng)使用9V~12V的直流電源供電,故使用一個(gè)拔碼開關(guān)和一個(gè)二極管,以起保護(hù)作用,這里拔碼開關(guān)只起到電源開關(guān)的作用。由于CPU電源為5V,所以使用L7805三端穩(wěn)壓來供CPU電源,電源指示燈一個(gè)。電源部分電路圖如圖4所示:

圖4     電源電路


2.5  復(fù)位部分電路設(shè)計(jì)
    本電路的復(fù)位電路是用一個(gè)復(fù)位芯片MAX706P來設(shè)計(jì)的,并帶有復(fù)位按鈕一個(gè)。這里復(fù)位是低電平有效的,有手動(dòng)復(fù)位按鈕,當(dāng)程序跑飛或無響應(yīng)時(shí)可以選用手動(dòng)復(fù)位。復(fù)位信號(hào)來自于CPU的P22口。復(fù)位電路原理圖如圖5所示。

圖5     復(fù)位電路


3  系統(tǒng)軟件部分設(shè)計(jì)與應(yīng)用
    程序已經(jīng)調(diào)試通過,整個(gè)程序?qū)崿F(xiàn)的功能如下:
    P1口的八位擴(kuò)展,控制8個(gè)開關(guān)LED指示燈,程序?qū)嶒?yàn)了對這8個(gè)指示燈的開關(guān)跑馬控制,實(shí)驗(yàn)程序可以編寫從L1至L8的循環(huán)發(fā)亮,在每個(gè)發(fā)光二極管發(fā)光的同時(shí),數(shù)碼管顯示當(dāng)前發(fā)亮LED的序號(hào),比如11、22、33等等。也可讓每個(gè)二極管閃爍,可以規(guī)定閃爍時(shí)間為半秒鐘或更長,然后再在每一個(gè)LED指示燈閃爍的同時(shí),讓LED數(shù)碼管顯示當(dāng)前閃爍的指示燈的序號(hào),比如,L1燈閃爍時(shí),數(shù)碼管顯示11字樣,L2燈閃爍時(shí),數(shù)碼管顯示22字樣等等。在數(shù)模轉(zhuǎn)換這一子函數(shù)的編寫上,是使用指針數(shù)組來寫的,DAC0832實(shí)現(xiàn)DA的轉(zhuǎn)換的芯片,實(shí)現(xiàn)的功能是輸出一正弦波模擬信號(hào),當(dāng)在端子口接一示波器時(shí),示波器將輸出一正弦波圖形。主程序流程圖如(圖6)所示。以上所述是整個(gè)系統(tǒng)的功能,所有的程序都已經(jīng)通過調(diào)試試驗(yàn),實(shí)驗(yàn)證明是可行的。

4  結(jié)束語
    整個(gè)系統(tǒng)的軟件已經(jīng)完全通過調(diào)試,證明是切實(shí)可行的,整個(gè)系統(tǒng)的硬件設(shè)計(jì)是本著單片機(jī)系統(tǒng)設(shè)計(jì)的簡單化原則來設(shè)計(jì),顯的簡煉有序,軟件編寫也非常簡單易懂。本系統(tǒng)設(shè)計(jì)比較適合于在小型系統(tǒng)中應(yīng)用。

  • 上一篇: 用AT89C2051設(shè)計(jì)超聲波測距儀
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1