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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機串行通信問題

查看數: 2271 | 評論數: 9 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2017-11-29 19:36

正文摘要:

我想實現按鍵傳送,可是出現了問題 發送 #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;       &n ...

回復

ID:245521 發表于 2017-11-29 23:03

老鐵你看我下面發的圖,沒有打算用串行中斷呢
ID:245521 發表于 2017-11-29 23:02
999333 發表于 2017-11-29 21:58
兄弟用到串口怎么沒有串口的程序

我沒打算用串口中斷啊
ID:245521 發表于 2017-11-29 22:26
yzwzfyz 發表于 2017-11-29 21:04
如果RI=1時,則表示收到了一個字節。所以必須在RI=1后才可以取數字。
同樣,當發送了一個字節后TI被置1。 ...

還是不太理解,我是在RI、TI都發生改變才有動作
ID:222948 發表于 2017-11-29 22:19
Doc1.docx (34.39 KB, 下載次數: 6)
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. }
復制代碼

ID:222948 發表于 2017-11-29 21:58
兄弟用到串口怎么沒有串口的程序
ID:123289 發表于 2017-11-29 21:04
如果RI=1時,則表示收到了一個字節。所以必須在RI=1后才可以取數字。
同樣,當發送了一個字節后TI被置1。所以必須在TI=1之后才能續發下一個字節。
ID:245521 發表于 2017-11-29 20:01
是延時不夠長的問題嗎?

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲色欲色欲www | 视频在线亚洲 | 亚洲精品国产一区 | 天久久| 日韩在线播放av | 九九热这里 | 秋霞电影院午夜伦 | 成年人精品视频在线观看 | 亚洲在线 | 久久综合成人精品亚洲另类欧美 | 亚洲精品99 | 成人黄色av | 成人免费看片 | 美女激情av | 久精品久久| 欧美日韩高清在线一区 | 久久久久91| 久久精品综合 | 亚洲欧美在线视频 | 国产91av视频 | 国产福利资源 | 国产欧美一区二区三区久久人妖 | 黄色毛片在线播放 | 手机日韩| 久久亚洲一区二区三 | 国产一级在线 | av永久免费 | 成人在线中文字幕 | 欧美一卡二卡在线观看 | 99精品久久久久 | 亚洲视频在线观看免费 | 国产免费一区二区三区最新6 | 自拍中文字幕 | 精品久久久久久 | 国产在线aa | 国产精品久久午夜夜伦鲁鲁 | 亚洲精品www. | 国产成人精品一区二区 | 密室大逃脱第六季大神版在线观看 | 中文字幕精品一区二区三区在线 | 91麻豆精品一区二区三区 |