当前位置:数据分析 > keil4中头文件路径设置(keil头文件默认路径)

keil4中头文件路径设置(keil头文件默认路径)

  • 发布:2023-10-09 04:26

本文目录列表:

  • 1.使用KEIL软件,我想在工程目录中添加一个头文件。我应该怎么办?
  • 2、keil4中如何加载头文件
  • 3.如何设置keil头文件的位置
  • 4.如何确定keil4中头文件“utils/ustdlib.h”的路径
  • 5、keil4中的h文件路径不正确
  • 6.如何更改KEIL头文件路径

使用KEIL软件,我想在工程目录中添加一个头文件。我应该怎么办?

1。首先,在电脑上打开自己的keil软件,如图。

2。打开后,选择页面顶部的“魔棒”选项,如图。

3。然后在打开的界面中选择“C/C++”选项,点击图中箭头所指的选项。

4。打开后可以添加文件,如图。

5。添加头文件后,点击图中箭头选项,如图。

6。在打开的窗口中添加源文件,如图。

7。添加完成后,可以在右侧窗口中看到添加的项目。

ke il4中如何加载头文件

/*

stc12c2052AD 头文件。

/*------------------------------------------------------------ --- ---

字节寄存器

------------------------------------------------------------ --- -*/

sfr SP =0x81;

sfr DPL =0x82;

sfr DPH =0x83;

sfr PCON=0x87;

sfr TCON=0x88;

sfr TMOD=0x89;

sfr TL0 =0x8A;

sfr TL1 =0x8B;

sfr TH0 =0x8C;

sfr TH1 =0x8D;

sfr SCON=0x98;

sfr SBUF=0x99;

sfr IE =0xA8;

sfr IPH=0XB7; /* 中断优先级扩展寄存器,用于定义扩展中断源的优先级 */

/*

IPH^7 空

IPH^6(PPCA_LVDH)...PCA扩展定时器中断和低电压中断常见

IPH^5(PADC_SPIH)...ADC模数转换和SPI传输结束中断通用

IPH^4(PSH)......... ??

IPH^3(PT1H).........

IPH^2(PX1H)

IPH^1(PT0H)

IPH^0(PX0H)

*/

sfr IP =0xB8; /* 通用中断源优先级定义寄存器,与IPH配合使用 */

sfr PSW=0xD0;

sfr ACC=0xE0;

sfr B =0xF0;

/* ------------------ P1口IO定义 ------------------ */

/* P1M0[7~0] P1M1[7~0]方向函数 */

/* 0 0 传统51准双向口模式*/

/* 0 1个推挽输出,上拉20mA */

/* 1 0 高阻单向输入,AD 所需。 */

/* 1 1 开漏输出,也可选择AD */

sfr ISP_TRIG =0XE6; /* 触发寄存器 */

sfr ISP_CONTR=0XE7; /* 控制寄存器 */

/* --------------新功能控制寄存器------------- */

sfr AUXR=0X8E; /*添加特殊功能寄存器*/

/*

其中:

AUXR^7(T0x12)..定时器ct0时钟源设置:0_atbit(传统1/12,1_atbit(1:1无分频;

AUXR^6(T1x12)..定时器ct1时钟源设置:0_atbit(传统1/12,1_atbit(1:1无分频;

AUXR^5(UARTx6)。串口模式0的时钟设置:0_atbit(传统的1/12^1_atbit(1/2除以2;

AUXR^4(EADCI).. ADC 中断使能位:0_atbit(禁用,1_atbit(启用)

AUXR^3(ESPI)... SPI 中断使能位:0_atbit(禁用,1_atbit(启用))

AUXR^2(ELVDI)..低电压中断使能:0_atbit(禁用,1_atbit(启用)

5V系统为3.7V且3V系统低于2.4V时发生中断

AUXR^1/AUXR^0.. 保留

*/

sfr CLOCK_DIV=0XC7; /* 空闲模式下的时钟分频可以进一步降低功耗 */

sfr WDT_CONTR=0XE1; /* 看门狗控制寄存器 */

/* 其中:

WDT_CONTR^7(WDT_FLAG).. 看门狗溢出flag_atbit(1,可用软件清零

WDT_CONTR^6 保留

WDT_CONTR^5(EN_WDT).... 看门狗使能 flag_atbit(1

WDT_CONTR^4(CLR_WDT)...看门狗clear_atbit(1,硬件自动归零

WDT_CONTR^3(IDLE_WDT)..=1 空闲模式下继续工作,_atbit(0 空闲模式下不工作

WDT_CONTR^2~0(PS2~0)...看门狗溢出时间设置:

0 0 0 ......除以2.....@20MHz 39.3mS

0 0 1 ......除以4......@20MHz 78.6mS

0 1 0 ......除以8..... @20MHz 157.3mS

0 1 1 ......除以16......@20MHz 314.6mS

1 0 0 ......除以32.....@20MHz 629.1mS

1 0 1......64频率.....@20MHz 1.25S

1 1 0....128分频....@20MHz 2.5S

1 1 1....256分频....@20MHz 5S

其他主要频率请参考上表进行相应换算。

*/

