微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求大神帮解答

求大神帮解答

时间:10-02 整理:3721RD 点击:
我想弄个串口当我给他发1的时候他执行程序a,发2的时候执行程序b,发3的时候把P2^0~P2^4引脚的状态发送给电脑。求大神帮解答

//这是一个演示程序,你自己根据实际电路修改端口P1~P3
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
bit flag;
uchar x;
void init()
{
        TMOD=0x20;
        SCON=0x50;
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        EA=1;
        ES=1;
}
void main()
{
        init();                                        //初始化定时器1
        P1=0xfe;                                        //初始化P1
        while(1)
        {                        
                if(x==1)                                //任务1
                        P1=0x55;                        //LED显示
                if(x==2)                                //任务2
                        P1=0xaa;                        //LED显示
                if(x==3&&flag==1) //任务3
                {
                        ES=0;                                //关串口中断
                        flag=0;                   //接收完成标志清0
                        SBUF=P1&0x1f;  //按位相与后得到低5位数据发送
                        while(!TI);    //等待发送中断请求标志位为1
                        TI=0;                      //发送中断请求标志位清0
                        ES=1;                                //开串口中断
                        P1=~(P1&0x1f);        //LED显示取反更直观观察低5位数据
                }
        }
}
void ver() interrupt 4
{
        RI=0;                         //接收中断请求标志位清0
        x=SBUF;                //获取SBUF接收到的数据
        flag=1;                //接收完成标志置1
}

大哥,你太太太给力了,你收徒弟不,825692103 答案:睡,收徒弟加一下我吧,呜呜呜呜呜

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top