第8章 單片機(jī)IO擴(kuò)展及應(yīng)用_第1頁(yè)
第8章 單片機(jī)IO擴(kuò)展及應(yīng)用_第2頁(yè)
第8章 單片機(jī)IO擴(kuò)展及應(yīng)用_第3頁(yè)
第8章 單片機(jī)IO擴(kuò)展及應(yīng)用_第4頁(yè)
第8章 單片機(jī)IO擴(kuò)展及應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩91頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

“十二五”職業(yè)教育國(guó)家規(guī)劃教材單片機(jī)原理及接口技術(shù)(第2版)可編程通用并行接口8255可編程的多功能接口8155鍵盤/顯示控制寄存器8279ADC0809與DAC0832的接口技術(shù)

單片機(jī)控制步進(jìn)電機(jī)接口技術(shù)單片機(jī)控制直流電機(jī)的接口技術(shù)單片機(jī)與字符型LCD顯示器的接口技術(shù)第

8

單片機(jī)I/O擴(kuò)展及應(yīng)用

本章內(nèi)容SingleChipMicrocomputer

8255A的組成與接口信號(hào)8.1可編程通用并行接口82558255A的組成與接口信號(hào)(1)三個(gè)數(shù)據(jù)端口A,B,C這三個(gè)端口均可看作是I/O口,但它們的結(jié)構(gòu)和功能也稍有不同。A口:是一個(gè)獨(dú)立的8位I/O口,它的內(nèi)部有對(duì)數(shù)據(jù)輸入/輸出的鎖存功能。B口:也是一個(gè)獨(dú)立的8位I/O口,僅對(duì)輸出數(shù)據(jù)的鎖存功能。C口:可以看作是一個(gè)獨(dú)立的8位I/O口;也可以看作是兩個(gè)獨(dú)立的4位I/O口。也是僅對(duì)輸出數(shù)據(jù)進(jìn)行鎖存。8255A的組成與接口信號(hào)(2)A組和B組的控制電路這是兩組根據(jù)CPU命令控制8255A工作方式的電路,這些控制電路內(nèi)部設(shè)有控制寄存器,可以根據(jù)CPU送來的編程命令來控制8255A的工作方式,也可以根據(jù)編程命令來對(duì)C口的指定位進(jìn)行置/復(fù)位的操作。A組控制電路用來控制A口及C口的高4位;B組控制電路用來控制B口及C口的低4位。8255A的組成與接口信號(hào)(3)數(shù)據(jù)總線緩沖器8位的雙向的三態(tài)緩沖器。作為8255A與系統(tǒng)總線連接的界面,輸入/輸出的數(shù)據(jù),CPU的編程命令以及外設(shè)通過8255A傳送的工作狀態(tài)等信息,都是通過它來傳輸?shù)摹#?)讀/寫控制邏輯讀/寫控制邏輯電路負(fù)責(zé)管理8255A的數(shù)據(jù)傳輸過程。它接收片選信號(hào)及系統(tǒng)讀信號(hào)、寫信號(hào)、復(fù)位信號(hào)RESET,還有來自系統(tǒng)地址總線的口地址選擇信號(hào)A0和A1。8255A的引腳功能(1)面向CPU的引腳信號(hào)及功能D0-D7:8位,雙向,三態(tài)數(shù)據(jù)線,用來與系統(tǒng)數(shù)據(jù)總線相連;RESET:復(fù)位信號(hào),高電平有效,輸入,用來清除8255A的內(nèi)部寄存器,并置A口,B口,C口均為輸入方式;:片選,輸入,用來決定芯片是否被選中。:讀信號(hào),輸入,控制8255A將數(shù)據(jù)或狀態(tài)信息送給CPU。:寫信號(hào),輸入,控制CPU將數(shù)據(jù)或控制信息送到8255A。A1,A0:內(nèi)部口地址的選擇,輸入。這兩個(gè)引腳上的信號(hào)組合決定對(duì)8255A內(nèi)部的哪一個(gè)口或寄存器進(jìn)行操作。8255A的引腳功能(1)面向CPU的引腳信號(hào)及功能D0-D7:8位,雙向,三態(tài)數(shù)據(jù)線,用來與系統(tǒng)數(shù)據(jù)總線相連;RESET:復(fù)位信號(hào),高電平有效,輸入,用來清除8255A的內(nèi)部寄存器,并置A口,B口,C口均為輸入方式;:片選,輸入,用來決定芯片是否被選中。:讀信號(hào),輸入,控制8255A將數(shù)據(jù)或狀態(tài)信息送給CPU。:寫信號(hào),輸入,控制CPU將數(shù)據(jù)或控制信息送到8255A。A1,A0:內(nèi)部口地址的選擇,輸入。這兩個(gè)引腳上的信號(hào)組合決定對(duì)8255A內(nèi)部的哪一個(gè)口或寄存器進(jìn)行操作。返回8255A的引腳功能(2)面向外設(shè)的引腳信號(hào)及功能PA0~PA7:A組數(shù)據(jù)信號(hào),用來連接外設(shè);PB0~PB7:B組數(shù)據(jù)信號(hào),用來連接外設(shè);PC0~PC7:C組數(shù)據(jù)信號(hào),用來連接外設(shè)或者作為控制信號(hào)。8255A的工作方式和控制字(1)8255A有三種工作方式,用戶可以通過編程來設(shè)置。方式0:簡(jiǎn)單輸入/輸出——查詢方式;A,B,C三個(gè)端口均可。方式1:選通輸入/輸出——中斷方式;A,B,兩個(gè)端口均可。

方式2:雙向輸入/輸出——中斷方式;只有A端口才有。工作方式介紹(1)方式0方式0是一種簡(jiǎn)單的輸入/輸出方式,沒有規(guī)定固定的應(yīng)答聯(lián)絡(luò)信號(hào),可用A,B,C三個(gè)口的任一位充當(dāng)查詢信號(hào),其余I/O口仍可作為獨(dú)立的端口和外設(shè)相連。方式0的應(yīng)用場(chǎng)合有兩種:一種是同步傳送;一種是查詢傳送。工作方式介紹(2)方式1方式1是一種選通I/O方式,A口和B口仍作為兩個(gè)獨(dú)立的8位I/O數(shù)據(jù)通道,可單獨(dú)連接外設(shè),通過編程分別設(shè)置它們?yōu)檩斎牖蜉敵?。而C口則要有6位(分成兩個(gè)3位)分別作為A口和B口的應(yīng)答聯(lián)絡(luò)線,其余2位仍可工作在方式0,可通過編程設(shè)置為輸入或輸出。工作方式介紹(3)方式2方式2為雙向選通I/O方式,只有A口才有此方式。這時(shí),C口有5根線用作A口的應(yīng)答聯(lián)絡(luò)信號(hào),其余3根線可用作方式0,也可用作B口方式1的應(yīng)答聯(lián)絡(luò)線。方式2:就是方式1的輸入與輸出方式的組合,各應(yīng)答信號(hào)的功能也相同。而C口余下的PC0~PC2正好可以充當(dāng)B口方式1的應(yīng)答線,若B口不用或工作于方式0,則這三條線也可工作于方式0。8255A的控制字(1)控制字格式8255A的控制字(2)C口的置位/復(fù)位功能實(shí)訓(xùn)8:用8255設(shè)計(jì)交通信號(hào)燈管理仿真