sfr SADDR = 0XA9; /* 从机地址,未使能 */

sfr 萨登 = 0XB9; /* 识别地址,未使能 */

sfr SPI_STATUS=0X84; /* SPSTAT SPI 状态寄存器 */

/* 其中:

SPSTAT^7(SPIF).... SPI 传输完成标志。串行传输完成后,SPIF 被置位,

并在 ESPI 和 EA 均置位时生成中断。当 SPI 处于主模式并且

SSIG_atbit(0,如果 /SS 是输入并驱动为低电平,SPIF

也将被设置。 SPIF 标志由软件写入“1”来清除。

SPSTAT^6(WCOL).... SPI 写入冲突标志。数据传输过程中,如果发送SPI数据

对寄存器SPDAT执行写操作,WCOL将被置位。 Soft

的 WCOL 标志

通过写入“1”来清除它。

SPSTAT^5~0 保留

*/

sfr SPI_CONTR=0X85; /* SPI控制寄存器SPCTL */

/* 其中:

SPCTL^7(SSIG)....../SS 忽略。

1:MSTR(位 4)确定设备是主设备还是从设备。

0:/SS 引脚用于确定设备是主机还是从机。 /SS 引脚可用作 I/O

使用

端口(参见SPI主从选择表)。

SPCTL^6(SPEN)...SPI 使能。 1:SPI 使能。 0:SPI 禁用,所有 SPI 引脚均作为

工作

用于 I/O 端口。

SPCTL^5(DORD)...... SPI 数据序列: 1:先发送数据字的 LSB(最低位);

0:首先发送数据字的 MSB(最高有效位)。

SPCTL^4(MSTR)...主/从模式选择(参见SPI主从选择表)。

SPCTL^3(CPOL)... SPI 时钟极性: 1:空闲时 SPICLK 为高电平。 SPICLK

的前时态

时钟沿是下降沿,后沿是上升沿。 0:空闲时SPICLK为低电平。

SPICLK 的前沿为上升沿,后沿为下降沿。

SPCTL^2(CPHA)...... SPI时钟相位选择:

1:数据在 SPICLK 的前沿时钟沿驱动,并在后沿时钟沿采样。

0:当 /SS 为低电平 (SSIG=00) 时驱动数据,在 SPICLK

之后提供时钟

边沿在前沿时钟边沿发生变化和采样。

(注:SSIG_atbit(1)未定义时的操作)

SPCTL^1~0(SPR1~0)...SPR0/SPR1 为 SPI 时钟频率选择控制位。

SPR1^SPR0:

0 0 -CPU_CLK/4

0 1 -CPU_CLK/16

1 0 -CPU_CLK/64

1 1 -CPU_CLK/128

*/

sfr SPI_DATA =0X86; /* SPI数据收发寄存器SPDAT */

sfr ADC_CONTR =0XC5; /* ADC控制寄存器*/

/* 其中:

ADC_CONTR^7(ADC_POWER)..ADC 电源控制位。 0:关闭; 1:打开。

开始AD转换前,请务必确认AD电源已打开且AD转换已完成

后关闭AD电源以减少功耗,或不关闭。第一次打开内部

模拟电源的A/D转换需要适当的延迟,直到内部模拟电源稳定

然后开始A/D转换。建议先启动A/D转换再启动A/D转换

结束前,任何I/O口的状态都不会改变,有利于高精度A/D

转换。

ADC_CONTR^6~5(SPEED1~0)。模数转换器转换速度控制位

SPEED1 SPEED0 A/D 转换时间

1 1 每 210 个时钟周期转换一次,当 CPU 工作频率为 20MHz 时,A/D 转换

变化速度约为100KHz

1 0 420 个时钟周期转换一次

0 1 每 630 个时钟周期转换一次

0 0 840 个时钟周期转换一次

ADC_CONTR^4(ADC_FLAG)...模数转换器转换结束标志,当A/D转换完成时,ADC_FLAG

_atbit( 1,由软件清0。无论A/D转换是否完成,该位适用于输出

如果发生中断,软件会查询该标志位,看A/D转换是否完成。当 A/D

转换完成后,ADC_FLAG= 1,必须用软件清0。

ADC_CONTR^3(ADC_START)...模数转换器 (ADC) 转换启动控制位。设置为 1 时,开始转换

ADC_CONTR^2~0(CHS2~0)....CHS0:模拟输入通道选择

CHS2 CHS1 CHS0 模拟输入通道选择

0 0 0 选择P1.0作为A/D输入

0 0 1 选择P1.1作为A/D输入

0 1 0 选择P1.2作为A/D输入

0 1 1 选择P1.3作为A/D输入

1 0 0 选择P1.4作为A/D输入

1 0 1 选择P1.5作为A/D输入

1 1 0 选择P1.6作为A/D输入

1 1 1 选择P1.7作为A/D输入

*/

