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

正文內(nèi)容

二維點(diǎn)樣平臺設(shè)計(jì)畢業(yè)論文-文庫吧資料

2025-07-03 12:39本頁面
  

【正文】 左上角坐標(biāo)為(20,120),右下角坐標(biāo)為110,20) 39?;卦c(diǎn)操作Private Sub Command7_Click() 0 / 2, 0 + / 2 = CInt( + / 2) = CInt( / 2)SendXY 0, 0End SubPrivate Sub Form_Load()39。X+操作If ( + / 2) 100 Then + 1, = CInt( + / 2) = CInt( / 2)SendXY CInt( + / 2), CInt( / 2)End IfEnd SubPrivate Sub CommandYM_Click()39。Y+操作If ( / 2) 100 Then , + 1 = CInt( + / 2) = CInt( / 2)SendXY CInt( + / 2), CInt( / 2)End IfEnd SubPrivate Sub CommandXM_Click()39。 = CInt( + / 2) 39。H80 sendbyte(1) = yv = sendbyte SendXY = True End IfEnd FunctionPrivate Sub Command8_Click() If (TextX1(intger).Text = X1 Or TextX1(intger).Text = Or = Y1 Or = _ Or = X2 Or = Or = Y2 Or = _ Or = X3 Or = Or = Y3 Or = ) Then MsgBox 請輸入三組點(diǎn)樣坐標(biāo)(0100之間的數(shù)值)!Else If CInt(TextX1(intger).Text) = 100 And CInt() = 100 And CInt() = 100 _ And CInt() = 100 And CInt() = 100 And CInt() = 100 Then = True = False timercount = 0 39。如果出錯(cuò),則返回0 Exit Function Resume Next End IfEnd FunctionPrivate Function SendXY(xv As Integer, yv As Integer) As Boolean 39。這里接受傳入的串口號 = True = False Test_COM = True 39。檢測端口信號函數(shù)39。單片機(jī)控制系統(tǒng)可以選用更強(qiáng)大的單片機(jī),比如低功耗的16單片機(jī)MSP430或者運(yùn)行更快的基于CotexM3內(nèi)核的32位STM32單片機(jī)[6] [9]。由于本人時(shí)間和精力有限,有很多需要改進(jìn)和完善的地方。下位機(jī)是由51單片機(jī)控制一個(gè)系統(tǒng),當(dāng)接收到串口數(shù)據(jù)時(shí),對數(shù)據(jù)進(jìn)行分析,提取出上位機(jī)發(fā)送的坐標(biāo)值,驅(qū)動(dòng)X軸和Y軸步進(jìn)電機(jī),實(shí)現(xiàn)二維點(diǎn)樣。5 總結(jié)本課題設(shè)計(jì)了基于Visual Basic的二維點(diǎn)樣控制平臺和基于51單片機(jī)的串口通信控制系統(tǒng)。圖14 單片機(jī)系統(tǒng)仿真經(jīng)測試,串口通信部分能接收到正確的數(shù)據(jù),單片機(jī)能驅(qū)動(dòng)X軸和Y軸步進(jìn)電機(jī)正轉(zhuǎn)或反轉(zhuǎn)一定角度,旋轉(zhuǎn)方向和角度都和上位機(jī)發(fā)送的一致,LED燈能正確指示系統(tǒng)和步進(jìn)電機(jī)運(yùn)行狀態(tài)。圖13 上位機(jī)和單片機(jī)通信測試當(dāng)有數(shù)據(jù)接收到時(shí),可以看到步進(jìn)電機(jī)轉(zhuǎn)動(dòng)和LED狀態(tài)燈點(diǎn)亮,轉(zhuǎn)動(dòng)方向和角度和上位機(jī)發(fā)送的一致。判斷單片機(jī)接收到的數(shù)據(jù)是否和上位機(jī)發(fā)送的一致,可以打開Virtual Terminal觀察,串口接收到的數(shù)據(jù)可以實(shí)時(shí)的顯示出來。 下位機(jī)電路和通信測試驗(yàn)證二維點(diǎn)樣平臺功能正常之后,使用它和單片機(jī)進(jìn)行通信。圖12 上位機(jī)平臺和串口調(diào)試助手通信測試 經(jīng)測試,二維點(diǎn)樣平臺和串口調(diào)試助手通信正常。如圖11所示。 }}程序中還設(shè)計(jì)了三個(gè)LED狀態(tài)指示燈,系統(tǒng)運(yùn)行時(shí)打開LED1,X軸步進(jìn)電機(jī)運(yùn)行時(shí)打開LED2,Y軸步進(jìn)電機(jī)運(yùn)行時(shí)打開LED3,停止運(yùn)行時(shí)關(guān)閉相應(yīng)的LED。 if(++tail == len) tail = 0。 //隊(duì)列中的數(shù)據(jù)個(gè)數(shù)在接收中斷程序中將數(shù)據(jù)存入隊(duì)列,程序如下:void ser()interrupt 4{ RI=0。 //隊(duì)列頭uchar tail = 0。隊(duì)列的定義:define len 20 //隊(duì)列長度uchar Value[len]。轉(zhuǎn)動(dòng)的角度即是當(dāng)前值和接收的坐標(biāo)值之間的差值。這樣單片機(jī)處理起來就簡單方便多了,單片機(jī)接到數(shù)據(jù)之后將最高位去除,然后送給相應(yīng)的步進(jìn)電機(jī)就可以了。串口接收到數(shù)據(jù)時(shí)會觸發(fā)接收中斷,在中斷函數(shù)里不做處理,只把它存到一個(gè)隊(duì)列里,主函數(shù)判斷到隊(duì)列中有數(shù)值的時(shí)候會依次讀取,并判斷數(shù)值是X軸坐標(biāo)數(shù)據(jù)還是Y軸坐標(biāo)數(shù)據(jù)。該函數(shù)有三個(gè)參數(shù),第一個(gè)參數(shù)xy用來選擇電機(jī),xy為1的時(shí)候控制X軸電機(jī),xy為2的時(shí)候控制Y軸電機(jī);第二個(gè)參數(shù)m是調(diào)整的角度;第三個(gè)參數(shù)n是選擇正轉(zhuǎn)反轉(zhuǎn),n為1時(shí)正轉(zhuǎn),n為0時(shí)反轉(zhuǎn)。本設(shè)計(jì)的步進(jìn)電機(jī)可以通過坐標(biāo)判斷而相應(yīng)的正轉(zhuǎn)或翻轉(zhuǎn)。 //接受中斷標(biāo)志位 …} 步進(jìn)電機(jī)程序步進(jìn)電機(jī)工作原理簡單,本設(shè)計(jì)中選用四線制步進(jìn)電機(jī),每一條線導(dǎo)通,步進(jìn)電機(jī)會旋轉(zhuǎn)一個(gè)角度,如果順序?qū)?,那么電機(jī)就會正轉(zhuǎn)。 //開串口中斷}串口產(chǎn)生接收中斷,RI硬件置位,在串口接收中斷函數(shù)里必須軟件清除接收中斷標(biāo)志。 //允許串口接收 EA=1。 //設(shè)置串口工作方式1 SM1=1。 TR1=1。 //定時(shí)器1工作方式2 TH1=0xfd。當(dāng)接收到數(shù)據(jù)時(shí)進(jìn)去中斷函數(shù)進(jìn)行相應(yīng)的處理。接受到數(shù)據(jù)時(shí)進(jìn)去進(jìn)去中斷函數(shù)進(jìn)行相應(yīng)的處理。 51單片機(jī)內(nèi)部的串口擁有兩個(gè)物理上相互獨(dú)立的接收、發(fā)送緩沖器SBUF,可以同時(shí)接收和發(fā)送數(shù)據(jù),兩個(gè)緩沖器占用同一個(gè)地址(99H)。該接口有4種工作方式,以適用于不同場合。圖10 步進(jìn)電機(jī)驅(qū)動(dòng)電路 單片機(jī)軟件程序設(shè)計(jì)單片機(jī)軟件部分主要是串口通信程序、步進(jìn)電機(jī)控制程序和接收到數(shù)據(jù)后的邏輯處理和控制程序。所以本設(shè)計(jì)選ULN2003 驅(qū)動(dòng)四線制步進(jìn)電機(jī)。ULN2003 是高耐壓、大電流復(fù)合晶體管陣列,由七個(gè)硅NPN 復(fù)合晶體管組成。圖9 串口通信電路 二維步進(jìn)電機(jī)電路為了模擬二維坐標(biāo)電機(jī)的轉(zhuǎn)動(dòng),本系統(tǒng)設(shè)計(jì)了兩組步進(jìn)電機(jī),X軸步進(jìn)電機(jī)和Y軸步進(jìn)電機(jī)。為了查看單片機(jī)串口通信數(shù)據(jù),仿真中加入Virtual Terminal虛擬終端。本設(shè)計(jì)使用Proteus仿真,Protues帶有串口仿真元件COMPIM,它集成了TTLRS232電路的。圖8LED狀態(tài)指示燈 串口通信電路RS232接口上通信時(shí)要12V的電壓才能識別,也就是高低電平為12V和0V,但是51單片機(jī)的高低電平為5V和0V,所以單片機(jī)和電腦的串口通信需要高平轉(zhuǎn)換。復(fù)位電路是由電阻、電容和按鍵組成的上電復(fù)位和按鍵復(fù)位。如圖7所示。下位機(jī)驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)動(dòng)流程圖如圖6所示圖6下位機(jī)控制步進(jìn)電機(jī)流程圖 51單片機(jī)最小系統(tǒng)AT89C51是應(yīng)用廣泛的8位單片機(jī),它擁有4K的FLASH,128字節(jié)的RAM,兩個(gè)16位的定時(shí)器,可編程串行中斷,以及低功耗閑置和掉電模式。方法是選擇“文件”菜單下的“生成Make ”選項(xiàng),在跳出來的對話框中修改文件名,然后確認(rèn)即可,這樣就完成了二維點(diǎn)樣平臺上位機(jī)的開發(fā)工作了[1]。在本程序中是這么處理的:On Error GoTo Comm_Error…Comm_Error: If = 8002 Then MsgBox 串口不存在,請配置串口號為COM4!… 程序發(fā)布調(diào)試好程序之后,雖然沒有錯(cuò)誤出現(xiàn),但該應(yīng)用程序還只是源文件,只能在Visual Basic的編譯環(huán)境中運(yùn)行,因此需要制作成可執(zhí)行文件。為了將錯(cuò)誤代碼翻譯成對改錯(cuò)誤的描述,可以將捕獲的錯(cuò)誤代碼傳給Visual Basic提供的Error函數(shù),在給函數(shù)完成對錯(cuò)誤代碼的解釋。舉個(gè)例子來說,如果MSComm控件的Settings設(shè)置為“9600,n,9,1”,運(yùn)行時(shí)會報(bào)錯(cuò),跳出對話框“Invalid property value”。錯(cuò)誤通常有語法錯(cuò)誤、運(yùn)行錯(cuò)誤和邏輯錯(cuò)誤。此外,對三組數(shù)據(jù)的輸入進(jìn)行限制,當(dāng)輸入為空或者大于100則跳出消息框提示用戶輸入正確的數(shù)值,錯(cuò)誤提示如圖5所示。Timer的Interval用來設(shè)置定時(shí)時(shí)間,單位為毫秒,本設(shè)計(jì)設(shè)置為1000,也就是一秒中斷一次。H80 sendbyte(1) = yv = sendbyte SendXY = True End IfEnd Function自動(dòng)采樣需要用戶輸入三組坐標(biāo)值,然后點(diǎn)擊開始,數(shù)據(jù)每隔一秒發(fā)送一組,同時(shí)移動(dòng)二維坐標(biāo)顯示區(qū)的圓點(diǎn),并顯示坐標(biāo)移動(dòng)軌跡。具體的代碼如下所示:Private Function SendXY(xv As Integer, yv As Integer) As Boolean 39。本系統(tǒng)設(shè)計(jì)X軸和Y軸坐標(biāo)都在0100以內(nèi),為了方便下位機(jī)區(qū)分接收到的數(shù)據(jù),發(fā)送之前將X軸坐標(biāo)值和十六進(jìn)制H80相“與”,這樣X軸數(shù)據(jù)最高位為1,Y軸數(shù)據(jù)最高位為0,下位機(jī)就可以通過數(shù)據(jù)的最高位來判斷收到的數(shù)據(jù)是X軸坐標(biāo)還是Y軸坐標(biāo)。數(shù)據(jù)的發(fā)送使用MSComm控件Output屬性。為了在上位機(jī)上直觀看到坐標(biāo)的移動(dòng)軌跡,那么需同時(shí)移動(dòng)坐標(biāo)圓點(diǎn)的位置以及更改TextBox中的坐標(biāo)值。如果返回1,表示串口可用 Exit FunctionComm_Error: If = 8002 T
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1