新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于STC8單片機(jī)兼容傳統(tǒng)51開發(fā)板設(shè)計(jì)及雙語言編程的教學(xué)探究*

基于STC8單片機(jī)兼容傳統(tǒng)51開發(fā)板設(shè)計(jì)及雙語言編程的教學(xué)探究*

作者:劉光乾,陳熙,劉慶,陳丹,馬興茹(西南科技大學(xué)城市學(xué)院,四川 綿陽 622651) 時(shí)間:2021-05-31 來源:電子產(chǎn)品世界 收藏
編者按:本文以STC8H8K64U單片機(jī)兼容STC89C52傳統(tǒng)開發(fā)板及發(fā)揮引腳最大化資源配置設(shè)計(jì)核心板,結(jié)合與Keil C兼容的圖形化編程語言,以項(xiàng)目開發(fā)和教學(xué)應(yīng)用為基礎(chǔ)講解對(duì)51單片機(jī)的軟硬件開發(fā)應(yīng)用,以更好地推進(jìn)單片機(jī)教學(xué)和項(xiàng)目開發(fā)實(shí)踐應(yīng)用。


本文引用地址:http://2s4d.com/article/202105/426037.htm

*課題項(xiàng)目:2020年度西南科技大學(xué)城市學(xué)院校級(jí)教學(xué)質(zhì)量與改革項(xiàng)目課題2020XJXM03單片機(jī)原理及應(yīng)用線上課程建設(shè)與教學(xué)改革項(xiàng)目研究實(shí)施。

2021年度西南科技大學(xué)城市學(xué)院校級(jí)教學(xué)研究與改革項(xiàng)目課題CC-JJ2120現(xiàn)代學(xué)徒制創(chuàng)新創(chuàng)業(yè)課程項(xiàng)目在高校職業(yè)教育教學(xué)的實(shí)施研究項(xiàng)目研究實(shí)施。

作者簡介:劉光乾(1975-),男,四川廣元,工程師,講師,研究方向?yàn)橹悄茈娮釉O(shè)計(jì),物聯(lián)網(wǎng)應(yīng)用。

0   引言

單片機(jī)教學(xué)在很多高職院校的很多專業(yè)都有涉及,不同層次專業(yè)水平的學(xué)生,在學(xué)習(xí)單片機(jī)與實(shí)踐開發(fā)應(yīng)用中難以過渡,特別是單片機(jī)硬件結(jié)構(gòu)和軟件編程基礎(chǔ)較差時(shí)更是難以入門。本文基于眾多單片機(jī)教學(xué)與應(yīng)用研究及學(xué)徒制教學(xué)改革與探索,從單片機(jī)應(yīng)用與教學(xué)現(xiàn)狀分析、 單片機(jī)簡介、 兼容 開發(fā)板的核心系統(tǒng)設(shè)計(jì)及與仿真等五個(gè)方面進(jìn)行講述,供單片機(jī)教學(xué)教改及單片機(jī)愛好者學(xué)習(xí)研究之用。

1   單片機(jī)應(yīng)用與教學(xué)模式及現(xiàn)狀簡介

單片機(jī)作為智能電子產(chǎn)品開發(fā)設(shè)計(jì)及嵌入式基礎(chǔ),業(yè)內(nèi)項(xiàng)目式入門資料包括:郭天祥老師的“新概念51單片機(jī)”,及相關(guān)的單片機(jī)開發(fā)經(jīng)驗(yàn)與分享[1];以51 單片機(jī)課程為例的創(chuàng)客式項(xiàng)目教學(xué)在編程類課程中的應(yīng)用研究[2];邵華[3]老師以項(xiàng)目為導(dǎo)向的課程創(chuàng)新機(jī)制,在《單片機(jī)編程與實(shí)訓(xùn)》課程中的實(shí)踐和對(duì)比效果顯著;陳育群[4] 老師在面向單片機(jī)初學(xué)者的編程方法探究中采用基于編程字典的方法能使單片機(jī)初學(xué)者快速掌握單片機(jī)的編程。

