|||
/******************************************************************
C8051F340TBC开发板 按键控制LED简单程序
******************************************************************/
#include <c8051f340.h>
#define uchar unsigned char
#define uint unsigned int
void port_init (void); //端口初始化
sbit key0= P2^0; //定义按键0
sbit key1= P2^1; //定义按键1
sbit led0= P2^2; //定义LED0
sbit led1= P2^3; //定义LED1
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=113;j>0;j--);
}
/******************************************************************
主程序
******************************************************************/
void main (void)
{
PCA0MD &= ~0x40; //PCA方式寄存器,关闭看门狗定时器
OSCICN |= 0x03; //内部12M晶振
port_init (); //端口初始化
while(1)
{
P2=0x03;
if(key0==0)
{
delay(10);
if(key0==0)
{
led0=1;
while(!key0);
}
}
if(key1==0)
{
delay(10);
if(key1==0)
{
led1=1;
while(!key1);
}
}
}
}
/******************************************************************
端口初始化程序
******************************************************************/
void port_init (void)
{
P0SKIP = 0xFF; //跳过前面I/O端口
P1SKIP = 0xFF; //跳过前面I/O端口
XBR1 = 0x40; // 使能交叉开关,CEX0,连到P2.2
P2MDOUT |= 0x0c; // 使能P2.2,P2.3为推挽输出
}