qq_71940049 2023-05-10 22:59 采纳率: 50%
浏览 54
已结题

子函数的调用,求操作步骤

keil4,利用子函数从if(K1==0),简化程序,减少程序的冗长。

img

img


///////////

  • 写回答

3条回答 默认 最新

  • 社区专家-Monster-XH 2023-05-10 23:36
    关注

    基于Monster 组和GPT的调写:

    #include "reg52.h"
    
    sbit K1 = P3^1;
    sbit K2 = P3^0;
    unsigned char i, j, y;
    
    void delay(unsigned int i)
    {
        while(i--);
    }
    
    unsigned code a[] = {0x00, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
    unsigned code b[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
    
    void displayNum(unsigned char i, unsigned char j)
    {
        P2 = 0x14;
        P0 = a[i];
        delay(1000);
        P2 = 0x10;
        P0 = b[j];
        delay(1000);
    }
    
    void displayBlank()
    {
        P2 = 0x14;
        P0 = 0x6f;
        delay(1000);
        P2 = 0x10;
        P0 = 0x6f;
        delay(1000);
    }
    
    void main()
    {
        while(1)
        {
            P2 = 0x10;
            P0 = 0x3f;
            K1 = 1;
            if(K1 == 0)
            {
                delay(1000);
                if(K1 == 0)
                {
                    for(i = 0; i < 10; i++)
                    {
                        for(j = 0; j < 10; j++)
                        {
                            for(y = 0; y < 10; y++)
                            {
                                displayNum(i, j);
                            }
                        }
                    }
                }
            }
            displayBlank();
            K2 = 1;
            if(K2 == 0)
            {
                delay(1000);
                if(K2 == 0)
                {
                    for(i = 0; i < 10; i++)
                    {
                        for(j = 9; j < 10; j--)
                        {
                            for(y = 0; y < 10; y++)
                            {
                                displayNum(i, j);
                            }
                        }
                    }
                }
            }
            displayBlank();
        }
    }
    
    
    
    • 定义了两个显示数字的子函数displayNum和displayBlank。这些函数分别用于在数码管上显示数字和空白。通过这些函数的使用,可以将程序中的重复代码移动到单独的函数中,从而减少了程序的长度和复杂性。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 创建了问题 5月10日