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

正文內(nèi)容

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

2025-07-16 13:00 本頁(yè)面
 

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