6.零基础入门1

零基础入门1

新建工程

1.选择AT89C52

2.选择魔方棒

选择OUTPUT,勾选hex文件

3.在品字型

文件名 User/Dirver 附属文件

编写程序

1.右键点击User栏添加用户主程序main.c

2.右键引用51头文件

3.编写程序主体框架

4.依据原理图编写主程序

#include <REGX52.H>

void main()
{
	while(1)
	{
	
	}
}

认识LED原理图

VCC为电源,DB1-DB8为引脚,给0为亮

LED代码(1是灭,0是亮)

1.对P1口整体赋值

二进制的八位数字中,LED灯从右到左进行赋值,第一个灯是八位数字的最右一位

P1=0XAA;//1010 1010 1-亮 2-灭 3-亮 4-灭 5-亮 6-灭 7-亮 8-灭

2.对P1的8个I口进行赋值

P1_0=0;//点亮第一个灯
P1_7=0;//点亮最后一个灯

Delay函数

1.打开stc-isp

2.选择软件延时计时器

系统频率 12.000MHz

定时长度 1 毫秒

8051指令集 STC-Y1

void Delay(unsigned char xms)	//@12.000MHz
{
	unsigned char i, j;
	while(xms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}	
}

LED流水灯

1.对P1的I口赋值

P1_3=1;
P1_0=0;
Delay(500);
P1_0=1;
P1_1=0;
Delay(500);
P1_1=1;
P1_2=0;
Delay(500);
P1_2=1;
P1_3=0;
Delay(500);

2.对P1赋值

P1=0xFE;//1111 1110
P1=0xFD;//1111 1101
P1=0xFB;//1111 1011

3.通过内置函数库

#include <intrins.h>

unsigned char ucLed=0xfe;
unsigned int time=1000;
void main()
{
	while(1)
	{
		ucLed=_crol_(ucLed,1);//左移一位 _cror_ 右移一位
		P1=ucLed;
		Delay(time);
		time=time-100;
	}
}