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

📄 pic16f57_woof.c

📁 PIC单片机上运行的程序,对这种单片机初学者有帮助
💻 C
字号:
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//       Author : ShiZheJun 
//       单片机 : PIC16F57 (CF775兼容)
//     硬件平台 : 自动信号控制板
//     编译环境 : MPLAB IDE V7.30 + HI-TECH PICC V8.05
//      Ver 1.0 : 2008.02.20 
//                引脚RA2作为继电器控制位;引脚RA3用于选择模式,选择输入B端口的信号高或低电平有效;
//                端口C用于输出控制信号;
//                各端口引脚上电或复位时默认值为未知状态;
//                由于硬件上B端口和C端口各引脚并非按顺序一一对应,RB0对应RC0......而是刚好反过来,所以程序
//                    中把C端口的引脚顺序全部反过来,即RB7对应RC0,RB6对应RC1......                                            //
////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <pic.h>
#include "stdio.h"

#define DELAY_CONTROL  RA2			//继电器控制位
#define MODE_SELECT    RA3			//高(低)电平有效模式控制位
__CONFIG ( XT&UNPROTECT&WDTDIS );	//定义工作配置字:使用XT振荡&不保护软件&禁用看门狗
unsigned char TEMP;	

///////////////////////////////////////////////////////////////////////////////////////////////////////
// 输出控制子函数
void OutputControl ( void )
	{
	if ( MODE_SELECT )		//如果短路块未连接,则B端口正常情况下都是高电平,变成低电平时有效
		{
		TEMP=~PORTB;		//读取端口B,对各位取反,变成高电平有效
		RC0=RB7;
		RC1=RB6;
		RC2=RB5;
		RC3=RB4;
		RC4=RB3;
		RC5=RB2;
		RC6=RB1;
		RC7=RB0;
		}
		else				//如果短路块连接,则B端口正常情况下都是低电平,变成高电平时有效
			{
			TEMP=PORTB;			//读取端口B		
			RC0=!RB7;			//这里对位取反操作不能使用符号“~”,跟51编译器有所区别
			RC1=!RB6;
			RC2=!RB5;
			RC3=!RB4;
			RC4=!RB3;
			RC5=!RB2;
			RC6=!RB1;
			RC7=!RB0;	
			}
	}

void main ( void )
	{
	TRISA=0b11111011;		//控制继电器的引脚设置为输出状态,模式选择的引脚设置为输入状态
	TRISB=0xff;				//初始化端口B,Input,(默认所有端口为输入状态)
	TRISC=0x00;				//初始化端口C,Output
	DELAY_CONTROL=1;		//继电器初始不动作
	PORTC=0xff;				//端口C初始状态输出全为1
	while ( 1 )
		{		
		OutputControl ( );
		TRISA=0b11111111;   //端口输出控制前初始化一下
		PORTA=0b11111111;
		TRISA=0b11111011;
		if ( TEMP )		//端口中任何一位是高电平,继电器就动作
			{
			DELAY_CONTROL=0;	//继电器动作
			}
			else
				{
				DELAY_CONTROL=1;	//继电器不动作
				}
		}
	}

⌨️ 快捷键说明

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