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