⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pic.h

📁 这个是汽车制动台控制程序的C语言版本. 用于实际产品中.单片机用的是PIC16F877A.
💻 H
字号:
#ifndef	_PIC_H
#define	_PIC_H

#if defined(_12C508)	|| defined(_12C509)	||\
    defined(_12C508A)	|| defined(_12C509A)	||\
    defined(_12CE518)	|| defined(_12CE519)	||\
    defined(_12C509AG)	|| defined(_12C509AF)	||\
    defined(_12CR509A)	|| defined(_RF509AG)	||\
    defined(_RF509AF)
	#include	<pic125xx.h>
#endif
#if defined(_16C432)	|| defined(_16C433)
	#include	<pic1643x.h>
#endif
#if defined(_16C52)	|| defined(_16C54)	|| defined(_16C54A)	||\
    defined(_16C54B)	|| defined(_16C54C)	|| defined(_16CR54A)	||\
    defined(_16CR54B)	|| defined(_16CR54C)	|| defined(_16C55)	||\
    defined(_16C55A)	|| defined(_16C56)	|| defined(_16C56A)	||\
    defined(_16CR56A)	|| defined(_16C57)	|| defined(_16C57C)	||\
    defined(_16CR57B)	|| defined(_16CR57C)	|| defined(_16C58A)	||\
    defined(_16C58B)	|| defined(_16CR58A)	|| defined(_16CR58B)	||\
    defined(_16C58)	|| defined(_16HV540)
	#include	<pic165x.h>
#endif
#if defined(_12C671)	|| defined(_12C672)	||\
    defined(_12CE673)	|| defined(_12CE674)
	#include	<pic1267x.h>
#endif
#if	defined(_12F629)	|| defined(_12F675)
	#include	<pic12f6x.h>
#endif
#if	defined(_12F675F)	|| defined(_12F675H)	|| defined(_12F675K)
	#include	<pic12rf675.h>
#endif
#ifdef _16C505
	#include	<pic16505.h>
#endif
#ifdef	_14000
	#include	<pic14000.h>
#endif
#if defined(_16C554)	|| defined(_16C556)	|| defined(_16C558)    ||\
    defined(_16C554A)   || defined(_16C556A)    || defined(_16C558A)
	#include	<pic1655x.h>
#endif
#ifdef	_16C61
	#include	<pic1661.h>
#endif
#if defined(_16C62)	|| defined(_16C62A)	|| defined(_16CR62)	||\
    defined(_16C62B)
	#include	<pic1662.h>
#endif
#if defined(_16C620)	|| defined(_16C621)	|| defined(_16C622)	||\
    defined(_16C620A)   || defined(_16C621A)    || defined(_16C622A)	||\
    defined(_16CE623)	|| defined(_16CE624)	|| defined(_16CE625)	||\
    defined(_16CR620A)
	#include	<pic1662x.h>
#endif
#if defined(_16C64)	|| defined(_16C64A)	|| defined(_16CR64)
	#include	<pic1664.h>
#endif
#if defined(_16C641)	|| defined(_16C642)	||\
    defined(_16C661)	|| defined(_16C662)
	#include	<pic166xx.h>
#endif
#if defined(_16C65)	|| defined(_16C65A)	|| defined(_16CR65)
	#include	<pic1665.h>
#endif
#if defined(_16C66)	|| defined(_16C67)
	#include	<pic166x.h>
#endif
#if defined(_16C71)	|| defined(_16C710)	|| defined(_16C711)
	#include	<pic1671x.h>
#endif
#if defined(_16C712)    || defined(_16C715)     || defined(_16C716)
	#include	<pic16715.h>
#endif
#if defined(_16C72)     || defined(_16C72A)	|| defined(_16CR72)
	#include	<pic1672.h>
#endif
#if defined(_16C73)	|| defined(_16C73A)	||\
    defined(_16C74)	|| defined(_16C74A)	||\
    defined(_16C63)     || defined(_16CR63)     || defined(_16C63A)     ||\
    defined(_16C65B)    || defined(_16C73B)     || defined(_16C74B)	||\
    defined(_16LC74B)
	#include	<pic1674.h>
#endif
#if defined(_16C76)	|| defined(_16C77)
	#include	<pic1677.h>
#endif
#if defined(_16C773)	|| defined(_16C774)	|| defined(_16C770)	||\
    defined(_16C771)	|| defined(_16C717)	|| defined(_16C745)	||\
    defined(_16C765)
	#include	<pic1677x.h>
#endif
#if defined(_16C781)	|| defined(_16C782)
	#include	<pic1678x.h>
#endif
#if defined(_16F627)	|| defined(_16F628)
	#include	<pic16f6x.h>