1.功能說明模擬一個(gè)十字路口東南西北四個(gè)方向,每個(gè)方向分別設(shè)置3盞發(fā)光二極管(紅,綠,黃),要求如下:東西紅燈亮,南北綠燈亮10秒后;東西黃燈閃5次,南北綠燈亮;東西綠燈亮,南北紅燈亮10秒后;東西綠燈亮,南北黃燈閃5次。2.硬件設(shè)計(jì)單片機(jī)的P0口與8255的數(shù)據(jù)口D0-D7連接,同時(shí)P0口也作為地址總線通過74HC373與8255的A1,A0連接,利用8255的PA口和PB口連接發(fā)光二極管。ORG0000HJMPMAINORG0030HMAIN:MOVSP,#60HMOVA,#80H;8255初始化,A口及B口方式0輸出MOVDPTR,#0FEFFH;控制口地址MOVX@DPTR,Abegin:MOVA,#75H;東西紅燈亮、南北綠燈亮程序MOVDPTR,#0FEFCH;PA口MOVX@DPTR,AMOVA,#0FDHMOVDPTR,#0FEFDH;PB口MOVX@DPTR,ACALLdelay1;延時(shí)30秒MOVR3,#05H;東西黃燈閃5次、南北綠燈亮程序ewy:MOVA,#0F3HMOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,#0FCHMOVDPTR,#0FEFDHMOVX@DPTR,ACALLDelay2MOVA,#0F7HMOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,#0FDHMOVDPTR,#0FEFDHMOVX@DPTR,ACALLDelay2DJNZR3,ewyMOVA,#0AEH;東西綠燈亮、南北紅燈亮程序MOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,0FBHMOVDPTR,#0FEFDHMOVX@DPTR,ACALLdelay1;延時(shí)30秒MOVR3,#5H;南北黃燈閃5次、東西綠燈亮程序nsy:MOVA,#9EHMOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,#0F7HMOVDPTR,#0FEFDHMOVX@DPTR,ACALLDelay2MOVA,#0BEHMOVDPTR,#0FEFCHMOVX@DPTR,AMOVA,#0FFHMOVDPTR,#0FEFDHMOVX@DPTR,ACALLDelay2DJNZR3,nsyJMPbegindelay1:movr7,#250;30秒延時(shí)子程序l1:movr6,#200l2:movr5,#200l3:djnzr5,l3

djnzr6,l2

djnzr7,l1retdelay2:movr7,#8;閃爍延時(shí)子程序l4:movr6,#200l5:movr5,#200l6:djnzr5,l6

djnzr6,l5

djnzr7,l4retEND

8.2可編程的多功能接口8155返回8.2.18155的組成及接口信號(hào)8155的組成及接口信號(hào)

1.內(nèi)部RAM8155有256字節(jié)單元的內(nèi)部RAM數(shù)據(jù)存儲(chǔ)器,供用戶作數(shù)據(jù)緩沖器等使用。2.定時(shí)器8155還有一個(gè)14位的定時(shí)器,該定時(shí)器有一個(gè)計(jì)數(shù)器脈沖輸入端TIMERIN與定時(shí)器輸出端TIMEROUT。定時(shí)器輸入和定時(shí)器輸出分別用于輸入計(jì)數(shù)器的脈沖信號(hào)、輸出矩形波或脈沖波。3.3個(gè)通道8155有3個(gè)通道A、B、C與外設(shè)連接,其中A、B通道有8個(gè)引腳與外設(shè)連接,C通道口有6個(gè)引腳。C口的6個(gè)引腳常用于6位數(shù)據(jù)的輸入與輸出,或應(yīng)答方式的通信線。8155的組成及接口信號(hào)4.與CPU連接部分(1)地址/數(shù)據(jù)總線AD0~AD7:分時(shí)的傳送地址與數(shù)據(jù)信息。(2)控制總線CBCPU要對(duì)8155的RAM、I/O口(A、B、C口)進(jìn)行讀、寫、片選等操作,控制線為片選、復(fù)位、讀、寫等信號(hào)。RST:復(fù)位信號(hào)輸入端,高電平有效。復(fù)位后,3個(gè)I/O口均為輸入方式。AD0~AD7:三態(tài)的地址/數(shù)據(jù)總線。與單片機(jī)的低8位地址/數(shù)據(jù)總線(P0口)相連。單片機(jī)與8155之間的地址、數(shù)據(jù)、命令與狀態(tài)信息都是通過這個(gè)總線口傳送的。:讀選通信號(hào),控制對(duì)8155的讀操作,低電平有效。:寫選通信號(hào),控制對(duì)8155的寫操作,低電平有效。:片選信號(hào)線,低電平有效。8155的組成及接口信號(hào)IO/:8155的RAM存儲(chǔ)器或I/O口選擇線。當(dāng)IO/=0時(shí),則選擇8155的片內(nèi)RAM,AD0~AD7上地址為8155中RAM單元的地址(00H~FFH);當(dāng)IO/=1時(shí),選擇8155的I/O口,AD0~AD7上的地址為8155I/O口的地址。ALE:地址鎖存信號(hào)。8155內(nèi)部設(shè)有地址鎖存器,在ALE的下降沿將單片機(jī)P0口輸出的低8位地址信息及,IO/的狀態(tài)都鎖存到8155內(nèi)部鎖存器。因此,P0口輸出的低8位地址信號(hào)不需外接鎖存器。PA0~PA7:8位通用I/O口,其輸入、輸出的流向可由程序控制。PB0~PB7:8位通用I/O口,功能同A口。PC0~PC5:有兩個(gè)作用,既可作為通用的I/O口,也可作為PA口和PB口的控制信號(hào)線,這些可通過程序控制。TIMERIN:定時(shí)/計(jì)數(shù)器脈沖輸入端。TIMEROUT:定時(shí)/計(jì)數(shù)器輸出端。VCC:+5V電源。8155的命令狀態(tài)字

工作方式控制字

