williamj 发表于 2023-8-23 09:29:46

本帖最后由 williamj 于 2023-8-23 09:55 编辑

函数使用:
模块化编程中函数使用有3步:
第一:定义
返回值 函数名称(入口参数)//没有返回值就是 void;函数名称避免关键词和特殊字符;入口参数:类型+名称,多个用","分开,空的话就写“void”
{
    函数执行的功能
}
第二: 声明
返回值 函数名称(入口参数);
第三: 函数调用
函数名称(入口参数);
//////////////////////////
新建XXX.c和xxx.h文件,代表一个功能模块。
xxx.h格式:
#ifndef_xxx_H
#define _xxx_H
调用头文件
函数声明...
#endif

xxx.c格式
#include“xxx.h”
函数定义

添加文件一定要记得引用路径和添加到工程里

williamj 发表于 2023-8-24 13:44:50

本帖最后由 williamj 于 2023-8-24 15:10 编辑

按键:
延时判断,delay_ms;
do...while
while() {}//没有大括号后面要有“;”
还有大小写,英文状态下写代码。
调试过程中需要细心和耐心去观察和分析现象,找到原因修改测试。
#define key1P33
if (key1 == 0)
                {      
                        delay_ms(10);
                        {
                              if(key1 == 0 )
                              {
                                        printf("P33按键按下\n");
                              //      sosled();
                              //      P22=!P22;
                                        P2=((P2<<1)+1);
                                        if(P2==0xFF)
                                                P2=0xFE;
                                        while(key1 == 0){}
                              }
                        }
                }


数组的使用:
1,定义
类型 名称[长度]={数值}
2,使用
赋值: 名称[索引]=数值


u8 num=0;
                                        u8 LED_Data = 0xFE;
                                        u8 LED_DataTab= {0xFE,0XFE,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F };
                                    while(key1 == 0){}
                                        P2=LED_DataTab;delay_ms(500);
                                        num++;
                                        if(num>=8) num=0;
//采用标志符号,状态判断实现蜂鸣器和模式状态
至此实现了单片机的初步入门,学习了IO控制, 输入(按键)和输出(LED);
delay_ms(500);可以实现简单的延时,但会影响按键啊灵敏度,是因为占用了CPU的资源,以后用其他是方式实现。




williamj 发表于 2023-8-24 15:07:18

数码管的学习
数码管就是多个LED“同时”点亮,
采用之前学习的数组的方式很容易就可以实现,有些细节后期再完善

williamj 发表于 2023-9-3 10:18:09

本帖最后由 williamj 于 2023-9-3 10:26 编辑

数码管就是不同的LED“同时”点亮 ,给人视觉上是同时的,有些时间延迟导致延迟的现象。
后面的定时器的应用对此是非常容易的解决办法。
另外配置工具也挺方便使用


williamj 发表于 2023-9-3 10:29:19

分步运行,
归纳总结
动作分解,集合,再优化
不要想一步就实现了,弄得不知道怎么下手

williamj 发表于 2023-9-3 10:30:46

本帖最后由 williamj 于 2023-9-3 10:36 编辑

定时器:
加法计数器,达到一定数就溢出,中断
分频:类似于大小齿轮的联动
寄存器配置设定外设的工作模式状态



williamj 发表于 2023-9-8 08:03:01

收到了原厂赠送的工具箱,可以更好的跟冲哥边学习边测试了{:lol:}



williamj 发表于 2023-9-27 18:36:53

数码管表格公式辅助工具





williamj 发表于 2023-10-9 17:32:26

多任务处理:状态机

williamj 发表于 2023-10-10 08:09:14

编程重点是理清程序的逻辑思路

分析逻辑,实现要实现的功能
规范化编程




页: 1 [2]
查看完整版本: 跟着冲哥学单片机