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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2153|回復: 9
打印 上一主題 下一主題
收起左側

單片機串行通信問題

[復制鏈接]
跳轉到指定樓層
樓主
我想實現按鍵傳送,可是出現了問題

發送
#include<reg52.h>
char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit q=P3^6;
int num=0;
scon=0x50;
int ge;
                void delay(){
                int i,j=0;
                for(i=500;i<0;i--)
                        for(;j<100;j++);
                                        }
main(){
while(1){
        if(q==0)
        delay();
        if(q==0)
        {
        num++;
            if(num>9)num=0;
                SBUF=num;
                while(TI==0);
                TI=0;
                while(RI==0);
                RI=0;
                if(SBUF==num){
                ge=num%10;
                P1=tab[ge];
                delay();
                }
                while(q==0);
                }       
        }
}


接收

#include<reg52.h>
char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int num=0;
scon=0x50;
char receive;
int ge;
                void delay(){
                int i,j=0;
                for(i=500;i<0;i--)
                        for(;j<100;j++);
                                        }
main(){
while(1){
                while(RI==0){
                RI=0;
                receive=SBUF;
                SBUF=receive;
                while(TI==0);
                TI=0;
                P1=tab[receive%10];
                }
                delay();
                }       
        }





1.jpg (78.72 KB, 下載次數: 39)

1.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:245521 發表于 2017-11-29 20:01 | 只看該作者
是延時不夠長的問題嗎?
回復

使用道具 舉報

板凳
ID:123289 發表于 2017-11-29 21:04 | 只看該作者
如果RI=1時,則表示收到了一個字節。所以必須在RI=1后才可以取數字。
同樣,當發送了一個字節后TI被置1。所以必須在TI=1之后才能續發下一個字節。
回復

使用道具 舉報

地板
ID:222948 發表于 2017-11-29 21:58 | 只看該作者
兄弟用到串口怎么沒有串口的程序
回復

使用道具 舉報

5#
ID:222948 發表于 2017-11-29 22:15 | 只看該作者
  1. //注意我的是p3^7,你的是p3^6
  2. //發送
  3. #include<reg52.h>
  4. char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  5. sbit q=P3^7;
  6. int num=0;
  7. //scon=0x50;
  8. int ge;
  9.                 void delay(){
  10.                 int i,j=0;
  11.                 for(i=500;i<0;i--)
  12.                         for(;j<100;j++);
  13.                                         }
  14. void main(){
  15.         SCON = 0x50;   // ′®¿ú1¤×÷·½ê½1
  16.         TMOD = 0x20;   // T11¤×÷·½ê½2
  17.         PCON = 0x00;   //SMOD=0
  18.         TH1  = 0xfd;    //×°èë3õÖ죬2¨ìØÂê9600
  19.         TL1  = 0xfd;
  20.         TI   = 0;            //±ê־λ3õê¼»ˉ
  21.         RI   = 0;
  22.         TR1  = 1;           //Æô¶ˉ¶¨ê±Æ÷T1
  23.         EA=1;           //CPU¿aÖD¶Ï
  24.     ES=1;   
  25. while(1){
  26.         if(q==0)
  27.         delay();
  28.         if(q==0)
  29.         {
  30.         num++;
  31.             if(num>9)num=0;
  32.                 SBUF=num;
  33.                 while(TI==0);
  34.                 TI=0;
  35.                 while(RI==0);
  36.                 RI=0;
  37.                 if(SBUF==num){
  38.                 ge=num%10;
  39.                 P1=tab[ge];
  40.                 delay();
  41.                 }
  42.                 while(q==0);
  43.                 }        
  44.         }
  45. }

  46. void Serial() interrupt 4        //????
  47. {
  48.         if(RI==1)                    //??????
  49.         {
  50.                  RI = 0;       
  51.                 P1= tab[SBUF];  //????????       
  52.         }
  53. }

  54. //接收
  55. #include<reg52.h>
  56. char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  57. int num=0;
  58. //scon=0x50;
  59. char receive;
  60. int ge;
  61.                 void delay(){
  62.                 int i,j=0;
  63.                 for(i=500;i<0;i--)
  64.                         for(;j<100;j++);
  65.                                         }
  66. void main(){
  67.         P1= tab[0];     // ????
  68.         SCON = 0x50;         // ??????1,????
  69.         TMOD = 0x20;        // T1????2
  70.         PCON = 0x00;        //SMOD=0
  71.         TH1  = 0xfd;         //????,???9600
  72.         TL1  = 0xfd;
  73.         TI   = 0;       //?????
  74.         RI   = 0;
  75.         TR1  = 1;       //?????T1
  76.         EA=1;           //CPU???
  77.     ES=1;
  78. while(1)
  79.         {
  80.                 while(RI==0){
  81.                 RI=0;
  82.                 receive=SBUF;
  83.                 SBUF=receive;
  84.                 while(TI==0);
  85.                 TI=0;
  86.                 P1=tab[receive%10];
  87.                 }
  88.                 delay();
  89.                 }        
  90.         }

  91.                                 void Serial() interrupt 4        //????
  92. {
  93.         if(RI==1)                    //??????
  94.         {
  95.                  RI = 0;       
  96.                 P1= tab[SBUF];  //????????       
  97.         }
  98. }
復制代碼

回復

使用道具 舉報

6#
ID:222948 發表于 2017-11-29 22:19 | 只看該作者
Doc1.docx (34.39 KB, 下載次數: 6)
回復

使用道具 舉報

7#
ID:245521 發表于 2017-11-29 22:26 | 只看該作者
yzwzfyz 發表于 2017-11-29 21:04
如果RI=1時,則表示收到了一個字節。所以必須在RI=1后才可以取數字。
同樣,當發送了一個字節后TI被置1。 ...

還是不太理解,我是在RI、TI都發生改變才有動作
回復

使用道具 舉報

8#
ID:245521 發表于 2017-11-29 22:54 | 只看該作者
我是借鑒這個

P71129-225347.jpg (1.31 MB, 下載次數: 44)

P71129-225347.jpg

P71129-225352.jpg (1.31 MB, 下載次數: 31)

P71129-225352.jpg
回復

使用道具 舉報

9#
ID:245521 發表于 2017-11-29 23:02 | 只看該作者
999333 發表于 2017-11-29 21:58
兄弟用到串口怎么沒有串口的程序

我沒打算用串口中斷啊
回復

使用道具 舉報

10#
ID:245521 發表于 2017-11-29 23:03 | 只看該作者

老鐵你看我下面發的圖,沒有打算用串行中斷呢
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕一区二区三区四区不卡 | 一区视频在线 | 一区二区三区四区视频 | 青青久视频 | 国产精品99久久久久久久vr | 观看av | 国产人成精品一区二区三 | 极品的亚洲 | 国产精品久久久久久久久污网站 | 欧美男人天堂 | 国产精品1区2区 | 国产日韩精品一区二区三区 | 国产精品a久久久久 | 国产精品a一区二区三区网址 | 国产一二三区免费视频 | 涩涩99| 国产美女精品视频免费观看 | 色婷婷久久久久swag精品 | 羞羞网站在线观看 | 午夜精品一区二区三区在线视频 | 欧美日韩一区二区三区四区五区 | 在线2区| 一区二区精品 | 天天干天天干 | 午夜精品视频 | 久久99精品久久久久蜜桃tv | h片免费看 | 久久久国产亚洲精品 | 中文在线一区二区 | 日本在线视频中文字幕 | 国产精品一区久久久 | 国产精品国产精品国产专区不片 | 日本特黄特色aaa大片免费 | 欧美日韩在线精品 | 久久不射电影网 | 99久久99| 欧美激情精品久久久久久 | 成人av在线播放 | 国产98在线 | 免费, | 中文字幕视频三区 | 国产精品久久9 |