久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6889|回復(fù): 12
收起左側(cè)

關(guān)于串口通信傳輸數(shù)據(jù)不正確的問題

[復(fù)制鏈接]
ID:440482 發(fā)表于 2019-4-20 10:20 | 顯示全部樓層 |閱讀模式
30黑幣
哪位大哥幫忙看看這個,實在不知道問題出在哪?(可能串口程序存在問題)
本程序完成的內(nèi)容為,數(shù)據(jù)經(jīng)AD采樣后再P1端口顯示,同時向虛擬串口發(fā)送數(shù)據(jù)。遇到問題:P1端口顯示轉(zhuǎn)換數(shù)據(jù)正常,但用串口助手看收到的數(shù)不對。例如P1端口顯示80;串口調(diào)試助手就顯示20;
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. //AD管腳定義
  6. sbit CLK=P2^0;
  7. sbit DI=P2^2;
  8. sbit DO=P2^3;
  9. //譯碼器管腳定義
  10. sbit a=P2^4;
  11. sbit b=P2^5;
  12. sbit c=P2^6;
  13. sbit e=P2^7;

  14. void delay(uint z);        //函數(shù)聲明
  15. void init()
  16. {
  17.                 //串口輸chu
  18.                 SCON=0X40;
  19.                 ES=1;//允許串口中斷
  20.                 //定時器設(shè)置
  21.                 TMOD=0X20;//定時器工作模式選擇方式2        自動裝填
  22.                 TH1=0XF3; //TH1與TL1為定時器中T1寄存器的高8低8位;設(shè)置波特率用
  23.                 TL1=0XF3;
  24.                 PCON=0X80;
  25.                 EA=1;//允許總中斷
  26.                 TR1=1;//開啟T1定時器
  27. }
  28. void delay(uint z)
  29. {
  30.   uint i = 0;
  31.         uint j = 0;
  32.         for(i=0;i<z;i++)
  33.            for(j=0;j<114;j++);
  34. }
  35. uchar read_AD(uint n)
  36. {         int num[4][4]={
  37.                                         {1,1,0,0} ,//CH0
  38.                                         {1,1,1,0} ,//CH1
  39.                                         {1,1,0,1} ,//CH2
  40.                                         {1,1,1,1} ,//CH3
  41.                                         }        ;
  42.         uchar i,out1;
  43.         out1=0;
  44. //加入譯碼器后CS由譯碼器控制    CS=0;
  45.         _nop_();
  46.     CLK=0;
  47. //        DO=0;
  48.     DI=num[n][0];_nop_(); CLK=1;_nop_(); CLK=0;
  49.     DI=num[n][1];_nop_(); CLK=1;_nop_(); CLK=0;
  50.     DI=num[n][2];_nop_(); CLK=1;_nop_(); CLK=0;
  51.     DI=num[n][3];_nop_(); CLK=1;_nop_(); CLK=0;
  52.         _nop_();_nop_();_nop_();       
  53. for(i=0;i<8;i++)//轉(zhuǎn)換8位二進(jìn)制數(shù)
  54. {                
  55.         CLK=1;_nop_();
  56.         CLK=0;_nop_();//下降沿開始數(shù)據(jù)轉(zhuǎn)
  57.         if(DO)
  58.                 out1=out1<<1|DO;
  59.         else
  60.                 out1=out1<<1;  

  61. }       
  62. //加入譯碼器后CS由譯碼器控制         CS=1;
  63.         return out1;
  64. }
  65. void main()
  66. {       
  67. uint i,j;
  68. uchar s;

  69. uint m[8][3]={
  70.                           {0,0,0},//YO
  71.                           {0,0,1},//Y1
  72.                           {0,1,0},//Y2
  73.                           {0,1,1},//Y3
  74.                           {1,0,0},//Y4
  75.                           {1,0,1},//Y5
  76.                           {1,1,0},//Y6
  77.                           {1,1,1} //Y7
  78.                                                 }; //譯碼器控制
  79.                         init(); //串口初始化
  80.                                                  
  81.         while(1)
  82.         {       
  83.                 e=0;//譯碼器U1工作
  84.                 for(j=0;j<1;j++) //循環(huán)使各個AD工作
  85.                 {
  86.                         a=m[j][2];
  87.                         b=m[j][1];
  88.                         c=m[j][0];
  89.                         for(i=0;i<1;i++)//AD通道片選讀取       
  90.                         {
  91.                                 ES=0;
  92.                                 P1=read_AD(i);
  93.                                 s=read_AD(i);
  94.                                 SBUF=s;
  95.                                 while(!TI);
  96.                                 TI=0;       
  97.                                 ES=1;
  98.                         }
  99.                 }
  100.                         e=1;//譯碼器U1工作
  101.         }               
  102. }
復(fù)制代碼


串口.png
串口1.png
回復(fù)

使用道具 舉報

ID:440482 發(fā)表于 2019-4-20 10:21 | 顯示全部樓層
不要沉呀!自頂
回復(fù)

