【文章內(nèi)容簡介】
方式。定時/計(jì)數(shù)器由兩個8位寄存器構(gòu)成,其中的低14位組成計(jì)數(shù)器,剩下的兩個高位(M2,M1)用于定義輸出方式。其格式如下:第三章 本系統(tǒng)的設(shè)計(jì)思路 系統(tǒng)設(shè)計(jì)要求啟動點(diǎn)擊并測試他的每分鐘轉(zhuǎn)數(shù),然后把測試結(jié)果隨時顯示在數(shù)碼顯示器上,且進(jìn)行連續(xù)測試。 系統(tǒng)設(shè)計(jì)思想在直流電機(jī)軸上固定一個小圓盤,圓盤的外側(cè),靠近圓周的位置上粘貼一塊小磁鐵。緊挨著圓盤外側(cè),正對著小磁鐵的位置,安放一個霍爾傳感器芯片。當(dāng)電機(jī)旋轉(zhuǎn)一圈,使圓盤上的小磁鐵跟霍爾芯片相遇時,霍爾元件將產(chǎn)生一個負(fù)跳變的脈沖信號。此負(fù)跳變脈沖的個數(shù)完全可以代表電機(jī)的轉(zhuǎn)數(shù)。將此脈沖信號,通過定時/計(jì)數(shù)器1的外部輸入引腳T1輸入到定時/計(jì)數(shù)器1并進(jìn)行計(jì)數(shù)。因此必須把定時/計(jì)數(shù)器1作為計(jì)數(shù)器使用。另外,把定時/計(jì)數(shù)器0作為定時器使用,且讓它定時1s。把兩個定時/計(jì)數(shù)器同時啟動之后,定時/計(jì)數(shù)器1從0開始記錄電機(jī)的轉(zhuǎn)數(shù),當(dāng)它計(jì)到1s的時候,定時/計(jì)數(shù)器0將關(guān)停定時/計(jì)數(shù)器1. 此時定時/計(jì)數(shù)器1的當(dāng)前計(jì)數(shù)值,正是電機(jī)每秒的轉(zhuǎn)數(shù)。把它轉(zhuǎn)換成每分鐘的轉(zhuǎn)數(shù)之后送數(shù)碼顯示器顯示。 系統(tǒng)控制電路直流電機(jī)的轉(zhuǎn)速測試電路圖 (見附錄A) 控制電路說明 當(dāng)系統(tǒng)啟動開關(guān)S接通后。此時。于是兩個晶體管導(dǎo)通使電機(jī)旋轉(zhuǎn)。由于電機(jī)的旋轉(zhuǎn)需要足夠的電流,因此用兩個晶體管進(jìn)行電流放大。 當(dāng)開關(guān)S斷開時。于是兩個晶體管同時截止,電機(jī)便停止旋轉(zhuǎn)。由于電機(jī)是一個電感元件,因此當(dāng)他由導(dǎo)通突然變截止時,內(nèi)部產(chǎn)生很大的反向電動勢會把晶體擊穿。為了保護(hù)晶體管,電機(jī)的兩端跨接一個續(xù)流二極管,是使反向電動勢通過它進(jìn)行釋放。 在電機(jī)軸上裝有一個小圓盤,它跟電機(jī)同步旋轉(zhuǎn)。當(dāng)圓盤上的小磁鐵與霍爾傳感器相遇時,霍爾傳感器給定時/計(jì)數(shù)器1的外部輸入引腳T1提供提供負(fù)跳變的脈沖信號。霍爾傳感器的工作機(jī)理是:當(dāng)通有電流的半導(dǎo)體材料上作用外磁場時,與電流垂直方向?qū)a(chǎn)生一個感應(yīng)電動勢。 單片機(jī)與外部設(shè)備的聯(lián)系是通過以通過尋址的方式訪問外部接口來實(shí)現(xiàn)的,由于外部接口所使用的是外部數(shù)據(jù)存儲器的地址,因此它的地址必須由單片機(jī)的P0和P2口來發(fā)出。其中,P0口發(fā)出的是接口地址的低8位,而P2口發(fā)出的是接口地址的高8位。在圖中,接到8155芯片的A0引腳上;。因此8155接口芯片地址有以下兩種: 0 x x x x x x x x x x x x x x 1 發(fā)命令或讀狀態(tài)時的地址 0 x x x x x x x x x x x x x x 0 讀寫數(shù)據(jù)時的地址 其中,x可以任取,因此在控制程序中,索性把這兩個地址采用如下的形式: 0111 1111 1111 1111 (7FFFH) 0111 1111 1111 1110 (7FFEH) 8155接口芯片被指定為7FFEH地址時,它是通過單片機(jī)的P0口讀入轉(zhuǎn)速數(shù)據(jù)的8個顯示段碼的 8155的復(fù)位引腳所接的是上電復(fù)位電路。 由于控制程序存儲在8155單片機(jī)的內(nèi)部程序儲存器中,因此必須把單片機(jī)的EA引腳街上高電平 因?yàn)轱@示器將采用編碼掃描方式,故8155的掃描信號CSo~SC2必須進(jìn)行外部譯碼(74LS138)。 存儲在8155內(nèi)部RAM的轉(zhuǎn)速數(shù)據(jù)的8位顯示斷碼,通過OUTAo~OUTA3和OUTBo~OUTB3引腳輸出到數(shù)碼顯示器。圖中,75451和7404分別是顯示器掃描和斷碼信號的驅(qū)動芯片。AT89S51引腳圖 系統(tǒng)控制程序流程圖系統(tǒng)控制程序流程圖 (見附錄B) 控制程序系統(tǒng)控制程序如下:ORG 0000H 。程序從0地址開始運(yùn)行AJMP MAIN ;轉(zhuǎn)主程序ORG 000BH 。定時/計(jì)數(shù)器0中斷矢量AJMP TSEV 。轉(zhuǎn)定時/計(jì)數(shù)器0中斷服務(wù)程序ORG 0050H ;主程序起始地址MAIN: LCALL CLR0 。調(diào)用轉(zhuǎn)速數(shù)據(jù)緩沖區(qū)清0子程序 LCALL CLR1 。調(diào)用轉(zhuǎn)速段碼緩沖區(qū)清0子程序 LCALL SHSV 。調(diào)用顯示器初始化子程序 LACLL TISV 。調(diào)用定時/計(jì)數(shù)器初始化子程序 SETB 。WRUN: MOV C, 。讀啟動開關(guān)狀態(tài) JNC WRUN 。等待啟動 SETB 。啟動電機(jī) SETB TR0 。啟動定時/計(jì)數(shù)器0 SETB TR1 ;啟動定時/計(jì)數(shù)器1HERE: JNB F0,HERE 。等待中斷 MOV A,TL1 。測試結(jié)束,將每秒轉(zhuǎn)數(shù)送A MOV B,3CH 。60秒送B MUL AB 。計(jì)算每分鐘轉(zhuǎn)數(shù) MOV R2,A 。每分鐘轉(zhuǎn)數(shù)的低8位數(shù)據(jù)送R2 MOV R3,B 。每分鐘轉(zhuǎn)數(shù)的高8位數(shù)據(jù)送R3C1000: CLR C 。計(jì)算每分鐘轉(zhuǎn)數(shù)的千位十進(jìn)制數(shù) MOV A,R2 。從每分鐘轉(zhuǎn)數(shù)中反復(fù)減1000,計(jì)算千位數(shù)(雙 字節(jié)減算) SUBB A,0E8H MOV R2,A MOV A,R3 SUBB A,03H MOV R3,A JC RST0 。不夠減轉(zhuǎn) INC 40H 。每分鐘轉(zhuǎn)數(shù)的千位十進(jìn)制數(shù)存40H單元