文章目录
任务目标一、stm32的LED闪烁程序编译前言1.创建工程2.编译运行
二、51单片机的LED灯光循环前言1.使用keil编写程序2.打开proteus 绘制仿真图(1)电路原理图:(2)创建项目(3)仿真
任务目标
安装mdk5软件和stm32包,熟悉mdk开发环境,完成一个stm32的简单程序的编译。安装并熟悉Proteus 电路仿真软件,完成一个51程序设计和仿真
一、stm32的LED闪烁程序编译
前言
程序作用:实现LED1、LED2 依次循环闪烁。
1.创建工程
打开keil 5。
选择创建新工程,如下图所示:
====================================================================================
然后选择一款芯片。
之后会弹出一个窗口,参考网上多份资料后,我们应该勾选以下两个选项。
2.编译运行
工程创建完毕后,新建一个文件,然后将代码输入进去,编译运行。
代码如下:
#ifndef __LED_H #define __LED_H
#include "stm32f1xx_hal.h"
#include "stm32f1xx.h"
#define LED_GPIO_PORT GPIOA
#define LED1 GPIO_PIN_5
#define LED2 GPIO_PIN_12
#define LED1_ON() HAL_GPIO_WritePin(LED_GPIO_PORT,LED1,GPIO_PIN_RESET)
#define LED2_ON()
HAL_GPIO_WritePin(LED_GPIO_PORT
,LED2
,GPIO_PIN_RESET
)
#define LED1_OFF()
HAL_GPIO_WritePin(LED_GPIO_PORT
,LED1
,GPIO_PIN_SET
)
#define LED2_OFF()
HAL_GPIO_WritePin(LED_GPIO_PORT
,LED2
,GPIO_PIN_SET
)
extern void LED_Init(void);
#endif
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_Initure
;
__HAL_RCC_GPIOA_CLK_ENABLE();
GPIO_Initure
.Pin
=LED1
|LED2
;
GPIO_Initure
.Mode
=GPIO_MODE_OUTPUT_PP
;
GPIO_Initure
.Pull
=GPIO_PULLUP
;
GPIO_Initure
.Speed
=GPIO_SPEED_HIGH
;
HAL_GPIO_Init(LED_GPIO_PORT
,&GPIO_Initure
); LED1_OFF();LED2_OFF();
}
int main(void)
{
HAL_Init();
LED_Init();
while(1)
{
LED1_ON();
LED1
delay_ms(500);
LED2_ON();
delay_ms(500);
LED1_OFF();
delay_ms(500);
LED2_OFF();
delay_ms(500);
}
}
编译结果如下:
总结:由于没有硬件条件,只能做程序的编译。并且连如何仿真也不知道。。。所以只能做到这个地步了。
附上电路连接原理图:
二、51单片机的LED灯光循环
前言
程序与电路图作用:
用8XX51的P1口接8个LED发光二级管,由/INT0接一消抖开关,开始P10的LED亮,以后每中断一次,下一个LED亮,顺序下移,且每次只一个LED亮,周而复始。
1.使用keil编写程序
参照上一实验创建工程,注意本次实验要选择51单片机。
输入代码编译:
#include<reg51.h>
int0() interrupt
0
{
P1
=P1
<<1|0x01;
}
main()
{
P1
=0xfe;
EA
=1;
EX0
=1;
IT0
=1;
do{}while(1);
}
然后编译生成.hex文件
2.打开proteus 绘制仿真图
(1)电路原理图:
(2)创建项目
首先打开proteus,选择创建新项目
选择项目名与存储位置
之后的几个弹窗对于目前的我们来说,并不重要,直接点击 next 就好。
点击此处选择元器件:
最后将各元器件按照电路图连接
(3)仿真
点击单片机,将.hex 文件装载进去。
点击左下角的三角图标即可开始仿真
总结:在之前的课程中就已经使用过keil与proteus软件,这次对于两种软件有了更多的认识和更深的熟练度。