#endif
#if defined(_16F627A)	|| defined(_16F628A)	|| defined(_16F648A)
	#include	<pic16f62xa.h>
#endif
#if defined(_16F630)	|| defined(_16F676)
	#include	<pic16630.h>
#endif
#if defined(_16F684)
	#include	<pic16f684.h>
#endif
#if defined(_16F83)	|| defined(_16CR83)	|| defined(_16C84)	|| \
    defined(_16F84)	|| defined(_16F84A)	|| defined(_16CR84)
	#include	<pic1684.h>
#endif
#if defined(_16F87)	|| defined(_16F88)
	#include <pic16f87.h>
#endif
#if defined(_16F873)	|| defined(_16F874)	||\
    defined(_16F876)	|| defined(_16F877)	||\
    defined(_16F872)	|| defined(_16F871)	||\
    defined(_16F870)
	#include	<pic1687x.h>
#endif
#if defined(_16F873A)	|| defined(_16F874A)	||\
    defined(_16F876A)	|| defined(_16F877A)
	#include	<pic168xa.h>
#endif
#if	defined(_16F72)	||\
	defined(_16F73)	|| defined(_16F74)	||\
	defined(_16F76) || defined(_16F77)
	#include	<pic16f7x.h>
#endif
#if defined(_16F818)	|| defined(_16F819)
	#include	<pic16f81x.h>
#endif
#if defined(_16C923)	|| defined(_16C924)	||\
    defined(_16C925)	|| defined(_16C926)
	#include	<pic169xx.h>
#endif
#if	defined(_7C695X)
	#include	<pic7695x.h>
#endif
#if	defined(_16C99) || defined (_16C99C)
	#include        <pic1699.h>
#endif

#if  defined(_17C42) || defined(_17C42A) || defined(_17CR42) ||\
     defined(_17C43) || defined(_17CR43) || defined(_17C44)
	#include        <pic174x.h>
#endif

#if  defined(_17C752)   || defined(_17C756)     || defined(_17C756A)    ||\
     defined(_17C762)   || defined(_17C766)
        #include        <pic177xx.h>
	
#endif
	
#define	CLRWDT()	asm("clrwdt")
#define	SLEEP()		asm("sleep")
#define NOP()		asm("nop")

#define	___mkstr1(x)	#x
#define	___mkstr(x)	___mkstr1(x)
#define	__CONFIG(x)	asm("\tpsect config,class=CONFIG,delta=2");\
			asm("\tdw "___mkstr(x))

#define __IDLOC(w)       asm("\tpsect idloc,class=IDLOC,delta=2");\
			 asm("\tglobal\tidloc_word"); \
			 asm("idloc_word"); \
			 asm("\tirpc\t__arg," ___mkstr(w)); \
			 asm("\tdw 0&__arg&h"); \
			 asm("\tendm")

#if defined(EEPROM_SIZE)
#define __EEPROM_DATA(a, b, c, d, e, f, g, h) \
			 asm("\tpsect eeprom_data,class=EEDATA,delta=2"); \
			 asm("\tdb\t" ___mkstr(a) "," ___mkstr(b) "," ___mkstr(c) "," ___mkstr(d) "," \
				      ___mkstr(e) "," ___mkstr(f) "," ___mkstr(g) "," ___mkstr(h))
#endif
// global interrupt enable macros

#ifdef _PIC16

#ifndef	ei
#define	ei()	(GLINTD = 0)	// interrupt disable bit
#endif  ei

#if defined(_17C42)
	#ifndef	di
		#define di()	{ do { GLINTD = 1; } while ( GLINTD == 0 ); }	// disable interrupt bit
	#endif di
#else
	#ifndef	di
		#define	di()	(GLINTD = 1)	// interrupt disable bit
	#endif di
#endif

#elif defined _PIC14
	
#ifndef	ei
#define	ei()	(GIE = 1)	// interrupt enable bit
#endif  ei

#if defined(_14000) ||  defined(_16C61) || defined(_16C62) ||\
	defined(_16C63) || defined(_16C63A) || defined(_16C64) ||\
	defined(_16C65) || defined(_16C65B) || defined(_16C71) ||\
	defined(_16C73) || defined(_16C73B) || defined(_16C74) ||\
	defined(_16C74B) || defined(_16C84) || defined(_16C745) ||\
	defined(_16C765) || defined(_16LC74B)
	#ifndef	di
		#define di()	{ do { GIE = 0; } while ( GIE == 1 ); }	// disable interrupt bit
	#endif  di
#else
	#ifndef	di
		#define	di()	(GIE = 0)	// interrupt enable bit
	#endif  di
#endif
			 
#endif
#endif	/* _PIC_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -