点亮一个LED灯
1、首先看开发板原理图上引脚定义,发现是共阳极连接方式(所有灯的阳极连一起),所以给引脚低电平灯就能亮。
2、然后打开keil创建新项目,输入项目名字,选择你的单片机型号,我们用的是STC89C52,keil不支持国产的芯片,没有这选项,我们可以选择AT89C52,与STC89C52是一样的,然后出现的是否复制启动文件,随便选。
3、建好项目之后右击源文件添加新文件
4、选择c文件,名字给main(自动添加后缀)
5、然后在main文件写代码:
#include <REGX52.H>//右击添加头文件
void main()
{//下面用十六进制传数据,系统无法识别二进制
P2 = 0xFE;//1111 1110
while(1)
{
;
}
}
LED闪烁
1、建项目
2、打开stc-isp生成延时函数,选择好系统频率,指令集和延时
3、把点灯函数在while中亮灭
#include <REGX52.H>//右击添加头文件
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
P2 = 0xFE;//1111 1110
while(1)
{
P2 = 0xFE;Delay500ms();//亮
P2 = 0xFF;Delay500ms();//灭
}
}
LED流水灯
直接上代码:
#include <REGX52.H>
void Delay(unsigned int xms) //改进延时函数,能给个参数延时相应时间
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
char i=0;
void main()
{
char a;
a = 0x01;//0000 0001;
while(1)
{
if(i>7)i%=8;
P2 = ~(a<<i);//移位符号,表示a左移i位,末尾补零,取反是低电平点亮
i++;
Delay(500);
}
}