狀態(tài)控制字8155的定時(shí)/計(jì)數(shù)器8155內(nèi)部的定時(shí)/計(jì)數(shù)器實(shí)際上是一個(gè)14位的減法計(jì)數(shù)器,它對(duì)TIMERIN端輸入脈沖進(jìn)行減1計(jì)數(shù),當(dāng)計(jì)數(shù)結(jié)束(即減1計(jì)數(shù)“回0”)時(shí),由TIMEROUT端輸出方波或脈沖。當(dāng)TIMERIN接外部脈沖時(shí),為計(jì)數(shù)方式;接系統(tǒng)時(shí)鐘時(shí),可作為定時(shí)方式。

8155與MCS-51單片機(jī)的連接8.3鍵盤/顯示控制寄存器8279

8279的組成8279的接口信號(hào)8279的接口信號(hào)D0~D7:數(shù)據(jù)總線,用于傳送單片機(jī)和8279之間的數(shù)據(jù)、命令或狀態(tài)信息。CLK:外部時(shí)鐘輸入,作于產(chǎn)生內(nèi)部工作時(shí)序。8279內(nèi)部有一個(gè)可編程的5位計(jì)數(shù)器,對(duì)外部時(shí)鐘進(jìn)行2~31分頻,產(chǎn)生100KHz的內(nèi)部定時(shí)信號(hào)。RESET:復(fù)位信號(hào),高電平有效。當(dāng)8279復(fù)位后,8279工作于左入、16位LED顯示,譯碼鍵盤掃描,雙鍵互鎖,外部時(shí)鐘分頻為31。/CS:選信號(hào),低電平有效。當(dāng)/CS有效時(shí),允許對(duì)8279進(jìn)行讀、寫操作A0:緩沖器地址。A0用于標(biāo)識(shí)單片機(jī)和8279交換的信息特征,當(dāng)A0=1時(shí),寫入8279的信息為命令,讀出的是狀態(tài);當(dāng)A0=0時(shí),寫入和讀出的信息均為數(shù)據(jù)。/RD、/WR:讀、寫控制信號(hào)。IRQ:中斷請(qǐng)求(InterruptRequest)。在鍵盤方式時(shí),當(dāng)FIFORAM中有數(shù)據(jù)時(shí),IRQ變?yōu)楦唠娖剑?dāng)讀FIFORAM時(shí),IRQ變?yōu)榈碗娖?,讀一次后,若FIFORAM中仍有數(shù)據(jù),IRQ重新變?yōu)楦唠娖?;在傳感器方式,?dāng)檢測(cè)到一個(gè)傳感器變化時(shí),IRQ變?yōu)楦唠娖?。Vss、Vcc:數(shù)字地和電源引腳。8279的接口信號(hào)SL0~SL3(Pin32~Pin35):掃描線(ScanLine):掃描線用于對(duì)鍵盤和對(duì)LED顯示器的位進(jìn)行掃描。RL0~RL7(Pin38、Pin39、Pin1、Pin2、Pin5~Pin8):反饋輸入線(ReturnLine)。RL0~RL7為輸入引腳,外接鍵盤或傳感器陣列,內(nèi)部有上拉電阻。當(dāng)有鍵閉合時(shí),8279通過組合RL0~RL7和SL0~SL3的狀態(tài)可以確定閉合所在的行和列,并把閉合鍵的鍵位置送入鍵盤FIFORAM中,同時(shí)設(shè)置IRQ為高電平。SHIFT(Pin36)線:SHIFT為輸入引腳,內(nèi)部有上拉電阻,外部常接一個(gè)獨(dú)立的開關(guān)按鍵,類似于計(jì)算機(jī)鍵盤上的換檔鍵(SHIFT),8279可以直接連接64個(gè)的開關(guān)按鍵,通過SHIFT線,可以將按鍵數(shù)量擴(kuò)充到128個(gè)。SHIFT的狀態(tài)會(huì)被記錄在FIFORAM中。CNTL(Pin37)控制線(Control):與SHIFT類似,通過CNTL也可以擴(kuò)充按鍵數(shù)量。SHIFT和CNTL共有4種組合,通過SHIFT和CNTL可使8279連接的按鍵數(shù)量增加到256個(gè)。OUTA3~OUTA0、OUTB3~OUTB0:顯示數(shù)據(jù)段碼(字形碼)輸出線。8279工作時(shí),由OUTA3~OUTA0、OUTB3~OUTB0輸出顯示數(shù)據(jù)的段碼,OUTA3對(duì)應(yīng)8段LED的dp,OUTB0對(duì)應(yīng)8段LED的a,由SL0~SL3輸出顯示的位,兩者配合實(shí)現(xiàn)8位或16位LED的動(dòng)態(tài)顯示。圖8-148279引腳圖/BD(pin23)消隱輸出線(BlankDisplay),低電平有效。當(dāng)顯示器切換或使用消隱命令時(shí),輸出為低。8279的操作命令1.命令字命令特征位:D7D6D5=000D4,D3位:用來設(shè)定顯示(Display)方式,定義如下:00:8個(gè)字符顯示,從左邊輸入。01:16個(gè)字符顯示,從左邊輸入。10:8個(gè)字符顯示,從右邊輸入。11:16個(gè)字符顯示,從右邊輸入。8279的操作命令2.時(shí)鐘編程命令命令特征位:D7D6D5=001。D4~D0位(PPPPP)為分頻系數(shù),可在2~31中進(jìn)行選擇。內(nèi)部時(shí)鐘頻率控制著掃描時(shí)間和鍵盤去抖動(dòng)時(shí)間的長(zhǎng)短,當(dāng)內(nèi)部時(shí)鐘為100KHz時(shí),則掃描時(shí)間為5.1ms,去抖動(dòng)時(shí)間為10.3ms。例如,設(shè)外部時(shí)鐘頻率為1MHz,則要產(chǎn)生100KHz的內(nèi)部定時(shí)信號(hào),需要進(jìn)行10分頻,即PPPPP=01010B=10,此時(shí)的時(shí)鐘命令字為:2AH8279的操作命令3.讀FIFORAM命令命令特征位:D7D6D5=010。在傳感器方式時(shí),在CPU讀FIFORAM之前,必須用這條命令設(shè)定要讀出的傳感器RAM地址。由于傳感器RAM的容量為8字節(jié),因此,需要用命令字中的3位二進(jìn)制代碼AAA指定地址。命令字中的AI為自動(dòng)增量(AutomaticIncreacement)特征位。若AI=1,則每次讀出傳感器RAM后,地址將自動(dòng)加1,使地址指針指向按順序的下一個(gè)存儲(chǔ)單元,這樣,下一次讀數(shù)便從下一個(gè)地址讀出,而不必重新設(shè)置讀FIFORAM命令。在鍵盤工作方式中,由于讀出操作嚴(yán)格按照先入、先出(FIFO)的順序進(jìn)行,命令中的AI和AAA不起作用。8279的操作命令4.讀顯示RAM命令。命令的特征位:D7D6D5=011。在CPU讀顯示RAM時(shí),必須先執(zhí)行讀顯示RAM命令。該命令字用來設(shè)定將要讀出的顯示RAM的地址,4位二進(jìn)制代碼AAAA用來尋址16個(gè)字節(jié)的顯示RAM單元,如果自動(dòng)增量位AI=1,則每次讀出后,地址自動(dòng)加1。8279的操作命令5.寫顯示RAM命令。命令格式為:命令特征位:D7D6D5=100在CPU寫顯示RAM時(shí),必須先執(zhí)行寫顯示RAM命令,該命令字用來設(shè)定第一次要寫入的顯示RAM的地址,4位二進(jìn)制代碼AAAA用來尋址顯示RAM,如果自動(dòng)增量特征位AI=1,則每次寫入后,地址自動(dòng)加1。8279的操作命令6.顯示RAM禁止寫入/消隱命令命令特征位:D7D6D5=101IW_A和IW_B為A組和B組顯示RAM寫入屏蔽位。例如,當(dāng)IW_A=l時(shí),A組的顯示RAM禁止寫入,即單片機(jī)寫入顯示器RAM的數(shù)據(jù)不會(huì)影響OUTA3~0的輸出,這種情況通常在采用雙4位顯示時(shí)使用,因?yàn)閮蓚€(gè)4位顯示器是相互獨(dú)立的,為了給其中一個(gè)4位顯示器輸入數(shù)據(jù),而又不影響另一個(gè)4位顯示器,因此,必須對(duì)另一組的輸入實(shí)行屏蔽。BL_A和BL_B位用于對(duì)兩組顯示輸出消隱(Blank),若BL_x=1,則8279的/BD引腳輸為低電平,對(duì)應(yīng)的OUTx3~0被消隱(熄滅),若BL_x=0,則恢復(fù)顯示。8279的操作命令7.清除命令命令特征位:D7D6D5=110D4D3D2(CD、CD、CD)位用于設(shè)定清除顯示RAM的方式,意義如下:10x:將顯示RAM全部清0110:將顯示RAM全部清為20H111:將顯示RAM全部清為FFH0xx:CA=0時(shí),不清除;CA=1時(shí),清除方式由D3D2決定D1(CF)位用于清空FIFORAM。當(dāng)CF=1時(shí),執(zhí)行清除命令后,F(xiàn)IFORAM被清空,同時(shí),使中斷請(qǐng)求輸出線IRQ復(fù)位。D0(CA)位為總清位,當(dāng)CA=1時(shí),可同時(shí)完成對(duì)顯示RAM和FIFORAM的清除,對(duì)顯示RAM的清除方式由D3D2位決定。執(zhí)行清除命令大約需要160μS的時(shí)間,在此期間,F(xiàn)IFORAM的狀態(tài)寄存器的最高位DU=1,當(dāng)清除命令執(zhí)行完成后,DU=0。在DU=1時(shí),不能對(duì)顯示RAM寫數(shù)據(jù)。8279的操作命令8.結(jié)束中斷/特定錯(cuò)誤方式設(shè)置命令命令特征位:D7D6D5=111當(dāng)鍵盤工作于N鍵依次讀出方式時(shí),如果單片機(jī)給8279寫入特定方式設(shè)置命令字(E=1),則8279以一種特定的錯(cuò)誤方式工作,這種方式的特點(diǎn)是在消抖動(dòng)期間,如果發(fā)現(xiàn)多個(gè)鍵被同時(shí)按下,則FIFORAM狀態(tài)寄存器中的錯(cuò)誤特征位S/E被置1,同時(shí)IRQ變?yōu)楦唠娖?。S/E位置1會(huì)阻止對(duì)FIFORAM的進(jìn)一步寫操作。執(zhí)行清除命令時(shí),S/E被復(fù)位。這個(gè)命令使用較少。8279的操作方法8279有兩個(gè)端口,一個(gè)是命令端口一個(gè)是數(shù)據(jù)端口。對(duì)8279的操作有四種情況:寫命令端口。寫入命令端口的信息為命令字,命令字規(guī)定了8279的工作方式。讀命令端口。從命令端口讀出的信息為FIFORAM狀態(tài)寄存器的內(nèi)容。寫數(shù)據(jù)端口。寫入數(shù)據(jù)端口的信息為顯示字符的段碼,8279內(nèi)部有16個(gè)字節(jié)的顯示RAM,寫入的顯示段碼被存儲(chǔ)在顯示RAM中。讀數(shù)據(jù)端口。從數(shù)據(jù)端口讀入的是FIFORAM中鍵盤數(shù)據(jù)或顯示RAM中的數(shù)據(jù)。寫命令端口時(shí),由于各命令字的特征位不同,向同一端口寫入的各種命令實(shí)際上是被寫到了8279內(nèi)部的不同的命令寄存器中,因此,寫命令端口的操作可以直接進(jìn)行;讀命令端口時(shí),由于只有一個(gè)狀態(tài)寄存器,故讀命令端口的操作也可以直接進(jìn)行。而讀、寫數(shù)據(jù)端口時(shí),則不同,需要先執(zhí)行讀、寫數(shù)據(jù)端口的命令,然后,才能對(duì)數(shù)據(jù)端口進(jìn)行讀寫,如在讀顯示RAM數(shù)據(jù)前,要先執(zhí)行讀顯示RAM的命令;讀FIFORAM前,要先執(zhí)行讀FIFORAM的命令;寫顯示RAM數(shù)據(jù)前,要先執(zhí)行寫顯示RAM的命令;如果不先執(zhí)行讀、寫數(shù)據(jù)端口的命令,當(dāng)從8279的數(shù)據(jù)口進(jìn)行讀數(shù)據(jù)時(shí),8279便不知是從顯示RAM讀還是從FIFORAM讀。實(shí)訓(xùn)9:8279在鍵盤/顯示接口中的應(yīng)用仿真

