基于AT89S51直流電機的轉速測試系統的畢業論文_第1頁
基于AT89S51直流電機的轉速測試系統的畢業論文_第2頁
基于AT89S51直流電機的轉速測試系統的畢業論文_第3頁
基于AT89S51直流電機的轉速測試系統的畢業論文_第4頁
基于AT89S51直流電機的轉速測試系統的畢業論文_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 . . . 畢業 設 計(論文)基于AT89S51直流電機的轉速測試系統AT89S51-based DC motor speed test system目 錄第一章 引言4第二章本系統的芯片功能介紹5第三章 本系統的設計思路153.1系統的設計要求15 3.2系統設計思想15 3.3系統控制電路15 3.4控制電路說明16 3.5系統控制程序流程圖173.6控制程序18 3.7控制程序說明24總結25致26參考文獻27附錄A28附錄B2931 / 31基于AT89S51直流電機的轉速測試系統 專業班級:電子w04學生:徐靜指導教師:唐紅雨 職稱:講師摘要:本設計主要完成以AT89S51單片機

2、為核心的直流電機的測速系統,該系統包括速度給定、速度顯示、速度測量和速度控制。利用在直流電機固定小磁鐵,在對應位置上再加一霍爾傳感器把直流電機的轉速進行測量顯示,利用8279專用芯片顯示速度,并且可以連續測量。關鍵詞:直流電機;單片機;轉速測量AT89S51-based DC motor speed test systemAbstract:A speed governing system of DC- motor by using AT89S51 microcontroller is introduced .The system includes the setting of speed,th

3、e displaying of speed,the measurement of speed and the control of speed. This paper introduces a kind of method Of DC-motor speed modification based on PWM theory by the SCM. Showing some relative knowledge upon the DC-motor timing,the basic theory and the way to implement. And it emphasizes on the

4、way for carrying out PWM signals based on MCS-51.This paper still provides a method for modifying the speed of DC-motor by way of time by software. It offers a sort of efficient method for the DC-motor Speed-controlling system.Keyword: DC-motor, Microcontroller, Measurement of rotating speed第一章 引言單片

5、機是指一個集成在一塊芯片上的完整計算機系統。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU存、部和外部總線系統,目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網絡、復雜的輸入輸出系統集成在一塊芯片上。單片機比專用處理器更適合應用于嵌入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、計算器、家用電器、電子玩具、掌上電腦以與鼠標等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機

6、在工作。單片機的數量不僅遠超過PC機和其他計算的綜合,甚至比人類的數量還要多。由于單片機的這種結構形式與它所采取的半導體工藝,使其具有很多顯著的特點,因而在各個領域都得到了迅猛的發展。單片機主要如下特點:(1)有優異的性能價格比。 (2)集成度高、體積小、有很高的可靠性。(3)控制功能強。為了滿足工業控制的要求,一般單片機的指令系統中均有極豐富的轉移指令、I/O口的邏輯操作以與位處理功能。單片機的邏輯控制功能與運行速度均高于同一檔次的微機。 (4)低功耗、低電壓,便于生產便攜式產品。 (5)外部總線增加了I C(Inter-Integrated Circuit)與SPI(Serial Peri

7、pheral Interface)等串行總線方式,進一步縮小了體積,簡化了結構。 (6)單片機的系統擴展和系統配置較典型、規,容易構成各種規模的應用系統。第二章 本系統的芯片功能介紹AT89S51是一個低功耗,高性能CMOS 8位單片機,片含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS -51指令系統與80C51引腳結構,芯片集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價

8、比的解決方案。    AT89S51具有如下特點:40個引腳,4k Bytes Flash片程序存儲器,128 bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個 全雙工串行通信口,看門狗(WDT)電路,片時鐘振蕩器。此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷 系統可繼續工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQF

9、P和PLCC等三 種封裝形式,以適應不同產品的需求。  主要功能特性:  · 兼容MCS-51指令系統    · 4k可反復擦寫(>1000次)ISP Flash ROM  · 32個雙向I/O口        · 4.5-5.5V工作電壓  · 2個16位可編程定時/計數器   · 時鐘頻率0-33MHz  · 全雙工UART串行中斷口線&

