单片机编辑库
- 初衷简介
-
- 51起步,思路简介
- 51必备基础程序库之延时程序
-
-
-
- 延时程序代码如下:
-
-
- 下面开始我们的主题内容
- 例程一:点亮led
-
- led程序
- 主程序:main.c
- 程序框架选择
- proteus仿真演示
-
-
- 程序下载:
-
初衷简介
鉴于目前网上各种单片机资料横飞,能够下载到的资料也错中复杂,由此,我为自己创建了一个属于自己的单片机资料库,未来我将陆续上传一些自己编写好的单片机程序以及传感器资料到这里,与有需要的小伙伴一起分享,同时也可以将自己的代码存于云间,方便自己查看。
我将从最基础51单片机开始做起,能做仿真的我也将会尽量上传仿真文件。目前我会的单片机系统有stc89C51,STM32,ESP8266的相关系列,关于这些有不懂的问题伙伴们可以在评论区发表,我们一起进行探讨与进步。
51起步,思路简介
我将从51单片机开始进行程序上传,我会将每一个所用到的模块或传感器的程序打包到一个文件夹内,方便大家使用与下载,我例程中的方式有点类似于stm32程序的编写,需要导入文件夹,如果你们习惯使用全部文件在一个文件夹的方式,请大家自行拖拽文件内的头文件。
我是用到的编程软件为keil5,同时后面我将使用proteus对能够进行仿真的程序进行仿真,有需要的可以点击链接进行下载
keil5软件下载链接,提取码 4h3r
keil5注册机,可到2032年,提取码 fz3j
proteus下载链接,提取码 5zj6
51必备基础程序库之延时程序
这里我先上传一个51单片机中经常需要用到的延时程序,建议大家每次进行51程序编写的时候都先加入这个库。
延时程序代码如下:
头文件 delay.h
#ifndef _DELAY_H
#define _DELAY_H
#include "reg52.h"
void delay_100us(unsigned int x); //延时x*100us
void delay_ms(unsigned int x); //延时 x ms
#endif
主程序 delay.c
#include "delay.h"
void delay_100us(unsigned int x) //延时x*100us
{
unsigned char a,b;
for(x;x>0;x--)
for(b=1;b>0;b--)
for(a=43;a>0;a--);
}
void delay_ms(unsigned int x) //延时 x ms
{
for(x;x>0;x--)
delay_100us(10);
}
下面开始我们的主题内容
例程一:点亮led
led程序
关于led所需要的驱动程序如下,需要的可自行复制
led.h
#ifndef _LED_H
#define _LED_H
#include "reg52.h"
sbit led1=P0^0;
void led_on();//点亮led灯
void led_off();//熄灭led灯
void led_init();//初始化LED系统
#endif
led.c
#include "led.h"
void led_on()//点亮led灯
{
led1=0;
}
void led_off()//熄灭led灯
{
led1=1;
}
void led_init()//初始化LED系统
{
led_off();//先将led灯关闭
}
主程序:main.c
程序实现的功能为使接在P0.0引脚上的led灯每0.5秒进行一次翻转
#include "reg52.h"
#include "led.h"
#include "delay.h"
void turn_back()//使led灯的状态翻转
{
led_on();//点亮led灯
delay_ms(500);//延时500ms=0.5s
led_off();//熄灭led灯
delay_ms(500);
}
void main()
{
led_init();//初始化LED系统
while(1)
{
turn_back();
}
}
程序框架选择
proteus仿真演示
程序下载:
程序传送门