找回密码
 立即注册

QQ登录

只需一步,快速开始

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

跪求大神们帮下眼!想要通过串口调试助手输入5个字符然后数码管上显示出来

[复制链接]
跳转到指定楼层
楼主
ID:399491 发表于 2018-10-24 12:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
编译有六个警告 不知道是哪里出现问题?
#include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器
/*******************************************************************************
* 函数名         :UsartInit()
* 函数功能                   :设置串口
* 输入           : 无
* 输出                  : 无
*******************************************************************************/
code smgduan[17]={0x80,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示.~F的值
char x[17]={'.','0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char a[5];

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
void UsartInit()
{
        SCON=0X50;                        //设置为工作方式1
        TMOD=0X20;                        //设置计数器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;                                //计数器初始值设置,注意波特率是4800的
        TL1=0XF3;
        ES=1;                                                //打开接收中断
        EA=1;                                                //打开总中断
        TR1=1;                                        //打开计数器
}

/*******************************************************************************
* 函 数 名       : main
* 函数功能                 : 主函数
* 输    入       : 无
* 输    出             : 无
*******************************************************************************/
void delay(int u)
{
   while(u--);
}
int i,m,j;
void main()
{       
        UsartInit();  //        串口初始化
        while(1);
        for(i=4;i>=0;i--)
        {
                switch(j)         //位选,选择点亮的数码管,
                {
                        case(0):
                                LSA=0;LSB=0;LSC=0; break;//显示第0位
                        case(1):
                                LSA=1;LSB=0;LSC=0; break;//显示第1位
                        case(2):
                                LSA=0;LSB=1;LSC=0; break;//显示第2位
                        case(3):
                                LSA=1;LSB=1;LSC=0; break;//显示第3位
                        case(4):
                                LSA=0;LSB=0;LSC=1; break;//显示第4位
        }
                P0=smgduan[m];//发送段码
                delay(100); //间隔一段时间扫描       
                P0=0x00;//消隐
         }               
}

/*******************************************************************************
* 函数名         : Usart() interrupt 4
* 函数功能                  : 串口通信中断函数
* 输入           : 无
* 输出                  : 无
*******************************************************************************/

unsigned char SendByte;
int amani()
{
         if(x[m]==SBUF)
                   {
                            smgduan[m];
                    }
                                return smgduan[m];
}

void Usart() interrupt 4
{       
    for(i=0;i<5;i++)
        {
    a[i]=(int) SendByte;
        SBUF=a[i];
         for(m;m<19;m++)
           {
              amani;
           }
        RI = 0;//清除接收中断标志位
        while(!TI);                         //等待发送数据完成
        TI=0;                                                 //清除发送完成标志位
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:89515 发表于 2018-10-24 13:31 | 只看该作者
逻辑混乱,错误太多,你自己完全可以找到错误吧
回复

使用道具 举报

板凳
ID:414705 发表于 2018-10-24 16:25 | 只看该作者
有哪些告警,贴出来.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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