作者:劉光乾,陳熙,劉慶,陳丹,馬興茹
本文以STC8H8K64U單片機兼容STC89C52傳統(tǒng)開發(fā)板及發(fā)揮引腳最大化資源配置設(shè)計核心板,結(jié)合與Keil C兼容的圖形化編程語言,以項目開發(fā)和教學(xué)應(yīng)用為基礎(chǔ)講解對51單片機的軟硬件開發(fā)應(yīng)用,以更好地推進單片機教學(xué)和項目開發(fā)實踐應(yīng)用。
0 引言
單片機教學(xué)在很多高職院校的很多專業(yè)都有涉及,不同層次專業(yè)水平的學(xué)生,在學(xué)習(xí)單片機與實踐開發(fā)應(yīng)用中難以過渡,特別是單片機硬件結(jié)構(gòu)和軟件編程基礎(chǔ)較差時更是難以入門。本文基于眾多單片機教學(xué)與應(yīng)用研究及學(xué)徒制教學(xué)改革與探索,從單片機應(yīng)用與教學(xué)現(xiàn)狀分析、STC8H8K64U 單片機簡介、STC8H8K64U 兼容STC89C52 開發(fā)板的核心系統(tǒng)設(shè)計及圖形化編程與仿真等五個方面進行講述,供單片機教學(xué)教改及單片機愛好者學(xué)習(xí)研究之用。
1 單片機應(yīng)用與教學(xué)模式及現(xiàn)狀簡介
單片機作為智能電子產(chǎn)品開發(fā)設(shè)計及嵌入式基礎(chǔ),業(yè)內(nèi)項目式入門資料包括:郭天祥老師的“新概念51單片機”,及相關(guān)的單片機開發(fā)經(jīng)驗與分享;以51 單片機課程為例的創(chuàng)客式項目教學(xué)在編程類課程中的應(yīng)用研究;邵華老師以項目為導(dǎo)向的課程創(chuàng)新機制,在《單片機編程與實訓(xùn)》課程中的實踐和對比效果顯著;陳育群 老師在面向單片機初學(xué)者的編程方法探究中采用基于編程字典的方法能使單片機初學(xué)者快速掌握單片機的編程。
單片機的編程模式也是日新月異,如基于傳統(tǒng)51單片機C 語言編程技巧探討,介紹了編程特點與技巧及模塊化編程設(shè)計;張華林老師在單片機編程模塊化設(shè)計研究中詳細講述了模塊化編程方法;黎民山老師的基于流程圖編程的單片機軟件系統(tǒng)開發(fā),將程序代碼與直觀圖形相結(jié)合,以圖形化的編程改變對程序語法及句法的要求;黃睿老師在雙編程語言在單片機項目驅(qū)動教學(xué)中的運用,分別運用匯編語言和C 語言實現(xiàn)功能,實現(xiàn)選擇與融合的對比教學(xué);基于互聯(lián)網(wǎng)+ 技術(shù)的大病術(shù)后吹氣練習(xí)儀的圖形化單片機編程項目設(shè)計,以及基于創(chuàng)新創(chuàng)業(yè)教學(xué)實踐項目的山地羊肚菌物聯(lián)網(wǎng)應(yīng)用設(shè)計,也從項目設(shè)計和教學(xué)實踐等方面進行了單片機應(yīng)用的探究,可見單片機應(yīng)用與教學(xué)資源已經(jīng)琳瑯滿目了。
2 STC8H8K64U單片機簡介
宏晶科技的《STC8H 系列單片機技術(shù)參考手冊》顯示,STC8H 系列單片機是可以不需要外部晶振和外部復(fù)位的單片機,是以超強抗干擾、超低價、高速、低功耗為目標8051 單片機,在相同的工作頻率下,STC8H系列單片機比傳統(tǒng)8051 約快12 倍。依次按順序執(zhí)行完全部的111 條指令,STC8H 系列單片機僅需147 個時鐘,而傳統(tǒng)8051 則需要1 944 個時鐘。STC8H 系列單片機是STC 生產(chǎn)的單時鐘/ 機器周期(1T) 的單片機,是寬電壓、高速、高可靠、低功耗、強抗靜電、較強抗干擾的新一代8051 單片機,超級加密,指令代碼完全兼容傳統(tǒng) 8051。
3 STC8H8K64U兼容STC89C52開發(fā)板的核心系統(tǒng)設(shè)計
3.1 STC8H8K64U兼容STC89C52開發(fā)板設(shè)計的意義
根據(jù)STC8H8K64U 和STC89C52 的功能特性和引腳定義,讓STC8H8K64U 核心板兼容傳統(tǒng)STC89C52的40P 開發(fā)板,是既兼容以前大量基于STC89C52 教學(xué)開發(fā)板資源,又保留STC8H8K64U 的64 引腳全功能,使擴展開發(fā)資源利用最大化,在教學(xué)和應(yīng)用上都具有很好的意義。
3.2 STC8H8K64U兼容STC89C52開發(fā)板設(shè)計的引腳對應(yīng)
按照STC8H8K64U 和STC89C52 的功能特性和引腳定義及保留STC8H8K64U 的64 引腳全功能的原則,進行引腳及功能對應(yīng),如表1。
3.3 STC8H8K64U兼容STC89C52核心板設(shè)計原理圖(如圖1)
3.4 STC8H8K64U兼容STC89C52核心板設(shè)計說明
按照STC8H8K64U 兼容STC89C52 傳統(tǒng)40P 底座開發(fā)板及保留STC8H8K64U 的64 引腳全功能的原則,排列相關(guān)器件及引腳,如圖2 所示。
4 STC8H8K64U核心板圖形化編程與仿真
4.1 STC8H8K64U核心板圖形化編程軟件
目前,軟硬件都比較經(jīng)典的“天問51”系列開發(fā)板和圖形化編程軟件同時具備在線編程和脫機編程兩種編程環(huán)境。脫機編程可以直接進行圖形編程,同時生成基于SDCC 的字符C 文件,也可以直接在字符編程窗口進行字符編程;編程結(jié)果可以通過“天問”下載器直接連接開發(fā)板進行在線運行,實現(xiàn)實物仿真效果,也可以直接編譯生成main.c 文件。在線編程環(huán)境還可以直接導(dǎo)出Keil C 的工程文件,非常方便?!疤靻枴眻D形化編程軟件可以在其官方網(wǎng)站下載,目前是Block0.1.6 版本,安裝即可。
4.2 STC8H8K64U核心板圖形化編程方法
在“天問”網(wǎng)站及論壇有很多關(guān)于該圖形化編程的教程和參考資料,在打開天問Block 軟件后,其界面內(nèi)包含了相應(yīng)的操作功能區(qū)及菜單按鈕,如圖3 所示。點擊左上角的文件夾圖標菜單按鈕,出現(xiàn)“新建項目”、“打開項目”、“保存”、“項目另存”、“項目中心”、“提交作業(yè)”的菜單頁面,可進行新建、打開項目及保存等相關(guān)操作。
左邊各功能模塊及邏輯控制圖形化指令包括單片機內(nèi)部模塊,如:系統(tǒng)配置、GPIO 模塊、PWM 模塊、ADC 模塊、定時器模塊、串口模塊、外部中斷設(shè)置、所有中斷設(shè)置、讀寫寄存器。邏輯與控制模塊包括:控制、數(shù)學(xué)與邏輯、文本與數(shù)組、變量、函數(shù)。文本模塊包括:顯示器模塊(LED 流水燈、HC595 串入并出位移緩存器、數(shù)碼管、點陣LED、RGB 流水燈、OLED 屏幕、LCD1602 屏幕、LCD12864、TFT 彩屏、彩屏觸摸)、傳感器模塊、紅外、I2C、SPI、擴展等模塊。豐富的功能模塊及庫函數(shù)給項目開發(fā)學(xué)習(xí)應(yīng)用帶來很多便利,對初學(xué)者入門,推進教學(xué)應(yīng)用更為有利。
圖形編程和字符編程分別位于界面主功能區(qū)左右兩個主窗口,以滿足編程窗口的最大化,兩個窗口大小可以用其交界面下部的三角按鈕拖動改變相應(yīng)窗口大小,以滿足圖形化編程或字符編程課程的需要。
未連接菜單表示沒有連接相應(yīng)的開發(fā)板,如果將開發(fā)板用對應(yīng)的編程下載器連接到電腦USB 口,則會顯示已連接設(shè)備,通過編程可進行串口監(jiān)視器的應(yīng)用、運行程序進行在線硬件仿真或編譯生成main.c 文件供,KeilC 環(huán)境使用。其中運行程序進行在線硬件仿真突破了傳統(tǒng)Keil C 軟件仿真或通過STC-ISP 仿真的方式,更加直接地進行隨時編程隨時運行并查看結(jié)果,非常方便。軟件右上角的“更多”菜單,提供了編程手冊、芯片手冊、視頻學(xué)習(xí)、開發(fā)者論壇、購買、安裝驅(qū)動等功能模塊,讓學(xué)習(xí)編程更加方便,其中編程手冊提供了初學(xué)者使用軟件的基本方法介紹,視頻學(xué)習(xí)通過各功能程序的編程使用操作視頻,更加直觀形象地展示該軟件的使用方法。
4.3 STC8H8K64U核心板圖形化編程技巧
雖然該軟件已經(jīng)把單片機編程變得很簡單形象,但是對于初學(xué)者可能還是感覺無從下手, 這里作個引導(dǎo)和說明。
1)“天問”圖形化編程基于模塊化設(shè)計,相應(yīng)的功能模塊已經(jīng)形成功能函數(shù)進行封裝,編程者只需要根據(jù)功能需求進行調(diào)用, 如圖4所示。
整個程序遵循一個主程序入口:
void main(void)
{
setup();
while(1){
loop();
}
}
在主程序中執(zhí)行初始化和反復(fù)執(zhí)行等功能子程序:
void setup()
{
twen_board_init();// 天問51 初始化
}
void loop()
{
}
而STC8 的頭文件及系統(tǒng)時鐘初始化也在系統(tǒng)框架首部默認給出:
#include 《STC8HX.h》uint32 sys_clk = 24000000;// 設(shè)置PWM、定時器、串口、EEPROM 頻率參數(shù)
#include “l(fā)ib/twen_board.h”
2)由“天問”Block 圖形化編程框架可以看出,所有的初始化包括端口定義、變量和函數(shù)定義、定時器和中斷等初始化都在“初始化”框架模塊里面進行,而主要功能程序全部放在“重復(fù)執(zhí)行”框架模塊中。需要注意的是,初始化工作很重要,很多功能模塊操作前,要先看一下里面有沒有對應(yīng)的初始化積木指令,如果有一定要放在初始化框架中進行初始化。在“重復(fù)執(zhí)行”框架里面放置功能程序,顯然將全部功能程序直接放置在此框架里面是不明智的,不僅可讀性差,也不方便調(diào)試和移植,最好是將各功能程序分解成子程序,再在“重復(fù)執(zhí)行”框架中調(diào)用,根據(jù)程序功能的復(fù)雜程度,可以執(zhí)行多級子程序(函數(shù))模塊。
3)雖然功能程序要在“重復(fù)執(zhí)行”框架中才能被執(zhí)行,但是在此框架中執(zhí)行的程序都是按照先后順序依次執(zhí)行,很多時候有些功能程序是有規(guī)律地重復(fù)執(zhí)行,可采用定時器模式進行,這樣在定時器中既能按照設(shè)計的時間定時執(zhí)行功能,同時也不會占用“重復(fù)執(zhí)行”框架的資源。
4)對于圖形化編程,很多初學(xué)者要么難以掌握編程流程和思路,要么不知道該怎么調(diào)用合適的指令,或是程序邏輯銜接不合理,導(dǎo)致運行失敗或死機。采用流程圖和模塊化編程的思路,先將要實現(xiàn)的功能進行流程化梳理,再將功能程序進行資源分配,根據(jù)需要實現(xiàn)的功能對應(yīng)于單片機硬件接口和相關(guān)電路元件。本項目設(shè)計的核心板也是為了兼容傳統(tǒng)STC89C52 開發(fā)板,可以直接將其插在對應(yīng)的40P 底座上,利用現(xiàn)有開發(fā)板硬件資源如LED 燈、按鍵、數(shù)碼管或一些傳感器和繼電器燈,也可以根據(jù)需要單獨用杜邦線將組件按照組件使用手冊與核心板連接。
責(zé)任編輯:tzh
-
單片機
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634621 -
編程
+關(guān)注
關(guān)注
88文章
3614瀏覽量
93685 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371
發(fā)布評論請先 登錄
相關(guān)推薦
評論