10、#160;       · 128x8bit部RAM  · 2個外部中斷源        · 低功耗空閑和省電模式  · 中斷喚醒省電模式        · 3級加密位  · 看門狗(WDT)電路        · 軟件設置空閑和省電功能  · 靈活的ISP字節和分頁編程  &#

11、160;     · 雙數據寄存器指針AT89S51的結構圖: 圖1-1圖1-2單片機實際有效的引腳為個,常用的有種封裝形式,其引腳圖可參見圖- :()為(-)封裝形式,這是普通腳塑封雙列直插形式;()為()封裝形式,這種形式是具有個“” 形腳(其中有個是空腳)的方型芯片,使用時需要插入到與其相配的方型插座中。 圖1-3個引腳大致可分為類:電源、時鐘、控制和引腳。其邏輯圖如圖- 所示。圖- 1. 8155各引腳功能說明如下:RST:復位信號輸入端,高電平有效。復位后,3個I/O口均為輸入方式。AD0AD7:三態的地址/數據總線。與單片機的低8位地址/數據總線(P0

12、口)相連。單片機與8155之間的地址、數據、命令與狀態信息都是通過這個總線口傳送的。:讀選通信號,控制對8155的讀操作,低電平有效。:寫選通信號,控制對8155的寫操作,低電平有效。:片選信號線,低電平有效。IO/:8155的RAM存儲器或I/O口選擇線。當IO/0時,則選擇8155的片RAM,AD0AD7上地址為8155中RAM單元的地址(00HFFH);當IO/1時,選擇 8155的I/O口,AD0AD7上的地址為8155 I/O口的地址。ALE:地址鎖存信號。8155部設有地址鎖存器,在ALE的下降沿將單片機P0口輸出的低8位地址信息與,IO/的狀態都鎖存到8155部鎖存器。因此,P0

13、口輸出的低8位地址信號不需外接鎖存器。PA0PA7:8位通用I/O口,其輸入、輸出的流向可由程序控制。PB0PB7:8位通用I/O口,功能同A口。PC0PC5:有兩個作用,既可作為通用的I/O口,也可作為PA口和PB口的控制信號線,這些可通過程序控制。TIMER IN:定時/計數器脈沖輸入端。TIMER OUT:定時/計數器輸出端。VCC:5V電源。2、8155的地址編碼與工作方式在單片機應用系統中,8155是按外部數據存儲器統一編址的,為16位地址,其高8位由片選線提供,0,選中該片。當0,IO/0時,選中8155片RAM,這時8155只能作片外RAM使用,其RAM的低8位編址為00HFFH

14、;當0,IO/1時,選中8155的I/O口,其端口地址的低8位由AD7AD0確定,如表1-5所示。這時,A、B、C口的口地址低8位分別為01H、02H、03H(設地址無關位為0)。表1-5 8155芯片的I/O口地址AD7AD0選擇I/O口A7A6A5A4A3A2A1A0×××××××××××××××××××××××××××&#

15、215;××000011001100010101命令/狀態寄存器A口B口C口定時器低8位定時器高6位與方式8155的A口、B口可工作于基本I/O方式或選通I/O方式。C口可工作于基本I/O方式,也可作為A口、B口在選通工作方式時的狀態控制信號線。當C口作為狀態控制信號時,其每位線的作用如下:PC0:AINTR(A口中斷請求線)PC1:ABF(A口緩沖器滿信號)PC2:(A口選通信號)PC3:BINTR(B口中斷請求線)PC4:BBF(B口緩沖器滿信號)PC5:(B口選通信號)8155的I/O工作方式選擇是通過對8155部命令寄存器設定控制字實現的。命令寄存器只能寫入,不能讀

16、出,命令寄存器的格式如圖1-6所示。在ALT1ALT4的不同方式下,A口、B口與C口的各位工作方式如下:ALT1:A口,B口為基本輸入/輸出,C口為輸入方式。ALT2:A口,B口為基本輸入/輸出,C口為輸出方式。ALT3:A口為選通輸入/輸出,B口為基本輸入/輸出。PC0為AINTR,PC1為ABF,PC2為,PC3PC5為輸出。ALT4:A口、B口為選通輸入/輸出。PC0為AINTR,PC1為ABF,PC2為,PC3為BINTR,PC4為BBF,PC5為。圖1-6 8155命令寄存器格式8155還有一個狀態寄存器,用于鎖存輸入/輸出口和定時/計數器的當前狀態,供CPU查詢用。狀態寄存器的端口

