本帖最后由 yupoi 于 2023-12-24 17:52 编辑
第六章:LED闪烁和花式点灯(第8、9集视频)学习笔记
摘要:
1.基于Delay实现的LED闪烁
2.函数的使用
3.新建文件,使用模块化编程
1.基于Delay实现的LED闪烁
1秒 = 1000毫秒 = 1000 000微秒
例子:闹钟中间的两个点闪烁——一亮一灭的过程为闪烁。
在代码中添加以下内容(延时控制函数):
- #define MAIN_Fosc 24000000UL //定义一个IRC主时钟
- void delay_ms(u16 ms) //u16 的定义在stc.h中,unsigned int u16
- {
- u16 i ;
- do
- {
- i=MAIN_Fosc/6000;
- while(--i);
- }
- while(--ms);
- }
复制代码
主函数(点灯):
- void main()
- {
- while(1)
- {
- P40 = 0 ; //三极管低导通
- P60 = 0 ; //led4引脚低电平
- delay_ms(500) ;
- P60 = 1 ;
- delay_ms(500);
- }
- }
复制代码
2.函数的使用
在模块化编程里,函数使用分为如下三步:
1.函数定义
返回值 函数名称( 入口参数 )
{
函数要执行的功能
}
@返回值:没有返回值就是void
@函数名称:避开关键词,不重复,非特殊字符随便取
@入口参数:类型+名称,多个参数“,”分开,空就写void
2.函数声明
返回值 函数名称( 入口参数 );
3.函数调用
函数名称( 入口参数 );
3.新建文件,使用模块化编程
新建xxx.c和xxx.h文件,代表一个功能块。
xxx.h格式:
#ifndef __XXX_H
#define __XXX_H
调用头文件
函数声明...
#endif
xxx.c格式
#include “xxx.h”
函数定义
添加文件一定要记得引用路径和添加到工程里
4.课后练习:
目前没有实验箱,申请的人和我说要写完15个视频的打卡和总结。目前进度:9/15。
代码实现(云一个)
定义一个闪三下灯,自定义延时的函数:
- void led_blinking (unsigned int xms )
- {
- P40=0;
- P60=0;//1
- delay_ms(xms);
- P60=1;
- delay_ms(xms);
- P60=0;//2
- delay_ms(xms);
- P60=1;
- delay_ms(xms);
- P60=0;//3
- delay_ms(xms);
- P60=1;
- }
复制代码
主函数:
- void main()
- {
- while(1)
- {
- led_blinking(300);//3短
- led_blinking(900);//3长
- led_blinking(300);//3短
复制代码
这样省的在主函数里打一大段东西(
怠惰
|