91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

飛多學(xué)堂
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
作者動態(tài)
雙電源單運放方波振蕩電路
22小時前
單運放單電源供電方波振蕩電路
23小時前
手把手教你萬用表NMOS管好壞檢測
02-25 06:00
4-28V便攜式可調(diào)電源
02-16 16:27
璞石 DS4T252 示波器 評測
02-16 16:26

STC 單片機入門 使用 Keil C51

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

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

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

先對一些術(shù)語去魅:

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

燒錄軟件

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

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

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

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

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

Keil 軟件

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

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

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

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

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

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

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

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

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

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

閃燈程序

新建工程

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

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

我的單片機型號是 STC15W408AS ,你可以根據(jù)你的單片機型號做相應(yīng)選擇:

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

新建工程后,Project 窗口中內(nèi)容如下:

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

把 SourceGroup 1 改為 Source。

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

改名后 Project 窗口內(nèi)容如下:

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

生成頭文件

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

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

工程基本設(shè)置

在工程屬性中做如下設(shè)置。

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

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

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

添加 main.c 文件

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

給文件起名為 main.c:

新建完成后 Project 窗口 內(nèi)容如下:

生成延時函數(shù)

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

填入相應(yīng)的參數(shù),點擊 生成C代碼 即可生成延時函數(shù):

這里我想要的延時時間為 500ms。系統(tǒng)頻率要與前面的設(shè)置的頻率一致。

將生成的延時函數(shù)復(fù)制到 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” 用于包含延時函數(shù)中的 _nop()__ 函數(shù),不加的話會出現(xiàn)編譯錯誤。

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

零錯誤、零警告,Perfect!

燒錄程序

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

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

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

內(nèi)部晶振頻率還是選擇 12MHz。

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

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

總結(jié)

今天我們學(xué)習(xí)了基于Keil C51 的 STC 單片機開發(fā)環(huán)境搭建。

主要知識點如下:

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

各軟件下載地址如下:

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

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

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 6
收藏 7
關(guān)注 216
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 罗山县| 庆城县| 靖州| 宜城市| 榆中县| 同仁县| 遂川县| 台南市| 滕州市| 湟源县| 嘉义县| 青河县| 曲靖市| 中江县| 墨脱县| 西峡县| 吴江市| 海林市| 汉源县| 南汇区| 平谷区| 平远县| 西和县| 嘉义县| 桃园市| 玛纳斯县| 财经| 土默特右旗| 博野县| 女性| 呼和浩特市| 双辽市| 泰来县| 汽车| 怀来县| 莱芜市| 焦作市| 资源县| 建水县| 鹤庆县| 聊城市|