17、地址與命令寄存器一樣,低8位也是00H,狀態寄存器的容只能讀出不能寫入。所以可以認為8155的I/O口地址00H是命令/狀態寄存器,對其寫入時作為命令寄存器;而對其讀出時,則作為狀態寄存器。狀態寄存器的格式如圖1-7所示。圖1-7 8155狀態寄存器格式3、8155的定時/計數器8155部的定時/計數器實際上是一個14位的減法計數器,它對TIMER IN端輸入脈沖進行減1計數,當計數結束(即減1計數“回0”)時,由TIMER OUT端輸出方波或脈沖。當TIMER IN接外部脈沖時,為計數方式;接系統時鐘時,可作為定時方式。定時/計數器由兩個8位寄存器構成,其中的低14位組成計數器,剩下的兩個高

18、位(M2,M1)用于定義輸出方式。其格式如下:第三章 本系統的設計思路3.1 系統設計要求啟動點擊并測試他的每分鐘轉數,然后把測試結果隨時顯示在數碼顯示器上,且進行連續測試。3.2 系統設計思想在直流電機軸上固定一個小圓盤,圓盤的外側,靠近圓周的位置上粘貼一塊小磁鐵。緊挨著圓盤外側,正對著小磁鐵的位置,安放一個霍爾傳感器芯片。當電機旋轉一圈,使圓盤上的小磁鐵跟霍爾芯片相遇時,霍爾元件將產生一個負跳變的脈沖信號。此負跳變脈沖的個數完全可以代表電機的轉數。將此脈沖信號,通過定時/計數器1的外部輸入引腳T1輸入到定時/計數器1并進行計數。因此必須把定時/計數器1作為計數器使用。另外,把定時/計數器0

19、作為定時器使用,且讓它定時1s。把兩個定時/計數器同時啟動之后,定時/計數器1從0開始記錄電機的轉數,當它計到1s的時候,定時/計數器0將關停定時/計數器1. 此時定時/計數器1的當前計數值,正是電機每秒的轉數。把它轉換成每分鐘的轉數之后送數碼顯示器顯示。3.3 系統控制電路直流電機的轉速測試電路圖 (見附錄A)3.4 控制電路說明 當系統啟動開關S接通后,P1.0引腳輸入高電平。此時,在程序的控制下P1.1引腳將輸出高電平。于是兩個晶體管導通使電機旋轉。由于電機的旋轉需要足夠的電流,因此用兩個晶體管進行電流放大。 當開關S斷開時,P1.0引腳輸入低電平。此時P1.1引腳將輸出低電平。于是兩個

20、晶體管同時截止,電機便停止旋轉。由于電機是一個電感元件,因此當他由導通突然變截止時,部產生很大的反向電動勢會把晶體擊穿。為了保護晶體管,電機的兩端跨接一個續流二極管,是使反向電動勢通過它進行釋放。 在電機軸上裝有一個小圓盤,它跟電機同步旋轉。當圓盤上的小磁鐵與霍爾傳感器相遇時,霍爾傳感器給定時/計數器1的外部輸入引腳T1提供提供負跳變的脈沖信號。霍爾傳感器的工作機理是:當通有電流的半導體材料上作用外磁場時,與電流垂直方向將產生一個感應電動勢。 單片機與外部設備的聯系是通過以通過尋址的方式訪問外部接口來實現的,由于外部接口所使用的是外部數據存儲器的地址,因此它的地址必須由單片機的P0和P2口來發

21、出。其中,P0口發出的是接口地址的低8位,而P2口發出的是接口地址的高8位。在圖中,P0口的P0.0位地址經鎖存器之后,接到8155芯片的A0引腳上;而P2口的P2.7位地址則接到8155芯片的片選引腳CS上。因此8155接口芯片地址有以下兩種: 0 x x x x x x x x x x x x x x 1 發命令或讀狀態時的地址 0 x x x x x x x x x x x x x x 0 讀寫數據時的地址 其中,x可以任取,因此在控制程序中,索性把這兩個地址采用如下的形式: 0111 1111 1111 1111 (7FFFH) 0111 1111 1111 1110 (7FFEH)

