亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 求PC與89C51單片機(jī)之間的串行通信(PC發(fā)送,單片機(jī)接收,,接收數(shù)值) [打印本頁]

作者: a838036398    時(shí)間: 2019-4-9 20:28
標(biāo)題: 求PC與89C51單片機(jī)之間的串行通信(PC發(fā)送,單片機(jī)接收,,接收數(shù)值)
接收數(shù)值要賦給一個(gè)變量,這個(gè)變量時(shí)用來控制舵機(jī)pwm波占空比的,求大佬們解答這段串口通信程序怎么編?

作者: a838036398    時(shí)間: 2019-4-9 20:39
控制雙舵機(jī),所以需要輸入兩個(gè)變量0.0,我覺得應(yīng)該和一個(gè)變量差不多吧
作者: wulin    時(shí)間: 2019-4-10 06:27
a838036398 發(fā)表于 2019-4-9 20:39
控制雙舵機(jī),所以需要輸入兩個(gè)變量0.0,我覺得應(yīng)該和一個(gè)變量差不多吧

串口每次只能傳輸1個(gè)字節(jié),如果沒有使用自定義協(xié)議傳輸數(shù)據(jù)串,只是用簡單的單字節(jié)傳輸兩個(gè)變量,可以用一個(gè)字節(jié)的高4位和低4位各表示一個(gè)變量。如收到0xab,高4位分解為x=0xab>>4; 低4位分解為 y=0xab&0x0f;
作者: a838036398    時(shí)間: 2019-4-10 13:19
wulin 發(fā)表于 2019-4-10 06:27
串口每次只能傳輸1個(gè)字節(jié),如果沒有使用自定義協(xié)議傳輸數(shù)據(jù)串,只是用簡單的單字節(jié)傳輸兩個(gè)變量,可以用 ...

大佬,具體應(yīng)該怎么寫呢?怎么定義這個(gè)變量,“uchar (隨機(jī)寫)=0xab”嗎?然后在主函數(shù)里提取x=。。。y=。。。這樣嗎?不好意思,小白給大佬添麻煩了

作者: a838036398    時(shí)間: 2019-4-10 13:22
wulin 發(fā)表于 2019-4-10 06:27
串口每次只能傳輸1個(gè)字節(jié),如果沒有使用自定義協(xié)議傳輸數(shù)據(jù)串,只是用簡單的單字節(jié)傳輸兩個(gè)變量,可以用 ...

大佬那具體怎么寫呢,是uchar 。。=0xab,然后再主函數(shù)中用你說的x=。。y=。。。提取高四位第四位這樣嗎?小白給大佬添麻煩了
作者: wulin    時(shí)間: 2019-4-11 08:12
a838036398 發(fā)表于 2019-4-10 13:22
大佬那具體怎么寫呢,是uchar 。。=0xab,然后再主函數(shù)中用你說的x=。。y=。。。提取高四位第四位 ...

給你寫一個(gè)示例程序,兩種數(shù)據(jù)解析方案任選一種。輸出端口可以自行重新定義。


  1. #include <AT89X52.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit LED1=P1^0;
  5. sbit LED2=P1^1;

  6. bit flag;                                //接收完成標(biāo)志,
  7. uchar num,num1,num2;        //接收/分解的變量

  8. void main()                                                       
  9. {
  10.         PCON &= 0x7F;                //波特率不倍速
  11.         SCON = 0x50;                //8位數(shù)據(jù),可變波特率
  12.         TMOD|= 0x20;                //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
  13.         TL1 = 0xFD;                        //設(shè)定定時(shí)初值
  14.         TH1 = 0xFD;                        //設(shè)定定時(shí)器重裝值
  15.         TR1 = 1;                        //啟動(dòng)定時(shí)器1
  16.         ET1 = 0;                        //禁止定時(shí)器1中斷
  17.         EA = 1;                                //開總中斷
  18.         ES = 1;                                //開串口中斷
  19.         while(1)
  20.         {
  21.                 if(flag==1)                //接收完成標(biāo)志為1
  22.                 {
  23.                         ES=0;                //關(guān)串口中斷
  24.                         flag=0;                //接收完成標(biāo)志清0
  25.                         SBUF=num;        //返回PC收到的數(shù)據(jù)
  26.                         while(!TI);        //等待發(fā)送中斷請求標(biāo)志位為1
  27.                         TI=0;                //發(fā)送中斷請求標(biāo)志位清0
  28.                         ES=1;                //開串口中斷
  29.         /*************數(shù)據(jù)解析方案一************/
  30.                         num1=num&0xf0;
  31.                         num2=num&0x0f;
  32.                         if(num1==0xa0)LED1=0;
  33.                         if(num1==0xb0)LED1=1;
  34.                         if(num2==0x0a)LED2=0;
  35.                         if(num2==0x0b)LED2=1;
  36.         /*************數(shù)據(jù)解析方案二************/
  37. /*                        num1=num>>4;
  38.                         num2=num&0x0f;
  39.                         if(num1==0x0a)LED1=0;
  40.                         if(num1==0x0b)LED1=1;
  41.                         if(num2==0x0a)LED2=0;
  42.                         if(num2==0x0b)LED2=1;
  43. */
  44.                 }
  45.         }
  46. }

  47. void ser() interrupt 4
  48. {                                //當(dāng)接收完成發(fā)生中斷請求RI由硬件置1
  49.         RI=0;                //接收中斷請求標(biāo)志位必須軟件清0
  50.         num=SBUF;        //獲取SBUF接收到的數(shù)據(jù)
  51.         flag=1;                //接收完成標(biāo)志置1
  52. }
復(fù)制代碼




作者: zyi    時(shí)間: 2019-4-11 10:25
按串口的協(xié)議持續(xù)將變量寫入舵機(jī)
作者: a838036398    時(shí)間: 2019-4-11 10:26
wulin 發(fā)表于 2019-4-11 08:12
給你寫一個(gè)示例程序,兩種數(shù)據(jù)解析方案任選一種。輸出端口可以自行重新定義。

非常感激,謝謝帶佬




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1