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

標題: 單片機串口程序,不清楚為什么出錯 [打印本頁]

作者: 深層次    時間: 2023-10-28 17:00
標題: 單片機串口程序,不清楚為什么出錯
這也是一次單片機練習,我是根據課上講的仿照寫的,但是出錯了,不清楚出錯點,請各位大佬給指點指點。

要求:計算機發送數據0x00~0x0F,一次發送一個數據,單片機接收后在1位共陽數碼管上顯示,并返回計算機一個信息,例如接收到0x00,返回一個0x80,接收0x01,返回0x81

單片機源程序如下:
#include<reg52.h>
#define uchar unsigned char//宏定義非整型字符
#define uint unsigned int//宏定義整型字符
uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極數碼管0~16段碼
uchar code sendbuf[]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
0x8A,0x8B,0x8C,0x8D,0X8E,0X8F};//單片機返回數字
uchar dat;
void delay(uint a);
void uart();
void send(uchar byte);
/****主函數*****/
void main()
{   uart();
   while(1);
}
/*****串口方式初始化*******/
void uart()
{  SCON=0x50;//串口方式一,允許接收
    PCON=0x80; //波特率加倍
    TMOD=0x20; //T1定時方式2
    TH1=0xf3;
    TL1=0xf3;//4800b/s
    TR1=1;
    ES=1;
    EA=1;
}
/******中斷服務函數*****/
void rf()interrupt 4
{      RI=0;
       dat=SBUF;
       switch(dat)
       {case 0x00: SBUF=sendbuf[0]; P2=seg[0];break;
       case 0x01: SBUF=sendbuf[1]; P2=seg[1];break;
       default:break;
       }
        
}

作者: Hephaestus    時間: 2023-10-28 18:44
哪里出錯了?是編譯失敗,還是執行錯誤,你不講清楚是不行的。
作者: 深層次    時間: 2023-10-28 18:56
Hephaestus 發表于 2023-10-28 18:44
哪里出錯了?是編譯失敗,還是執行錯誤,你不講清楚是不行的。

抱歉,是我沒有形容準確,是沒有反饋,這個目的是希望輸出00,然后就返回80,接著數碼管燈亮,但現在在串口調試助手發送00,沒有返回值80,數碼管也不亮。

屏幕截圖 2023-10-28 185553.png (180.08 KB, 下載次數: 80)

屏幕截圖 2023-10-28 185553.png

作者: wulin    時間: 2023-10-28 21:19
  1. #include<reg52.h>
  2. #define uchar unsigned char//宏定義非整型字符
  3. #define uint unsigned int//宏定義整型字符
  4. uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極數碼管0~16段碼
  5. uchar code sendbuf[]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
  6. 0x8A,0x8B,0x8C,0x8D,0X8E,0X8F};//單片機返回數字
  7. uchar dat;
  8. bit busy;
  9. bit flag;
  10. //void delay(uint a);
  11. void uart();
  12. void send(uchar byte);

  13. /****主函數*****/
  14. void main()
  15. {
  16.         uart();
  17.         while(1)
  18.         {
  19.                 if(flag)
  20.                 {
  21.                         flag=0;
  22.                         switch(dat)
  23.                         {
  24.                                 case 0x00: P2=seg[0]; break;
  25.                                 case 0x01: P2=seg[1]; break;
  26.                                 default:break;
  27.                         }
  28.                         while(busy);
  29.                         busy = 1;
  30.                         SBUF = sendbuf[dat];
  31.                 }
  32.         }
  33. }
  34. /*****串口方式初始化*******/
  35. void uart()
  36. {
  37.         SCON=0x50;//串口方式一,允許接收
  38.         PCON=0x80; //波特率加倍
  39.         TMOD=0x20; //T1定時方式2
  40.         TH1=0xf3;
  41.         TL1=0xf3;//4800b/s
  42.         TR1=1;
  43.         ES=1;
  44.         EA=1;
  45. }
  46. /******中斷服務函數*****/
  47. void rf()interrupt 4
  48. {
  49.         if (TI)
  50.         {
  51.                 TI = 0;
  52.                 busy = 0;
  53.         }
  54.         if (RI)
  55.         {
  56.                 RI = 0;
  57.                 dat = SBUF;
  58.                 flag=1;
  59.         }
  60. }
復制代碼

作者: 深層次    時間: 2023-10-29 08:36
wulin 發表于 2023-10-28 21:19

我剛剛嘗試了你的方法,雖然是有返回值,但是返回值不對,而且數碼管也沒有亮起來。

屏幕截圖 2023-10-29 083402.png (415.88 KB, 下載次數: 68)

屏幕截圖 2023-10-29 083402.png

屏幕截圖 2023-10-29 083425.png (405.72 KB, 下載次數: 68)

屏幕截圖 2023-10-29 083425.png

作者: wulin    時間: 2023-10-29 10:52
深層次 發表于 2023-10-29 08:36
我剛剛嘗試了你的方法,雖然是有返回值,但是返回值不對,而且數碼管也沒有亮起來。



作者: 深層次    時間: 2023-10-29 16:34
wulin 發表于 2023-10-29 10:52

我明白我的錯誤在哪里了,在串口調試助手處我應該選擇16進制發送的,這樣子就可以得到正確的返回值,謝謝大佬





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: a级片在线 | 日本美女毛茸茸 | 天堂一区二区三区 | 人人爽人人澡 | 色77777| 免费在线观看黄色网址 | 日本中文在线观看 | 久久av中文字幕 | 久久香蕉国产 | 日本a级大片 | 欧美国产日韩一区 | 午夜福利毛片 | 欧美区日韩区 | www.亚洲一区 | 性一交一乱一伧老太 | 国产精品美女久久久久av爽 | 亚洲天堂一区二区三区 | 国产中文字幕在线 | 国产h片在线观看 | 在线观看小视频 | 成年视频在线观看 | 国产成人精品一区二区三区在线观看 | aaa一级片 | 欧美在线天堂 | 91成人精品一区在线播放 | 夜夜操天天操 | 成人看片网 | 美女黄色大片 | 伊人久久精品 | 深夜福利视频在线观看 | 午夜在线影院 | 欧美aaaaa | 91免费福利| 国产资源视频 | 黄色免费网站 | 糖心vlog精品一区二区 | 久久免费精品视频 | 成 人 黄 色 片 在线播放 | www.狠狠操 | 欧美成人精品一区二区三区 | 黄网站免费大全入口 |