22、8155接口芯片被指定為7FFEH地址時,它是通過單片機的P0口讀入轉速數據的8個顯示段碼的 8155的復位引腳所接的是上電復位電路。 由于控制程序存儲在8155單片機的部程序儲存器中,因此必須把單片機的EA引腳街上高電平 因為顯示器將采用編碼掃描方式,故8155的掃描信號CSoSC2必須進行外部譯碼(74LS138)。 存儲在8155部RAM的轉速數據的8位顯示斷碼,通過OUTAoOUTA3和OUTBoOUTB3引腳輸出到數碼顯示器。圖中,75451和7404分別是顯示器掃描和斷碼信號的驅動芯片。 AT89S51引腳圖3.5 系統控制程序流程圖系統控制程序流程圖 (見附錄B)3.6

23、 控制程序系統控制程序如下:ORG 0000H ;程序從0地址開始運行AJMP MAIN ;轉主程序ORG 000BH ;定時/計數器0中斷矢量AJMP TSEV ;轉定時/計數器0中斷服務程序ORG 0050H ;主程序起始地址MAIN: LCALL CLR0 ;調用轉速數據緩沖區清0子程序 LCALL CLR1 ;調用轉速段碼緩沖區清0子程序 LCALL SHSV ;調用顯示器初始化子程序 LACLL TISV ;調用定時/計數器初始化子程序 SETB P1.0 ;P1.0口讀引腳準備WRUN: MOV C,P1.0 ;讀啟動開關狀態 JNC WRUN ;等待啟動 SETB P1.1 ;啟

24、動電機 SETB TR0 ;啟動定時/計數器0 SETB TR1 ;啟動定時/計數器1HERE: JNB F0,HERE ;等待中斷 MOV A,TL1 ;測試結束,將每秒轉數送A MOV B,#3CH ;60秒送B MUL AB ;計算每分鐘轉數 MOV R2,A ;每分鐘轉數的低8位數據送R2 MOV R3,B ;每分鐘轉數的高8位數據送R3C1000: CLR C ;計算每分鐘轉數的千位十進制數 MOV A,R2 ;從每分鐘轉數中反復減1000,計算千位數(雙 字節減算) SUBB A,#0E8H MOV R2,A MOV A,R3 SUBB A,#03H MOV R3,A JC RST

25、0 ;不夠減轉 INC 40H ;每分鐘轉數的千位十進制數存40H單元 SJMP C1000 ;夠減數,繼續減1000RSY0: MOV A,R2 ;不夠減,則加1000恢復余數 ADD A,#0E8H MOV R2,A MOV A,R3 ADDC A,#03H MOV R3,AC100: CLR C ;計算每分鐘轉數的百位十進制數 MOV A,R2 ;從余數中反復減100,計算百位數(雙字節減算) SUBB A,#64H MOV R2,A MOV A,R3 SUBB A,#00H MOV R3,A JC RST1 ;不夠減轉 INC 41H ;每分鐘轉數的百位十進制數存41H單元 SJMP

26、C100 ;夠減轉,繼續減100RST1: MOV A,R2 ;不夠減,則加100恢復余數 ADD A,#64H MOV R2,AC10: CLR C ;計算每分鐘轉數的十位十進制數 MOV A,R2 :從余數中反復減10,計算十位數(單字節減算)SUBB A,#0AH MOV R2,A JC RST2 ;不能夠減轉 INC 42H ;每分鐘轉數的十位十進制數存42H單元 SJMP MOTS ;夠減轉,繼續減10RST2: MOV A,R2 ;不夠減,則加10恢復余數 ADD A,#0AH MOV 43H,A ;每分鐘轉數的個位十進制數存43H單元 MOV DPTR,#TAB ;顯示器段碼表首

