| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1809 人关注过本帖
标题:想知道为什么会出现说函数没调用的问题
只看楼主 加入收藏
Pzzzzk
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-9-23
结帖率:100%
收藏
 问题点数:0 回复次数:3 
想知道为什么会出现说函数没调用的问题
#include "reg52.h"             //此文件中定义了单片机的一些特殊功能寄存器
/*******************************************************************************
* 函数名         :UsartInit()
* 函数功能           :设置串口
* 输入           : 无
* 输出              : 无
*******************************************************************************/
int i,m,j,l;
unsigned char SendByte;
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--);
}
void main()
{   
    UsartInit();  //    串口初始化
    while(1);
    {
    for(m=0;m<19;m++)
    {
        if(x[m]==SBUF)
               {
                     a[l]=smgduan[m];
                }
   
    }
   
    }
    for(j=4;j>=0;j--)
    {
        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=a[l];//发送段码
        delay(100); //间隔一段时间扫描   
        P0=0x00;//消隐
     }        
}

/*******************************************************************************
* 函数名         : Usart() interrupt 4
* 函数功能          : 串口通信中断函数
* 输入           : 无
* 输出              : 无
*******************************************************************************/
void Usart() interrupt 4
{   
    for(i=0;i<5;i++)
    {
    a[i]=(int) SendByte;
    SBUF=a[i];
    RI = 0;//清除接收中断标志位
    while(!TI);             //等待发送数据完成
    TI=0;                         //清除发送完成标志位
    }
}
搜索更多相关主题的帖子: 函数 显示 中断 case break 
2018-10-25 11:20
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:0 
main函数都退出了!怎么调用
void Usart() interrupt 4
{   
    for(i=0;i<5;i++)
    {
    a[i]=(int) SendByte;
    SBUF=a[i];
    RI = 0;//清除接收中断标志位
    while(!TI);             //等待发送数据完成
    TI=0;                         //清除发送完成标志位
    }
}

 你把这个函数放在哪?兄弟!

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-10-25 12:04
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
单片机的中断函数是不需要调用的,你用的什么编译工具?另外单片机的问题还是到单片机板块问吧
2018-10-25 15:50
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
收藏
得分:0 
程序代码:
void main()
{  

    UsartInit();  //    串口初始化
    while(1);//能执行下去?--------------------
    {
        for(m=0;m<19;m++)
        {
            if(x[m]==SBUF)
                   {
                         a[l]=smgduan[m];
                    }
      

        }
      

    }

    //能执行到这里吗??------------------
    for(j=4;j>=0;j--)
    {
        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=a[l];//发送段码
        delay(100); //间隔一段时间扫描  

        P0=0x00;//消隐
    }       

}

2018-10-25 16:17
快速回复:想知道为什么会出现说函数没调用的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015995 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved