打印
[复制链接]
741|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qbwww|  楼主 | 2020-4-10 22:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qbwww 于 2020-4-17 23:35 编辑

/***************************************************************/
#define P00_PushPull_Mode            P0CON |= 0X01;
#define P01_PushPull_Mode            P0CON |= 0X02;
#define uchar unsigned char
#define uint  unsigned int
/********************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms
* x * 输入 : x (延时一毫秒的个数)
* 输出 : 无
***********************************************************************/
void Delay_1ms(uint i)//1ms延时
{
    uchar x,j;
    for(j=0; j<i; j++)
        for(x=0; x<=148; x++);
}
/*****************************************************
*函数名称:void Uart_Init()
*函数功能:Uart中断初始化
*****************************************************/
void Uart_Init()    //选择Timer1作为波特率信号发生器
{
    P2CON &= 0xFC;   //TX/RX设置为输入带上拉
    P2PH  |= 0x03;
    SCON  |= 0X50;   //设置通信方式为模式一,允许接收
    TMCON |= 0X02;
    TH1 = (32*1000000/115200)>>8;          //波特率为T1的溢出时间;
    TL1 = 32*1000000/115200;
    TR1 = 0;                //定时器T1的运行控制位        0:Timer1禁止计数                1:Timer1开始计数
    ET1 = 0;                //Timer1中断使能控制        0:关闭TIMER1中断        1:打开TIMER1中断
    EUART = 1;     //开启Uart中断
    EA = 1;
}
/********************************************************************
* 名称 : Com_Int()
* 功能 : 串口中断子函数
* 输入 : 无 * 输出 : 无
***********************************************************************/
void Com_Int(void) interrupt 4
{
    uchar receive_data;
     EA = 0;//中断使能的总控制        0:关闭所有的中断        1:打开所有的中断
     if(RI == 1) //当硬件接收到一个数据时,RI会置位,sbit  RI          = SCON^0;
     {
         RI = 0;
         receive_data = SBUF;//接收到的数据
         if(receive_data == '1')
         {
             P00 =1;
                         P01 =0;
         }
         if(receive_data == '2')
         {
             P00 =0;
                         P01 =1;
         }
                 if(receive_data == '3')
         {
             P00 =0;
                         P01 =0;
         }

     }

           for(i=0; i<36; i++)
            {
                    SBUF = PuZh[i];   //将要发送的数据放入到发送寄存器
                    while(!TI);                    //等待发送数据完成
                    TI=0;                                //清除发送完成标志位
                   Delay_1ms(1);
            }
            EA = 1;
}
void main(void)
{
    P00_PushPull_Mode;        //LED1灯配置为强推挽
    P01_PushPull_Mode;  //LED1灯配置为强推挽
    Uart_Init();
    while(1)
    {
    }
}





使用特权

评论回复

相关帖子

沙发
jiekou001| | 2020-4-10 23:56 | 只看该作者
不错不错。

使用特权

评论回复
板凳
yygdzjs| | 2020-4-11 17:53 | 只看该作者
不错!这个题目我当时准备做的,时间问题。所有没有申请,让那些需要爱好者。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

733

主题

4517

帖子

14

粉丝