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

正文內(nèi)容

單片機(jī)電機(jī)測試系統(tǒng)的研制-上位機(jī)監(jiān)控系統(tǒng)設(shè)計(jì)(編輯修改稿)

2025-04-23 01:43 本頁面
 

【文章內(nèi)容簡介】 if(DQ) dat |= 0x80。 Delay(4)。 } return (dat)。}/**********************************************************/void WriteOneChar(unsigned char dat) // 寫一個(gè)字節(jié){ unsigned char i = 0。for (i = 8。 i 0。 i) { DQ = 0。 DQ = datamp。0x01。 Delay(5)。 DQ = 1。 dat=1。 }}/*********************************************************/void Read_SPEED(void)// 讀取轉(zhuǎn)速{ Init_DS18B20()。 if(presence==1) { beep()。 flash=1。 } // DS不正常,蜂鳴器報(bào)警 else { flash=0。WriteOneChar(0xCC)。 // 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x44)。 // 啟動(dòng)轉(zhuǎn)速轉(zhuǎn)換Init_DS18B20()。WriteOneChar(0xCC)。 // 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0xBE)。 // 讀取轉(zhuǎn)速寄存器temp_data[0] = ReadOneChar()。 // 轉(zhuǎn)速低8位temp_data[1] = ReadOneChar()。 // 轉(zhuǎn)速高8位 }}/*********************************************************/void Disp_SPEED()// 顯示轉(zhuǎn)速{ unsigned char n=0。 display[4]=temp_data[0]amp。0x0f。 display[0]=ditab[display[4]]。 // 查表得小數(shù)位的值 display[4]=((temp_data[0]amp。0xf0)4)|((temp_data[1]amp。0x0f)4)。 display[3]=display[4]/100。 display[1]=display[4]%100。 display[2]=display[1]/10。 display[1]=display[1]%10。 if(!display[3]) // 高位為0,不顯示 { display[3]=0x0a。 if(!display[2]) // 次高位為0,不顯示 display[2]=0x0a。 } P0 = 0xc6。 // 顯示 C P2 = 0xfe。 // ,LED為共陽極顯示,當(dāng)位選線為低電平時(shí)選通 Delay(300)。 P0 = 0x9c。 // 顯示 176。 P2 = 0xfd。 // Delay(300)。 P0 =LEDData[display[0]] 。 // 顯示小數(shù)位 P2 = 0xfb。 // Delay(300)。 P0 =LEDData1[display[1]]。 // 顯示個(gè)位 P2 = 0xf7。 Delay(300)。 P0 =LEDData[display[2]]。 // 顯示十位 P2 = 0xef。 Delay(300)。 P0 =LEDData[display[3]]。 // 顯示百位 P2 = 0xdf。 Delay(300)。 P2 = 0xff。 // 關(guān)閉顯示}/*********************************************************/void beep(void){ unsigned char i。 for (i=0。i100。i++) { Delay(60)。 BEEP=!BEEP。 // BEEP取反 } BEEP=1。 // 關(guān)閉蜂鳴器}/*********************************************************/void init(void){ EA = 1。 // 中斷總允許 TMOD = 0x20。 // 定時(shí)器1工作于8位自動(dòng)重載模式, 用于產(chǎn)生波特率 TH1=(unsigned char)(256 (XTAL / (32L * 12L * baudrate)))。 TL1=(unsigned char)(256 (XTAL / (32L * 12L * baudrate)))。 // 定時(shí)器0賦初值 SCON = 0x50。 // 設(shè)定串行口工作方式 PCON amp。= 0x00。 // 波特率不倍增 TR1 = 1。 // 啟動(dòng)定時(shí)器1 IE = 0x00。 // 禁止任何中斷}/*********************************************************/void send_char(void)// 傳送十六位的轉(zhuǎn)速數(shù)據(jù),低位在前{ unsigned i=0。 while (i 2) { SBUF = temp_data[i]。 while (!TI)。 // 等特?cái)?shù)據(jù)傳送 TI = 0。 // 清除數(shù)據(jù)傳送標(biāo)志 i++。 }}/*********************************************************/void main(void){ uchar receive。 init()。 while(1) { Read_SPEED()。 // 讀取轉(zhuǎn)速 if (flash==0) { Disp_SPEED()。 // 顯示轉(zhuǎn)速 } else { P2 = 0x00 。 // DQ不正常,關(guān)閉顯示 } if (RI) // 是否有數(shù)據(jù)到來 { RI = 0。 receive = SBUF。 if (receive == 49) // 是否開始采集轉(zhuǎn)速 { send_char()。 // 傳送采集的轉(zhuǎn)速 } } }} 說明(MSB)結(jié)束(0x50)、數(shù)據(jù)域(右電機(jī)參數(shù)(1字節(jié)),左電機(jī)參數(shù)(1字節(jié)))、命令(1字節(jié))、地址(1字節(jié))、校驗(yàn)碼(2字節(jié))(LSB)例:0x50、數(shù)據(jù)(N字節(jié))、0x30x0xbd(高位)、0xc0(低位)0xbd、0xc0:CRC碼[0][1]0x10:單片機(jī)地址[2]0x34:顯示電機(jī)狀態(tài)及PWM參數(shù)命令[3]命令集:0x36:顯示電機(jī)速度數(shù)據(jù)域:左電機(jī)參數(shù)(0x02正轉(zhuǎn),0x04反轉(zhuǎn),0x00停止)[4]0x50:告訴單片機(jī)數(shù)據(jù)已經(jīng)傳輸完畢了[6]程序如下:Dim ga_byRcvBuf(0 To 15) As Byte 39。 接收數(shù)據(jù)存儲(chǔ)器Dim gi_byRcvCount As Byte 39。接收計(jì)數(shù)器,也是下標(biāo)Dim g_ucRcvCrcLow As ByteDim g_ucRcvCrcHigh As ByteDim g_uCrcLow As ByteDim g_uCrcHigh As BytePublic gc_BufCount As BytePrivate Sub Command1_Click(Index As Integer) If = False Then On Error GoTo tOpenCom If = COM1 Then = 1 ElseIf = COM2 Then = 2 ElseIf = COM3 Then = 3 ElseIf = COM4 Then = 4 ElseIf = COM5 Then = 5 ElseIf = COM6 Then = 6 ElseIf = COM7 Then = 7 End If = True MsgBox (串口打開完畢!) Else MsgBox (串口已打開!)tOpenCom: MsgBox (錯(cuò)誤描述: amp。 ) End IfEnd SubPrivate Sub Command2_Click() If = False Then MsgBox (串口未打開!) Else = False MsgBox (串口關(guān)閉成功!) End IfEnd Sub39??捎肅RC校驗(yàn)碼Function bCRC(data() As Byte, le As Byte) As Long39。數(shù)組指針計(jì)數(shù)器 Dim mc_bPtr As Byte39。unsigned char i。 Dim i As Byte39。unsigned int crc=0。 Dim crc As Long LSres = le crc = 0 mc_bPtr = 0 39。CRC計(jì)算入口 Do While (le 0) le = le 139。for(i=0x80。 i!=0。 i/=2) Dim c As Byte 39。模擬i=0x80 c = amp。H80 For i = 0 To 7 If ((crc And amp。H8000) 0) Then crc = crc And amp。H7FFF crc = CLng(crc) * 2 crc = CLng(crc) Xor amp。H1021 Else crc = CLng(crc) * 2 End If If ((data(mc_bPtr) And c) 0) Then crc = CLng(crc) Xor amp。H1021 Else End If c = c / 2 Next mc_bPtr = mc_bPtr + 1 Loop39。return(crc)。 bCRC = CLng(crc)End FunctionPrivate Sub Command3_Click() 39。輸出電機(jī)的PWM與方向命令 Dim lSende(0 To 8) As Byte Dim rSende(0 To 4) As Byte Dim g_lcrcLow As Byte Dim g_lcrcHigh As Byte Dim lmotordp As Byte Dim rMotordp As Byte Dim lpwm As Byte Dim rpwm As Byte 39。left motor
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1