网站风格确认书,网站开发项目设计文档,怎么制作网站软件下载,合肥 电子商务 网站建设1.两种编程方式的对比
传统方式编程#xff1a; 所有的函数均放在main.c里#xff0c;若使用的模块比较多#xff0c;则一个文件内会有很多的代码#xff0c;不利于代码的组织和管理#xff0c;而且很影响编程者的思路 模块化编程#xff1a; 把各个模块的代码放在不同的…1.两种编程方式的对比
传统方式编程 所有的函数均放在main.c里若使用的模块比较多则一个文件内会有很多的代码不利于代码的组织和管理而且很影响编程者的思路 模块化编程 把各个模块的代码放在不同的.c文件里在.h文件里提供外部可调用函数的声明其它.c文件想使用其中的代码时只需要#include XXX.h文件即可。使用模块化编程可极大的提高代码的可阅读性、可维护性、可移植性等
2.模块化程序结构
要将Delay延时函数进行模块化我们需要建立一个.c文件和.h文件分别用于存放函数原型和函数声明。 注意事项 .c文件函数、变量的定义 .h文件可被外部调用的函数、变量的声明
任何自定义的变量、函数在调用前必须有定义或声明同一个.c 使用到的自定义函数的.c文件必须添加到工程参与编译 使用到的.h文件必须要放在编译器可寻找到的地方工程文件夹根目录、安装目录、自定义 .h文件的存放位置 情况1和工程文件不在同一目录则需要如图中所示位置进行配置.h文件的路径 情况2和工程文件在同一目录使用即可为了方便查看可以添加显示到keil中如不添加也无妨。 这样我们在该处可以看到创建好的.h文件了并在可方便的打开进行编辑
3.C预编译
C语言的预编译以#开头作用是在真正的编译开始之前对代码做一些处理预编译 此外还有#ifdef,#if,#else,#elif,#undef等
4.实战
将上一节中的数码管显示进行模块化 首先新建Delay.c文件 Delay.c
void Delay(int ms) //12.000MHz
{unsigned char data i, j;while(ms--){i 2;j 239;do{while (--j);} while (--i);
}
}然后使用同样的方式建立Delay.h文件并将.h文件添加到该处 并编写如下代码 Delay.h
#ifndef __DELAY_H__
#define __DELAY_H__
unsigned char Delay(int ms);
#endif同理处理Nixie函数模块化为Nixie.c和Nixie.h Nixie.c
#include REGX52.H //该文件中需要用到P2,P0,所以需要包含void Nixie(unsigned char Location,unsigned char Number)
{unsigned char NixieTable[]{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77F,0x7C,0x39,0x5E,0x79,0x71,0x00};switch(Location){case 1: P2_21;P2_31;P2_41;break;case 2: P2_20;P2_31;P2_41;break;case 3: P2_21;P2_30;P2_41;break;case 4: P2_20;P2_30;P2_41;break;case 5: P2_21;P2_31;P2_40;break;case 6: P2_20;P2_31;P2_40;break;case 7: P2_21;P2_30;P2_40;break;case 8: P2_20;P2_30;P2_40;break;}P0NixieTable[Number];
}Nixie.h
#ifndef __NIXIE_H__
#define __NIXIE_H__
void Nixie(unsigned char Location,unsigned char Number);
#endifmain.c 其中 的表示从keil安装目录寻找.h 则表示从当前目录寻找
使用这种方式用于包含标准库文件或者编译器提供的头文件编译器会在标准库路径或者编译器指定的路径下查找这些头文件。 例如#include REGX52.HREGX52.H应该是一个标准库或者编译器提供的头文件编译器会在标准库路径或者编译器指定的路径下查找并包含该文件。 使用这种方式用于包含用户自定义的头文件或者当前目录下的头文件编译器会首先在当前目录下查找这些头文件如果找不到才会到标准库路径或者编译器指定的路径下查找。
#include REGX52.H
#include Delay.h
#include Nixie.h
void main()
{while(1){Nixie(1,1);Delay(1000); //Nixie(2,2);Delay(1000);Nixie(3,3);Delay(1000);Nixie(4,4);Delay(1000);Nixie(5,5);Delay(1000);Nixie(6,6);Delay(1000);Nixie(7,7);Delay(1000);Nixie(8,8);Delay(1000);}
}
补充字体问题
在keil中编写代码可能出现中文乱码等问题因此需要改变编码格式: 通常采用的是UTF-8编码方式。