1.功能說明單片機(jī)利用8279接口控制一個(gè)矩陣鍵盤和6個(gè)數(shù)碼管,要求初始狀態(tài)6個(gè)數(shù)碼管上從左向右依次顯示012345,然后有鍵按下時(shí)在左邊第一個(gè)數(shù)碼管上顯示相應(yīng)的數(shù)字。2.硬件設(shè)計(jì)D7-D0直接邊至P0口;讀引腳/RD接單片機(jī)的讀信號(hào)(/RD);寫引腳接單片機(jī)的寫信號(hào)(/WR);CLK引腳接單片機(jī)的ALE信號(hào),ALE信號(hào)的頻率為系統(tǒng)晶體振蕩器頻率的1/6;A0接地址總線A0。IRQ通過一個(gè)反相器接單片機(jī)的/INT1引腳。當(dāng)有鍵閉合時(shí),IRQ變?yōu)楦唠娖剑梢酝ㄟ^中斷方式讀取鍵值。與鍵盤的接口電路。16個(gè)按鍵接成矩陣形式,由RL3-RL0組成行線,SL2-SL0通過譯碼器74LS138的輸出Y0-Y3組成列線(或掃描線)。當(dāng)有鍵閉合時(shí),讀入的RL3-RL0不全為零,根椐Y0-Y3的狀態(tài)即可確定閉合鍵所在的位置。各鍵值的確定方法如下:如前所述,當(dāng)有鍵閉合時(shí),8279鍵值數(shù)據(jù)存入FIFORAM中,然后送出顯示。程序設(shè)計(jì)ORG0000HSTART:LJMPMAIN ORG0013HLJMPPKEYI ORG0030HMAIN: MOVSP,#60H ;主程序

