欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 有大哥幫我看看這單片機程序嗎?電腦通過串口控制led。問題:為什會有91 [打印本頁]

作者: gordor    時間: 2020-6-22 17:40
標題: 有大哥幫我看看這單片機程序嗎?電腦通過串口控制led。問題:為什會有91
有大哥幫我看看這程序嗎?電腦通過串口控制led。問題:為什會有91發出來

  1. #include <REGX52.H>
  2. #include "Delay.h"
  3. #include "UART.h"

  4. void main()
  5. {
  6.         UART_Init();
  7.         while(1)
  8.         {
  9.                
  10.         }
  11. }

  12. void UART_Routine() interrupt 4
  13. {
  14.         if(RI==1)
  15.         {
  16.                 P2=~SBUF;
  17.                 UART_SendByte(SBUF);
  18.                 RI=0;
  19.         }
  20. }
復制代碼
  1. #include <REGX52.H>

  2. /**
  3.   * @brief  串口初始化,4800bps@12.000MHz
  4.   * @param  無
  5.   * @retval 無
  6.   */
  7. void UART_Init()
  8. {
  9.         SCON=0x50;
  10.         PCON |= 0x80;
  11.         TMOD &= 0x0F;                //設置定時器模式
  12.         TMOD |= 0x20;                //設置定時器模式
  13.         TL1 = 0xF3;                //設定定時初值
  14.         TH1 = 0xF3;                //設定定時器重裝值
  15.         ET1 = 0;                //禁止定時器1中斷
  16.         TR1 = 1;                //啟動定時器1
  17.         EA=1;
  18.         ES=1;
  19. }

  20. /**
  21.   * @brief  串口發送一個字節數據
  22.   * @param  Byte 要發送的一個字節數據
  23.   * @retval 無
  24.   */
  25. void UART_SendByte(unsigned char Byte)
  26. {
  27.         SBUF=Byte;
  28.         while(TI==0);
  29.         TI=0;
  30. }

  31. /*串口中斷函數模板
  32. void UART_Routine() interrupt 4
  33. {
  34.         if(RI==1)
  35.         {
  36.                
  37.                 RI=0;
  38.         }
  39. }
  40. */
復制代碼




8-2 電腦通過串口控制LED.zip

25.82 KB, 下載次數: 5

工程


作者: zhai1995    時間: 2020-6-22 19:21
你這代碼寫的好魔性,都在中斷里處理數據????
作者: xuyaqi    時間: 2020-6-22 20:26
波特率有問題,串口通信最好用外部晶振11.0592Mhz。
作者: zjjhtony    時間: 2020-6-22 20:51
請問你的晶振是否對應的波特率,設置是否正確,
我仿真的結果是沒有問題的。沒時間幫你試試實際的電路是否正確。
作者: FB0    時間: 2020-6-22 20:59
#include "reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

u8 x=0xff;

void Uart1_Timer1_Init()
{
  PCON |= 0x80;               
        SCON=0x50;     
        TMOD &= 0x0F;               
        TMOD |= 0x20;        
        TL1 = 0xF3;               
        TH1 = 0xF3;               
        ET1 = 0;               
        TR1 = 1;               
        ES=1;  
        EA=1;  
}

void main()
{
        Uart1_Timer1_Init();
   while(1)
         {
            P2=x;
         }
}

void Uart1_Interrupt() interrupt 4  
{
         x=SBUF;
         RI=0;
         SBUF=x;
         while(!TI);
         TI=0;
}


作者: gordor    時間: 2020-6-23 09:17
已經解決是我的板子晶振是11.0592MHZ我配了12MHZ導致配錯了波特率




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1