当前位置:首页 > 单片机 > 单片机
[导读] //PROJECT : EA21//IC : SAMSUNG S3C9454#include "ioS3C9454.h"//自己编写,注意const ?//****************************//PINdefine area//*****************************#define CONTROL_RelayLight

//PROJECT : EA21
//IC : SAMSUNG S3C9454

#include "ioS3C9454.h"

//自己编写,注意const ?


//****************************
//PINdefine area
//*****************************
#define CONTROL_RelayLight (P0&0x04) //P0.2
#define SET_RelayLight (P0|=0x04)
#define CLR_RelayLight (P0&=0xFB)

#define CONTROL_RelayCyclone (P0&0x08) //P0.3
#define SET_RelayCyclone (P0|=0x08)
#define CLR_RelayCyclone (P0&=0xF7)

//*********************************
//function declare area
//*********************************
void io_init(void);
void delay(void);
void AD_CONV(void);
void MOV ingData(void);
void JudgingKey(void);
void DealKey(void);
void DealDelayClose(void);
void DealDelayLOCk(void);
void DealBuzz(void);
void DealLockMotor(void);
void ram_init(void);


//*********************************
//constant define area
//*********************************
#define DelayKey 0x01
#define PowerKey 0x02
#define CycloneKey 0x04
#define LightKey 0x08
#define LockKey 0x10
#define BigWindKey 0x20
#defineSILenceKey 0x40

//*********************************
//variable define area
//*********************************
unsigned char VolData[7][5]; //如果上电前,即使按键按下,也不识别,那么,初始化为0就可以,
//如果需要识别,就要处理??
unsigned char Key_OldStatus; //表示前一时刻键的状态,1表示按下,0表示弹起
unsigned char RepeatKey_Status; //表示重键的状态,1表示有,0表示无,对应七个键
unsigned char Key_NowPushStatus; //表示现在键按下的状态

#define CONTROL_LockStatus (SYS_Status&0x01)
#define SET_LockStatus (SYS_Status|=0x01)
#define CLR_LockStatus (SYS_Status&=0xFE)


//*********************************
//table define area
//*********************************
//code unsigned char AnalogChannel[7]={0x00,0x00,0x01,0x01,0x02,0x02,0x03};
//code unsigned char ADChannel[7]={0x05,0x15,0x05,0x15,0x05,0x15,0x15};

//*********************************
//SUB PROGRAM ROUTINE
//*********************************
void io_init(void)
{

CLKCON = 0x18; // cpu clock is non-divided clock
BTCON = 0xA3; // dISAble watch-dog, select fxx/4096 for basic timer clock
//btcon = 0x02, enable watch-dog
SP = 0xC0; // sp <= c0h
FLAGS = 0x00; // clear flags
STOPCON = 0x00; // disable STOP instruction

P0CONH = 0xAA;
P0CONL = 0xAF; // P0.0-P0.1A/Dinput, P0.2-P0.7 push-pull output
P1CON = 0x0A; // P1.0-P1.1 push-pull output
P2CONH = 0x4A; //
P2CONL = 0xAA; // P2.0-P2.6 push-pull output

T0DATA = 0x03; //3,200,000/256*3=4166, 250us
T0CON = 0x0A; //
}

void delay(void)
{
__no_operation();
__no_operation();
__no_operation();
__no_operation();
__no_operation();
__no_operation();
}

void MOV ingData(void)
{
unsigned char i,j;
for(i=0;i<7;i++)
{
for(j=0;j<4;j++)
{
VolData[i][j]=VolData[i][j+1];
}
}
}


void AD_CONV(void)
{
unsigned char i;
unsigned char AD_Flag,AD_WAIT;
for(i=0x00;i<0x07;i++)
{
P1=AnalogChannel[i];
ADCON=ADChannel[i];
delay();


for(AD_WAIT=0x00;AD_WAIT<0xff;AD_WAIT++)
{
AD_Flag=0x00;
if(ADCON&0x08)


{
AD_Flag=0x01;
break;


}
}
if(AD_Flag)


VolData[i][4]=ADDATAH;
}
}

void DealDelayClose(void)
{
if(CONTROL_DelayClose)
{
if(DelayCloseTime>=Interval_5M)
{
CloseAllLED;
CLR_RelayLight;
CLR_RelayCyclone;
CLR_RelayBigWind;
CLR_RelaySilence;
SYS_Status=0x00;
}
}
}

void DealDelayLock(void)
{
if(CONTROL_DelayLock)
{
if(DelayLockTime>=Interval_3S)
{
CLR_DelayLock;
if(CONTROL_LockStatus)
{
CLR_LedLock;

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在这篇文章中,小编将对PLC的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: PLC 模块化 程序

对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一。一般是优化了代码的尺寸,就会带来执行时间的增加;如果优化了程序的执行速度,通常会带来代码增加的副作用。很难鱼与熊掌兼得,只能在...

关键字: 单片机 程序

一个程序首先要保证正确性,在保证正确性的基础上,性能也是一个重要的考量。要编写高性能的程序,必须选择合适的算法和数据结构。

关键字: CPU 程序 缓存

仿真的概念其实使用非常广,最终的含义就是使用可控的手段来模仿真实的情况。在嵌入式系统的设计中,仿真应用的范围主要集中在对程序的仿真上。

关键字: 单片机 仿真器 程序

步进电动机是将电脉冲激励信号转换成相应的角位移或线位移的离散值控制电动机,这种电动机每当输入一个电脉冲就动一步,所以又称脉冲电动机。

关键字: 步进电机 正反转 程序

KeilμVision4是Keil软件公司为8051系列微控制器及其兼容产品设计的集成式软件开发环境。μVision4集成了C51编译器和A51汇编器,其界面类似于Microsoft VS,支持C语言和汇编语言程序的编写...

关键字: 程序 编译 链接

双方各执一词,谁也不退让,吴雄昂的身份成为薛定谔的猫:在Arm公司眼中,他已经被罢免一切职位;在安谋中国声明里,吴仍然一切照常。这种叠加态或许还会持续一段时间,但叠加态应该很快就会塌缩成一个确定结果。同样,安谋中国董事会...

关键字: ARM 中国董事会 程序

除了指令空间,自定义指令对应的程序出入口也有严格限制。自定义指令在使用过程中出现任何错误时,Arm的工具链都能及时对其进行识别、提取,并且进行相应的控制。目前也已经有第三方编译器,可以识别自定义指令集可能会出现的错误。专...

关键字: 指令空间 程序 ARM

如果说一众美国科技公司遵循特朗普命令断供华为,还算某种程度上维护所谓程序正义不得已而为之;那么各路本应对政治保持中立的国际技术标准组织,先后宣布剔除华为成员资格,绝对算助纣为虐;而联邦快递将华为委托寄送目的地为中国的快递...

关键字: 快递 华为 程序

在软件开发过程中,我们希望软件可以运行无误。但是常常事与愿违,程序经常跑飞,或者卡死。原因有很多,有可能是因为软件系统设计的原因,或者外部传感器的失效,再或者是程序的Bug等。为了防止程序在出现问题之后,可以顺利复位和重...

关键字: 软件 程序 传感器
关闭