找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1012|回复: 5
收起左侧

请问C语言如何用两个for来实现这段代码(m--)呢?

[复制链接]
ID:964313 发表于 2021-9-6 16:35 | 显示全部楼层 |阅读模式
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
void delayms(uint);
uchar m,n;
uchar code duanma[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code weima[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
void main()
{

while(1)
{
m=5;
for(n=2;n<8;n++)
{

dula=1;
P0=duanma[n];
dula=0;
P0=0xff;

wela=1;
P0=weima[m];
wela=0;
delayms(1);
m--;
if(m==6)
m=0;
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
回复

使用道具 举报

ID:417092 发表于 2021-9-7 02:23 | 显示全部楼层
动态LED数码管吗。。。。
没看懂,你想做什么。。。。
回复

使用道具 举报

ID:961325 发表于 2021-9-7 11:05 | 显示全部楼层
主函数用2个for循环,先位选用一个for循环再在里面嵌套一个段选的for循环。数码管要先消抖再消隐,不然显示会有问题。你这逻辑还得加强。
回复

使用道具 举报

ID:824490 发表于 2021-9-7 16:51 | 显示全部楼层
for(i=起始值;i<终止值;i+=步进值)//起始值可以小于或大于终止值,对应的步进值就要i+=步进值或 i-=步进值 ,i+=1就是i++;同理i-=1就是i--
{
//循环体1
  for(j=起始值;j<终止值;j+=步进值)//最内圈的FOR如果没有循环体,行末一定要加";"
  {
   //循环体2
   }
}

这样说明白了吗?
回复

使用道具 举报

ID:964313 发表于 2021-9-8 12:46 | 显示全部楼层
aaahuage 发表于 2021-9-7 11:05
主函数用2个for循环,先位选用一个for循环再在里面嵌套一个段选的for循环。数码管要先消抖再消隐,不然显示 ...

我是刚开始学的,应该是if(m=0)
m=6。
这段程序运行没有问题,但for循环好像不行,这个要是并列的。
回复

使用道具 举报

ID:964313 发表于 2021-9-8 12:47 | 显示全部楼层

明白,但 我想说我这个里面的功能如何去实现呢?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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