MOV70H,#00 ;設(shè)置顯示緩沖區(qū)初值

MOV71H,#01 MOV72H,#02 MOV73H,#03 MOV74H,#04 MOV75H,#05 MOV76H,#06 MOV77H,#07 LCALLINI79 ;調(diào)8279初始化子程序LOOP: LCALLRDIR ;調(diào)8279顯示更新子程序

SJMPLOOP;8279初始化子程序INI79: MOVDPTR,#7FFFH;8279命令口地址

MOVA,#0D1H ;清0命令

MOVX@DPTR,AWNDU:MOVXA,@DPTR;等待8279清0結(jié)束

JBACC.7,WNDU MOVA,#00H;設(shè)置8279為編碼掃描方式,兩鍵互鎖

MOVX@DPTR,A MOVA,#34H;設(shè)置8279掃描頻率

MOVX@DPTR,A MOVIE,#84H;允許8279中斷

RET;8279顯示更新子程序RDIR: MOVDPTR,#7FFFH;8279命令口地址

MOVA,#90H ;寫顯示RAM命令

MOVX@DPTR,A MOVR0,#70H;顯示緩沖器首地址→R0 MOVR7,#8 MOVDPTR,#7EFFHRDLO:MOVA,@R0;取顯示數(shù)據(jù)

ADDA,#5;加偏移量

MOVCA,@A+PC;查表轉(zhuǎn)換為段碼數(shù)據(jù)

MOVX@DPTR,A INCR0 DJNZR7,RDLO RETSEG:DB3fH,06H,5BH,4FH;段碼表

DB66H,6DH,7DH,07H DB7FH,6FH,77H,7CH DB39H,5EH,79H,71H DB00H;8279按鍵輸入中斷服務(wù)程序PKEYI:PUSHPSW PUSHDPL PUSHDPH PUSHACC PUSHB SETBPSW.3 ;選工作寄存器1區(qū)

MOVDPTR,#7FFFH ;8279命令口地址MOVXA,@DPTR ;讀FIFO狀態(tài)字

ANLA,#0FH JZPKYR ;判FIFO中是否有數(shù)據(jù)? MOVA,#40H ;讀FIFO命令

MOVX@DPTR,A MOVDPTR,#7EFFH;8279數(shù)據(jù)口地址

MOVXA,@DPTR ;讀數(shù)據(jù)

MOVR2,A ANLA,#38H ;計(jì)算鍵值

RRA RRA RRA MOVB,#04H MULAB XCHA,R2 ANLA,#7 ADDA,R2 MOV70H,A MOV71H,#16 MOV72H,#16 MOV73H,#16MOV74H,#16MOV75H,#16PKYR: POPBPOPACCPOPDPHPOPDPLPOPPSWRETIEND8.4ADC0809與DAC0832的接口技術(shù)ADC0809的基礎(chǔ)知識(shí)ADC0809是使用較廣泛的一種ADC,ADC0809芯片為8位8通道A/D轉(zhuǎn)換器,可以和單片機(jī)直接接口,將IN0-IN7中任意一個(gè)通道輸入的模擬電壓轉(zhuǎn)換為8位二進(jìn)制數(shù)。ADC0809芯片為28腳雙列直插式芯片,其引腳如圖8-18所示。IN0-IN7:模擬量輸入通道,可以有8各通道的模擬量輸入。在完成本任務(wù)時(shí)只需要用到一個(gè)通道。ADDC、ADDB、ADDA,:模擬通道選擇地址線,根據(jù)3根線的不同狀態(tài)組合能實(shí)現(xiàn)通道選擇控制,通道選擇表如表所示。通道選擇表引腳功能引腳功能D7-D0:三態(tài)緩沖數(shù)據(jù)輸出線,轉(zhuǎn)換后為8位數(shù)字量??芍苯优c單片機(jī)數(shù)據(jù)線相連,例如,與單片機(jī)P1端口相連,從P1端口讀取轉(zhuǎn)換結(jié)果。CLOCK:外部時(shí)鐘信號(hào)輸入端,提供A/D轉(zhuǎn)換器工作的時(shí)鐘,決定了轉(zhuǎn)換的速度。通常情況下,該CLOCK信號(hào)由單片機(jī)的ALE信號(hào)通過D觸發(fā)器二分頻后得到,當(dāng)晶振頻率為6MHz時(shí),得到500kHz時(shí)鐘CLK,轉(zhuǎn)換一次的時(shí)間約為100μs。START:A/D轉(zhuǎn)換啟動(dòng)信號(hào)。START為上升沿,所有內(nèi)部寄存器清0;START為下降沿,啟動(dòng)A/D轉(zhuǎn)換;A/D轉(zhuǎn)換期間,START應(yīng)保持低電平。EOC:ADC0809芯片自動(dòng)發(fā)出的轉(zhuǎn)換狀態(tài)端。EOC=0,表示正在進(jìn)行轉(zhuǎn)換;EOC=1,表示轉(zhuǎn)換結(jié)束。OE:轉(zhuǎn)換數(shù)據(jù)允許輸出控制端。OE=0,表示禁止輸出;OE=1,表示允許輸出。Vref:參考電壓,用來與輸入的模擬信號(hào)進(jìn)行比較,典型值為+5V,即Vref(+)=+5V,Vref(—)=0V。實(shí)訓(xùn)9:ADC0809接口電路與程序設(shè)計(jì)仿真

