標題: STC15W204S單片機串口通訊控制LED亮滅程序 [打印本頁]

作者: yinqing452    時間: 2023-5-12 17:31
標題: STC15W204S單片機串口通訊控制LED亮滅程序
      STC15W204S串口通訊控制LED亮滅!此芯片大家注意,它是沒有定時器1的,所以我走了一點誤區(qū),沒有注意看資料。實際實驗是正常的。


單片機源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. unsigned char buf;
  4. sfr P5=0xC8;//xxxx,1111 端口5
  5. sfr T2L=0xD7;//xxxx,1111 端口5
  6. sfr T2H=0xD6;//xxxx,1111 端口5
  7. sfr AUXR=0x8E;//xxxx,1111 端口5
  8. sfr BRT=0x9C;//xxxx,1111 端口5
  9. sbit led0=P5^5;
  10. void UartInit(void)                //9600bps@11.0592MHz
  11. {
  12.         SCON = 0x50;                //8位數(shù)據(jù),可變波特率
  13.         AUXR |= 0x01;                //串口1選擇定時器2為波特率發(fā)生器
  14.         AUXR |= 0x04;                //定時器時鐘1T模式
  15.         T2L = 0xE0;                        //設置定時初始值
  16.         T2H = 0xFE;                        //設置定時初始值
  17.         AUXR |= 0x10;                //定時器2開始計時
  18.         ES=1;
  19.         EA=1;
  20. }
  21. main()
  22. {
  23.         /*SCON = 0x50;// 8位數(shù)據(jù),可變波特率 9600bps 11.0592MHZ
  24.         AUXR|=0X01;// 串口1選擇定時器2為波特率發(fā)生器
  25.         AUXR|=0X04;        //1T模式
  26.         T2L=0XE0;
  27.         T2H=0XFE;
  28.         AUXR|=0X10;//開定時器2
  29.         ES=1;
  30.         EA=1;*/
  31.         UartInit();
  32.         while(1);

  33. }
  34. void uart() interrupt 4
  35. {
  36.         ES=0;
  37.         RI=0;
  38.         buf=SBUF;           
  39.         switch(buf)
  40.         {
  41.             case 0:led0=0;break;//發(fā)送0燈亮
  42.             case 1:led0=~led0;break; //發(fā)送1燈取反
  43.             
  44.             default:P5=0XFF;break; //否則滅掉
  45.         }
  46.         ES=1;        //清除發(fā)送完成標志位
  47. }
復制代碼







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