- 更改字体设置:【编辑】-【配置】-【颜色和字体】
- 新建项目
- 新建.c文件(添加源代码组)
- 配置.hex文件
- 测试代码:
#include<reg52.h>
void main()
{
while(1)
{
;
}
}
- 编译
编译按钮在工作区的左上角,编译成功之后,发现main.c前面会有一个“+”号,包含的头文件 #inlude<reg52.h> 也会显示在下方。
点亮LED灯
- 电路图
默认情况下LED灯为高,因为流水灯P1.0 - P1.7设置了上拉电阻,当程序设置IO口为低时,LED点亮。
第一种方法
P1 = 0xf0; //p1.0亮
- 寄存器设置规则
P1
在系统中头文件中可见,代表sfr P1 = 0x90;
八位寄存器,如何用十六进制代表IO口呢?下面以P1~P7的八位寄存器为例:
转换步骤为:【八位二进制】-【十进制.十进制】-【十六进制】
寄存器编号 | 八位寄存器 | 十进制 | 十六进制 |
---|---|---|---|
P1^0 | 1111 1110 | 15、14 | 0xfe |
P1^1 | 1111 1101 | 15 、13 | 0xfd |
P1^2 | 1111 1011 | 15 、11 | 0xfb |
P1^3 | 1111 0111 | 15 、7 | 0xf7 |
P1^4 | 1110 1111 | 14、15 | 0xef |
P1^5 | 1101 1111 | 13、15 | 0xdf |
P1^6 | 1011 1111 | 11、15 | 0xbf |
P1^7 | 0111 1111 | 7、15 | 0x7f |
注意:流水灯电路原理图中默认上拉为高,灯灭;若要点亮 LED则只需设置寄存器为低即可。如:P1.0
引脚为低,从低位到高位,从右往左 1111 1110
。
- 程序
#include<reg52.h>
void main()
{
while(1)
{
P1 = 0xf0; //p1.0亮
//八位二进制 十进制转换 十六进制
//1111 1110 15 14 0xfe
//P1 = 0;// 0000 0000 全亮
//P1 = 0xff// 1111 1111 全灭
}
}
第二种方法
sbit led1 = P1^0; //定义led1 为 p1.0
#include<reg52.h>
sbit led1 = P1^0;//
void main()
{
while(1) {
led1 = 0 ;//
}
}
烧录程序
- 配置
关於单片机型号:请选择“STC89C52”,在“STC89C51 系列”里面可选。
注意:系统兼容性的问题,可能会出现烧录软件点开后闪退的情况,我的解决办法是去 STC 官网下载最新的烧录软件。
- 烧录步骤
插上USB 数据线后,没有灯亮,然后点击烧录软件的 “下载/编程”,L1亮了,这时立刻按下板子的电源开关,然后 L2 亮了,这样就开始烧录了。
拓 展
- 新建延时头文件
delay.h
#define uchar unsigned char //8 0-255
#define uint unsigned int //16 0-65535
void delay(uint xms);
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=112;j>0;j--);
}
- 主函数
#include<reg52.h>
#include"delay.h"
sbit led7 = P1^7 ; //p1.7
void main()
{
while(1) {
led7 = 0 ;//打开
delay(500);
led7 = 1; //关闭
delay(500);
}
}
参考资料