提示:本文为课程作业,存在很多不足。
文章目录
- 一、本次作业目的
- 二、MDK5.0软件和stm32包的安装及个别问题
- 三、MDK开发环境下对stm32简单程序的编译
-
- 3.1 创建项目
- 3.2 源文件的创建及编译
- 四、安装protues然后完成一个51程序的设计和仿真
-
- 4.1 在keil上完成流水灯的编程
- 4.2 在protues画好流水灯原理图
- 4.3 仿真
- 总结
一、本次作业目的
1. 安装mdk5软件和stm32包,熟悉mdk开发环境,完成一个stm32的简单程序的编译。安装过程可参考 网上或者“STM32底座实验指导书”第1章。示例程序可以参考网上代码,或者“STM32底座实验指导书”第 3章的“LED闪烁”。(注意,没有硬件之前,只能做程序的编译和仿真测试,无法下载到硬件上运行)
2. 安装并熟悉Proteus 电路仿真软件,完成一个51程序设计和仿真,可参考:http://m.elecfans.com/article/581557.html
二、MDK5.0软件和stm32包的安装及个别问题
在官网或者其他来源下载mdk5.0安装包
Ps:官网下载较慢,建议使用其他来源进行下载
下载好安装包后按照安装步骤进行安装即可
针对我在安装时出现的问题以及解决方法
我在使用注册机时出现了以下情况
这里是因为我没有使用管理员权限登录
我们这里退出去,以管理员身份运行程序再进行注册
下图为注册成功后界面显示
由于这个只能用到2020年,所以可能会过期,建议使用2032版本的 注册机
之后我们再从官网或者其他来源下载安装stm32
Ps:下载好后直接双击文件进行安装即可
三、MDK开发环境下对stm32简单程序的编译
如下示例:
3.1 创建项目
点击项目-->选择新uVsion项目
选择芯片
点击cancel
项目创建成功
3.2 源文件的创建及编译
- 添加启动文件startup_stm32f10x_hd.s
双击Source Group 1
找到startup_stm32f10x_hd.s文件点击添加 (注意文件类型,避免在目录下找不到该文件)
2. 创建源文件main.c及代码输入
右键单击Source Group 1(如图选择Add New......)
创建main.c源文件
输入代码
代码如下:
#include<stdio.h>
void SystemInit(void)
{
printf("Hello World\n");
}
int main(void)
{
SystemInit();
return 0;
}
- 编译main.c文件
点击如图所示按键进行编译
编译成功(存在警告)
警告解决办法(在第十行后面加一个回车按键)
四、安装protues然后完成一个51程序的设计和仿真
由于之前的课程中已经安装protues软件以及keil c51,所以这里不展示安装过程
设计的51程序为流水灯程序
4.1 在keil上完成流水灯的编程
新建项目 -->search处直接搜索AT89C51
同上添加.c文件后编写程序
代码如下:
#include "reg51.h" //引用头文件reg51.h
#include <intrins.h> //引用intrins.h函数,用于_nop_()指令
void delay_ms(int a) //创建delay_ms,设置延迟时间 a
{
int i,j; //定义变量i,j
for(i=0;i<a;i++)
{
for(j=0;j<1000;j++) _nop_(); //_nop_等同于NOP指令,完成一个机器周期,清空存储的内容
}
}
void main(void)
{
while(1)
{
P0=0xfe; //P0口8个引脚被赋值成11111110,此时P0.0为低电平
delay_ms(100); //周期内循环,完成循环后_nop_清空内容
P0=0xfd; //P0口8个引脚被赋值成11111101,此时P0.1为低电平
delay_ms(100);
P0=0xfb; //P0口8个引脚被赋值成11111011,此时P0.2为低电平
delay_ms(100);
P0=0xf7; //P0口8个引脚被赋值成11110111,此时P0.3为低电平
delay_ms(100);
P0=0xef; //P0口8个引脚被赋值成11101111,此时P0.4为低电平
delay_ms(100);
P0=0xdf; //P0口8个引脚被赋值成11011111,此时P0.5为低电平
delay_ms(100);
P0=0xbf; //P0口8个引脚被赋值成10111111,此时P0.6为低电平
delay_ms(100);
P0=0x7f; //P0口8个引脚被赋值成01111111,此时P0.7为低电平
delay_ms(100);
}
}
生成.hex文件
点击如图目标选项 --> 点击Output -->勾选Create HEX File -->然后再进行编译 -->Hex文件生成成功
4.2 在protues画好流水灯原理图
原理图如下
添加Hex文件
双击AT89C51 --> 点击Program File处文件夹 --> 找到之前生成的.hex文件 --> 添加成功
4.3 仿真
(部分仿真截图)
总结
这次的作业内容比上次作业较复杂,有之前学习过的51程序的设计及仿真,也有没学过的在mdk5开发环境下对stm32简单程序的编译。总的来说,还是有很多的收获。