sfr ADC_DATA=0XC6; /* A/D转换结果特殊功能寄存器*/

sfr CCON=0XD8; /* PCA控制寄存器,支持位寻址稍后定义*/

/* 其中:

CCON^7(CF)...PCA 计数器数组溢出标志。当计数值翻转时,该位由硬件设置。

如果 CMOD 寄存器的 ECF 位被置位,CF 标志可用于产生中断。

CF 位可以由硬件或软件置位,但只能由软件清零。

CCON^6(CR)...PCA 计数器阵列操作控制位。该位由软件设置,用于激活

激活PCA计数器阵列进行计数。该位由软件清零以关闭

PCA 计数器。

CCON^5~2 保留

CCON^1(CCF1)....PCA 模块 1 中断标志​​。当匹配或捕获发生时,该位由硬件置位。

该位必须由软件清零。

CCON^0(CCF0)....PCA 模块 0 中断标志​​。当匹配或捕获发生时,该位由硬件置位。

该位必须由软件清零。

*/

sfr CMOD =0XD9; /* PCA模式寄存器*/

/* 其中:

CMOD^7(CIDL)....计数器阵列空闲控制:CIDL_atbit(0,PCA 计数器继续处于空闲模式

继续工作。当 CIDL = 1 时,PCA 计数器在空闲模式下停止工作。

CMOD^6~3 保留

CMOD^2~1(CPS1,CPS0)PCA计数脉冲选择

CPS1 CPS0 选择 PCA 时钟源输入

0 0 0,内部时钟,Fosc/12

0 1 1,内部时钟,Fosc/2

1 0 2、定时器0溢出。由于定时器0可以工作在1T模式,因此可以

到了1个时钟就溢出了,但是频率最高,最多到

至 Fosc

1 1 3,ECI/P3.4引脚外部时钟输入(最大rate_atbit(Fosc/2)

CMOD^0(ECF)....PCA 计数溢出中断使能:ECF_atbit(1, 使能寄存器 CCON CF 位

中断。当ECF_atbit(0时,此功能关闭。

*/

sfr CH = 0XF9; /* PCA计数器初始值高8位*/

sfr CL = 0XE9; /* PCA计数器初始值低8位*/

sfr CCAPM0 =0XDA; /* PCA比较/捕捉模块寄存器0 */

/*

CCAPM0^7 保留

CCAPM0^6(ECOM0)..... 使能比较器。 ECOM0 = 1 使能比较器功能。

CCAPM0^5(CAPP0)..... 正在捕获。 CAPP0 = 1 使能上升沿捕获。

CCAPM0^4(CAPN0)..... 负捕获。 CAPN0 = 1 使能下降沿捕获。

CCAPM0^3(MAT0)......匹配。当MAT0 = 1时,PCA计数值与模块进行比较/捕获。

匹配寄存器值会将CCON 寄存器的中断标志位CCF0 置位。

CCAPM0^2(TOG0)......... 翻转。当 TOG0 = 1 时,PCA 计数值与模块的比较/捕获寄存器

进行比较

寄存器值匹配将导致 CEXn 引脚切换。 (CEX0/P3.7)

CCAPM0^1(PWM0).........脉宽调整模式。当 PWM0 = 1 时,使能 CEXn 引脚用作脉宽调制

部分输出。

CCAPM0^0(ECCF0)..... 使能CCF0中断。使能寄存器CCON的比较/捕捉标志CCF0,

用于产生中断。

使用的基本型号组合:

ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 模块功能

0 0 0 0 0 0 0 无此操作

X 1 0 0 0 0 X 16位捕捉模式,由CEX0

上升沿触发

X 0 1 0 0 0 X 16 位捕捉模式,由 CEX0

下降沿触发

X 1 1 0 0 0 X 16 位捕获模式,由 CEX0

的转换触发

1 0 0 1 0 0 X 16 位软件定时器

1 0 0 1 1 0 X 16 位高速输出

1 0 0 0 0 1 0 8 位 PWM

*/