單片機(jī)的編程模式也是日新月異,如基于傳統(tǒng)51單片機(jī)C 語言編程技巧探討[5],介紹了編程特點(diǎn)與技巧及模塊化編程設(shè)計(jì);張華林[6] 老師在單片機(jī)編程模塊化設(shè)計(jì)研究中詳細(xì)講述了模塊化編程方法;黎民山[7] 老師的基于流程圖編程的單片機(jī)軟件系統(tǒng)開發(fā),將程序代碼與直觀圖形相結(jié)合,以圖形化的編程改變對(duì)程序語法及句法的要求;黃睿[8] 老師在雙編程語言在單片機(jī)項(xiàng)目驅(qū)動(dòng)教學(xué)中的運(yùn)用,分別運(yùn)用匯編語言和C 語言實(shí)現(xiàn)功能,實(shí)現(xiàn)選擇與融合的對(duì)比教學(xué);基于互聯(lián)網(wǎng)+ 技術(shù)的大病術(shù)后吹氣練習(xí)儀的圖形化單片機(jī)編程項(xiàng)目設(shè)計(jì)[9],以及基于創(chuàng)新創(chuàng)業(yè)教學(xué)實(shí)踐項(xiàng)目的山地羊肚菌物聯(lián)網(wǎng)應(yīng)用設(shè)計(jì)[10],也從項(xiàng)目設(shè)計(jì)和教學(xué)實(shí)踐等方面進(jìn)行了單片機(jī)應(yīng)用的探究,可見單片機(jī)應(yīng)用與教學(xué)資源已經(jīng)琳瑯滿目了。

2   單片機(jī)簡介

宏晶科技的《STC8H 系列單片機(jī)技術(shù)參考手冊》顯示,STC8H 系列單片機(jī)是可以不需要外部晶振和外部復(fù)位的單片機(jī),是以超強(qiáng)抗干擾、超低價(jià)、高速、低功耗為目標(biāo)8051 單片機(jī),在相同的工作頻率下,STC8H系列單片機(jī)比傳統(tǒng)8051 約快12 倍。依次按順序執(zhí)行完全部的111 條指令,STC8H 系列單片機(jī)僅需147 個(gè)時(shí)鐘,而傳統(tǒng)8051 則需要1 944 個(gè)時(shí)鐘。STC8H 系列單片機(jī)是STC 生產(chǎn)的單時(shí)鐘/ 機(jī)器周期(1T) 的單片機(jī),是寬電壓、高速、高可靠、低功耗、強(qiáng)抗靜電、較強(qiáng)抗干擾的新一代8051 單片機(jī),超級(jí)加密,指令代碼完全兼容傳統(tǒng) 8051。

3   STC8H8K64U兼容開發(fā)板的核心系統(tǒng)設(shè)計(jì)

3.1 STC8H8K64U兼容開發(fā)板設(shè)計(jì)的意義

根據(jù)STC8H8K64U 和STC89C52 的功能特性和引腳定義,讓STC8H8K64U 核心板兼容傳統(tǒng)STC89C52的40P 開發(fā)板,是既兼容以前大量基于STC89C52 教學(xué)開發(fā)板資源,又保留STC8H8K64U 的64 引腳全功能,使擴(kuò)展開發(fā)資源利用最大化,在教學(xué)和應(yīng)用上都具有很好的意義。

3.2 STC8H8K64U兼容STC89C52開發(fā)板設(shè)計(jì)的引腳對(duì)應(yīng)

按照STC8H8K64U 和STC89C52 的功能特性和引腳定義及保留STC8H8K64U 的64 引腳全功能的原則,進(jìn)行引腳及功能對(duì)應(yīng),如表1。

image.png

3.3 STC8H8K64U兼容STC89C52核心板設(shè)計(jì)原理圖(如圖1)

image.png

3.4 STC8H8K64U兼容STC89C52核心板設(shè)計(jì)說明

按照STC8H8K64U 兼容STC89C52 傳統(tǒng)40P 底座開發(fā)板及保留STC8H8K64U 的64 引腳全功能的原則,排列相關(guān)器件及引腳,如圖2 所示。

image.png

4   STC8H8K64U核心板與仿真

4.1 STC8H8K64U核心板軟件

目前,軟硬件都比較經(jīng)典的“天問51”系列開發(fā)板和圖形化編程軟件同時(shí)具備在線編程和脫機(jī)編程兩種編程環(huán)境。脫機(jī)編程可以直接進(jìn)行圖形編程,同時(shí)生成基于SDCC 的字符C 文件,也可以直接在字符編程窗口進(jìn)行字符編程;編程結(jié)果可以通過“天問”下載器直接連接開發(fā)板進(jìn)行在線運(yùn)行,實(shí)現(xiàn)實(shí)物仿真效果,也可以直接編譯生成main.c 文件。在線編程環(huán)境還可以直接導(dǎo)出 的工程文件,非常方便。“天問”圖形化編程軟件可以在其官方網(wǎng)站下載,目前是Block0.1.6 版本,安裝即可。

