提示:本文為課程作業,存在很多不足,
文章目錄
- 一、本次作業目的
- 二、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簡單程式的編譯,總的來說,還是有很多的識訓,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/160823.html
標籤:其他








