单片机之路 ——led闪烁与时延语句(2)

第一关是 led 的点亮,第二关就变成了 led 的闪烁了,也就是让 led 变亮-变暗-变亮-变暗……如此循环
依旧是需要俺强势的C语言二级基础了(雾),基本思路:亮灯 - 停顿 - 灭灯- 停顿 -亮灯……
亮灯+灭灯为一组循环,但是停顿如何实现呢,这里就出现了C语言中不被重视的备胎语句——无意义循环语句,让cpu不断运算造成停顿的假象——还有这种操作?当然,后期据说还会有新的时间控制语句,前期嘛,就简单粗暴的解决问题吧

下面展示程序:

include<reg52.h>

sbit D1=P2^0;

void delay() //delay就是英语里延迟的意思,在这里放进去一个空语句造成时延,后面的主函数引用
{
int i;
while (i--);
}

void main ()
{
while(1)
{
D1=0;
delay(5000);
D1=1;
delay(5000);
}
}

//延时函数中延时的时长可以进入调试模式测试,通过设置断点测试程序执行一次花费的时间。
调试模式:上方工具栏第二栏 start debug session,打开寄存器窗口 view - register window,sys栏里面的sec表示执行时长多少秒。运行程序选择run,设置断点:在语句左边点击出现红色圆点即为断点。
延时函数中要注意a的值会溢出,此时要设置a的数据类型,int变成long可以增加a的值。

至此,就通过了单片机第二关,led闪烁,开始需要自己创造子函数了,暂时还是有惊无险,加油!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容