使用道具 舉報

ID:440482 發(fā)表于 2019-4-20 10:27 | 顯示全部樓層
模擬單片機(jī)晶振為12M
回復(fù)

使用道具 舉報

ID:434390 發(fā)表于 2019-4-20 12:35 | 顯示全部樓層
你讀了2次轉(zhuǎn)換數(shù)據(jù),改成1次就OK了
P1=read_AD(i);
s=read_AD(i);

修改如下:
  s=read_AD(i);
  P1=s;

回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2019-4-20 16:56 | 顯示全部樓層
要保證收、發(fā)的字符格式一樣。如:同是ASCII碼、同是HEX格式……
回復(fù)

使用道具 舉報

ID:440482 發(fā)表于 2019-4-21 08:18 | 顯示全部樓層
snni00 發(fā)表于 2019-4-20 12:35
你讀了2次轉(zhuǎn)換數(shù)據(jù),改成1次就OK了
P1=read_AD(i);
s=read_AD(i);

和這個應(yīng)該沒關(guān)系
回復(fù)

使用道具 舉報

ID:440482 發(fā)表于 2019-4-21 08:29 | 顯示全部樓層
yzwzfyz 發(fā)表于 2019-4-20 16:56
要保證收、發(fā)的字符格式一樣。如:同是ASCII碼、同是HEX格式……

沒懂,請指點。應(yīng)該發(fā)送的是HEX格式的,接受也是按HEX顯示。但它數(shù)據(jù)顯示還是不對,我根據(jù)AD轉(zhuǎn)換后現(xiàn)將其在P1口顯示,然后再對比的,兩個數(shù)差太多了
回復(fù)

使用道具 舉報

ID:440482 發(fā)表于 2019-4-21 09:51 | 顯示全部樓層
我這次不加譯碼器工作后,傳輸數(shù)據(jù)就正確了,本來譯碼器只是進(jìn)行片選,但為什么加入譯碼器進(jìn)行片選就不行了呢?求指點
回復(fù)

使用道具 舉報

ID:467275 發(fā)表于 2019-4-21 14:37 | 顯示全部樓層
晶振是否正確匹配
回復(fù)

使用道具 舉報

ID:434390 發(fā)表于 2019-4-21 16:21 | 顯示全部樓層
lizzz 發(fā)表于 2019-4-21 08:18
和這個應(yīng)該沒關(guān)系

如果和確認(rèn)和這個沒關(guān)系,那有2點需要確認(rèn),常量->P1是否是你輸出的常量
回復(fù)

使用道具 舉報

ID:434390 發(fā)表于 2019-4-21 16:26 | 顯示全部樓層
lizzz 發(fā)表于 2019-4-21 08:18
和這個應(yīng)該沒關(guān)系

如果確實和這個沒有關(guān)系,那就需要確認(rèn)
1.預(yù)定值(常量)輸出到P1,你看到的是否是預(yù)定值
2.預(yù)定值(常量)輸出SBUF,串口端顯示是否是預(yù)定值
通過這2點判斷問題在P1,還是在串口
回復(fù)

使用道具 舉報

ID:440482 發(fā)表于 2019-4-22 11:35 | 顯示全部樓層
snni00 發(fā)表于 2019-4-21 16:26
如果確實和這個沒有關(guān)系,那就需要確認(rèn)
1.預(yù)定值(常量)輸出到P1,你看到的是否是預(yù)定值
2.預(yù)定值(常 ...

問題應(yīng)該在串口,但是我不加譯碼器控制時,串口接受的數(shù)又正常了。。。。。
回復(fù)

使用道具 舉報

ID:440482 發(fā)表于 2019-4-22 11:35 | 顯示全部樓層

晶振正確
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 九九久久这里只有精品 | 国产精品视频一二三区 | 国产欧美精品区一区二区三区 | 一区二区三区四区日韩 | 免费国产网站 | 欧美日韩国产精品一区二区 | 91视频在线看 | 亚洲精品中文字幕中文字幕 | 日本一区二区高清视频 | 日本超碰在线 | 婷婷91| 黄色大片免费播放 | 成人福利网站 | 草草草草视频 | 中文字幕一区二区三区不卡在线 | 亚州成人 | 国产专区视频 | 欧美日韩成人在线观看 | 免费一看一级毛片 | 午夜男人的天堂 | 九九精品在线 | 久久久久久免费毛片精品 | 色爱综合网 | 日本不卡一区 | 91一区二区三区在线观看 | 激情福利视频 | 国产区精品 | 99久久久久国产精品免费 | 一区二区三区四区在线 | 北条麻妃一区二区三区在线观看 | 91视频18| 亚洲aⅴ | 精品国产一区二区三区久久久久久 | 国产成人精品一区二区三区在线 | 一级片免费在线观看 | 国产高清视频 | 日韩av成人在线观看 | 日本免费在线观看视频 | 久久91av | 亚洲一区二区三区四区五区午夜 | 国产一级网站 |