27、地址送DPTR MOV R0,#30H ;每分鐘轉數的段碼表首地址送R0 MOV R1,#40H ;每分鐘轉數的十進制數首地址送R1 MOV R7,#04H ; 每分鐘轉數的十進制位數送R7STAB: MOV A,R1 ;每分鐘轉數的4位十進制數轉顯示段碼區 MOVC A,DPTR+A ;從段碼表中尋找與個位數所對應的顯示段碼 MOV R0,A ;將各位的段碼送段碼緩沖區 INC R0 ;段碼緩沖區地址增1 INC R1 ;轉速數據區地址增1 DJNZ R7,STAB ;4個段碼的傳送控制 MOV DPIR,#7FFEH ;8155芯片的A0位清0,準備寫數據MOV R0,#30H MOV R

28、7,#08HDISP: MOV A,R0 ;從段碼緩沖區中取段碼 MOVX DPTR,A INC R0 DJNZ R7,DISP MOV TH0,#00H MOV C,P1.1 JC CNTN CLR P1.1 LJMP MAINCNTN: SETB TR1 ;啟動定時/計數器0 SETB TR0 CLR F0 ACALL CLR0 LJMP HERECLR0: MOV RO<#40H ;清0轉速數據的4位十進制單元(40H43H) MOV R7,#04HCLR2: MOV R0,#00H DJNZ R7,CLR2 RETCLR1: MOV R0,#30H ;清0轉速數據的8位十進制單元

29、(30H33H) MOV R7,#08HCLR3: MOV R0,#00H DJNZ R7,CLR3 RETSHSV: MOV DPTR,#7FFFH ;將8155芯片的Ao位置1,位發命令和讀狀態做準備 MOV A,#0D1H ;清0顯示器WAIT: MOVX A,DPTR ;讀顯示器清0狀態 ACC.7,WAIT MOV A,#34H MOVX DPTR,A MOV A,#90H MOCX DPTR,A RETTISV: MOV TMOD,#6H ;設定定時/計數器0和1的工作方式分別為方式1和2 MOV TL1,#00H MOV TH0,#0D8H MOV TL0,#0F0H MOV R

30、1,#64H CLR F0 CLR P1.1 SETB ET0 SERTB EARETTSEV: MOV TH0,#0D8H MOV TL0,#0F0H DEC R1 ;中斷次數減1 CJNE R1,#00H,END0 SETB F0 CLR TR0 CLR TR1 MOV R1,#64HEND0: RETI ;中斷返回TAB: DB 3FH,06H,5BH,4FH,66H ;斷碼表,09的段碼按字節順序排列 DB 6DH,7DH,07H,7FH,6FH3.7控制程序說明在程序中,定時/計數器0定時10ms;定時/計數器1從0開始計數;單片機的時鐘頻率為12MHz。為了實現1s的定時目的R1寄

31、存器中預置控制常數100。定時/計數器0每中斷一次,中斷服務程序將R1數據減1.當把它減到0的時候1s時間已到,于是把用戶標志位置1,同時關停兩個定時/計數器。返回主程序之后,定時/計數器1的當前計數值(每秒轉數)乘以60,計算電機的每分鐘轉數,且把它暫存到R3(高位)和R2(低位)寄存器中。然后為了把每分鐘轉數的二進制數轉換成4位十進制數,采用無符號數的雙字節減發運算,對R2和R3寄存器的數據反復減1000,直至不夠減時為止。而每次減1000,將40H單元加1,作為轉換后的千位數。當R2和R3的余數不夠減1000時,加上1000恢復余數。不夠減的判斷依據是看借位位是否為1。用同樣的方法,對余

32、數R2和R3繼續減100,將夠減次數計到41H單元,作為轉換后的百位數。當余數不足100的時候采用單字節減法運算,對于余數R2繼續減10,將夠減次數計到42H單元,作為轉換后的十位數。當余數R0不夠減10是,加10恢復余數之后將其作為轉換后的個位數送43H單元。至此每分鐘轉數的4位十進制數依次在40H43H單元之中。此后用查表指令,查詢每位十進制數的顯示段碼,分別送30H33H單元予以保存。最后通過8155接口芯片把它們送到數碼顯示器進行顯示。到此整個測試到此結束。然后檢查系統啟動開關是否斷開。若已經斷開,則把電機關停,使程序轉到主程序的起始位置等待重新啟動。若任仍然接通,那么重新啟動兩個定時器,并把用戶標志位,定時/計數器1(TL1)和轉速數據單元(40H43H)清0,繼續下一輪的測試過程

溫馨提示

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

評論

0/150

提交評論