freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于鼠標(biāo)的隨動系統(tǒng)設(shè)計畢業(yè)設(shè)計論文(編輯修改稿)

2025-07-16 13:00 本頁面
 

【文章內(nèi)容簡介】 數(shù)據(jù)16BLK背光源負極1602液晶顯示模塊可以和單片機AT89C51直接接口,電路如圖 圖28 1602與AT89C51接口電路圖 步進電機驅(qū)動設(shè)計步進電機是將電脈沖信號轉(zhuǎn)換成角位移或線位移的開環(huán)控制元件。步進電機的角位移和脈沖數(shù)成正比,轉(zhuǎn)速和脈沖頻率成正比。 我選用的是四相8拍步進電機,用單極性直流電源供電。只要能對步進電機得各項繞組按照適當(dāng)?shù)臅r序通電,就可以使步進電機轉(zhuǎn)動。 步進電機的工作是一步步進馬達轉(zhuǎn)動,它的目的是將脈沖電信號轉(zhuǎn)變?yōu)橄鄳?yīng)的角位移或線位移。步進電機的轉(zhuǎn)速的高低,勝訴或者降速,啟動或者停止取決于電脈沖的頻率高低或者有沒有信號。 圖29是該四相步進電機工作原理示意圖。圖29 步進電機的工作原理示意圖開始時,給開關(guān)SB供電,其余三項斷開,B相的磁極與轉(zhuǎn)子的0和3號齒相對齊,而且,轉(zhuǎn)子的1號和4號齒便與C、D兩相繞組的磁極產(chǎn)生相應(yīng)的錯齒,2號和5號齒也和D、A亮相繞組的磁極產(chǎn)生相應(yīng)的錯齒。當(dāng)給開關(guān)SC供電,其余三項斷開時,由于C相繞組的磁力線和4號齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動,4號齒和C相繞組的磁極對齊。而0、3號齒和A、B相繞組產(chǎn)生錯齒,5號齒就和A、D相繞組磁極產(chǎn)生錯齒。給四相繞組按合適的順序輪流供電,步進電機轉(zhuǎn)子就會沿ABCD的方向轉(zhuǎn)動。步進電機是不可以直接將其接到交直流的電源上就工作,所以必須使用步進電機的驅(qū)動器。設(shè)計中的步進電機的驅(qū)動系統(tǒng)由單片機、ULN2004芯片和步進式電機的本體一共三個部分組合而成。ULN2004是一款耐高壓大電流的達林頓管驅(qū)動器,有7個NPN達林頓管。單片機發(fā)出不僅脈沖信號與方向信號,每當(dāng)發(fā)出了一個步進脈沖,步進電機的驅(qū)動器就會驅(qū)動步進式電機的轉(zhuǎn)子旋轉(zhuǎn)一個角度,單片機的方向信號決定步進電機的旋轉(zhuǎn)方向是順時針還是逆時針。此電路是步進電機的驅(qū)動部分,我選用的是ULN2004芯片來驅(qū)動的。如圖210。圖211 步進電機驅(qū)動部分電源部分利用LM7812和LM7805芯片得到12V和5V的電壓,其中12V電壓給步進電機供電,5V電壓則給單片機供電。分別如圖21圖213所示。圖212 產(chǎn)生12V的電壓給步進電機供電圖213 產(chǎn)生5V的電壓給單片機供電 復(fù)位電路設(shè)計 8051的復(fù)位有自動上電撫慰和人工按鈕復(fù)位兩種,在本設(shè)計中,我們采用開關(guān)復(fù)位電路。電路如下圖所示:圖214 按鍵復(fù)位電路 晶振電路設(shè)計 石英晶振起振,會在XTAL2線上輸出一個3V左右的正弦波,以便使MSC51單片機內(nèi)的OSC電路按石英晶振相同頻率自激震蕩。通常。電容C01和C02可以幫助起振,典型值為30pf,調(diào)節(jié)它們可以達到微調(diào)fOSC的目的。 石英晶振電路如下圖所示:圖215 石英晶振電路第三章 軟件設(shè)計 總體方案流程圖開 始1602初始化步進電機參數(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)化為兩步進電機脈沖數(shù)步進電機按脈沖數(shù)運動圖31 接口程序流程 鼠標(biāo)接口程序模塊主機和PS2的鼠標(biāo)之間的信息傳輸是按照字節(jié)進行的,主機一般的命令為1個字節(jié),或者2字節(jié)(個別命令),鼠標(biāo)返回到主機的命令響應(yīng)是1,2或3個字節(jié),鼠標(biāo)主動發(fā)送的信息固定為3個字節(jié)。輔助位加字節(jié)就構(gòu)成了一個消息幀字節(jié),包括一個啟示位,一個停止位,一個校驗位和8位數(shù)據(jù),如圖2,每個寬度完全由鼠標(biāo)控制顯示。 在PS2接口中,信息的整個傳送的活動決定權(quán)根據(jù)主機來決定,傳送的節(jié)奏是由鼠標(biāo)來控制。沒當(dāng)鼠標(biāo)根據(jù)需要來發(fā)送信息的時侯,它會首先檢查一下時鐘是否處于高電平,在確認之后,在其數(shù)據(jù)線上開始發(fā)起始位,然后經(jīng)過時鐘的通知,主機來接收數(shù)據(jù),每個時鐘的脈沖到時下降沿時,主機開始采樣數(shù)據(jù),共11個時鐘的脈沖經(jīng)過后,字節(jié)的傳送結(jié)束,此時鼠標(biāo)發(fā)現(xiàn),若時鐘是低電平,則說明此時主機是禁止將鼠標(biāo)使用到總線,從而發(fā)送的過程不能夠啟動。 圖33 PS2接口的信息上行(鼠標(biāo)直到主機)時序當(dāng)主機在需要發(fā)送指令的時侯,它首先會把時鐘強制定在低電平于100μs以上,之后于數(shù)據(jù)線上發(fā)起起始位,進而釋放時鐘線,并通知鼠標(biāo)進行接收數(shù)據(jù),同時主機必須恰好在每一個時鐘脈沖高電平的期間放置下一個數(shù)據(jù)在數(shù)據(jù)線上,11個時鐘脈沖過后,字節(jié)的傳送結(jié)束,如果信息的上行的過程仍正在進行當(dāng)中,主機發(fā)出的100μs低電平將迫使鼠標(biāo)終止發(fā)送,轉(zhuǎn)入數(shù)據(jù)接收過程。圖34 PS2接口信息下行(主機到鼠標(biāo))時序 開始程序初始化發(fā)送數(shù)據(jù)讀出數(shù)據(jù)數(shù)據(jù)處理結(jié)束奇偶校驗YN(詳細見附錄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)。 //鼠標(biāo)初始化 顯示程序模塊1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表22所示:表22 1602模塊內(nèi)部控制指令序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置為輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或者字符移位000001S/CR/L**6置功能00001DLNF**7置字符存貯器的地址0001字符存貯器的地址8置數(shù)據(jù)存貯器的地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表23:基本操作時序表讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0—D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0—D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0—D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0—D7=數(shù)據(jù),E=高脈沖輸出無 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行下一條指令之前之前一定要檢查模塊的忙標(biāo)志為低電平,也就是說,看它是不是已經(jīng)完成上一條指令的執(zhí)行。如果要顯示字符,首先需要先輸入它的字符地址,也就是說需要告訴模塊在哪個位置顯示字符,圖26是1602的內(nèi)部顯示地址。圖26 1602LCD內(nèi)部顯示地址 例如第一行第五個字符的地址是05H,那么直接寫入05H,這樣不能將光標(biāo)定位在第一行第五個字符的位置,因為寫入顯示地址時要求最高位D7恒定為高電平1,所以實際的數(shù)據(jù)應(yīng)該是00000101B(05H)+10000000B(80H)=10000101B。 一般的1602液晶顯示模塊內(nèi)部的CGROM已經(jīng)存儲了160個不同的點陣字符圖形,如表24所示,每一個字符都有一個固定的代碼,比如大寫的英文字母“Q”的代碼是01010001B(51H),顯示時CGROM把地址51H中的字符圖形顯示出來,我們就可以看到字母“Q”。表24CGROM和CGRAM中字符代碼與字符圖形對應(yīng)關(guān)系開始LCD初始化寫入指令寫入數(shù)據(jù)顯示定位輸出定位字符串輸出二進制數(shù)字結(jié)束(祥見附錄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 *s)。 //定位輸出字符串void LCD_printn(unsigned char x, unsigned char y, unsigned int num)。 //定位輸出16位二進制數(shù)字 步進電機隨動定位程序模塊1. 步進電機程序(詳見附錄4)static unsigned int count。 //計數(shù)static int step_index。 //步進索引數(shù),值為0-7static bit turn。 //步進電機轉(zhuǎn)動方向static bit stop_flag。 //步進電機停止標(biāo)志static int speedlevel。 //步進電機轉(zhuǎn)速參數(shù),數(shù)值越大速度越慢,最小值為1,速度最快static int spcount。 //步進電機轉(zhuǎn)速參數(shù)計數(shù)static int x。void delay(unsigned int endcount)。 //延時函數(shù),延時為endcount*void gorun()。 //步進電機控制步進函數(shù)致 謝歷時一個月的畢業(yè)設(shè)計終于告一段落,我的畢業(yè)設(shè)計是基于單片機的隨動系統(tǒng)設(shè)計,由于自己在單片機的學(xué)習(xí)方面存在紕漏,所以在做畢業(yè)設(shè)計的過程中我遇到了很多困難和問題,所以向老師咨詢了很多,我的輔導(dǎo)老師也竭盡全力的給了我很多鼓勵和幫助,對我的設(shè)計提出了很多好的建議和方案,在此非常感謝他。然后還要感謝的是我的同學(xué),他們在專業(yè)方面和資料搜集方面給了我很多幫助,能在完成自己的畢業(yè)設(shè)計的前提下花很多時間幫助我,我表示非常敬佩和感謝。我的畢業(yè)設(shè)計能夠順利完成離不開他們的幫助,在這里深表感謝。參考文獻[1] 胡漢才,單片機原理及其接口技術(shù),清華大學(xué)出版社,2010[2] 于靜,張立新,PS2鼠標(biāo)與51系列單片機的軟硬件接口,北京石油化工學(xué)院學(xué)報 ,.[3] 謝勇全,基于單片機控制的CCD隨動系統(tǒng)設(shè)計,吉首大學(xué)物理科學(xué)與信息工程學(xué)院[4] 1602相關(guān)資料 網(wǎng)頁:附錄1 系統(tǒng)電路圖附錄2鼠標(biāo)接口程序//防止被重復(fù)定義引用ifndef __PS_mouse_H__define __PS_mouse_H__sbit mouse_sda = P3^5。 //鼠標(biāo)數(shù)據(jù)線sbit mouse_clk = P3^3。 //鼠標(biāo)時鐘線
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1