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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機串行控制流水燈 keil沒報錯,但是proteus調試不出來,求大佬指點

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 sunminda 于 2020-12-12 17:05 編輯

用串行控制流水燈,我編的程序,keil沒報錯,但是proteus調試不出來,求大佬指點

單片機源程序如下:
#include<reg51.h>
#include<intrins.h>
unsigned char i=200,j,FLAG1,FLAG2,Temp;

void Init_T0(void)
{ TH0=0xEE;
  TL0=0x00;}

void Init_UART(void)
{ SCON=0x50;
  PCON=0x00;
  TH1=0xFD;
  TR1=1;
  ES=1;}

void UART_SER(void) interrupt 4 using 1
{ RI=0;
  Temp=SBUF;
  FLAG2=1;}

void time0_SER(void) interrupt 1 using 2
{ TH0=0xEE;
  TL0=0x00;
  i--;
  if((i==0)&&(FLAG1==0))
    {i=200;  P1=_crol_(j,1);  j=P1;}
   else if((i==0)&&(FLAG1==1))
    {i=200;  P1=_cror_(j,1);  j=P1;}}

void main(void)
{ EA=1;  
  TMOD=0x21;
  Init_T0();
  Init_UART();
  IP=0x10;
  while(1)
   {if (FLAG2==1)
    { ES=0;
      switch(Temp)
{       case 0x55:ET0=1;TR0=1; FLAG1=0; P1=0xfe; j=0xfe; SBUF=Temp;break;
        case 0xAA:ET0=1;TR0=1; FLAG1=1; P1=0x7f; j=0x7f; SBUF=Temp;break;
        case 0x01:ET0=0;TR0=0;break;
        case 0x02:ET0=1;TR0=1;break;}
      while(!TI);TI=0;
      ES=1;FLAG2=0;}}}

proteus圖如下

屏幕截圖 2020-12-12 170502.png (35.04 KB, 下載次數: 107)

屏幕截圖 2020-12-12 170502.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2020-12-12 09:47 | 只看該作者
給你改了,你試試。
  1. #include<reg51.h>
  2. #include<intrins.h>

  3. unsigned char i,j,Temp;
  4. bit flag=0;

  5. void UART_SER(void)
  6. {
  7.         switch(Temp)
  8.         {
  9.                 case 0x55:j=_cror_(j, 1);P1=j;break;//右移
  10.                 case 0xAA:j=_crol_(j, 1);P1=j;break;//左移
  11.                 case 0x01:P1=j;break;                                        //停止移動
  12.                 default:P1=0xff;break;                                        //關閉
  13.         }
  14. }

  15. void time0_SER(void) interrupt 1 using 2
  16. {
  17.         TH0=0x3C;
  18.         TL0=0xB0;
  19.         i++;
  20.         if(i>=10)//0.5s
  21.         {
  22.                 i=0;
  23.                 flag=1;
  24.         }
  25. }

  26. void main(void)
  27. {
  28.         TMOD=0x21;//定時器0方式1,定時器方式2(8位重載)
  29.         TH0=0x3C; //50ms
  30.         TL0=0xB0; //50ms
  31.         TH1=0xfd;//定時器1重載 波特率9600
  32.         TL1=0xfd;//定時器1重載
  33.         TR0=1;        //開定時器0
  34.         TR1=1;        //開定時器1
  35.         REN=1;        //允許串行接收
  36.         SM0=0;        //設置串口方式1
  37.         SM1=1;        //設置串口方式1
  38.         EA =1;   //開總中斷
  39.         ET0=1;   //開T0中斷       
  40.         j=0xfe;
  41.         while(1)
  42.         {
  43.                 if(RI)                //查詢接收中斷請求標志位為1(已收到)
  44.                 {
  45.                         RI=0;                //接收中斷請求標志位清0
  46.                         Temp=SBUF;                //獲取接收寄存器數據
  47.                 }
  48.                 if(flag)                //0.5s定時標志1
  49.                 {
  50.                         flag=0;
  51.                         UART_SER();
  52.                 }
  53.         }
  54. }

復制代碼
回復

使用道具 舉報

板凳
ID:18297 發表于 2020-12-12 18:42 | 只看該作者
在仿真電路中,你的max232不需要,compim和單片機的uart口直接接。建議先編寫個簡單的程序比如單片機接收到00關燈,01開燈,來判斷仿真硬件沒錯。
回復

使用道具 舉報

地板
ID:857618 發表于 2020-12-13 09:25 | 只看該作者
wulin 發表于 2020-12-12 09:47
給你改了,你試試。

非常感謝,設計要求是0x02時繼續流水燈,但是我試了一下我的程序,好像達不到我想要的效果
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产在线一区二区三区 | 午夜视频一区二区 | 久久在线免费 | 亚洲高清成人 | 一区二区三区日韩 | 欧美精品一区在线 | 欧美日韩在线观看一区 | 精品欧美乱码久久久久久 | 91亚洲国产 | 欧美在线高清 | 中文字幕在线免费视频 | 国产成人久久久 | 精品九九久久 | 国产精品久久久久久久久久免费看 | 夜久久| 久久综合伊人一区二区三 | 中文字幕亚洲精品 | 黑人巨大精品欧美一区二区免费 | 亚洲网站在线观看 | 国产一区二区三区在线 | 亚洲最大福利网 | 国产成人免费视频网站视频社区 | 国产成人免费视频网站视频社区 | 久久天天躁狠狠躁夜夜躁2014 | 久久成人18免费网站 | 国产探花在线观看视频 | 久久成人高清视频 | 欧美视频三区 | 美女131mm久久爽爽免费 | 日本一区不卡 | 超碰成人免费 | 欧美成人精品一区二区三区 | 亚洲人va欧美va人人爽 | 久久精品成人 | 天堂一区二区三区四区 | 欧美一区二区三区在线视频 | 懂色av蜜桃av| 四虎在线视频 | 亚洲精品一区在线观看 | 欧美在线小视频 | 亚洲视频免费在线 |