ARM开发环境入门——mdk5的安装及简单程序的编译和Proteus程序设计仿真

本文主要是介绍ARM开发环境入门——mdk5的安装及简单程序的编译和Proteus程序设计仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ARM开发环境入门

文章目录

  • ARM开发环境入门
  • 前言
  • 一、mdk5软件和stm32包的安装
    • (1)mdk5软件的安装
    • (2)stm32包的安装
  • 二、stm32“LED闪烁”程序编译
    • 1.打开mdk5软件,建立一个工程
    • 2.创建一个文本,输入代码,保存为.c文件
    • 3.将.c文件加入到工程下
    • 4.编译
  • 三、Proteus程序设计和仿真
    • 1.在keil4软件编译程序
    • 2.在Proteus软件上设计电路
    • 3.Proteus与Keil4的联调
  • 总结
  • 参考文献


前言

本文主要介绍了安装mdk5软件和stm32包的过程,并编译一个stm32简单的程序编译——“LED闪烁”和用Proteus电路仿真软件完成一个51程序设计并仿真——“数码管显示1到F”

一、mdk5软件和stm32包的安装

(1)mdk5软件的安装

1.右键点击安装包 ,以管理员身份运行,出现安装向导界面,
点击“Next”。
在这里插入图片描述
2.勾选“I agree to….”,点击“Next”。
在这里插入图片描述
3.选择软件和支持包路径(可以保持默认),点击“Next”。
在这里插入图片描述
4.填写名字等信息,点击“Next”。
在这里插入图片描述
5.安装过程等几分钟。
在这里插入图片描述
6.安装过程中弹出下面界面,点击“确定”。
在这里插入图片描述
7.安装完成,点击“Finish”。
在这里插入图片描述

(2)stm32包的安装

1.双击 Keil.STM32F1xx_DFP.2.1.0.pack,如下图。
在这里插入图片描述
2.选择 MDK5 的安装路径,点击“Next”开始安装,如下图。
在这里插入图片描述
3.安装完成,点击“Finish”,如下图。
在这里插入图片描述

二、stm32“LED闪烁”程序编译

1.打开mdk5软件,建立一个工程

首先点击project,选择“New uVision project”,如下图所示:
在这里插入图片描述
编辑工程名和保存路径:
在这里插入图片描述
选择合适的stm32的芯片:
在这里插入图片描述
并进行如下的勾选:
在这里插入图片描述
这样一个工程就创建完成了。

2.创建一个文本,输入代码,保存为.c文件

首先创建一个新文本:
在这里插入图片描述

输入代码如下:

#define PERIPH_BASE           ((unsigned int)0x40000000)
#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
#define GPIOA_BASE            (APB2PERIPH_BASE + 0x0800)
#define GPIOB_BASE            (APB2PERIPH_BASE + 0x0C00)
#define GPIOC_BASE            (APB2PERIPH_BASE + 0x1000)
#define GPIOD_BASE            (APB2PERIPH_BASE + 0x1400)
#define GPIOE_BASE            (APB2PERIPH_BASE + 0x1800)
#define GPIOF_BASE            (APB2PERIPH_BASE + 0x1C00)
#define GPIOG_BASE            (APB2PERIPH_BASE + 0x2000)
#define GPIOA_ODR_Addr    (GPIOA_BASE+12) //0x4001080C
#define GPIOB_ODR_Addr    (GPIOB_BASE+12) //0x40010C0C
#define GPIOC_ODR_Addr    (GPIOC_BASE+12) //0x4001100C
#define GPIOD_ODR_Addr    (GPIOD_BASE+12) //0x4001140C
#define GPIOE_ODR_Addr    (GPIOE_BASE+12) //0x4001180C
#define GPIOF_ODR_Addr    (GPIOF_BASE+12) //0x40011A0C   
#define GPIOG_ODR_Addr    (GPIOG_BASE+12) //0x40011E0C  
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2))
#define MEM_ADDR(addr)  *((volatile unsigned long  *)(addr))
#define LED0  MEM_ADDR(BITBAND(GPIOA_ODR_Addr,8))
//#define LED0 *((volatile unsigned long *)(0x422101a0)) //PA8
typedef struct
{volatile unsigned int CR;volatile unsigned int CFGR;volatile unsigned int CIR;volatile unsigned int APB2RSTR;volatile unsigned int APB1RSTR;volatile unsigned int AHBENR;volatile unsigned int APB2ENR;volatile unsigned int APB1ENR;volatile unsigned int BDCR;volatile unsigned int CSR;
} RCC_TypeDef;#define RCC ((RCC_TypeDef *)0x40021000)
typedef struct
{
volatile unsigned int CRL;
volatile unsigned int CRH;
volatile unsigned int IDR;
volatile unsigned int ODR;
volatile unsigned int BSRR;
volatile unsigned int BRR;
volatile unsigned int LCKR;
} GPIO_TypeDef;#define GPIOA ((GPIO_TypeDef *)GPIOA_BASE)
void LEDInit(void)
{RCC->APB2ENR|=1<<2; //GPIOA GPIOA->CRH&=0XFFFFFFF0;GPIOA->CRH|=0X00000003; 
}void Delay_ms(volatile unsigned int t)
{unsigned int i,n;for(n=0;n<t;n++)for(i=0;i<800;i++);
}int main(void)
{LEDInit();while(1){LED0=0;Delay_ms(500);LED0=1;Delay_ms(500);}
}

点击保存为.c文件:
在这里插入图片描述

3.将.c文件加入到工程下

点击"Add Existing Files to Group…"
在这里插入图片描述
选择之前保存的.c文件:
在这里插入图片描述

4.编译

在这里插入图片描述
运行结果如下:
在这里插入图片描述

三、Proteus程序设计和仿真

1.在keil4软件编译程序

建立工程的过程类似mdk5,下图是输入代码:
在这里插入图片描述
代码如下:

#include<reg51.h>
unsigned char code tab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
main()
{
unsigned int j;
unsigned char i;
while(1)
{
for(i=1;i<=15;i++)
{
P1=tab[i];
for(j=0;j<=30000;j++);
}
}
}

编译:
在这里插入图片描述

2.在Proteus软件上设计电路

建立工程然后选择相应的元器件,连接线路如下:
在这里插入图片描述

3.Proteus与Keil4的联调

(1)keil4软件
在Keil软件上单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮 。
在这里插入图片描述

弹出窗口,点击“Debug”按钮,出现如图所示页面。
在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor-51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。
在这里插入图片描述

再点击“Setting”按钮。
在这里插入图片描述

设置通信接口,在“Host”后面添上 “127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添 加“8000”。设置好的情形如图所示,点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。
(2)Proteus软件
进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“use romote debuger monitor”,如图所示。此后,便可实现Keil与Proteus连接调试。
在这里插入图片描述
最后必须右击单片机加载hex文件,开始调试。
在这里插入图片描述
最后运行仿真,仿真结果如下:
在这里插入图片描述
在这里插入图片描述

总结

就是今天要讲的内容,本文仅仅简单介绍了mdk5和stm32包的安装,并用stm32进行了简单的程序编译,还复习了怎样用Proteus电路仿真软件完成一个51程序设计并仿真,谢谢观赏。

参考文献

1.STM32底座实验指导书
2.Proteus8与Keil4的连接调试教程

这篇关于ARM开发环境入门——mdk5的安装及简单程序的编译和Proteus程序设计仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917862

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都