比如系统时钟设置#define MAIN_Fosc 需要设置的频率 当然也可以在stcisp的硬件选项下去自己选择需要设置的内部时钟源的频率
比如c语言的语法dowhile是先执行语句再判断结果 while 是先判断结果再执行语句
比较 利用#define宏定义的来替换名称方便后期修改
typedef 与define的区别是defing 名称在前面 不需要加分号 而typedef 则是名称写在后面加分号
define 用法 define名字需要定义的内容
在模块化编程里,函数使用分为如下三步: 1.函数定义 返回值 函数名称( 入口参数 ) { 函数要执行的功能 }
@返回值:没有返回值就是void
@函数名称:避开关键词,不重复,非特殊字符随便取
@入口参数:类型+名称,多个参数“,”分开,空就写void
2.函数声明 返回值 函数名称( 入口参数 );
3.函数调用 函数名称( 入口参数 );
还有如何模块化
1新建xxx.c和xxx.h文件,代表一个功能块。
xxx.h格式: #ifndef __XXX_H
#define __XXX_H 调用头文件
函数声明...
#endif xxx.c格式
在需要调用的文件中#include “xxx.h” 函数定义 添加文件一定要记得引用路径和添加到工程里。
本帖最后由 asys 于 2024-7-6 22:11 编辑
第7集按键点灯
当按键没有按下时,我们所定义的IO端口一直为高电平,一旦按键按下,
电流往低处走,即IO端口没有电流流过,我们检测定义的按键端口的电压为0V,
即为低电平的时候,即视为按键按下;但是我们在按下按键的过程中
电压不是骤降为0V的,中间电压的变化是抖动的
按键有一个10ms的抖动需要消抖
代码示例
if( KEY == 0 )
{
Delay_ms(10);
if( KEY == 0 )
{ while(KEY == 0); 执行功能 }
}
后面冲哥使用了右移运算符实现了 按下按键led灯向右边依次点亮
大概是这样的
10000000
01000000+1
01100000+1
依次点亮
后面讲了数组的使用将 对应的8种状态存到数组里面
例如这个 LED_DataTab = { 0XFE,0XFD, 0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};
下次使用的时候可以直接P6=LED_DataTab;
LED_DataTab[]中不能写8如果写8数组就越界了
接下来的我会在屠龙刀的帖子里面完成https://www.stcaimcu.com/forum.php?mod=viewthread&tid=9592
页:
1
[2]