找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1544|回复: 3
打印 上一主题 下一主题
收起左侧

求助:若单片机收到字符‘a’,则打开所有发光二级管;若收到字符‘b’,则关闭所...

[复制链接]
跳转到指定楼层
楼主
ID:781542 发表于 2020-6-16 23:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void Uartlnit();
unsigned char flag,i,a=0x00,b=0xff;
typedef unsigned int u16;   //?????????????????????
typedef unsigned char u8;
#define led P1    //??P1??????led,???????????led????P1??
void delayms(u16);                              
void delayms(uint);   //????????????????  
                  
void Uartlnit()     
{
while(1)  
{
u8 i;
  led=0x00;   //??????? ???????з????????                        
  delayms(1000); //??????? ???1000ms                        
  led=0xff;     //??????? ??????з????????                        
  delayms(1000);  
}
                    
SM0=0; //??????? ?洢?????                        
SM1=1; //??????? ??????????????1                        
TMOD=0X20; //??????? ?趨?????1?8λ?????????  
REN=1; //??????? ??????????????                        
TR1=1; //??????? ????????1                        
  TH1=0XFD;
TL1=0XFD; //??????? ?趨?????????????????9600bps                        
EA=1; //??????? ????ж????                        
ES=1; //??????? ?????ж????

}
void main()
{
Uartlnit();
   while(1)
{
    if(flag==1)
    {
      ES=0;
   for(i=0;i<6;i++)
   {
    SBUF=a;
    led=0x00;
    while(!TI);
    TI=0;
   }
      flag=0;
      SBUF=a;
   led=a;
      while(!TI);
      TI=0;
      ES=1;
     }

    else if(flag==1)
    {
      ES=0;
   for(i=0;i<6;i++)
   {
    SBUF=b;
    led=0xff;
    while(!TI);
    TI=0;
   }
      flag=0;
      SBUF=b;
   led=b;
      while(!TI);
      TI=0;
      ES=1;
    }
  else
  {
    led=0x00;
     delayms(1000); //??????? ???1000ms                        
     led=0xff;
}
}
}

void ser() interrupt 4    //??????? ???崮???ж?               
{
RI=0;
P1=SBUF;
a=SBUF;
b=SBUF;
flag=1;
}         
void delayms(uint x)
{
uint i,j;
for(i=x;i>0;i--)   //??????? i=x???????x????                        
  for(j=114;j>0;j--);
}

这是我的,不知道哪里出问题了,能帮我看看嘛,谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:781542 发表于 2020-6-16 23:53 | 只看该作者
若单片机收到字符‘a’,则打开所有发光二级管;若收到字符‘b’,则关闭所有发光二级管;否则,所有发光二级管每隔1s闪烁一次。
回复

使用道具 举报

板凳
ID:744327 发表于 2020-6-17 08:17 | 只看该作者
自定义与宏定义冲突了 #define uint unsigned int
#define uchar unsigned char
typedef unsigned int u16;
typedef unsigned char u8
回复

使用道具 举报

地板
ID:213173 发表于 2020-6-17 08:43 | 只看该作者
#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
#define led P1

void Uart_Init()     
{              
        TMOD=0X20;
        TH1=0XFD;
        TL1=0XFD;   
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;
        EA=1;
        ES=1;
}

void main()
{
        Uart_Init();
        while(1);
}

void ser() interrupt 4
{
        u8 i;
        RI=0;
        i=SBUF;
        if(i=='a')
                led=0x00;
        if(i=='b')
                led=0xff;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表