深入浅出玩转51单片机——学习笔记:Led小灯篇
0赞
发表于 5/2/2014 7:56:10 PM
阅读(2352)
/**************************************
深入浅出玩转51单片机——学习笔记:Led小灯
实现功能:用指针实现流水灯由左向右移动
硬件接线:Led 接P1口
晶振频率:11.0592Mhz
**************************************/
#include<STC12C5A60S2.H>
typedef unsigned char uint8;
typedef unsigned int uint16;
uint8 temp = 0x01;
uint8 i = 0;
uint8 time_1s = 0;
#define Led P1
void initial_myself(); //上电初始化
void Delayms(uint16 z); //延时函数
void initial_peripheral(); //外围设备初始化
void Led_Left(uint8 *P);
void main()
{
initial_myself();
Delayms(10);
initial_peripheral();
while(1)
{
Led = ~temp;
if(1 == time_1s)
{
time_1s = 0;
Led_Left(&temp);
if(0 == temp)
{
temp = 0x01;
}
}
}
}
void Led_Left(uint8 *P)
{
*P = *P << 1;
}
void initial_myself() //上电初始化
{
Led = 0xff;
TMOD = 0x01;
TH0 = 0xdc;
TL0 = 0x00;
}
void initial_peripheral() //外围设备初始化
{
EA = 1;
ET0 = 1;
TR0 = 1;
}
void T0interrupt() interrupt 1 //T0中断函数
{
TH0 = 0xdc;
TL0 = 0x00;
i++;
if(100 == i)
{
i = 0;
time_1s =1;
}
}
void Delayms(uint16 z) //软件延时
{
uint16 x,y;
for(x = 0 ;x < z ;x++)
for(y = 0;y < 100; y++);
}
深入浅出玩转51单片机——学习笔记:Led小灯
实现功能:用指针实现流水灯由左向右移动
硬件接线:Led 接P1口
晶振频率:11.0592Mhz
**************************************/
#include<STC12C5A60S2.H>
typedef unsigned char uint8;
typedef unsigned int uint16;
uint8 temp = 0x01;
uint8 i = 0;
uint8 time_1s = 0;
#define Led P1
void initial_myself(); //上电初始化
void Delayms(uint16 z); //延时函数
void initial_peripheral(); //外围设备初始化
void Led_Left(uint8 *P);
void main()
{
initial_myself();
Delayms(10);
initial_peripheral();
while(1)
{
Led = ~temp;
if(1 == time_1s)
{
time_1s = 0;
Led_Left(&temp);
if(0 == temp)
{
temp = 0x01;
}
}
}
}
void Led_Left(uint8 *P)
{
*P = *P << 1;
}
void initial_myself() //上电初始化
{
Led = 0xff;
TMOD = 0x01;
TH0 = 0xdc;
TL0 = 0x00;
}
void initial_peripheral() //外围设备初始化
{
EA = 1;
ET0 = 1;
TR0 = 1;
}
void T0interrupt() interrupt 1 //T0中断函数
{
TH0 = 0xdc;
TL0 = 0x00;
i++;
if(100 == i)
{
i = 0;
time_1s =1;
}
}
void Delayms(uint16 z) //软件延时
{
uint16 x,y;
for(x = 0 ;x < z ;x++)
for(y = 0;y < 100; y++);
}