4.2 STC8H8K64U核心板圖形化編程方法

在“天問”網(wǎng)站及論壇有很多關(guān)于該圖形化編程的教程和參考資料,在打開天問Block 軟件后,其界面內(nèi)包含了相應(yīng)的操作功能區(qū)及菜單按鈕,如圖3 所示。點(diǎn)擊左上角的文件夾圖標(biāo)菜單按鈕,出現(xiàn)“新建項(xiàng)目”、“打開項(xiàng)目”、“保存”、“項(xiàng)目另存”、“項(xiàng)目中心”、“提交作業(yè)”的菜單頁面,可進(jìn)行新建、打開項(xiàng)目及保存等相關(guān)操作。

左邊各功能模塊及邏輯控制圖形化指令包括單片機(jī)內(nèi)部模塊,如:系統(tǒng)配置、GPIO 模塊、PWM 模塊、ADC 模塊、定時(shí)器模塊、串口模塊、外部中斷設(shè)置、所有中斷設(shè)置、讀寫寄存器。邏輯與控制模塊包括:控制、數(shù)學(xué)與邏輯、文本與數(shù)組、變量、函數(shù)。文本模塊包括:顯示器模塊(LED 流水燈、HC595 串入并出位移緩存器、數(shù)碼管、點(diǎn)陣LED、RGB 流水燈、OLED 屏幕、LCD1602 屏幕、LCD12864、TFT 彩屏、彩屏觸摸)、傳感器模塊、紅外、I2C、SPI、擴(kuò)展等模塊。豐富的功能模塊及庫函數(shù)給項(xiàng)目開發(fā)學(xué)習(xí)應(yīng)用帶來很多便利,對(duì)初學(xué)者入門,推進(jìn)教學(xué)應(yīng)用更為有利。

圖形編程和字符編程分別位于界面主功能區(qū)左右兩個(gè)主窗口,以滿足編程窗口的最大化,兩個(gè)窗口大小可以用其交界面下部的三角按鈕拖動(dòng)改變相應(yīng)窗口大小,以滿足圖形化編程或字符編程課程的需要。

未連接菜單表示沒有連接相應(yīng)的開發(fā)板,如果將開發(fā)板用對(duì)應(yīng)的編程下載器連接到電腦USB 口,則會(huì)顯示已連接設(shè)備,通過編程可進(jìn)行串口監(jiān)視器的應(yīng)用、運(yùn)行程序進(jìn)行在線硬件仿真或編譯生成main.c 文件供,KeilC 環(huán)境使用。其中運(yùn)行程序進(jìn)行在線硬件仿真突破了傳統(tǒng) 軟件仿真或通過STC-ISP 仿真的方式,更加直接地進(jìn)行隨時(shí)編程隨時(shí)運(yùn)行并查看結(jié)果,非常方便。軟件右上角的“更多”菜單,提供了編程手冊、芯片手冊、視頻學(xué)習(xí)、開發(fā)者論壇、購買、安裝驅(qū)動(dòng)等功能模塊,讓學(xué)習(xí)編程更加方便,其中編程手冊提供了初學(xué)者使用軟件的基本方法介紹,視頻學(xué)習(xí)通過各功能程序的編程使用操作視頻,更加直觀形象地展示該軟件的使用方法。

4.3 STC8H8K64U核心板圖形化編程技巧

雖然該軟件已經(jīng)把單片機(jī)編程變得很簡單形象,但是對(duì)于初學(xué)者可能還是感覺無從下手, 這里作個(gè)引導(dǎo)和說明。

1)“天問”圖形化編程基于模塊化設(shè)計(jì),相應(yīng)的功能模塊已經(jīng)形成功能函數(shù)進(jìn)行封裝,編程者只需要根據(jù)功能需求進(jìn)行調(diào)用, 如圖4所示。

整個(gè)程序遵循一個(gè)主程序入口:

void main(void)

{

setup();

while(1){

loop();

}

}

在主程序中執(zhí)行初始化和反復(fù)執(zhí)行等功能子程序:

void setup()

{

twen_board_init();// 天問51 初始化

}

void loop()

{

}

而STC8 的頭文件及系統(tǒng)時(shí)鐘初始化也在系統(tǒng)框架首部默認(rèn)給出:

#include <STC8HX.h>uint32 sys_clk = 24000000;// 設(shè)置PWM、定時(shí)器、串口、EEPROM 頻率參數(shù)