sfr CCAP0H =0XFA; /* 当捕获或比较发生时,它们用于保存16位计数值。

PCA模块用于PWM模式时,用于控制输出

工作周期。 CCAP0H.CCAP0L分别为高低8位,组合使用*/

sfr CCAP0L =0XEA;

用于产生中断。

使用的基本型号组合:

ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 模块功能

0 0 0 0 0 0 0 无此操作

X 1 0 0 0 0 X 16位捕捉模式,由CEX1

上升沿触发

X 0 1 0 0 0 X 16位捕捉模式,由CEX1

下降沿触发

X 1 1 0 0 0 X 16 位捕获模式,由 CEX1

的转换触发

1 0 0 1 0 0 X 16 位软件定时器

1 0 0 1 1 0 X 16 位高速输出

1 0 0 0 0 1 0 8 位 PWM

*/

sfr CCAP1H =0XFB; /* 当捕获或比较发生时,它们用于保存16位计数值。

PCA模块用于PWM模式时,用于控制输出

工作周期。 CCAP1H.CCAP1L分别为高低8位,组合使用*/

sfr CCAP1L =0XEB;

sfr PCA_PWM1 =0XF3; /* PWM下9位最高位

PCA_PWM1^1(EPC1H)....在 PWM 模式下,与 CCAP1H 组成一个 9 位数字

PCA_PWM1^0(EPC1L)....在 PWM 模式下,与 CCAP1L 组成一个 9 位数字

*/

/*------------------------------------------------------------ --- ---

PCON 位值

------------------------------------------------------------ --- -*/

#define IDL_ 0x01

#define STOP_ 0x02

#define EWT_ 0x04

#define EPFW_ 0x08

#define WTR_ 0x10

#define PFW_ 0x20

#define POR_ 0x40

#define SMOD_ 0x80

/*------------------------------------------------------------ --- ---

TCON 位寄存器

------------------------------------------------------------ --- -*/

sbit IT0=TCON^0;

sbit IE0=TCON^1;

sbit IT1=TCON^2;

sbit IE1=TCON^3;

sbit TR0=TCON^4;

sbit TF0=TCON^5;

sbit TR1=TCON^6;

sbit TF1=TCON^7;

/*------------------------------------------------------------ ---

TMOD 位值

------------------------------------------------------------ -*/

#define T0_M0_ 0x01

#define T0_M1_ 0x02

#define T0_CT_ 0x04

#define T0_GATE_ 0x08

#define T1_M0_ 0x10

#define T1_M1_ 0x20

#define T1_CT_ 0x40

#define T1_GATE_ 0x80

#define T1_MASK_ 0xF0

#define T0_MASK_ 0x0F

/*------------------------------------------------

P1 Bit Registers

------------------------------------------------*/

sbit P1_0= P1^0;

sbit P1_1= P1^1;

sbit P1_2= P1^2;

sbit P1_3= P1^3;

sbit P1_4= P1^4;

sbit P1_5= P1^5;

sbit P1_6= P1^6;

sbit P1_7= P1^7;

sbit ADC0= P1^0; /* + Analog input */

sbit ADC1= P1^1; /* + Analog input */

sbit ADC2= P1^2; /* + Analog input */

sbit ADC3= P1^3; /* + Analog input */

sbit ADC4= P1^4; /* + Analog input */

sbit ADC5= P1^5; /* + Analog input */

sbit ADC6= P1^6; /* + Analog input */

sbit ADC7= P1^7; /* + Analog input */

/* SPI 专用IO */

sbit SS = P1^4; /* 主从SPI选择,外部输入P1.4_atbit(0为从机*/

sbit MOSI= P1^5; /* 主输出/从输入 */

sbit MISO= P1^6; /* 主输入/从输出 */

sbit SCLK= P1^7; /* SPI时钟,主方输出,从方接收 */

/*------------------------------------------------

SCON Bit Registers

------------------------------------------------*/

sbit RI = SCON^0;

sbit TI = SCON^1;

sbit RB8 = SCON^2;

sbit TB8 = SCON^3;

sbit REN = SCON^4;

sbit SM2 = SCON^5;

sbit SM1 = SCON^6;

sbit SM0 = SCON^7;

/*------------------------------------------------

IE Bit Registers

------------------------------------------------*/

sbit EX0 = IE^0; /* 1_atbit(Enable External interrupt 0 */

sbit ET0 = IE^1; /* 1_atbit(Enable Timer 0 interrupt */

sbit EX1 = IE^2; /* 1_atbit(Enable External interrupt 1 */

