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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2816|回復: 18
收起左側

單片機串口通信,為啥我甲機的935467傳送過去變成了這樣?求一個解決辦法

[復制鏈接]
ID:934867 發表于 2021-6-8 15:59 | 顯示全部樓層 |閱讀模式
本帖最后由 一個用戶名 于 2021-6-10 00:34 編輯

3.png 1.png 2.png
這是程序問題還是電路問題啊,求分析
甲機源碼:
#include <reg51.h>  
void main()               
{
        unsigned char i;
        unsigned char send[]={9,3,5,4,6,7};
        TMOD=0x20;      
        TL1=0xf4;         
        TH1=0xf4;
        TR1=1;
        SCON=0x40;
        for(i=0;i<6;i++)
        {
                SBUF=send[ i];   
            while(TI==0);     
            TI=0;
        }  
        while(1);
}

乙機源碼:
  1. #include <reg51.h>
  2. unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  3. unsigned char buffer[]={0x00,0x00,0x00,0x00,0x00,0x00};
  4. void disp(void);
  5. void main()
  6. {
  7.         unsigned char i;
  8.         TMOD=0x20;
  9.         TL1=0xf4;
  10.         TH1=0xf4;
  11.         TR1=1;        
  12.         SCON=0x40;
  13.         REN=1;
  14.         for(i=0;i<6;i++)
  15.         {
  16.                 while(RI==0);
  17.                 buffer[i]=SBUF;
  18.                 RI=0;        
  19.         }
  20.         for(;;) disp();
  21. }
  22. void disp()
  23. {
  24.         unsigned char w,i,j;
  25.         w=0x01;
  26.         for(i=0;i<6;i++)
  27.         {
  28.                 P1=tab[buffer[i]];
  29.                 P2=~w;
  30.                 for(j=0;j<100;j++);
  31.                 w<<=1;
  32.         }
  33. }
復制代碼



回復

使用道具 舉報

ID:934867 發表于 2021-6-13 23:25 來自觸屏版 | 顯示全部樓層
已解決,感謝各位的指導和幫助,麻煩大家了!
回復

使用道具 舉報

ID:883031 發表于 2021-6-9 09:00 | 顯示全部樓層
乙機主程序會跑飛的
回復

使用道具 舉報

ID:213173 發表于 2021-6-9 17:29 | 顯示全部樓層
其實這個問題很簡單,但樓主基礎太差。三言兩語說不清,說多了也消化不了。串口函數和顯示函數都有問題。
回復

使用道具 舉報

ID:934867 發表于 2021-6-9 17:42 來自觸屏版 | 顯示全部樓層
wulin 發表于 2021-6-9 17:29
其實這個問題很簡單,但樓主基礎太差。三言兩語說不清,說多了也消化不了。串口函數和顯示函數都有問題。

這,新手實錘,那程序怎么改啊?
回復

使用道具 舉報

ID:934867 發表于 2021-6-9 17:43 來自觸屏版 | 顯示全部樓層
cn_zhx 發表于 2021-6-9 09:00
乙機主程序會跑飛的

啊,怎么解決
回復

使用道具 舉報

ID:934867 發表于 2021-6-9 17:48 來自觸屏版 | 顯示全部樓層
求修改方案,我努力消化
回復

使用道具 舉報

ID:213173 發表于 2021-6-9 21:11 | 顯示全部樓層
一個用戶名 發表于 2021-6-9 17:48
求修改方案,我努力消化


給你改好了,就這么一點代碼你慢慢去消化吧。
無標題.jpg

  1. #include <reg51.h>  
  2. void main()               
  3. {
  4.         unsigned char i;
  5.         unsigned char send[]={9,3,5,4,6,7};
  6.         TMOD=0x20;      
  7.         TL1=0xf4;         
  8.         TH1=0xf4;
  9.         TR1=1;
  10.         SCON=0x40;

  11.         for(i=0;i<6;i++)
  12.         {
  13.            SBUF=send[i];   
  14.            while(!TI);     
  15.            TI=0;
  16.         }  
  17.         while(1);
  18. }
復制代碼
  1. #include<reg51.h>
  2. unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  3. unsigned char buffer[6];

  4. void disp(void);

  5. void main()
  6. {
  7.         TMOD=0x20;
  8.         TL1=0xf4;
  9.         TH1=0xf4;
  10.         TR1=1;        
  11.         SCON=0x40;
  12.         REN=1;
  13.         EA=1; //開總中斷
  14.         ES=1; //允許串口中斷

  15.         while(1)
  16.         {
  17.                 disp();
  18.         }
  19. }

  20. void disp()
  21. {
  22.         static unsigned char i;
  23.         unsigned char j;
  24.         P2=0xff;
  25.         P1=tab[buffer[i]];
  26.         P2=~(0x01<<i);
  27.         for(j=0;j<100;j++);
  28.         i=++i%6;
  29. }

  30. void ser() interrupt 4
  31. {
  32.         static unsigned char i=0;
  33.         RI=0;
  34.         buffer[i]=SBUF;
  35.         i++;
  36.         if(i>=6)
  37.                 i=0;
  38. }
