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

📄 relay.c

📁 MICROCHIP pic-demo板 液晶官方驱动
💻 C
字号:
#include	<pic.h>/* *	Interrupt demo for PIC; wait for button press on RB0/INT, *	turn on a relay on another port bit for a period of time. * *	Copyright (C)1997 HI-TECH Software. *	Freely distributable. *//*	Defines; change as appropriate */#define	XTAL		4MHz		// crystal frequency#define	CLKINTR		250		// microseconds per clock interruptstatic bit		RELAY @ (unsigned)&PORTB*8+7;	// use this bit to drive							// the relay - active low.#define	OFF		1		// bit is 1 to turn off#define	ON		0		// and 0 to turn on#define	RELAY_TIME	1000ms		// how long to turn the relay on for/* this stuff is not likely to change */#define	MHz		*1000000	// this many cycles to megahertz#define	CLKDIV		4l		// xtal is divided by this many#define	ms		*1000l		// this many microseconds in a millisecondstatic unsigned int	relay_timer;	// timer value for relay driver#define	TIMER_RELOAD	((((XTAL)/CLKDIV)*CLKINTR)/1000000)#define	RELAY_VALUE	((RELAY_TIME)/(CLKINTR))voidmain(void){	/* setup stuff */	RELAY = OFF;		// ensure relay is off before enabling output	TRISB = 0x3F;		// Port B bits 7 and 6 are output 	T0CS = 0;		// Timer increments on instruction clock	T0IE = 1;		// Enable interrupt on TMR0 overflow	INTEDG = 0;		// falling edge trigger the interrupt	INTE = 1;		// enable the external interrupt	GIE = 1;		// Global interrupt enable	for(;;)		CLRWDT();	// Idly kick the dog}static void interruptisr(void)			// Here be interrupt function - the name is				// unimportant.{	if(T0IF) {				// timer interrupt		TMR0 -= TIMER_RELOAD;		// reload the timer		T0IF = 0;			// clear the interrupt flag		if(relay_timer != 0)		// is the relay timer running?			relay_timer--;		// decrement it		if(relay_timer == 0)		// if it has time out			RELAY = OFF;		// turn the relay off		PORTB ^= 0x40;			// toggle a bit to say we're alive	}	if(INTF) {				// did we see a button press?		RELAY = ON;			// turn the relay on		relay_timer = RELAY_VALUE;	// start the timer		INTF = 0;			// clear the interrupt	}}

⌨️ 快捷键说明

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