sbit ET1 = IE^3; /* 1_atbit(Enable Timer 1 interrupt */

sbit ES = IE^4; /* 1_atbit(Enable Serial port interrupt */

sbit ET2 = IE^5; /* 1_atbit(Enable Timer 2 interrupt */

sbit EA = IE^7; /* 0_atbit(Disable all interrupts */

/*------------------------------------------------

P3 Bit Registers (Mnemonics Ports)

------------------------------------------------*/

sbit P3_0= P3^0;

sbit P3_1= P3^1;

sbit P3_2= P3^2;

sbit P3_3= P3^3;

sbit P3_4= P3^4;

sbit P3_5= P3^5;

/* P3_6 Hardwired as AOUT */

sbit P3_7= P3^7;

sbit RXD = P3^0; /* Serial data input */

sbit TXD = P3^1; /* Serial data output */

sbit INT0= P3^2; /* External interrupt 0 */

sbit INT1= P3^3; /* External interrupt 1 */

sbit T0 = P3^4; /* Timer 0 外部时钟输入口P3.4 */

sbit ECI = P3^4; /* PCA计数器阵列的可选外部时钟输入口P3.4 */

sbit T1 = P3^5; /* Timer 1 外部时钟输入口P3.5 */

sbit CEX1= P3^5; /* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/

sbit PWM1= P3^5; /* PWM方式时PWM1的输出口P3.5/PCA1反相输出*/

sbit CEX0= P3^7; /* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/

sbit PWM0= P3^7; /* PWM方式时PWM0的输出口P3.7/PCA0反相输出*/

/*------------------------------------------------

IP 中断优先级寄存器低8位

------------------------------------------------*/

sbit PX0 = IP^0; /* 外部中断0 P3.2 */

sbit PT0 = IP^1; /* 定时计数器0中断 */

sbit PX1 = IP^2; /* 外部中断1 P3.3 */

sbit PT1 = IP^3; /* 定时计数器1中断 */

sbit PS = IP^4; /* 通信中断RI或TI */

/*------------------------------------------------

PSW Bit Registers

------------------------------------------------*/

sbit P = PSW^0;

sbit FL = PSW^1;

sbit OV = PSW^2;

sbit RS0 = PSW^3;

sbit RS1 = PSW^4;

sbit F0 = PSW^5;

sbit AC = PSW^6;

sbit CY = PSW^7;

/*------------------------------------------------

PCA 控制寄存器CCON Bit Registers

------------------------------------------------*/

sbit CCF0= CCON^0; /*PCA模块0中断标志。当出现匹配或捕获时该位由硬件置位。

该位必须通过软件清零。*/

sbit CCF1= CCON^1; /*PCA模块1中断标志。当出现匹配或捕获时该位由硬件置位。

该位必须通过软件清零。*/

sbit CR = CCON^6; /*PCA计数器阵列运行控制位。该位通过软件置位, 用来起

动PCA计数器阵列计数。该位通过软件清零, 用来关闭

PCA计数器。*/

sbit CF = CCON^7; /*PCA计数器阵列溢出标志。计数值翻转时该位由硬件置位。

如果CMOD寄存器的ECF位置位, CF标志可用来产生中断。

CF位可通过硬件或软件置位, 但只可通过软件清零。*/

keil头文件位置如何设置

重新安装KEIL,或者在引用这个头文件时,加入绝对或相对路径,再或者,在KEIL项目的配置菜单

keil4中如何头文件"utils/ustdlib.h"的路径

一般在c:/keil/includ文件夹下,或者是lib文件夹!

如果存在这个文件的话,你直接在编辑框中输入inculudeutil/ustdib,h,右键单击util/ustdib,h,选择倒数第二项就找到了!

keil4中h文件路径不对

KEIL 头文件路径可以直接写在引号内,缺省的话,头文件必须在工程文件同一个目录下,比如:

#includeds0832.h //此时ds0832.h 文件必须与工程文件同一目录

#include "d:\myfile\ds0832.h" //此时 ds0832.h文件在d:\myfile目录下。

还可以写作

#include "ds0832.h" //此时也必须同一目录。

你想网页或者手机都是可以下到的,现在已经是没有什么限制了。

KEIL 头文件路径 怎么改

KEIL 头文件路径可以直接写在引号内,缺省的话,头文件必须在工程文件同一个目录下,比如:

#includeds0832.h //此时ds0832.h 文件必须与工程文件同一目录

#include "d:\myfile\ds0832.h" //此时 ds0832.h文件在d:\myfile目录下。

还可以写作

#include "ds0832.h" //此时也必须同一目录。

相关文章

最新资讯