LED闪烁的原理就是点亮LED一段时间,再熄灭LED一段时间。然后重复这个过程。
就是让单片机IO口输出低电频,点亮LED后,单片机执行一段指令来消耗一段时间,然后再输出高电平熄灭LED,单片机再执行一段指令消耗一段时间,然后重复这个过程
在代码中出现了一句WTST等于0,这个WTST是程序读取等待控制计算器
它的作用是控制CPU读取程序,储存器的等待时间。
比如原本CPU执行某一条指令,需要一个时钟,WTST计算器可以设置CPU读取指定时,额外再等待几个时钟,WTST上电它默认值7,这个时候实际执行这条指定的时间就变成了1+7,总共8个时钟,所以WTST等于0,就是让CPU不去额外增加,读取指定的等待时间,让CPU运行程序的速度最快。
第6期:delay函数延时时间计算&volatile关键字
其实搞延时函数,还得是官方工具,stc-isp
void Delay100us(void) //@24.000MHz
{
unsigned long edata i;
_nop_();
_nop_();
_nop_();
i = 598UL;
while (i) i--;
}
volatile关键字的作用就是告诉编译器,这是一个易变的变量
那么编译器在编译的时候,就不会对这个变量进行优化
看来真得搞个示波器玩玩??兄弟们有必要没??
第7期:8位流水灯-移位法
使用一个for循环,来实现流水灯
每次让0X01左移i位后取反,再复制给P2口,然后延时,这样就完成了P2口的正向流水灯效果
移位法的原理就是0X01,它对应的二进制值是00000001,左移零位时,二进制值还是00000001,取反后的二进制值是11111110,对应的就是第一个灯亮。
反向流水的时候,0X80是从右移一位开始,右移6位结束
本帖最后由 qike009 于 2024-6-10 08:12 编辑
第8期:8位流水灯-数组法
数组法必备程序员计算器。
其实数组法显示和第七期原理一样,只不过把数字放到了数组里,增加了代码的可用性。移植性。
for(i = 0;i<8;i++)
{
P2 = shuzu;
delay(500);
}
soeasy!!!!到现在还没难度。。。{:lol:}
soma 发表于 2024-6-9 14:08
头文件里面已经定义P20=P2^0没必要再次定义
这一般是习惯性的{:4_259:}
页:
1
[2]