99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

STC 單片機入門 使用 Keil C51

大家好,很高興和各位一起分享我第 44 篇原創文章,喜歡和支持我的工程師,一定記得給我點贊、收藏、分享喲。

加微信【jiyuyun18】與作者溝通交流。

作為國貨之光,STC 單片機以其價格便宜、內置接口多等特性在一些大廠不屑一顧的角落茁壯成長。今天我們來學習一下基于 Keil C51 的開發環境搭建,然后編寫一個簡單的閃燈程序。

先對一些術語去魅:

  • Microcontroller Unit(MCU)微控制器單元,又稱單片機(Single-chip Microcomputer)。
  • Integrate Development Environment(IDE)集成開發環境,一種集成了代碼編輯器、編譯器、鏈接器等的開發工具。
  • In System Programming(ISP)在系統可編程,一種在不移除的前提下燒錄程序到已經焊接在電路板上的 MCU 的方法。
  • In Circuit Serial Programming(ICSP)串口在系統可編程,ISP 的一種。

燒錄軟件

我們使用 STC-ISP 作為燒錄軟件。

STC-ISP 下載地址如下:http://www.stcmicro.com/rjxz.html 。STC-ISP 我沒有從 STC 官網下載,那個網站實在是太那個啥了,一言難盡。我選擇的是 v6.86E 版本,最新的版本我的瀏覽器不讓下,說是有毒,官網也是如此。

下載解壓完后,不用安裝,直接運行,界面如下:

界面非常的樸實無華,正好是酷炫吊炸天的反面。

STC-ISP 這個軟件除了燒錄程序,還有它用,等會兒我們再說。

Keil 軟件

IDE 我們使用 Keil C51, 下載地址如下:https://www.keil.com/demo/eval/c51.htm

下載 Keil 的時候,Keil 網站可能會要求你填入姓名、電子郵件等信息,不愿意填的話可以胡編點填上。這點,STC 的官網比國外芯片商的官網好,下載軟件時不用填入姓名電話等信息。

下載完了 不用破解,評估版本一樣用,就是會對編譯后的文件的大小做限制,不能超過一定的大小。學習用的話,可以先用著,等到代碼超限了后再破解。破解的時候得需要讓你關閉殺毒軟件,還得管理員權限運行,風險相當高。如果你不怕這些風險,破解了,保存破解后生成的那個 .LIC 文件,以后同一臺機器就不用再次破解了。

帝國主義的軟件一向是不把我們中國人造的小小單片機看在眼里的,在 Keil 軟件中新建工程默認是沒有 STC 單片機的:

這時候就輪到我們前面的 STC-ISP 這個軟件出馬了。非精簡版的 STC-ISP 軟件有一個功能 Keil 仿真設置

點那個 添加型號和頭文件到Keil中 按鈕,然后選擇 Keil 的安裝目錄點擊確定按鈕就可以了。我的安裝目錄如下:

剛才那個添加型號和頭文件到 Keil 中主要是替我們干了下面兩件事:

  • 添加 stc.cdb 文件到 Keil 安裝目錄中。
  • 我的安裝目錄是“D:\Keil_v5\UV4”, 你的可能是“C:\Keil_v5\UV4” 或者其他目錄,你可以進去看下。

  • 更改 TOOLS.INI 文件。
  • 更改 “D:\Keil_v5” 目錄下的 TOOLS.INI 文件:

在 TOOLS.INI 文件中添加如下內容“CDB0=UV4\STC.CDB ("STC MCU Database")”:

閃燈程序

新建工程

現在,在 Keil 中新建工程,點擊 Device 就可以愉快地選擇 STC MCU 了:

在電腦上找個地方新建一個文件夾 blink-demo, 你也可以起個其他的名字。然后在 Keil 里依次點擊菜單 Project-> new uVision Project 新建工程, 新建工程時選擇我們剛才新建的 blink-demo 文件夾作為工程目錄:

我的單片機型號是 STC15W408AS ,你可以根據你的單片機型號做相應選擇:

新建工程時,如果問你是否復制,你選是:

新建工程后,Project 窗口中內容如下:

把 Target 1 改為我們工程的名字 blink-demo。

把 SourceGroup 1 改為 Source。

如果你不知道咋改名,選中目標,點一下鍵盤上的 F2 就可以改名了。

改名后 Project 窗口內容如下:

你也可以不改名,一樣編譯沒問題。但我習慣改,這樣看著舒心一些。

生成頭文件

下面添加工程所需頭文件。

在 STC-ISP 軟件中,打開 頭文件 選項卡,在單片機 系列下拉列表中選擇你的單片機型號,點擊 保存文件 按鈕將頭文件保存到工程目錄中,頭文件的名字可以命名為 STC89xxx.h 或者任何其他你喜歡的名字:

