本帖最后由 yuyy1989 于 2023-5-7 13:13 编辑
第6集,LED闪烁和花式点灯,介绍了自适应时钟的Delay函数的实现,while循环的使用,#define的使用,函数的使用
- #define MAIN_Fosc 24000000L //定义主时钟
- void delay_ms(uint16_t ms)
- {
- uint16_t i;
- do{
- i = MAIN_Fosc / 6000;
- while(--i); //6T per loop
- }while(--ms);
- }
- //在main函数的while(1)中添加
- P20 = 0;
- delay_ms(500);
- P20 = 1;
- delay_ms(500);
- //实现P2.0IO控制的灯500ms亮500ms灭的循环闪烁
复制代码
如果只是使用固定时间的延时可以用STC-ISP软件生成延时代码
关于--a和a--:--a会返回减1后的a值,a--会返回减1前的a值,++a和a++同理
课后练习:
- //写一个闪烁的函数
- void blinkLed(uint16_t onms,uint16_t offms,uint8_t count)
- {
- while(count > 0)
- {
- P20 = 0;
- delay_ms(onms);
- P20 = 1;
- delay_ms(offms);
- count--;
- }
- }
- //在main函数的while(1)中添加
- blinkLed(100,100,2);
- blinkLed(100,500,1);
- blinkLed(500,500,3);
- blinkLed(100,100,3);
- delay_ms(2000);
复制代码
|