#include “l(fā)ib/twen_board.h”

2)由“天問”Block 圖形化編程框架可以看出,所有的初始化包括端口定義、變量和函數(shù)定義、定時(shí)器和中斷等初始化都在“初始化”框架模塊里面進(jìn)行,而主要功能程序全部放在“重復(fù)執(zhí)行”框架模塊中。需要注意的是,初始化工作很重要,很多功能模塊操作前,要先看一下里面有沒有對(duì)應(yīng)的初始化積木指令,如果有一定要放在初始化框架中進(jìn)行初始化。在“重復(fù)執(zhí)行”框架里面放置功能程序,顯然將全部功能程序直接放置在此框架里面是不明智的,不僅可讀性差,也不方便調(diào)試和移植,最好是將各功能程序分解成子程序,再在“重復(fù)執(zhí)行”框架中調(diào)用,根據(jù)程序功能的復(fù)雜程度,可以執(zhí)行多級(jí)子程序(函數(shù))模塊。

3)雖然功能程序要在“重復(fù)執(zhí)行”框架中才能被執(zhí)行,但是在此框架中執(zhí)行的程序都是按照先后順序依次執(zhí)行,很多時(shí)候有些功能程序是有規(guī)律地重復(fù)執(zhí)行,可采用定時(shí)器模式進(jìn)行,這樣在定時(shí)器中既能按照設(shè)計(jì)的時(shí)間定時(shí)執(zhí)行功能,同時(shí)也不會(huì)占用“重復(fù)執(zhí)行”框架的資源。

4)對(duì)于圖形化編程,很多初學(xué)者要么難以掌握編程流程和思路,要么不知道該怎么調(diào)用合適的指令,或是程序邏輯銜接不合理,導(dǎo)致運(yùn)行失敗或死機(jī)。采用流程圖和模塊化編程的思路,先將要實(shí)現(xiàn)的功能進(jìn)行流程化梳理,再將功能程序進(jìn)行資源分配,根據(jù)需要實(shí)現(xiàn)的功能對(duì)應(yīng)于單片機(jī)硬件接口和相關(guān)電路元件。本項(xiàng)目設(shè)計(jì)的核心板也是為了兼容傳統(tǒng)STC89C52 開發(fā)板,可以直接將其插在對(duì)應(yīng)的40P 底座上,利用現(xiàn)有開發(fā)板硬件資源如LED 燈、按鍵、數(shù)碼管或一些傳感器和繼電器燈,也可以根據(jù)需要單獨(dú)用杜邦線將組件按照組件使用手冊與核心板連接。

參考文獻(xiàn):

[1] 劉玉秀.跟郭天祥學(xué)單片機(jī)[J].新課程·中旬,2015(10):218.

[2] 陳美坤,王保云,李燾燾.創(chuàng)客式項(xiàng)目教學(xué)在編程類課程中的應(yīng)用研究[J].中國教育信息化,2020(18):48-52.

[3] 邵華.以項(xiàng)目為導(dǎo)向的《單片機(jī)編程與實(shí)訓(xùn)》課程改革[J].教育現(xiàn)代化,2019(6):106-108.

[4] 陳育群.面向單片機(jī)初學(xué)者的編程方法探究[J].單片機(jī)與嵌入式應(yīng)用,2019(11):16-19.

[5] 葉曉龍.51單片機(jī)C語言編程技巧探討[J].信息與電腦,2019(4):66-67.

[6] 張華林.單片機(jī)編程模塊化設(shè)計(jì)研究[J].天工,2019(2):121.

[7] 黎民山.基于流程圖編程的單片機(jī)軟件系統(tǒng)開發(fā)[J].產(chǎn)業(yè)與科技論壇,2019(3):81-82.

[8] 黃睿.雙編程語言在單片機(jī)項(xiàng)目驅(qū)動(dòng)教學(xué)中的運(yùn)用[J].教育教法探討與實(shí)踐,2016(5):245-246.

[9] 劉光乾,劉桄序.基于互聯(lián)網(wǎng)+技術(shù)的大病術(shù)后吹氣練習(xí)儀設(shè)計(jì)[J].軟件工程與應(yīng)用,2020(9)3:228-243.

[10] 劉光乾,陳丹,劉慶,等.山地羊肚菌種植的物聯(lián)網(wǎng)應(yīng)用.現(xiàn)代農(nóng)業(yè)科技,2021(1):95-96+102.

(本文來源于《電子產(chǎn)品世界》雜志2021年4月期)



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