#FUSES
语法: #fuse options
options要根据设备改动.一系列有用的可选项都要放在每个devices.h文件的顶部,注释用来参阅.PCW能有用修正修正特别的设备fuses.PCW下拉菜单VIEW|Valid fuses将会显现一切的fuses描绘.
一些公共的可选项如下:
LP, XT, HS, RC
WDT, NOWDT
PROTECT, NOPROTECT
PUT, NOPUT, (Power Up Timer)
BROWNOUT, NOBROWNOUT
意图:这种指示界说要fuses的东西在编程时设定在器材中.这种指示不影响修正,但是信息放在输出文件中.如果在Parallax格局中需求fuses,则增加PAR可选项.SWAP有将在Hex文件的不必编程的数据的高和低字节进行交流的功用.关于一些可编程的设备,这将被要求.
带有某些fuses一些处理器答应有不同的电平,为了承受这些电平,就将一个值赋给fuse.例如18F452.这个fuse PROTECT=6就将6这个值赋给CONFIG5L,维护代码块0和代码块3
比如:
#fuses HS, NOWDT
比如文件:ex_sqw.c
文件: ex_sqw.c如下:
#if defined(__PCM__) //若运用了PCM编译器,则defined( __PCM__)返回值为1
#include <16F877.h> //包括16F877.h头文件
#fuses HS,NOWDT,NOPROTECT //HS:高速晶振/谐振器, NOWDT:不运用WDT
// NOPROTECT:程序存储器代码不维护
#use delay(clock=20000000) //使能内置函数的功用:delay_ms()和delay_us()
//#USE DELAY()必须在#use rs232()运用之前呈现.
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
//运用波特率为9600,
//发送脚为PIN_C6
//接收脚为PIN_C7
//使能内置函数:GETC,PUTC和PRINTF, kbhit();
#elif defined(__PCB__)
#include <16c56.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_A3, rcv=PIN_A2) // Jumpers: 11 to 17, 12 to 18
#elif defined(__PCH__)
#include <18F452.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) // Jumpers: 8 to 11, 7 to 12
#endif //完毕if界说
void main() {
printf(“Press any key to begin\n\r”);
getc();
printf(“1 khz signal activated\n\r”);
while (TRUE) {
output_high(PIN_B0); //脚(PIN_B0)输出高电平
delay_us(500); //延时500us
output_low(PIN_B0); //脚(PIN_B0)输出低电平
delay_us(500); //延时500us
}
}
上面的比如介绍delay_us(), output_high(), output_low()函数的用法