工程基本設置

在工程屬性中做如下設置。

將系統頻率設置為 12MHz, 你也可以設置成其他的,我的單片機最高可以支持到35MHz, 但對于小項目來說,一般 12MHz 就夠用了:

Output 選項中勾選 Hex文件,讓系統編譯后生成 .hex 文件:

設置頭文件路徑。在 C51 選項卡中點擊 ... 按鈕,選中頭文件所在目錄,此處,我們選擇工程所在目錄。

添加 main.c 文件

在 Project 窗口 的 Source 文件夾上點一下鼠標右鍵選擇 Add New item to Group ‘Source' :

給文件起名為 main.c:

新建完成后 Project 窗口 內容如下:

生成延時函數

閃燈程序需要一個延時函數,可以讓 STC-ISP 這個軟件給我們生成。

填入相應的參數,點擊 生成C代碼 即可生成延時函數:

這里我想要的延時時間為 500ms。系統頻率要與前面的設置的頻率一致。

將生成的延時函數復制到 main.c 中:

void Delay500ms()       //@12MHz
{
    unsigned char i, j, k;

    _nop_();
    _nop_();
    i = 23;
    j = 205;
    k = 120;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}

完整的閃燈程序

完整的 main.c 代碼如下:

#include <intrins.h>        // fix _nop_() error
#include "STC89xxx.h"

void Delay500ms();      //@12MHz

void main(void)
{
    while(1)
    {
        P1 = 0xFF;
        Delay500ms();
        P1 = 0x00;
        Delay500ms();
    }
}

void Delay500ms()       //@12MHz
{
    unsigned char i, j, k;

    _nop_();
    _nop_();
    i = 23;
    j = 205;
    k = 120;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}

其中頭文件“intrins.h” 用于包含延時函數中的 _nop()__ 函數,不加的話會出現編譯錯誤。

點擊工具欄中的 Build 按鈕或者按一下鍵盤上的 F7 鍵開始編譯。編譯結果如下:

零錯誤、零警告,Perfect!

燒錄程序

接下來,我們使用 STC-ISP 這個軟件將我們辛苦編譯出來的程序燒寫到單片機中。

STC 單片機支持串口在線可編程(ICSP),可以通過串口燒錄程序。電腦中插入一個 USB 轉串口適配器。電腦中會多出一個串口。在 STC-ISP 中選擇這個串口:

點擊 打開程序文件 選擇工程目錄下 Objects 文件夾中的 blink-demo.hex 文件作為燒錄文件:

內部晶振頻率還是選擇 12MHz。

設置是否使用復位引腳,這里選擇使用,因此去掉了 復位腳作I/O口 的勾選。

下載的時候,需要手動復位或重啟單片機。否則會一直顯示 正在檢測目標單片機

總結

今天我們學習了基于Keil C51 的 STC 單片機開發環境搭建。

主要知識點如下:

  • 如何向 Keil 軟件中添加 STC 單片機
  • 如何生成給定型號單片機的頭文件
  • 如何生成延時函數

各軟件下載地址如下:

Keil C51: https://www.keil.com/demo/eval/c51.htm

STC-ISP: http://www.stcmicro.com/rjxz.html

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 6
收藏 7
關注 216
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 久草影视在线 | 1024看片金沙日韩一区二区 | 日本无遮挡色又黄的视频 | 性夜影院爽黄A爽免费 | 碰碰久久 | 亚洲国产精品一区二区尤物区 | 成人午夜看片网址 | 午夜国产一区二区三区 | 成版人性视频 | 狠狠婷婷综合 | 亚洲精品AⅤ在线国自产拍 美国人泡妞xxxxwww免费看 | 成年人在线免费看的惊悚动作片 | 国产亚洲精品久久久久久青梅 | 日本激情视频在线播放 | 日韩欧美在线播放 | 久久久久久久久久久高潮 | 久久精品中文骚妇内射AV | 九九九九网站 | 成人片在线看 | 色婷婷五月综合激情中文字幕 | 无码专区国产精品第一页 | 粉嫩在线一区二区三区视频 | 国产精品白丝jk黑袜喷水视频 | 888久久| 国产一区二区视频播放 | 日韩av综合中文字幕 | 日本三级美女 | 992tv国产精品福利在线 | 91人人射 | 日韩视频一区二区三区在线观看 | 国产成人精品久久二区二区 | 亚洲日本成本人观看 | 亚洲国产成人精品无码区在线观看 | 大地资源在线影视播放 | 少妇撒尿一区二区在线视频 | 免费在线观看黄色网 | 毛片一级在线 | 日本同性老头 | 国内一级黄色大片 | 中文1区2区3区 | 久久99精品久久久久久水蜜桃 |