?? 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 + -