在上一次的实验当中,也就是昨天的时候,历经千辛万苦,总算是理解的延时的计算,多少明白点了汇编语言的写法,以及看到汇编或者是C语言之后,如何去进行两者之间的相互转换。虽然如果你给我一个延时时间,让我直接去写出延时函数,我目前还不行。但这不是有软件嘛,自动生成就好了,哥们我只需要去理解即可,基础的做好吧。
那么这篇博客,个人就来接着上一次的流水灯实验,来说说刚做好的“流水灯来回循环点亮”。
实验所用到的程序如下:
#include<reg51.h>
#include<intrins.h>
#define led P0
void delay500ms(void) //误差500ms
{
unsigned char a,b,c;
for(c=205;c>0;c--)
for(b=116;b>0;b--)
for(a=9;a>0;a--); //此处的难点就在于对于延时时间的计算与设定。
}
void main()
{
unsigned char i,j;
led=~0x01; // 点亮第一个led灯。
delay500ms(); // 延迟500ms,等待一个灯被点亮。
for(i=0;i<7;i++) // 将led右移一位
{
led=_crol_(led,1); // led灯轮流输入低电平,也就是轮流点亮。
delay500ms();
}