一、Keil和STC-ISP软件的使用
一、Keil软件的使用基础
在菜单栏project选项中选择第一个选项新建项目
再在菜单栏下面菜单栏中选择第一个空白页按钮新建文件
右击新建的项目点“添加已经存在的文件”选择刚刚新建的文件,也可以点“添加新文件”直接新建并添加
写完代码右击项目点设置再点“output”设置勾选“创建HEX文件”生成要下载在开发板上的HEX文件,设置完成后点击“编译”按钮编译文件并生成对应HEX文件
编译完代码并且生成HEX文件后使用STC-ISP软件将HEX文件下载到开发板上
1、先选择单片机型号,如图
2、将开发板和电脑连接并且点击“扫描”让其自己识别连接的串口号
3、“打开程序文件”选择生成好的HEX文件
4、点击“下载/编程”
5、开启/重启开发板
二、点亮LED灯
一、点亮一个LED灯
代码
#include<reg52.h> //52系列单片机头文件
sbit led1 = P1^0; //声明单片机P1口的第一位
void main() //主函数
{
led1 = 0; //让P1口的第一位为零即可以点亮第一个LED灯
}
二、LED灯亮的原理:
单片机LED灯电路图如图
8个发光二极管接在P2和锁存器573之间,所有二极管的正极均供电,所以这块开发板上的二极管是低有效的,故只要将和74HC573输入端相连的8位P1口所有位置为高电平1LED灯即可发光。
三、点亮所有LED灯
一、代码
#include<reg52.h> //头文件
void main() //主函数
{
P1 = 0x0; //将8位P1口全部置为0,8个发光二极管即可被点亮
}
三、延时语句
一、代码
void delay_ms(xms) //xms即为延时时间,xms为500时约延时为0.5s
{
unsigned int i, j;
for (i = xms ; i > 0 ; i --)
for (j = 110 ; j > 0 ; j --);
}
//使用该函数时可以延时引用函数语句上个操作的时间
二、运用延时语句让小灯亮一会
#inlcude<reg52.h>
void delay_ms(xms) //延时函数
{
unsigned int i, j;
for (i = xms ; i > 0 ; i --)
for (j = 110 ; j > 0 ; j --);
}
void main()
{
P1^0 = 0; //第一个灯亮
delay_ms(500); //延时0.5s
P1^0 = 1; //灯灭
while(1);
}
四、移位语句
//使用移位语句时需要引用头文件intrins.h
#include<intrins.h>
```
一、左移和右移
二、循环左移和循环右移
三、代码
#include<reg52.h>
void delay_ms(xms)
{
unsigned int i, j;
for (i = xms ; i > 0 ; i --)
for (j = 110 ; j > 0 ; j --);
}
unsigned char a = 0xaa;
void main()
{
while (1)
{
P1 = a;
delay_ms(1000);
a = a << 1; //a左移一位
P1 = a;
delay_ms(1000);
a = 0xaa;
P1 = a;
delay_ms(1000);
a = a >> 1; //a右移一位
P1 = a;
delay_ms(1000);
a = 0xaa;
P1 = a;
delay_ms(1000);
a = _crol_(a, 1) //a循环左移一位
P1 = a;
delay_ms(1000);
a = 0xaa;
P1 = a;
delay_ms(1000);
a = _cror_(a, 1) //a循环左移一位
P1 = a;
delay_ms(1000);
}
}
五、流水灯
/*该跑马灯先给P1赋值0xfe也就是11111110点亮第一个灯也就是最上面的灯,
再循环左移让灯从上到下依次闪烁实现从上到下的跑马灯效果*/
#include<reg52.h>
#include<intrins.h>
//延时函数
void delay_ms(xms)
{
unsigned int i, j;
for (i = xms ; i > 0 ; i --)
for (j = 110 ; j > 0 ; j --);
}
unsigned char aa; //声明一个无符号字符变量给P1口赋值
void main()
{
aa = 0xfe; //aa初值 11111110
while (1)
{
P1 = aa; //点亮
delay_ms(500); //延时500ms
aa = _crol_(aa, 1); //aa循环左移
}
}