1.功能說明設(shè)計(jì)一個(gè)兩位數(shù)字電壓表,分辨率為0.1V,量程為0-5V,將輸入給單片機(jī)的模擬信號(hào)轉(zhuǎn)換為單片機(jī)能夠識(shí)別的數(shù)字信號(hào),因此在輸入信號(hào)與單片機(jī)之間要連接一個(gè)A/D(模/數(shù))轉(zhuǎn)換器。輸入信號(hào)變成數(shù)字信號(hào)后,單片機(jī)只需將它讀出并用數(shù)碼管顯示出來。2.硬件設(shè)計(jì)圖8-19所示的是基于單片機(jī)和ADC0809的數(shù)字電壓表電路原理圖。顯示屏為兩只LED數(shù)碼管,通過IN0通道輸入模擬信號(hào),模擬信號(hào)輸入可以通過改變可變電阻的阻值來改變。同時(shí)數(shù)碼管上的電壓值隨之發(fā)生變化。硬件電路圖軟件設(shè)計(jì)

EOCBITP2.0STABITP2.1CLKBITP2.2OEBITP2.3ALEBITP2.4;******主程序******

ORG0000hLJMPMAINORG000BH;時(shí)鐘信號(hào)由單片機(jī)提供

CPLCLKRETIMAIN:MOVTMOD,#02H;定時(shí)器初始化

MOVTH0,#56MOVTL0,#56SETBEASETBET0SETBTR0CLRAMOV30H,A;30H轉(zhuǎn)換電壓整數(shù)位

MOV31H,A;31H轉(zhuǎn)換電壓小數(shù)位

MOV32H,A;32H電壓轉(zhuǎn)換數(shù)據(jù)

CLRP2.7CLRP2.6CLRP2.5CLRALENOPSETBALENOPCLRALENOPLOOP:CLRSTANOPSETBSTANOPCLRSTANOPLOP1:ACALLDISP;延時(shí)等待

JNBEOC,LOP1;等待轉(zhuǎn)換結(jié)束

MOVA,P0MOV32H,AACALLCHANSJMPLOOP;******數(shù)據(jù)轉(zhuǎn)換子程序******CHAN:MOVA,32HANLA,#0F0HSWAPAMOV30H,AMOVA,32HANLA,#0FHMOV31H,AMOVA,32H;MOVB,#51DIVABMOV30H,AXCHA,BMOVB,#5DIVABMOV31H,ARET;******顯示子程序******DISP:MOVDPTR,#TABMOVA,30HMOVCA,@A+DPTRCLRACC.7MOVP1,#01HMOVP3,AACALLDELYMOVA,31HMOVCA,@A+DPTRMOVP1,#02HMOVP3,AACALLDELYRET;******延時(shí)子程序******DELY:MOVR6,#20DEL1:MOVR7,#100DJNZR7,$DJNZR6,DEL1RET;******共陽(yáng)段碼表******TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80HDB90H,88H,83H,0C6H,0A1H,86H,8EH,0FFHEND

DAC0832的基礎(chǔ)知識(shí)DAC0832是8分辨率的D/A轉(zhuǎn)換集成芯片。與51單片機(jī)完全兼容。這個(gè)DA芯片以其價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成,如圖。DAC0832的引腳特性DAC0832是20引腳的雙列直插式芯片。各引腳的特性如下DI0~7:數(shù)據(jù)輸入線。ILE

:數(shù)據(jù)允許鎖存信號(hào),高電平有效。

:輸入寄存器選擇信號(hào),低電平有效。、為輸入寄存器的寫選通信號(hào)。輸入寄存器的鎖存信號(hào)由ILE、、的邏輯組合產(chǎn)生。當(dāng)ILE為高電平,為低電平、輸入負(fù)脈沖時(shí),在產(chǎn)生正脈沖;為高電平時(shí),輸入鎖存器的狀態(tài)隨預(yù)數(shù)據(jù)輸入線的狀態(tài)變化,的負(fù)跳變將輸入數(shù)據(jù)線上的信息打入輸入寄存器。

:數(shù)據(jù)傳送信號(hào),低電平有效。為DAC寄存器的寫選通信號(hào)。DAC寄存器的鎖存信號(hào),由、的邏輯組合產(chǎn)生。當(dāng)為低電平,輸入負(fù)脈沖,則在產(chǎn)生正脈沖;為高電平時(shí),DAC寄存器的輸出和輸入寄存器的狀態(tài)一致,負(fù)跳變,輸入寄存器的內(nèi)容打入DAC寄存器。VREF

:基準(zhǔn)電源輸入引腳。Rfb

:反饋信號(hào)輸入引腳,反饋電阻在芯片內(nèi)部。IOUT1、IOUT2:電流輸出引腳。電流IOUT1和IOUT2的和為常數(shù),IOUT1和IOUT2隨DAC寄存器的內(nèi)容線性變化。VCC

:電源輸入引腳;AGND:模擬信號(hào)地;DGND:數(shù)字地。2.DAC0832的工作方式DAC0832有如下3種工作方式:(1)單緩沖方式。單緩沖方式是控制輸入寄存器和DAC寄存器同時(shí)接收數(shù)據(jù),或者只用輸入寄存器而把DAC寄存器接成直通方式。此方式適用只有一路模擬量輸出或幾路模擬量異步輸出的情況。(2)雙緩沖方式。雙緩沖方式是先使輸入寄存器接收數(shù)據(jù),再控制輸入寄存器的輸出數(shù)據(jù)到DAC寄存器,即分兩次鎖存輸入數(shù)據(jù)。此方式適用于多個(gè)D/A轉(zhuǎn)換同步輸出的情況。(3)直通方式。直通方式是數(shù)據(jù)不需兩級(jí)鎖存器鎖存,即、、均接地,ILE接高電平。此方式適用于連續(xù)反饋控制線路,不過在使用時(shí),必須通過另加I/O接口與CPU連接,以匹配CPU與D/A轉(zhuǎn)換。單片機(jī)與DAC0832的接口技術(shù)仿真1.功能說明通過單片機(jī)與DAC0832完成一個(gè)正弦波發(fā)生器,通過虛擬示波器來檢測(cè)產(chǎn)生的正弦波信號(hào)。2.硬件設(shè)計(jì)如圖所示的是基于單片機(jī)和DAC0832的正弦波發(fā)生器電路原理圖。DAC0832處于直通狀態(tài),由于DAC0832是電流輸出型。在本系統(tǒng)中,需要檢測(cè)電壓信號(hào),電流信號(hào)到電壓信的轉(zhuǎn)換可由一個(gè)運(yùn)算放大器實(shí)現(xiàn),輸出電壓的幅度值=—(D/256)*VREF,D為單片機(jī)輸出的二進(jìn)制數(shù)據(jù),VREF為基準(zhǔn)電壓。3.正弦波發(fā)生器的軟件設(shè)計(jì)設(shè)計(jì)思路:把產(chǎn)生正弦波波形輸出的二進(jìn)制數(shù)據(jù)以表格的形式預(yù)先存放在程序存儲(chǔ)器程序清單:ORG0000HLJMPMIANORG0100HMIAN:MOVSP,#6FH;初始化堆棧PUB0:MOVR4,#00HPUB1:MOVDPTR,#TABMOVA,R4MOVCA,@A+DPTRPUB2:MOVp1,A;數(shù)據(jù)送P1口

