嵌入式作业(二):ARM开发环境入门

stm32简单程序的编译及通过Proteus 电路仿真软件完成一个51程序设计和仿真

  • 一、安装mdk5软件和stm32包,熟悉mdk开发环境,完成一个stm32的简单程序的编译。
    • 1、mdk软件和stm32包的安装步骤
    • 2、stm32的简单程序的编译
  • 二、安装并熟悉Proteus 电路仿真软件,完成一个51程序设计和仿真。
  • 三、总结。

一、安装mdk5软件和stm32包,熟悉mdk开发环境,完成一个stm32的简单程序的编译。

1、mdk软件和stm32包的安装步骤

说明:相关软件和安装包可以在百度上或者官网找到。

1.1、压缩包下载完后将压缩包进行解压,打开解压后的文件夹,然后双击打开mdk_510文件,进入安装导向界面,点击“Next”出现如下界面,勾选“I agree”,再点击“Next”。
嵌入式作业(二):ARM开发环境入门_第1张图片
1.2、选择软件的安装路径,然后点击“Next”。

嵌入式作业(二):ARM开发环境入门_第2张图片

1.3、信息内容可以随便填写,然后再点击“Next”。

嵌入式作业(二):ARM开发环境入门_第3张图片
1.4、等待安装,安装完成后点击“Finish”。

嵌入式作业(二):ARM开发环境入门_第4张图片
说明:安装完成后会自动弹出一个窗口和网页,点击“ok”后关闭即可。
1.5、在解压后的文件夹中找到下图中的三个文件,直接依次双击打开,完成安装。
嵌入式作业(二):ARM开发环境入门_第5张图片
说明:第三个文件在安装时会出现错误,但目前不影响使用,所以直接忽略即可。

1.6、在桌面上找到【Keil uVision5】的图标,点击右键以管理员身份打开,点击顶部菜单【File】,然后选择【License Management】。
嵌入式作业(二):ARM开发环境入门_第6张图片
1.7、在解压后的文件夹中找到这个文件,然后打开。
嵌入式作业(二):ARM开发环境入门_第7张图片
1.8、按照步骤依次操作。
复制图(2)的CID粘贴到注册机的CID框中,在Target中选择【ARM】,点击【Generate】,选中生成的激活码,复制粘贴到【NewLicense ID Code】中,点击【Add LIC】,出现LIC Added Sucessfully 即为激活成功,点击【Close】。
嵌入式作业(二):ARM开发环境入门_第8张图片

嵌入式作业(二):ARM开发环境入门_第9张图片
1.9、至此软件安装已完成,打开界面如下。

嵌入式作业(二):ARM开发环境入门_第10张图片

2、stm32的简单程序的编译

2.1、打开keil,建立新的工程。

嵌入式作业(二):ARM开发环境入门_第11张图片
2.2、选择对应的芯片。

嵌入式作业(二):ARM开发环境入门_第12张图片
2.3、新建一个文本文件,在建立的文本文件中输入main函数,点击保存,并添加到工程中。

嵌入式作业(二):ARM开发环境入门_第13张图片
嵌入式作业(二):ARM开发环境入门_第14张图片
2.4、点击编译。

嵌入式作业(二):ARM开发环境入门_第15张图片

说明:这个程序代码是我在网上参考他人的,特此感谢。

链接: 代码原文.

二、安装并熟悉Proteus 电路仿真软件,完成一个51程序设计和仿真。

说明:这个51电路仿真的主要功能是让数码管循环显示数字0-9。

说明:proteus仿真软件在之前的课程中用到过,所以这里不再说明安装步骤,如需要,可在网上找到相应资料。

1、打开keil软件,建立工程,选择AT89C51芯片,点击ok。

嵌入式作业(二):ARM开发环境入门_第16张图片
2、新建一个文本文件,在建立的文本文件中输入相应函数,点击保存,并添加到工程中,然后打开配置选项,选择Creat HEX File,以生成.hex文件。

嵌入式作业(二):ARM开发环境入门_第17张图片
3,进行编译,发现没有错误。

嵌入式作业(二):ARM开发环境入门_第18张图片
4、在proteus软件中连接相应的电路图,如下图所示:

嵌入式作业(二):ARM开发环境入门_第19张图片
5、双击89c52芯片,添加之前生成的.hex文件。

嵌入式作业(二):ARM开发环境入门_第20张图片
6、进行最后的仿真,部分截图如下:

嵌入式作业(二):ARM开发环境入门_第21张图片
嵌入式作业(二):ARM开发环境入门_第22张图片

参考代码如下:

#include <reg51.h>

void delayms(unsigned int m)      //延时程序
{
     
	unsigned int a,b;
	for(a=0; a<m; a++)
		for(b=0; b<120; b++);
}		  

unsigned int a[]={
     0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//分别显示0 1 2 3 4 5 6 7 8 9

void main (void)
{
     	  
		unsigned char n;
	                        //定义初始化
		while(1)
		{
     
			for(n=0; n<10; n++)	//0-9循环显示
			{
     
			   P0 = a[n];           //数码管输出
			   delayms(500);
		    }	
		}
}

三、总结。

以上就是我做这次作业的全部步骤,由于本人只是一名普通学生,所以难免存在很多问题,希望各位批评指导;另外,在完成作业的过程中,还参考了许多其他大佬的文章,在此特别感谢。

END

你可能感兴趣的:(嵌入式)