找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 983|回复: 1
打印 上一主题 下一主题
收起左侧

C语言为什么上升时循环变量用递减,用递增不行;下降时循环变量用递增,用递减不行。

[复制链接]
跳转到指定楼层
楼主
ID:707309 发表于 2020-3-26 21:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
高手帮我解释一下。
#include<reg51.h>
#define lie P1
#define hang P2
#define uchar unsigned char
uchar d[][8]=
{
{0x38,0x38,0x38,0xfe,0x7c,0x38,0x10,0x00},
{0x10,0x38,0x7c,0xfe,0x38,0x38,0x38,0x00}
};
uchar speed=30;
uchar scan;
sbit key1=P3^0;
sbit key2=P3^1;
void Delayms(uchar x)
{int i,j;
for(i=0;i<x;i++)
for(j=0;j<120;j++);
}
void up(uchar word,uchar counts)
{char i,j,k,l;
for(l=0;l<counts;l++)
for(j=7;j>=0;j--)
for(k=0;k<speed;k++)
{scan=0x01;
for(i=7;i>=0;i--)
{lie=0x00;
hang=~scan;
if(i>j) lie=d[word][8+(j-i)];
else lie=d[word][j-i];
Delayms(2);
scan<<=1;
}
}
}
void down(uchar word,uchar counts)
{char i,j,k,l;
for(l=0;l<counts;l++)
for(j=0;j<8;j++)
for(k=0;k<speed;k++)
{scan=0x80;
for(i=0;i<8;i++)
{lie=0x00;
hang=~scan;
if(i>j) lie=d[word][8+(j-i)];
else lie=d[word][j-i];
Delayms(2);
scan>>=1;
}
}
}

main()
{P3=0xff;
while(1)
{if (key1==0)up(0,3);
if (key2==0)down(1,3);
Delayms(2);
lie=0x00;}}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:697917 发表于 2020-3-27 09:13 | 只看该作者
有这说法?自己设置初始值,判断条件,没听说有着说法啊。为什么不行
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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