LCALLDELAY_1MSINCR4CJNER4,#80H,PUB1;數(shù)據(jù)是否取完

LJMPPUB0DELAY_1MS:PUSHACC;通過堆棧實(shí)現(xiàn)延時(shí)

NOPCLRAPD:NOPINCACJNEA,#0F9H,PDPOPACCRETTAB:DB64,67,70,73,76,79,82,85,88,91,94,96,99,102,104,106DB109,111,113,115,117,118,120,121,123,124,125,126,126DB127,127,127,127,127,127,127,126,126,125,124,123,121DB120,118,117,115,113,111,109,106,104,102,99,96,94,91DB88,85,82,79,76,73,70,67,64,60,57,54,51,48,45,42,39DB36,33,31,28,25,23,21,18,16,14,12,10,9,7,6,4,3,2,1DB1,0,0,0,0,0,0,0,1,1,2,3,4,6,7,9,10,12,14,16,18,21,23DB25,28,31,33,36,39,42,45,48,51,54,57,60END8.5單片機(jī)控制步進(jìn)電機(jī)接口技術(shù)1.基礎(chǔ)知識(shí)步進(jìn)電機(jī)按繞在定子上的線圈配置分類可分為2相、4相、5相等,如圖所示。步進(jìn)電機(jī)按外部引線可分為三線式、五線式、六線式等,其控制方法均相同,均以脈沖信號(hào)進(jìn)行驅(qū)動(dòng)。步進(jìn)電機(jī)的工作原理步進(jìn)電機(jī),顧名思義,就是一步步走的電機(jī),所謂“步”指的是轉(zhuǎn)動(dòng)角度,一般每步為1.8度,若轉(zhuǎn)一圈360度,需要200步才能完成。步進(jìn)電機(jī)每走一步,就要加一個(gè)脈沖信號(hào),也稱激磁信號(hào)。無脈沖信號(hào)輸入時(shí),轉(zhuǎn)子保持一定的位置,維持靜止?fàn)顟B(tài)。若加入適當(dāng)?shù)拿}沖信號(hào)時(shí),轉(zhuǎn)子則會(huì)以一定的步數(shù)轉(zhuǎn)動(dòng)。如果加入連續(xù)的脈沖信號(hào),步進(jìn)電機(jī)就連續(xù)的轉(zhuǎn)動(dòng),轉(zhuǎn)動(dòng)的角度與脈沖信號(hào)頻率成正比,正反轉(zhuǎn)可由脈沖的順序來控制。步進(jìn)電機(jī)的激磁方式有1相激磁,2相激磁和1-2相激磁。1相激磁法:在每個(gè)瞬間只有一個(gè)線圈導(dǎo)通。其他線圈休息。其特點(diǎn)是激磁方法簡(jiǎn)單、消耗電力小、精度良好。但是轉(zhuǎn)矩小、振動(dòng)較大,每送一次激磁信號(hào)可走1.8度。2相激磁法:在每個(gè)瞬間會(huì)有兩個(gè)線圈同時(shí)導(dǎo)通,特點(diǎn)是轉(zhuǎn)矩大、振動(dòng)較小,每送一次激磁信號(hào)可走1.8度。1-2相激磁法:1相與2相輪流交替導(dǎo)通,精度提高,且運(yùn)轉(zhuǎn)平滑。但每送一激磁信號(hào)只走0.9度,又稱為半步驅(qū)動(dòng)。若改變線圈激磁順序可以改變步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)方向。每送一次激磁信號(hào)后要經(jīng)過一小段的時(shí)間延時(shí),讓步進(jìn)電機(jī)有足夠的時(shí)間建立磁場(chǎng)及轉(zhuǎn)動(dòng)。小型步進(jìn)電機(jī)的驅(qū)動(dòng)電路單片機(jī)的輸入電流太小,不能直接連接步進(jìn)電機(jī),需要加驅(qū)動(dòng)電路。對(duì)于電流小于0.5A的步進(jìn)電機(jī),也已采用ULN2003類的驅(qū)動(dòng)IC。圖示為ULN2003驅(qū)動(dòng)器的引腳圖,圖左邊1~7引腳為輸入端,接單片機(jī)輸出端,引腳8接地;右側(cè)10~16引腳為輸出端,接步進(jìn)電機(jī),引腳9接電源+5V,該驅(qū)動(dòng)器可提供最高0.5A的電流。接口電路設(shè)計(jì)與仿真1.功能說明單片機(jī)的P1.0~P1.2引腳,分別接有按鈕開關(guān)K1、K2和K3,用來控制步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)向。(1)開始供電時(shí),步進(jìn)電動(dòng)機(jī)停止。(2)按K1時(shí),電動(dòng)機(jī)正轉(zhuǎn);按K2時(shí),電動(dòng)機(jī)反轉(zhuǎn)。(3)按K3時(shí),電動(dòng)機(jī)停止轉(zhuǎn)動(dòng)。2.硬件設(shè)計(jì)電路設(shè)計(jì)如圖所示。K1、K2和K3按鈕開關(guān)分別接在單片機(jī)的P1.0~P1.2引腳上,作為信號(hào)的輸入端,輸出端直接采用ULN2003驅(qū)動(dòng)電路控制步進(jìn)電機(jī)的轉(zhuǎn)向。程序清單:

K1EQUP1.0;按鍵初始化

K2EQUP1.1K3EQUP1.2STOP:MOVP2,#0FFH;停止LOOP:JNBK1,Z_M2;按鍵掃描

JNBK2,F_M2JNBK3,STOP1JMPLOOP;沒有按鍵循環(huán)STOP1:ACALLDELAY;延時(shí)去抖動(dòng)

JNBK3,$ACALLDELAYJMPSTOPZ_M2:ACALLDELAYJNBK1,$ACALLDELAYJMPZ_MF_M2:ACALLDELAYJNBK2,$ACALLDELAYJMPF_MZ_M:MOVR0,#00H;正轉(zhuǎn)Z_M1:MOVA,R0MOVDPTR,#TAB1MOVCA,@A+DPTR;查表去正轉(zhuǎn)信號(hào)

JZZ_M;判斷是否為結(jié)束碼

MOVP2,AJNBK3,STOP1;是否有鍵按下

JNBK2,F_M2ACALLDELAY;調(diào)用延時(shí)

