版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于鼠標的隨動系統(tǒng)設(shè)計摘 要單片機現(xiàn)在的應范圍越來越廣泛,單片機能夠使用的液晶顯示器也是越來越多。我們在單片機系統(tǒng)中引入鼠標,通過單片機將鼠標移動行程的二位編碼進行采集和顯示,然后通過單片機的輸出控制步進電機的位置移動,形成一個位置隨動系統(tǒng)。位置隨動系統(tǒng)又稱伺服系統(tǒng),主要用于解決位置跟隨的控制問題。 該課題要研究的是對鼠標的二維編碼用單片機采集并顯示出來,同時發(fā)送給兩個步進電機驅(qū)動器使之移動,完成x-y坐標的隨動定位。該設(shè)計的優(yōu)點是首先基于單片機的應用系統(tǒng),具有體積小、重量輕、性價比高以及可靠性較高;然后在單片機系統(tǒng)中引入鼠標可以提高工作效率,方便用戶;最后將可編程控制的單片機應用于步進電機隨
2、動系統(tǒng),可使其具有較大程度的可改變性。關(guān)鍵詞:ps2鼠標接口1602顯示步進電機驅(qū)動 8051單片機abstract the first scm was invented in 1980th,after that ,the scm is gradual widely used in many places,such as the aircraft instrumentation,the time control and data processing of industrial automation system,camera,robot,integrated circuit and so o
3、n. the main content of this paper is that we link the ps2 mouse and the scm together,so that the 1602lcd can show the place and button states on the screen,and then pass the number of the x,y coordinate to the drive of the step motor,the step motor will move and stop in the place you want.keywords:t
4、he interface of ps2mouse and scm,1602lcd,the drive of step motor目 錄第一章 緒論.1 1.1 課題研究的目的和意義.1 1.1.1單片機系統(tǒng)設(shè)計背景.1 1.1.2單片機的基本知識.1 1.2 mcs-51系列單片機介紹.2 1.2.1 基本特性.2 1.2.2 mcs-51單片機的硬件組成結(jié)構(gòu).2 1.2.3 mcs-51的引腳功能.7第二章 硬件電路設(shè)計.10 2.1基于鼠標的隨動系統(tǒng)的總體方案設(shè)計.10 2.2硬件電路設(shè)計.10 2.2.1 ps2接口電路設(shè)計.10 2.2.2 顯示電路設(shè)計.12 2.2.3 步進電機驅(qū)動
5、設(shè)計.14 2.2.4 電源電路設(shè)計.18 2.2.5 復位電路設(shè)計.19 2.2.6 晶振電路設(shè)計.19第三章 軟件設(shè)計.21 3.1 總體方案流程圖.21 3.2 鼠標接口程序模塊.22 3.3 顯示程序模塊.24 3.4 步進電機隨動定位程序模塊.29致謝.30參考文獻.31 附錄1: 設(shè)計電路圖.32 附錄2: 鼠標接口程序.32 附錄3: lcd1602顯示程序.37 附錄4: 步進電機驅(qū)動程序.40第一章 緒 論1.1 課題背景1.1.1單片機系統(tǒng)設(shè)計背景二十世紀是經(jīng)濟和科技飛速發(fā)展的世紀,電腦,互聯(lián)網(wǎng)的出現(xiàn)在很大程度上改變了人們的生活,而單片機的誕生,更是深刻的改變了我們周圍的世
6、界。自從它誕生以來,由于其在結(jié)構(gòu)和指令系統(tǒng)方面的無可替代的優(yōu)點,似的單片機深受民用電器和儀器儀表領(lǐng)域的歡迎和重視。隨著單片機種類的增多,應用范圍的擴大,功能的更新,現(xiàn)在單片機已經(jīng)逐漸成為微型計算機的一個非常重要的分支。目前單片機逐漸融入了人類生活的各個方面滲透到,我們幾乎很難發(fā)現(xiàn)生活中沒有使用單片機的地方。從軍工行業(yè)導彈的導航裝置,軍用民用飛機上的各種儀表盤,廣泛使用的各種智能ic(integrated circuit)集成電路卡,到小汽車的安全保障系統(tǒng),照相機、冰箱,微波爐,電磁爐,洗衣機的控制等等,這些都離不開單片機。單片機現(xiàn)在的應范圍越來越廣泛,單片機能夠使用的液晶顯示器也是越來越多。我
7、們在單片機系統(tǒng)中引入鼠標,通過單片機將鼠標移動行程的二位編碼進行采集和顯示,然后通過單片機的輸出控制步進電機的位置移動,形成一個位置隨動系統(tǒng)。位置隨動系統(tǒng)又稱伺服系統(tǒng),主要用于解決位置跟隨的控制問題。所以該課題要研究的是對鼠標的二維編碼用單片機采集并顯示出來,同時發(fā)送給兩個步進電機驅(qū)動器使之移動,完成x-y坐標的隨動定位。該設(shè)計的優(yōu)點是首先基于單片機的應用系統(tǒng),具有體積小、重量輕、性價比高以及可靠性較高等優(yōu)點。然后在單片機系統(tǒng)中引入鼠標可以提高工作效率,方便用戶,最后將可編程控制的單片機應用于步進電機隨動系統(tǒng),可使其具有較大程度的可改變性。1.1.2單片機的基本知識scm即單片微型計算機作為微
8、型計算機的一個非常重要的分支,特別適用于控制領(lǐng)域,所以又把單片微型計算機稱為微控制器(microcontroller)通常,單片機由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計算機的基本功能部件:中央處理器cpu(central processing unit)、隨機存儲器ram(random access memory)、只讀存儲器rom(read only memory)和i/o接口電路等。所以,單片機只需要與適當?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機控制系統(tǒng)。圖1-1 典型單片機的基本組成結(jié)構(gòu)1.2 mcs-51系列單片機介紹 mcs-51單片機是美國intel公司的8位高檔單片機系列,是在m
9、cs-48系列基礎(chǔ)上發(fā)展而來的。在該系列里,有多種機型,性能特點也各不相同用戶可根據(jù)需要挑選。 1.2.1基本特性在mcs-51系列里,所有產(chǎn)品都是以8051為核心電路發(fā)展起來的,他們都具有8051的基本結(jié)構(gòu)和軟件特征。從制造工藝上看,mcs-51系列中的旗艦基本上可分為hmos(high-speed mos,高速mos)和cmos兩類。cmos器件的特點是電流小且功耗低(掉電方式下消耗10a),但對電平要求高(高電平大于4.5v,低電平小于0.45v),hmos對電平要求低(高電平大于2.0v,低電平小于0.8v),但功耗大。 1.2.2 mcs-51單片機的硬件組成結(jié)構(gòu)mcs-51單片機的
10、內(nèi)部的各功能部件可以劃分為cpu,存儲器,i/o端口,定時器/計數(shù)器和中斷系統(tǒng)五部分。如下圖所示。圖1-2 mcs-51單片機內(nèi)部結(jié)構(gòu)框圖1.2.2.1 cpu結(jié)構(gòu)8051它的里面的cpu為字節(jié)長度二進制8位的所謂中央內(nèi)部處理單元。8051的內(nèi)部的cpu是由數(shù)字運算器alu,控制器的組成部分以及專用的寄存器組,一共三部分電路構(gòu)成。1.算術(shù)功能邏輯部件(alu)8051的算術(shù)邏輯部件是一個性能非常強的運算器,它一方面可以進行一些加減乘除的四則運算,另一方面也能夠?qū)崿F(xiàn)與,或,非,異或類的邏輯運算,它還具有傳送數(shù)據(jù),移位,判斷和轉(zhuǎn)移程序類別的功能。8051alu由一個加法器,兩個8位暫存器(tmp1
11、與tmp2)和一個性能卓越的布爾處理器組成。8051時鐘頻率可達12mhz。2.可定時的控制部件時序控制單元播放控制器,時序控制邏輯,指令的寄存器作用,以及振蕩器的osc和其它電路。指令的寄存器紅外程序存儲器用于存儲從腳本,定時控制指令中使用的邏輯腳本刪除登記解碼,并與osc的執(zhí)行命令,合作生產(chǎn)的定時脈沖,完成指令的執(zhí)行情況。振蕩器(振蕩器)是控制器的核心,該控制器可提供時鐘脈沖。 3.專用的寄存器組專用的寄存器組主要是用來指導當前需要執(zhí)行指令內(nèi)存的地址,其存放的操作數(shù)和它的指示的指令執(zhí)行的狀態(tài)。專用的寄存器組,其主要包括了程序的計數(shù)器,即pc,累加器a,程序的狀態(tài)字,即psw,堆棧的指示器,
12、即sp,數(shù)據(jù)的指針和通用寄存器,即dptr和b。(1)程序的計數(shù)器(pc)程序的計數(shù)器(pc)是一個二進制的存放16位的地址程序寄存器,專是來存放下一條要執(zhí)行的指令的內(nèi)存的地址,能自動加1.(2)累加器(a)累加器a也被稱作acc,它是個有特殊的用途地二進制8位的寄存器,專是用來存放的操作數(shù)或者是它的運算結(jié)果。cpu在執(zhí)行一種運算之前,兩操作數(shù)其中一個通常是應在累加器(a)里面,運算完成以后,累加器(a)中才能夠得到運算的結(jié)果。(3)通用的寄存器(b)通用的寄存器(b)是專為用來做乘法以及除法的設(shè)置的一種寄存器,也同樣是一個二進制的8位的寄存器,它是由八個的觸發(fā)器所組成。這種寄存器在其乘法或者
13、除法之前,是用來作存放的乘數(shù)或者是除數(shù),而且在乘法或者除法完成之后,用來存放所得乘積的高八位數(shù)值或除法所得的余數(shù)的數(shù)值。(4)程序的狀態(tài)字(即psw)psw它是一個有8位的標志性寄存器,它是用來存放一些指令執(zhí)行之后的一些相關(guān)的狀態(tài)。psw中的各個位的狀態(tài)一般是在一些指令執(zhí)行的過程中,其自動而形成的,但是,也能夠由用戶不同的需要,從而采用傳送的指令,使其加以改變。(5)堆棧指針(sp)堆棧指針sp是一個8位寄存器,能自動加1或減1,專門用來存放一些堆棧棧頂?shù)牡刂贰R话阌嬎銠C的堆棧是按照“后進先出”或者“先進后出”的規(guī)律來存取一些data的ram的區(qū)域。8051片子內(nèi)部得ram一共有大小是128b
14、,其地址的范圍是00h到7fh,所以這個區(qū)域其中的任何的子域都能夠用來作為堆棧區(qū)。堆棧區(qū)其有棧底和棧頂之分,棧底由棧底的地址標識,棧頂是由棧頂?shù)牡刂分甘?。棧底的地址它是一直固定不變,這決定了相應的堆棧在ram內(nèi)部的物理內(nèi)存的位置,棧頂?shù)牡刂肥冀K是在sp中,就是由sp所指示,是能夠被改變的,它是決定了堆棧里面是否存放著數(shù)據(jù)。因此,黨堆棧中為無數(shù)據(jù)時,棧頂?shù)刂放c棧底地址必然重合。堆棧里面的數(shù)據(jù)是由一條push的指令壓入內(nèi)存和一條pop的指令彈出來的,push的指令可以使sp之中的內(nèi)容加1,pop的指令相反,可使sp減1.(6)數(shù)據(jù)指針(即dptr)數(shù)據(jù)指針(即dptr),它是一個16位寄存器,是由
15、兩個的8位的寄存器,即dph鈺dpl組合而成。其中dph為dptr的高8位,dpl為dptr的低8位。dptr可以用來存放片內(nèi)rom的地址,也可以用來存放片外ram和片外rom。 1.2.2.2 存儲器結(jié)構(gòu)mcs-51的存儲器不僅有rom和ram之分,而且有片內(nèi)和片外之分。mcs-51的片內(nèi)存儲器集成在芯片內(nèi)部,是mcs-51的一個組成部分;片外存儲器是外接的專用存儲器芯片,mcs-51只提供地址和控制命令,需要通過印刷電路板上三總線才能聯(lián)機工作。1. 存儲器地址分配存儲器的地址分配有三個地址空間,三個地址空間是:rom存儲器地址空間(包括片內(nèi)rom和片外rom),地址范圍是0000h-fff
16、fh;片內(nèi)ram地址空間,地址范圍是00h-ffh;片外ram地址空間,地址范圍是0000h-ffffh.2. 片內(nèi)rom8031沒有rom,只有8051才有4kb rom,地址范圍是0000h-0fffh。3. 片外rammcs-51的片內(nèi)ram容量有128個存儲單元;可以用來存放操作數(shù),操作結(jié)果和實時數(shù)據(jù)。mcs-51可以對片外ram進行讀/寫。4. 片內(nèi)ram8052ah/8752bh的片內(nèi)ram共有256個存儲單元,地址范圍是00h到ffh。其中,00h-7fh為片內(nèi)的ram的低128字節(jié)區(qū),80hffh為片內(nèi)ram的高128字節(jié)區(qū)。在00h-7fh這個地址空間中,根據(jù)不同的功能又能夠
17、分成工作的寄存器區(qū)和位尋址區(qū)以及便箋區(qū)這樣三個子的區(qū)域。5. 具有特殊功能的寄存器(即sfr,80h到ffh)具有特殊功能的寄存器指的是有特殊的用途的寄存器的集合。sfr其實際的個數(shù)和對應的單片機的型號相關(guān);8051和8031中有sfr都是21個,8052中的sfr是26個。每一個的sfr都是占有一個的ram的單元,它們離散地分布于80h到ffh得地址范圍之內(nèi),不被sfr所占用的那些ram單元,其實際上不存在。 表1-1 特殊功能寄存器一覽表符號物理地址名稱*acce0h累加器*bf0hb寄存器*pswd0h程序狀態(tài)子sp81h堆棧指針dpl82h數(shù)據(jù)的寄存器(低8指針)dph83h數(shù)據(jù)的寄存
18、器(高8指針)*p080h通道0*p190h通道1*p2a0h通道2*p3b0h通道3*ipb8h中斷的優(yōu)先級別控制*iea8h中斷的允許級控制器tmod89h定時器的方式選擇*tcon88h定時器的控制器*+t2conc8h定時器2控制器th08ch定時器0的高8位tl08ah定時器0的低8位th18dh定時器1的高8位tl18bh定時器1的低8位+th2cdh定時器2高8位+tl2cch定時器2低8位+rcap2hcbh定時器2捕捉寄存器高8位+rcap2lcah定時器2捕捉寄存器低8位*scon98h串行的控制器sbuf99h串行數(shù)據(jù)的緩沖器pcon87h電源的控制器注:*可以位尋址+僅
19、8052有1.2.2.3 i/o端口i/o端口又叫做i/o接口。i/o端口是mcs-51單片機對于外部的實現(xiàn)控制以及信息交換的必經(jīng)通道,是一個過度的集成的電路,是用于信息的傳送過程中速度的匹配與增強它負載的能力。i/o端口有串行端口和并行端口之分,串行i/o端口每次只能夠傳送一位的二進制的信息,并行i/o端口每次能夠傳送出一組的(8位)二進制的信息。1.并行i/o端口 8051包括四個并行i/o端口,分別的命名是p0,p1,p2和p3,且四個并行的i/o端口中,每一個端口都能夠?qū)崿F(xiàn)雙向i/o的功能。即cpu既可以由四個并行的i/o端口中的隨意的一個能輸出數(shù)據(jù),又可以從它們那里輸入數(shù)據(jù)。2.串行
20、i/o端口 8051有一個全雙工的可編程i/o端口。此串行i/o端口既能夠在程序的控制下將cpu的8位的并行的數(shù)據(jù)轉(zhuǎn)化成串行的數(shù)據(jù)并且逐位地從發(fā)送的數(shù)據(jù)線,即txd中發(fā)送出去,也能夠把rxd線上串行的接收到得數(shù)據(jù)變成8位的并行的數(shù)據(jù)送回給cpu,且這樣串行的發(fā)送以及串行的接收是能夠單獨進行的,也可以同時進行。1.2.2.4 定時器/計數(shù)器 8051內(nèi)部有兩個16位可編程序的定時器/計數(shù)器,命名為t0和t1。t0由兩個8位寄存器th0(高8位)和tl0(低8位)拼裝而成。和t0類同,t1也由th1和tl1拼裝而成。 t0和t1有定時器和計數(shù)器兩種工作模式,在定時器模式下,t0和t1的計數(shù)脈沖可以
21、由單片機時鐘脈沖經(jīng)12分頻后提供,故定時時間和單片機時鐘頻率有關(guān)。在計數(shù)器模式下,t0和t1的計數(shù)脈沖可從p3.4和p3.5引腳上的輸入。1.2.2.5 中斷系統(tǒng) 計算機的終端是指的是cpu原程序暫停執(zhí)行而變?yōu)橥獠康脑O(shè)備服務(即執(zhí)行中斷的服務程序),并且在服務完成后回到了原程序的整個的執(zhí)行過程。中斷系統(tǒng)指的是可以處理上面所說的中斷的過程所必須部分的電路。 中斷源指的是能夠產(chǎn)生中斷的請求性信號的源泉。8051一共能夠處理5個中斷源所發(fā)出來的中斷的請求,可以將五個中斷的請求信號來經(jīng)過排隊以及控制,并且響應那其中優(yōu)先權(quán)能最高的那個中斷請求。8051中的五個的中斷源是有內(nèi)部的和外部的之分:外部的中斷源
22、一共有兩個,一般指外部的設(shè)備;內(nèi)部的中斷源共有三個,一般是有兩個的定時器或者計數(shù)器得中斷源以及一個串行的中斷源。 8051的中斷系統(tǒng)主要有ie(interrupt enable,中斷允許)控制器和中斷優(yōu)先級控制器ip等電路組成。1.2.3 mcs-51的引腳功能mcs-51 系列中,各類單片機是相互兼容的,只是引腳功能略有差異。圖1-3 40引腳雙列直插封裝圖8051有40條引腳,共分為端口線,電源線和控制線三類。1.端口線(48=32)8051共有四個并行i/o端口,每個端口都有8條端口線,用于傳送數(shù)據(jù)/地址。(1) p0.7-p0.0:這組引腳共有8條,位p0口所專用。這8條引腳共有兩種不
23、同的功能。第一種的情況是其8051中不附帶片外的存儲器,p0口能夠作為通用的i/o口使用,p0.7-p0.0用于傳送cpu內(nèi)的輸入/輸出的數(shù)據(jù)。第二種的情況是其8051附帶片外的存儲器,p0.7-p0.0在cpu內(nèi)訪問片外的存儲器時侯,先是用來傳送片外的存儲器中的低8位的地址,然后將傳送cpu中對片外的存儲器的讀寫數(shù)據(jù)。(2)p1.7-p1.0:這8條引腳和p0口得8條引腳類似。(3)p2.7-p2.0:這組引腳的第一功能和上述兩組引腳第一功能相同,即能夠作為通用的i/o使用。它的第二功能和p0口引腳的第二功能相配合,用于輸出片外的存儲器中的高8位地址,共同選中片外的存儲器的單元,但并不能像p
24、0口那樣還可以傳送儲存器的讀寫數(shù)據(jù)。(4)p3.7-p3.0:這組引腳第一功能和其余三個端口的第一功能一樣。第二功能做控制用,每個引腳不全相同。表1-2 p3口各位之1其第二功能p3口的位第二功能注釋p3.0rxd串行數(shù)據(jù)的接收口p3.1txd串行數(shù)據(jù)的發(fā)送口p3.2 int0外中斷0之輸入p3.3int1外中斷1之輸入 p3.4t0計數(shù)器0之計數(shù)輸入 p3.5t1計數(shù)器1之計數(shù)輸入 p3.6wr外部的ram寫信號 p3.7rd外部ram讀信號2.電源線(2條)vcc為+5v的電源線,vss是接地線。3.控制線(6條)(1)ale/prog:地址的鎖存允許/編程線,配合p0口中引腳中的第二個功
25、能的使用。(2)ea/vpp:允許訪問片外存儲器/編程電源線,可控制8051使用片內(nèi)rom還是使用片外rom.若ea=1,則允許使用片內(nèi)rom;若ea=0,則允許使用片外rom。(3)psen:片外rom選通線,在執(zhí)行訪問片外rom的指令movc時,8051自動在psen線上產(chǎn)生一個負脈沖,用于為片外rom芯片的選通。其他情況下,psen線均為高電平封鎖狀態(tài)。(4)rst/vpd:復位/備用電源線??梢允?051處于復位工作狀態(tài)。(5)xtal1和xtal2:片內(nèi)震蕩電路輸入線,這兩個端子用來外接石英晶體和微調(diào)電容,即用來連接851片內(nèi)osc的定時反饋回路。第二章 硬件電路設(shè)計2.1 基于鼠標
26、的隨動系統(tǒng)的總體方案設(shè)計總體設(shè)計流程圖如下:鼠 標鼠標其它電路8051單片機1602液晶顯示m1m2驅(qū)動芯片圖2-1 系統(tǒng)總體方案設(shè)計2.2 硬件電路設(shè)計2.2.1 ps2接口電路設(shè)計 2.2.1.1 ps2鼠標的接口規(guī)范 鼠標的功能是把它自己的二維位移轉(zhuǎn)換成數(shù)字代碼,通過這個接口發(fā)送。當鼠標在最小距離或拖動一個按鈕狀態(tài)變化,它的動作與協(xié)議將信息翻譯后就可以反映距離和按鈕,然后通過一次或多次發(fā)送到主機信息的規(guī)定,主機上的鼠標驅(qū)動程序按照轉(zhuǎn)變信息將供用戶調(diào)用其他程序。傳統(tǒng)的鼠標使用rs232標準接口,單向傳遞信息; ps2鼠標使用的是獨特接口的規(guī)范,信息能夠雙向的傳輸。 1. 工作模式 ps2鼠
27、標包括復位,增量流,遠程控制,回送4種模式。復位的模式本職是一待機的模式,通電之后自動地進入復位模式;回送的模式是把主機所發(fā)送的信息按字節(jié)(oech,0ffh例外)直接返回,可用來檢查鼠標和接口錯誤的情況,或到oech offh然后退出進入復位模式,遠程控制模式下,鼠標是唯一的積極響應主機命令自己不主動發(fā)送信息給主機的模式;增量流模型是鼠標的正常工作模式,在這種模式下,只要鼠標檢測到自己運動或按鈕狀態(tài)變化,主動發(fā)送狀態(tài)報告給主機。當鼠標接通電源后自動進入復位模式,如果鼠標接收到主機的啟動命令進入增量流模型,也就是進入正常工作狀態(tài)。 2.接口規(guī)范ps2鼠標用針微型接插件,實際電路中只使用了其中四
28、個引腳,如圖2-2所示。圖2-2ps2鼠標硬件接口規(guī)范2.2.1.2 ps2鼠標接口設(shè)計由于ps2鼠標接口使用5v的正常工作電壓,并且和ttlttl邏輯電平兼容,所以8051單片機本身可和鼠標直接連接,同時51單片機準雙向i/o口滿足集電極開路條件,因此,采用圖2-3的硬件連接方案。由于正常工作時,鼠標向上發(fā)送信息是隨機的,所以為了保證快速的響應,時鐘引腳必須接終端引腳引腳,即接到p3.2(int0),而數(shù)據(jù)引腳可以接任何一根準雙向引腳。圖2-3 單片機和ps2鼠標的硬件接口2.2.2 顯示電路設(shè)計在單片機系統(tǒng)中應用晶液顯示器作為輸出器件有以下幾個優(yōu)點:顯示質(zhì)量高,體積小、重量輕,功耗低。2.
29、2.2.1 1602簡介 字符型液晶顯示模塊是一種專門顯示字母,數(shù)字,符號等點陣式lcd,我選用的是16*2型液晶顯示,16腳帶背光型,它的最佳工作電壓是5v,工作電流是2.0ma。圖2-4 1602字符型液晶顯示器實物圖1. 1602lcd的基本參數(shù)及引腳功能 圖2-52.1602lcd技術(shù)參數(shù): 顯示容量:162個字符 芯片工作電壓:4.55.5v 工作電流:2.0ma(5.0v) 模塊最佳工作電壓:5.0v 字符尺寸:2.954.35(wh)mm3.引腳功能說明1602lcd各引腳接口說明如表2-1所示:表2-1:引腳接口說明表編號符號引腳說明編號符號引腳說明1vss電源地9d2數(shù)據(jù)2v
30、dd電源正極10d3數(shù)據(jù)3vl液晶顯示偏壓11d4數(shù)據(jù)4rs數(shù)據(jù)/命令選擇12d5數(shù)據(jù)5r/w讀/寫選擇13d6數(shù)據(jù)6e使能信號14d7數(shù)據(jù)7d0數(shù)據(jù)15bla背光源正極8d1數(shù)據(jù)16blk背光源負極2.2.2.2硬件原理圖1602液晶顯示模塊可以和單片機at89c51直接接口,電路如圖 圖2-8 1602與at89c51接口電路圖2.2.3 步進電機驅(qū)動設(shè)計2.2.3.1.步進電機概述步進電機是將電脈沖信號轉(zhuǎn)換成角位移或線位移的開環(huán)控制元件。步進電機的角位移和脈沖數(shù)成正比,轉(zhuǎn)速和脈沖頻率成正比。 我選用的是四相8拍步進電機,用單極性直流電源供電。只要能對步進電機得各項繞組按照適當?shù)臅r序通電,
31、就可以使步進電機轉(zhuǎn)動。 1.步進電機的工作原理步進電機的工作是一步步進馬達轉(zhuǎn)動,它的目的是將脈沖電信號轉(zhuǎn)變?yōu)橄鄳慕俏灰苹蚓€位移。步進電機的轉(zhuǎn)速的高低,勝訴或者降速,啟動或者停止取決于電脈沖的頻率高低或者有沒有信號。 圖2-9是該四相步進電機工作原理示意圖。圖2-9 步進電機的工作原理示意圖開始時,給開關(guān)sb供電,其余三項斷開,b相的磁極與轉(zhuǎn)子的0和3號齒相對齊,而且,轉(zhuǎn)子的1號和4號齒便與c、d兩相繞組的磁極產(chǎn)生相應的錯齒,2號和5號齒也和d、a亮相繞組的磁極產(chǎn)生相應的錯齒。當給開關(guān)sc供電,其余三項斷開時,由于c相繞組的磁力線和1、4號齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動,1、4號齒和c相繞組的
32、磁極對齊。而0、3號齒和a、b相繞組產(chǎn)生錯齒,2、5號齒就和a、d相繞組磁極產(chǎn)生錯齒。給四相繞組按合適的順序輪流供電,步進電機轉(zhuǎn)子就會沿a-b-c-d的方向轉(zhuǎn)動。3.步進電機的驅(qū)動系統(tǒng)的簡介步進電機是不可以直接將其接到交直流的電源上就工作,所以必須使用步進電機的驅(qū)動器。設(shè)計中的步進電機的驅(qū)動系統(tǒng)由單片機、uln2004芯片和步進式電機的本體一共三個部分組合而成。uln2004是一款耐高壓大電流的達林頓管驅(qū)動器,有7個npn達林頓管。單片機發(fā)出不僅脈沖信號與方向信號,每當發(fā)出了一個步進脈沖,步進電機的驅(qū)動器就會驅(qū)動步進式電機的轉(zhuǎn)子旋轉(zhuǎn)一個角度,單片機的方向信號決定步進電機的旋轉(zhuǎn)方向是順時針還是逆
33、時針。2.2.3.2步進電機驅(qū)動電路此電路是步進電機的驅(qū)動部分,我選用的是uln2004芯片來驅(qū)動的。如圖2-10。圖2-11 步進電機驅(qū)動部分2.2.4電源部分電源部分利用lm7812和lm7805芯片得到12v和5v的電壓,其中12v電壓給步進電機供電,5v電壓則給單片機供電。分別如圖2-12、圖2-13所示。圖2-12 產(chǎn)生12v的電壓給步進電機供電圖2-13 產(chǎn)生5v的電壓給單片機供電2.2.5 復位電路設(shè)計 8051的復位有自動上電撫慰和人工按鈕復位兩種,在本設(shè)計中,我們采用開關(guān)復位電路。電路如下圖所示:圖2-14 按鍵復位電路2.2.6 晶振電路設(shè)計 石英晶振起振,會在xtal2線
34、上輸出一個3v左右的正弦波,以便使msc-51單片機內(nèi)的osc電路按石英晶振相同頻率自激震蕩。通常,osc的輸出時鐘頻率fosc為0.5-16mhz,典型值為12mhz或11.0592mhz。電容c01和c02可以幫助起振,典型值為30pf,調(diào)節(jié)它們可以達到微調(diào)fosc的目的。 石英晶振電路如下圖所示:圖2-15 石英晶振電路第三章 軟件設(shè)計 3.1 總體方案流程圖開 始1602初始化步進電機參數(shù)設(shè)置1602顯示x,yps2鼠標初始化按下左鍵按下左鍵和右鍵1602顯示坐標初始值1602顯示鼠標當前坐標值顯示按下左鍵顯示按下左鍵按下右鍵顯示按下右鍵x,y當前坐標值轉(zhuǎn)化為兩步進電機脈沖數(shù)步進電機按
35、脈沖數(shù)運動圖3-1 接口程序流程 3.2 鼠標接口程序模塊主機和ps2的鼠標之間的信息傳輸是按照字節(jié)進行的,主機一般的命令為1個字節(jié),或者2字節(jié)(個別命令),鼠標返回到主機的命令響應是1,2或3個字節(jié),鼠標主動發(fā)送的信息固定為3個字節(jié)。輔助位加字節(jié)就構(gòu)成了一個消息幀字節(jié),包括一個啟示位,一個停止位,一個校驗位和8位數(shù)據(jù),如圖2,每個寬度完全由鼠標控制顯示。 在ps2接口中,信息的整個傳送的活動決定權(quán)根據(jù)主機來決定,傳送的節(jié)奏是由鼠標來控制。沒當鼠標根據(jù)需要來發(fā)送信息的時侯,它會首先檢查一下時鐘是否處于高電平,在確認之后,在其數(shù)據(jù)線上開始發(fā)起始位,然后經(jīng)過時鐘的通知,主機來接收數(shù)據(jù),每個時鐘的脈
36、沖到時下降沿時,主機開始采樣數(shù)據(jù),共11個時鐘的脈沖經(jīng)過后,字節(jié)的傳送結(jié)束,此時鼠標發(fā)現(xiàn),若時鐘是低電平,則說明此時主機是禁止將鼠標使用到總線,從而發(fā)送的過程不能夠啟動。 圖3-3 ps2接口的信息上行(鼠標直到主機)時序當主機在需要發(fā)送指令的時侯,它首先會把時鐘強制定在低電平于100s以上,之后于數(shù)據(jù)線上發(fā)起起始位,進而釋放時鐘線,并通知鼠標進行接收數(shù)據(jù),同時主機必須恰好在每一個時鐘脈沖高電平的期間放置下一個數(shù)據(jù)在數(shù)據(jù)線上,11個時鐘脈沖過后,字節(jié)的傳送結(jié)束,如果信息的上行的過程仍正在進行當中,主機發(fā)出的100s低電平將迫使鼠標終止發(fā)送,轉(zhuǎn)入數(shù)據(jù)接收過程。圖3-4 ps2接口信息下行(主機到
37、鼠標)時序1.鼠標接口流程圖 開始程序初始化發(fā)送數(shù)據(jù)讀出數(shù)據(jù)數(shù)據(jù)處理結(jié)束奇偶校驗yn2.鼠標接口程序(詳細見附錄2)/函數(shù)聲明void int1_init(void);/外部中斷int0初始化void delay120us(void);/延時120us 函數(shù)定義void mouse_write_dat(unsigned char dat); /發(fā)送數(shù)據(jù)void mouse_read_dat(void);/讀出數(shù)據(jù)void mouse_data_process(void);/數(shù)據(jù)處理void mouse_init(void);/鼠標初始化3.3 顯示程序模塊1.1602lcd的指令說明及時序16
38、02液晶模塊內(nèi)部的控制器共有11條控制指令,如表2-2所示:表2-2 1602模塊內(nèi)部控制指令序號指令rsr/wd7d6d5d4d3d2d1d01清顯示00000000012光標返回000000001*3置為輸入模式00000001i/ds4顯示開/關(guān)控制0000001dcb5光標或者字符移位000001s/cr/l*6置功能00001dlnf*7置字符存貯器的地址0001字符存貯器的地址8置數(shù)據(jù)存貯器的地址001顯示數(shù)據(jù)存貯器地址9讀忙標志或地址01bf計數(shù)器地址10寫數(shù)到cgram或ddram)10要寫的數(shù)據(jù)內(nèi)容11從cgram或ddram讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表2-3:基本操作時序表讀狀
39、態(tài)輸入rs=l,r/w=h,e=h輸出d0d7=狀態(tài)字寫指令輸入rs=l,r/w=l,d0d7=指令碼,e=高脈沖輸出無讀數(shù)據(jù)輸入rs=h,r/w=h,e=h輸出d0d7=數(shù)據(jù)寫數(shù)據(jù)輸入rs=h,r/w=l,d0d7=數(shù)據(jù),e=高脈沖輸出無2.1602lcd的ram地址映射及標準字庫表 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行下一條指令之前之前一定要檢查模塊的忙標志為低電平,也就是說,看它是不是已經(jīng)完成上一條指令的執(zhí)行。如果要顯示字符,首先需要先輸入它的字符地址,也就是說需要告訴模塊在哪個位置顯示字符,圖2-6是1602的內(nèi)部顯示地址。圖2-6 1602lcd內(nèi)部顯示地址 例如第一行第五個字符
40、的地址是05h,那么直接寫入05h,這樣不能將光標定位在第一行第五個字符的位置,因為寫入顯示地址時要求最高位d7恒定為高電平1,所以實際的數(shù)據(jù)應該是00000101b(05h)+10000000b(80h)=10000101b。 一般的1602液晶顯示模塊內(nèi)部的cgrom已經(jīng)存儲了160個不同的點陣字符圖形,如表2-4所示,每一個字符都有一個固定的代碼,比如大寫的英文字母“q”的代碼是01010001b(51h),顯示時cgrom把地址51h中的字符圖形顯示出來,我們就可以看到字母“q”。表2-4cgrom和cgram中字符代碼與字符圖形對應關(guān)系3.顯示流程圖開始lcd初始化寫入指令寫入數(shù)據(jù)顯
41、示定位輸出定位字符串輸出二進制數(shù)字結(jié)束4.lcd1602顯示程序(祥見附錄3)/函數(shù)聲明void lcd_busy (void); /檢測lcd是否忙void lcd_init (void); /lcd初始化void lcd_cmd (unsigned char cmd); /寫入指令void lcd_dat (unsigned char dat); /寫入數(shù)據(jù)void lcd_pos (unsigned char x, unsigned char y); /顯示定位void lcd_prints(unsigned char x, unsigned char y, unsigned char
42、*s); /定位輸出字符串void lcd_printn(unsigned char x, unsigned char y, unsigned int num); /定位輸出16位二進制數(shù)字3.4 步進電機隨動定位程序模塊1. 步進電機程序(詳見附錄4)static unsigned int count; /計數(shù)static int step_index; /步進索引數(shù),值為07static bit turn; /步進電機轉(zhuǎn)動方向static bit stop_flag; /步進電機停止標志static int speedlevel; /步進電機轉(zhuǎn)速參數(shù),數(shù)值越大速度越慢,最小值為1,速度最快
43、static int spcount; /步進電機轉(zhuǎn)速參數(shù)計數(shù)static int x;void delay(unsigned int endcount); /延時函數(shù),延時為endcount*0.5毫秒void gorun(); /步進電機控制步進函數(shù)致 謝歷時一個月的畢業(yè)設(shè)計終于告一段落,我的畢業(yè)設(shè)計是基于單片機的隨動系統(tǒng)設(shè)計,由于自己在單片機的學習方面存在紕漏,所以在做畢業(yè)設(shè)計的過程中我遇到了很多困難和問題,所以向老師咨詢了很多,我的輔導老師也竭盡全力的給了我很多鼓勵和幫助,對我的設(shè)計提出了很多好的建議和方案,在此非常感謝他。然后還要感謝的是我的同學,他們在專業(yè)方面和資料搜集方面給了我很
44、多幫助,能在完成自己的畢業(yè)設(shè)計的前提下花很多時間幫助我,我表示非常敬佩和感謝。我的畢業(yè)設(shè)計能夠順利完成離不開他們的幫助,在這里深表感謝。參考文獻1 胡漢才,單片機原理及其接口技術(shù),清華大學出版社,20102 于靜,張立新,ps2鼠標與51系列單片機的軟硬件接口,北京石油化工學院學報 2008.09,no.3.3 謝勇全,基于單片機控制的ccd隨動系統(tǒng)設(shè)計,吉首大學物理科學與信息工程學院4 1602相關(guān)資料 網(wǎng)頁: 附錄1 系統(tǒng)電路圖附錄2鼠標接口程序/防止被重復定義引用#ifndef _ps_mouse_h_#define _ps_mouse_h_sbit mouse_sda = p35;/鼠
45、標數(shù)據(jù)線sbit mouse_clk = p33;/鼠標時鐘線/數(shù)據(jù)定義unsigned char n, m;/循環(huán)變量unsigned int mouse_word;/接收字16bitsunsigned char mouse_data3;/接收字節(jié)緩沖區(qū)unsigned int move_x;/橫坐標unsigned int move_y;/縱坐標bit mouse_left;/左鍵bit mouse_right;/右鍵bit mouse_middle;/中鍵/函數(shù)聲明void int1_init(void);/外部中斷int0初始化void delay120us(void);/延時120u
46、s 函數(shù)定義void mouse_write_dat(unsigned char dat); /發(fā)送數(shù)據(jù)void mouse_read_dat(void);/讀出數(shù)據(jù)void mouse_data_process(void);/數(shù)據(jù)處理void mouse_init(void);/鼠標初始化/外部中斷int0初始化void int1_init(void) ea = 1;/總中斷ex1 = 1;/外部中斷px1 = 1;/中斷優(yōu)先級it1 = 0;/低電平觸發(fā)/延時120us 函數(shù)定義void delay120us(void) unsigned char i, j; for(i = 23; i 0; i-) for(j = 1; j 0; j-);/發(fā)送數(shù)據(jù)/發(fā)送11位數(shù)據(jù):1start-8data-1parity-1stop/并接收一個應答位ack = 0void mouse_write_dat(unsigned char dat)unsi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國氣泡水行業(yè)市場發(fā)展策略及競爭趨勢分析報告
- 2024-2030年中國橡膠填充油行業(yè)競爭格局與前景發(fā)展策略分析報告
- 2024-2030年中國樓宇無線行業(yè)市場發(fā)展現(xiàn)狀及投資商業(yè)模式分析報告
- 2024-2030年中國權(quán)益眾籌行業(yè)市場競爭格局及投資運營模式分析報告
- 字母音樂活動課程設(shè)計
- 2024-2030年中國智能傳感器行業(yè)發(fā)展動態(tài)及前景趨勢分析報告
- 2024-2030年中國無隔板高效空氣過濾器項目申請報告
- 感官活動課程設(shè)計
- 2024-2030年中國無人零售商店前景動態(tài)與投資盈利預測報告版
- 太原永輝超市活動促銷方案
- 采購部經(jīng)理年度工作總結(jié)
- 新能源汽車項目融資計劃書
- 研學基地設(shè)計方案
- 預防網(wǎng)絡(luò)成癮心理課課件
- 運動中常見骨折的預防與處理
- 2024年1月份21起典型事故案例匯總及2024年節(jié)前安全檢查與春節(jié)安全專題培訓
- 《GDP核算講義》課件
- 金屬鈷分析報告
- 《小腸解剖及臨床》課件
- 《柔韌素質(zhì)訓練方法》課件
評論
0/150
提交評論