stm32的led闪烁程序编译与利用proteus完成一个51单片机程序设计与仿真

    科技2025-07-09  18

    文章目录

    任务目标一、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 //LED1 #define LED2 GPIO_PIN_12 //LED2 #define LED1_ON() HAL_GPIO_WritePin(LED_GPIO_PORT,LED1,GPIO_PIN_RESET) // 开 启 LED1 #define LED2_ON() HAL_GPIO_WritePin(LED_GPIO_PORT,LED2,GPIO_PIN_RESET) // 开 启 LED2 #define LED1_OFF() HAL_GPIO_WritePin(LED_GPIO_PORT,LED1,GPIO_PIN_SET) // 关 闭 LED1 #define LED2_OFF() HAL_GPIO_WritePin(LED_GPIO_PORT,LED2,GPIO_PIN_SET) // 关 闭 LED2 extern void LED_Init(void); //LED 初始化 #endif void LED_Init(void) { GPIO_InitTypeDef GPIO_Initure; __HAL_RCC_GPIOA_CLK_ENABLE(); //开启 GPIOA 时钟 GPIO_Initure.Pin=LED1|LED2; //LED1、2 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(); //初始化 HAL 库 LED_Init(); //初始化 LED while(1) { LED1_ON(); //点亮 LED1 delay_ms(500); //延时 500ms LED2_ON(); //点亮 LED2 delay_ms(500); //延时 500ms LED1_OFF(); //关闭 LED1 delay_ms(500); //延时 500ms LED2_OFF(); //关闭 LED2 delay_ms(500); //延时 500ms } } 编译结果如下:

    总结:由于没有硬件条件,只能做程序的编译。并且连如何仿真也不知道。。。所以只能做到这个地步了。 附上电路连接原理图:

    二、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软件,这次对于两种软件有了更多的认识和更深的熟练度。
    Processed: 0.010, SQL: 8