1.
#include<stc15.h>
unsigned int i=0;
sbit LED1=P0^0;//定义特殊功能寄存器的位变量
sbit LED2=P0^1;
void main(void)
{
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序
while(1)
{
LED1=0;LED2=1;
for(i=0;i<65535;i++);
LED1=1;LED2=0;
for(i=0;i<65535;i++);
}
}
2.并口控制方式:使用到“sfr”重定义特殊功能寄存器
sfr LED = 0X80;
#include<stc15.h>
unsigned int i=0;
sfr LED=0X80;
void main(void)
{
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序
while(1)
{
LED=0XFE; //1111 1110
for(i=0;i<65535;i++);
LED=0XFD; //1111 1101
for(i=0;i<65535;i++);
}
}
3.采用毫秒延迟函数:
void Delay_MS(unsigned int MS);
毫秒延迟子函数
void Delay_MS(unsigned int MS) //MS为形参
{
unsigned int i,j;
for(i=0;i<MS;i++)
{
for(j=853;j>0;j--);
}
}
*#include<stc15.h>
/*
void IO_Init(void);//stc8H,stc32G需要用这个
*/
void Delay_MS(unsigned int MS);//函数声明
sfr LED=0X80;
void main(void)
{
/*IO_Init(); //在主函数中执行到该语句时跳到子函数去*/
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;//初始化程序
while(1)
{
LED=0XFE;
Delay_MS(200);//运行到此条语句时,会跳到子函数,
//子函数执行完毕之后再进行下一条语句,此处200即为实参
LED=0XFD;Delay_MS(200);
}
}
void Delay_MS(unsigned int MS) //MS为形参
{
unsigned int i,j;
for(i=0;i<MS;i++)
{
for(j=853;j>0;j--);//stc15设置为853,stc8H设置为1109,stc32G设置为427
}
} //实现200ms的延迟
/*void IO_Init(void)
{
P0M0 = 0x00; P0M1 = 0x00; //IO初始化为准双向I/O模式,STC15F系列可以写
P1M0 = 0x00; P1M1 = 0x00; //IO初始化为准双向I/O模式,STC15F系列可不写
P2M0 = 0x00; P2M1 = 0x00; //IO初始化为准双向I/O模式,STC15F系列可不写
P3M0 = 0x00; P3M1 = 0x00; //IO初始化为准双向I/O模式,STC15F系列可不写
P4M0 = 0x00; P4M1 = 0x00; //IO初始化为准双向I/O模式,STC15F系列可不写
P0=0XFF; P1=0XFF; P2=0XFF; P3=0XFF; P4=0XFF; P5=0XFF; //P0、P1、P2、P3、P4、P5输出为高电平 STC15系列单片机可不写
}
*/
//stc8H,stc32G需要用这个