復制代碼




回復

使用道具 舉報

ID:934867 發表于 2021-6-10 00:08 | 顯示全部樓層
本帖最后由 一個用戶名 于 2021-6-10 00:35 編輯
wulin 發表于 2021-6-9 21:11
給你改好了,就這么一點代碼你慢慢去消化吧。

感謝指導,麻煩您了,還能發一下protues里的pdsprj文件嗎?
我傻了,這是什么情況? 2.png
這是我pdsprj文件,代碼應該沒問題。 New.zip (15.72 KB, 下載次數: 5)


回復

使用道具 舉報

ID:934867 發表于 2021-6-10 00:13 | 顯示全部樓層

刪除

本帖最后由 一個用戶名 于 2021-6-10 23:09 編輯
wulin 發表于 2021-6-9 21:11
給你改好了,就這么一點代碼你慢慢去消化吧。

2.png

one.zip

19.58 KB, 下載次數: 4

回復

使用道具 舉報

ID:213173 發表于 2021-6-10 06:20 | 顯示全部樓層

仿真里的兩個芯片加載程序不要搞錯了,另外晶振頻率都要改為11059200或11.0592MHz。 無標題.jpg


回復

使用道具 舉報

ID:934867 發表于 2021-6-10 22:17 | 顯示全部樓層
wulin 發表于 2021-6-10 06:20
仿真里的兩個芯片加載程序不要搞錯了,另外晶振頻率都要改為11059200或11.0592MHz。

我用的Proteus 8.9,改了頻率,還是不行。
回復

使用道具 舉報

ID:94031 發表于 2021-6-11 09:07 | 顯示全部樓層
一個用戶名 發表于 2021-6-10 22:17
我用的Proteus 8.9,改了頻率,還是不行。

你把你的工程整個打包發出來讓大家看一下。
回復

使用道具 舉報

ID:123289 發表于 2021-6-11 11:14 | 顯示全部樓層
不一定是軟件問題。
先學會如果調試程序。
走單步看結果先搞會,看看傳來的數據是否OK?
再調試顯示器:人工給個數字,看看能否正確顯示。
這些都不會,暫時就不要搞單片機了。先去補課。
回復

使用道具 舉報

ID:934867 發表于 2021-6-11 21:33 來自觸屏版 | 顯示全部樓層
xuyaqi 發表于 2021-6-11 09:07
你把你的工程整個打包發出來讓大家看一下。

就在9樓那個New. zip里面
回復

使用道具 舉報

ID:934867 發表于 2021-6-11 21:34 來自觸屏版 | 顯示全部樓層
yzwzfyz 發表于 2021-6-11 11:14
不一定是軟件問題。
先學會如果調試程序。
走單步看結果先搞會,看看傳來的數據是否OK?

好的(Д)補課去了,感覺拿了本壞教材
回復

使用道具 舉報

ID:94031 發表于 2021-6-12 08:07 | 顯示全部樓層
一個用戶名 發表于 2021-6-11 21:33
就在9樓那個New. zip里面

共陰.png 數碼管應該用共陰要換。
回復

使用道具 舉報

ID:934867 發表于 2021-6-13 23:24 來自觸屏版 | 顯示全部樓層
xuyaqi 發表于 2021-6-12 08:07
數碼管應該用共陰要換。

!成功了,是換成共陽!!
回復

使用道具 舉報

ID:390416 發表于 2021-7-6 20:29 | 顯示全部樓層

串口1打印程序 可以打印3個十六位的變量 波特率9600 http://www.zg4o1577.cn/bbs/dpj-201660-1.html

串口發送 不需要while死等 串口接收執行軟件復位 http://www.zg4o1577.cn/bbs/dpj-200927-1.html
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产乱码久久久久久1区2区 | 精品国产18久久久久久二百 | 亚洲精品久久国产高清情趣图文 | 日韩av一区二区在线观看 | 国内精品一区二区 | 91精品国产高清一区二区三区 | 日本不卡一区 | 日韩一级免费电影 | 在线国产一区二区 | 国产精品日韩 | 午夜视频在线 | 国产成人精品在线 | 婷婷色网| 成人在线一区二区三区 | 日韩精品一区中文字幕 | 国产一区久久 | 99久久精品国产毛片 | 亚洲午夜精品一区二区三区他趣 | 国产精品久久久久aaaa九色 | 中文字幕一区二区三区日韩精品 | 久久美女网 | 精品国产欧美 | 国产中文一区二区三区 | 老司机免费视频 | 粉色午夜视频 | 亚洲自拍偷拍欧美 | 国产一区二区三区四区 | 婷婷国产一区 | 国产日韩一区二区三免费高清 | 日本在线播放一区二区 | 综合九九| 91精品国产乱码久久久久久久 | 久久久精 | 国产欧美在线播放 | 亚洲国产精品久久 | 欧美日韩亚洲在线 | 日韩不卡一区二区三区 | 国产成人免费 | 精区3d动漫一品二品精区 | 全部免费毛片在线播放网站 | 成人精品在线视频 |