PIC單片機(jī)CCS之C語(yǔ)言(#FUSES的用法)
語(yǔ)法: #fuse options
本文引用地址:http://m.butianyuan.cn/article/201611/315394.htmoptions要根據(jù)設(shè)備改變.一系列有效的可選項(xiàng)都要放在每個(gè)devices.h文件的頂部,注釋用來(lái)參考.PCW能有效編輯修改特殊的設(shè)備fuses.PCW下拉菜單VIEW|Valid fuses將會(huì)顯示所有的fuses描寫.
一些公共的可選項(xiàng)如下:
LP, XT, HS, RC
WDT, NOWDT
PROTECT, NOPROTECT
PUT, NOPUT, (Power Up Timer)
BROWNOUT, NOBROWNOUT
目的:這種指示定義要fuses的東西在編程時(shí)設(shè)定在器件中.這種指示不影響編輯,可是信息放在輸出文件中.如果在Parallax格式中需要fuses,則添加PAR可選項(xiàng).SWAP有將在Hex文件的不用編程的數(shù)據(jù)的高和低字節(jié)進(jìn)行交換的功能.對(duì)于一些可編程的設(shè)備,這將被要求.
帶有某些fuses一些處理器允許有不同的電平,為了接受這些電平,就將一個(gè)值賦給fuse.例如18F452.這個(gè)fuse PROTECT=6就將6這個(gè)值賦給CONFIG5L,保護(hù)代碼塊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:程序存儲(chǔ)器代碼不保護(hù)
#use delay(clock=20000000) //使能內(nèi)置函數(shù)的功能:delay_ms()和delay_us()
//#USE DELAY()必須在#use rs232()使用之前出現(xiàn).
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
//使用波特率為9600,
//發(fā)送腳為PIN_C6
//接收腳為PIN_C7
//使能內(nèi)置函數(shù):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 //結(jié)束if定義
void main() {
printf("Press any key to beginnr");
getc();
printf("1 khz signal activatednr");
while (TRUE) {
output_high(PIN_B0); //腳(PIN_B0)輸出高電平
delay_us(500); //延時(shí)500us
output_low(PIN_B0); //腳(PIN_B0)輸出低電平
delay_us(500); //延時(shí)500us
}
}
上面的例子介紹delay_us(), output_high(), output_low()函數(shù)的用法
評(píng)論