📄 relayandscr.c
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
//文件名: RELAYANDSCR.c
//
//编写人: LC
//
//编写时间:2005/03/10
//
//目标器件: C8051F02x
//
//编译工具: Silicon Laboratories IDE
//
//程序说明: 此程序是驱动继电器和光耦
//P54--MUSIC P55--RELAY P56--PHOT0 P57--PHOT1
//------------------------------------------------------------------------------------
// Includes
//------------------------------------------------------------------------------------
#include <c8051f020.h> // SFR declarations
#include <intrins.h>
//------------------------------------------------------------------------------------
// Function PROTOTYPES
//------------------------------------------------------------------------------------
void PORT_Init (void);
/***************************************************************************************
函数名称: void sleep_ms(WORD count)
功能描述: 延时
输入: WORD count(所要延时的长度)
输出: 无
全局变量: 无
调用模块: _nop_()
***************************************************************************************/
void sleep_ms(unsigned int count)
{
unsigned char ii,jj;
for(ii=0;ii<count;ii++)
{
for(jj=0;jj<250;jj++)
_nop_();
}
}
//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
void main (void) {
/*无效看门狗*/
WDTCN = 0xde;
WDTCN = 0xad;
PORT_Init ();
P5=P5&0x00; /*关PHOTO1和步进电机*/
P5=P5|0x60; /*关RELAY和PHOTO0*/
while (1)
{
//PHOTO1
P5 = P5 | 0x80; /*开*/
sleep_ms(250);
P5 = P5 & 0x7F; /*关*/
sleep_ms(250);
//RELAY
P5 = P5 & 0xDF; /*开*/
sleep_ms(250);
P5 = P5 | 0x20; /*关*/
sleep_ms(250);
//PHOTO0
P5 = P5 & 0xBF; /*开*/
sleep_ms(250);
P5 = P5 | 0x40; /*关*/
sleep_ms(250);
}
}
/***************************************************************************************
函数名称: void PORT_Init(void)
功能描述: 初始化I/O
输入: 无
输出: 无
全局变量: XBR2,P74OUT
调用模块: _nop_()
***************************************************************************************/
void PORT_Init (void)
{
XBR2 = 0x40; /*使能交叉开关和弱拉*/
P74OUT |= 0x08; /*P5高4位为推挽输出,其余口为开漏输出*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -