m0_74062664 2022-11-01 15:29 采纳率: 80%
浏览 46
已结题

单片机的while语句

对单片机还不太了解,想知道下面的while语句是什么意思
#include<reg52.h>
sbit D2=P1^2;
unsigned int a;
void main()
{
while(1)
{
a=50000;
D2=0;
while(a--);

        a=50000;
        D2=1;
        while(a--);
}

}

  • 写回答

1条回答 默认 最新

  • dceacho 2022-11-01 16:12
    关注

    while(逻辑值)
    {
    一些动作
    }
    小括号里就两种情况假0,真1(或者非0)
    当小括号里的表达式,注意是表达式,最终的结果为真时就一直执行大括号里的 ”一些动作"

    先来第一个while

    void main()
    {
    while(1)
    {
    

    while(1), 小括号里是个常数1,所以这个表达式的结果就是1,所以它一直为真,它这一层的大括号里的内容就会一直执行

    然后看第二个

    a=50000;
    D2=0;
    while(a--);
    
    

    while(a--); 你可以把省略掉的大括号加上
    while(a--)
    {
    ;//空操作
    }
    每执行一次大括号里的内容就a--一次,一直这样直到a--到0就结束大括号里的循环,从而达到延时目的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了