关于郭天祥书本中一个程序问题,百思不见其解???

2019-07-16 05:20发布

#include <reg52.h>           
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;                //申明U1锁存器的锁存端
sbit wela=P2^7;                //申明U2锁存器的锁存端
sbit dawr=P3^6;                //定义DA的WR端口
sbit dacs=P3^2;                //定义DA的CS端口
sbit beep=P2^3;                //定义蜂鸣器端口
void delayms(uint xms)                               
{
        uint i,j;
        for(i=xms;i>0;i--)                      //i=xms即延时约xms毫秒
                for(j=110;j>0;j--);
}

void main()
{
        uchar val,flag;
        dula=0;
        wela=0;
        dacs=0;
        dawr=0;
        P0=0;
        while(1)
        {
                if(flag==0)                             //此句怎么执行?前面可没有给flag赋值啊!?
                {
                        val+=5;                  //此句怎么执行?前面可也没有给val赋初值啊!?
                        P0=val;                //通过P0口给DA数据口赋值
                        if(val==255)
                        {
                                flag=1;
                                  beep=0;
                                delayms(100);
                                beep=1;
                        }
                        delayms(50);
                }
                else
                {
                        val-=5;
                        P0=val;                //通过P0口给DA数据口赋值
                        if(val==0)
                        {
                                flag=0;
                                  beep=0;
                                delayms(100);
                                beep=1;
                        }
                        delayms(50);
                }               
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
漫步云端ttly
1楼-- · 2019-07-17 20:32
你没看到第二层的if给flag赋值了吗
mybsf
2楼-- · 2019-07-18 02:00
 精彩回答 2  元偷偷看……
Lovedanpianji
3楼-- · 2019-07-18 04:15
一开始执行的就是(flag==0)这段,没赋初值的话默认给0
936143922
4楼-- · 2019-07-18 05:16
学习中

5楼-- · 2019-07-18 10:45
当加到255时,把flag置1了,这时候开始执行else后面的程序。
pristiner
6楼-- · 2019-07-18 13:40
 发表于 2012-7-5 10:46
当加到255时,把flag置1了,这时候开始执行else后面的程序。

if else是选择语句,不会顺序执行吧?

一周热门 更多>