INCR0JMPZ_M1RETF_M:MOVR0,#00H;反轉(zhuǎn)F_M1:MOVA,R0MOVDPTR,#TAB2MOVCA,@A+DPTRJZF_MMOVP2,AJNBK3,STOP1JNBK1,Z_M2ACALLDELAYINCR0JMPF_M1RETDELAY:MOVR1,#200;延時(shí)100msD1:MOVR2,#248DJNZR2,$DJNZR1,D1RETTAB1:DB01H,03H,02H,06H,04H,0CH,08H,09H,00H;正轉(zhuǎn)TAB2:DB09H,08H,0CH,04H,06H,02H,03H,01H,00H;反轉(zhuǎn)

END8.6單片機(jī)控制直流電機(jī)的接口技術(shù)直流電機(jī)原理簡(jiǎn)介直流電機(jī)即可作為發(fā)電機(jī)使用,也可作為電動(dòng)機(jī)使用,用作直流發(fā)電機(jī)可以得到直流電源,而作為直流電動(dòng)機(jī),由于直流電機(jī)具有良好的調(diào)速性能,在許多調(diào)速性能要求較高的場(chǎng)合,仍然被廣泛的使用。雖然直流發(fā)電機(jī)和直流電動(dòng)機(jī)的用途各不同,但是它們的結(jié)構(gòu)基本上一樣,都是利用電和磁的相互作用來實(shí)現(xiàn)機(jī)械能與電能的相互轉(zhuǎn)換。直流電動(dòng)機(jī)因其具有調(diào)節(jié)轉(zhuǎn)速比較靈活、方法簡(jiǎn)單、易于大范圍內(nèi)平滑調(diào)速、控制性能好等特點(diǎn),在傳動(dòng)領(lǐng)域占有一定的地位。脈沖寬度調(diào)制(PWM)(1)基本原理PWM是通過控制固定電壓的直流電源開關(guān)的頻率來接通和斷開電源,并根據(jù)需要改變一個(gè)周期內(nèi)“接通”和“斷開”時(shí)間的長(zhǎng)短。通過改變直流電機(jī)電樞上電壓的“占空比”來改變平均電壓的大小,從而控制電動(dòng)機(jī)的轉(zhuǎn)速。因此,PWM又被稱為“開關(guān)驅(qū)動(dòng)裝置”。如圖所示,在脈沖作用下,當(dāng)電機(jī)通電時(shí),速度增加;電機(jī)斷電時(shí),速度逐漸減少。只要按一定規(guī)律,改變通、斷電的時(shí)間,即可讓電機(jī)的轉(zhuǎn)速得到控制。設(shè)電機(jī)始終接通電源時(shí),電機(jī)轉(zhuǎn)速最大為Vmax,設(shè)占空比為D=t1/T,則電機(jī)的平均速度為=式中,為電機(jī)的平均速度;為電機(jī)全通時(shí)的速度(最大);

D=t1/T為占空比;從式中可見,當(dāng)我們改變占空比D時(shí),就可以改變電機(jī)的平均轉(zhuǎn)速,從而達(dá)到調(diào)速的目的。嚴(yán)格的講,平均速度與占空比之間并不是嚴(yán)格的線性關(guān)系,在應(yīng)用中可以將其近似地看成線性關(guān)系。PWM信號(hào)的產(chǎn)生有兩種方法:一種是通過硬件方法來實(shí)現(xiàn),如通過專用的PWM芯片來產(chǎn)生,另一種方法是通過軟件方法來實(shí)現(xiàn),如通過51單片機(jī)的定時(shí)/計(jì)數(shù)器來實(shí)現(xiàn)或者通過軟件延時(shí)的方法來實(shí)現(xiàn)。目前,有些其他系列的單片機(jī)已經(jīng)集成了PWM產(chǎn)生電路,如AVR系列,PIC系列等。接口電路設(shè)計(jì)與仿真功能說明:通過51單片機(jī)和ADC0809產(chǎn)生占空比可變的PWM信號(hào)來控制直流電機(jī)的轉(zhuǎn)速。一.硬件設(shè)計(jì)通過ADC0809的模擬信號(hào)輸入通道接一個(gè)可變電阻來實(shí)現(xiàn)模擬電壓信號(hào)的輸入,經(jīng)過ADC0809轉(zhuǎn)換后輸入單片機(jī)的內(nèi)部進(jìn)行處理,同時(shí)根據(jù)處理后的結(jié)果使P3.7引腳輸出一個(gè)PWM信號(hào),當(dāng)改變可變電阻的阻值時(shí)輸出的PWM信號(hào)的占空比發(fā)生變化,并通過一個(gè)電機(jī)模擬驅(qū)動(dòng)電路來實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的控制。電路圖如圖8-31所示。二.程序設(shè)計(jì)程序設(shè)計(jì)的主要是PWM信號(hào)的輸出問題,本次設(shè)計(jì)中的PWM信號(hào)是通過一個(gè)延時(shí)程序來實(shí)現(xiàn),當(dāng)ADC0809的輸出結(jié)果發(fā)生變化時(shí),PWM信號(hào)的占空比也發(fā)生變化。程序清單:ADC EQU 35HCLOCK BIT P2.4 ;定義ADC0808時(shí)鐘位

ST BIT P2.5EOC BIT P2.6OE BIT P2.7PWM BIT P3.7 ORG 0000H SJMP START ORG 000BH LJMP INT_T0START: MOV TMOD,#02H MOV TH0,#20 MOV TL0,#00H MOV IE,#82H SETB TR0WAIT:CLR ST SETB ST CLR ST ;啟動(dòng)AD轉(zhuǎn)換

JNB EOC,$ ;等待轉(zhuǎn)換結(jié)束

SETB OE MOV ADC,P1 ;讀取AD轉(zhuǎn)換結(jié)果

CLR OE SETB PWM ;PWM輸出

MOV A,ADC LCALL DELAY CLR PWM MOV A,#255 SUBB A,ADC LCALL DELAY SJMP WAITINT_T0:CPL CLOCK ;定時(shí)器提供ADC0808時(shí)鐘信號(hào)

RETIDELAY:MOV R6,#1;通過轉(zhuǎn)換結(jié)果調(diào)整占空比D1: DJNZ R6,D1 DJNZ ACC,D1 RETEND8.7單片機(jī)與字符型LCD顯示器的接口技術(shù)基礎(chǔ)知識(shí)1.LCD的分類LCD可分為兩種類型,一種是字符模式LCD,另一種是圖形模式LCD,我們主要學(xué)習(xí)的是字符型LCD。它專門用來顯示字母、數(shù)字、符號(hào)等。由于LCD的控制需要專用的驅(qū)動(dòng)電路,一般不單獨(dú)使用,而是LCD面板、驅(qū)動(dòng)與控制電路組合的LCD模塊(簡(jiǎn)稱LCM)一起使用.

LCD模塊的引腳2.LCD模塊的引腳下面介紹的是常用的20字*2行的字符模塊,外形如圖所示20字*2行LCD每行可以顯示20個(gè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論