• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      關(guān)于單片機(jī)應(yīng)用技術(shù)教材建設(shè)的思考

      2019-03-28 13:16:12韓靜
      物聯(lián)網(wǎng)技術(shù) 2019年3期
      關(guān)鍵詞:計算機(jī)應(yīng)用技術(shù)因材施教單片機(jī)

      韓靜

      摘 要:目前市面上的單片機(jī)應(yīng)用技術(shù)教材大多將重點(diǎn)集中在單片機(jī)結(jié)構(gòu)原理、接口電路與編程方面,沒有更好地體現(xiàn)單片機(jī)程序的可移植、可復(fù)用及其實(shí)現(xiàn)方法。文中提出基于構(gòu)件化的單片機(jī)程序設(shè)計方法,以推動單片機(jī)應(yīng)用技術(shù)教材建設(shè)與改革,提高教材的教學(xué)效果,同時為高校單片機(jī)應(yīng)用技術(shù)教學(xué)提供一種可行的因材施教途徑。

      關(guān)鍵詞:單片機(jī);構(gòu)件化;可移植與可復(fù)用;教材建設(shè)與改革;因材施教;計算機(jī)應(yīng)用技術(shù)

      中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:2095-1302(2019)03-0-04

      0 引 言

      單片機(jī)應(yīng)用技術(shù)是電子信息、物聯(lián)網(wǎng)、自動化等專業(yè)的核心課程。經(jīng)市場調(diào)研,從單片機(jī)編程語言角度出發(fā),目前單片機(jī)應(yīng)用技術(shù)教材主要包括匯編語言、C語言、匯編語言和C語言并存的三種類型,不論哪種類型的教材,都將重點(diǎn)集中于講述單片機(jī)結(jié)構(gòu)原理、接口電路與編程,而沒有體現(xiàn)單片機(jī)程序的可移植、可復(fù)用及其實(shí)現(xiàn)方法。為此,提出基于構(gòu)件化的單片機(jī)程序設(shè)計方法。

      1 基于構(gòu)件的單片機(jī)程序設(shè)計方法

      現(xiàn)給出keil環(huán)境下51單片機(jī)的定時器應(yīng)用構(gòu)件化程序設(shè)計框架如圖1所列。以此說明單片機(jī)構(gòu)件化程序設(shè)計方法[1-2]。

      由圖1可以看出,03底層驅(qū)動構(gòu)件、04應(yīng)用外設(shè)構(gòu)件、05通用軟件構(gòu)件、06工程源程序都是由本構(gòu)件的.h和.c文件組成。在此框架下可通過添加其他構(gòu)件和修改應(yīng)用層程序(工程源程序)而完成不同功能的軟件設(shè)計。因此,基于構(gòu)件化的單片機(jī)程序設(shè)計方法,可很好地實(shí)現(xiàn)單片機(jī)程序的移植和復(fù)用[3-5]。

      在教學(xué)中,MCU底層驅(qū)動構(gòu)件和應(yīng)用外設(shè)構(gòu)件可先由老師設(shè)計好,引導(dǎo)學(xué)生將學(xué)習(xí)重點(diǎn)放在以下方面:

      (1)掌握MCU底層驅(qū)動構(gòu)件頭文件和應(yīng)用外設(shè)構(gòu)件頭文件的使用方法,熟悉相關(guān)宏定義,掌握對外接口函數(shù)的調(diào)用方法;

      (2)根據(jù)系統(tǒng)功能,進(jìn)行工程源程序設(shè)計和優(yōu)化。在此基礎(chǔ)上,引導(dǎo)基礎(chǔ)較好的學(xué)生進(jìn)行MCU底層驅(qū)動構(gòu)件和應(yīng)用外設(shè)驅(qū)動構(gòu)件設(shè)計,進(jìn)一步提高其單片機(jī)程序設(shè)計水平??梢?,基于構(gòu)件化的單片機(jī)程序設(shè)計方法,為高校單片機(jī)應(yīng)用技術(shù)教學(xué)提供了一種有效的因材施教途徑[6-8]。

      下面給出其中定時器TIMER底層驅(qū)動構(gòu)件文件夾的程序代碼,以說明構(gòu)件化程序的設(shè)計思想和設(shè)計方法。

      1.1 定時器TIMER底層驅(qū)動構(gòu)件頭文件

      //==========================================

      //文件名稱:timer.h

      //功能概要:定時器TIMER底層驅(qū)動構(gòu)件頭文件

      //芯片類型:STC89C52

      //版權(quán)所有:CMP-HJ

      //版本更新:2018-10-18? V1.0

      //==========================================

      #ifndef? _TIMER_H//防止重復(fù)定義(_TIMER_H開頭)

      #define? _TIMER_H

      //1.文件包含

      #include “common.h”//包含公共要素頭文件

      //2.宏定義

      //(1)定時器號0、1

      #define TIMER_0? ? ? ?0//TIMER 0

      #define TIMER_1? ? ? ?1//TIMER 1

      //3.對外接口函數(shù)聲明

      //==========================================

      //函數(shù)名稱:timer_init

      //函數(shù)功能:定時器初始化

      //函數(shù)參數(shù):timer_No: 定時器號TIMER_0、TIMER_1

      //? ?int_ms:定時時間,單位ms,推薦最大值50ms

      //函數(shù)返回:無

      //==========================================

      void timer_init(uint_8 timer_No, uint_8 int_ms);

      //==========================================

      //函數(shù)名稱:timer_start

      //函數(shù)功能:定時器啟動運(yùn)行

      //函數(shù)參數(shù):timer_No:定時器號TIMER_0、TIMER_1

      //函數(shù)返回:無

      //==========================================

      void timer_start(uint_8 timer_No);

      //==========================================

      //函數(shù)名稱:timer_stop

      //函數(shù)功能:定時器停止運(yùn)行

      //函數(shù)參數(shù):timer_No: 定時器號TIMER_0、TIMER_1

      //函數(shù)返回:無

      //==========================================

      void timer_stop(uint_8 timer_No);

      //==========================================

      //函數(shù)名稱:timer_int_enable

      //函數(shù)功能:開定時器中斷

      //函數(shù)參數(shù):timer_No: 定時器號TIMER_0、TIMER_1

      //函數(shù)返回:無

      //==========================================

      void timer_int_enable(uint_8 timer_No);

      //==========================================

      //函數(shù)名稱:timer_int_disable

      //函數(shù)功能:關(guān)定時器中斷

      //函數(shù)參數(shù):timer_No: 定時器號TIMER_0、TIMER_1

      //函數(shù)返回:無

      //==========================================

      void timer_int_disable(uint_8 timer_No);

      #endif//防止重復(fù)定義(_TIMER_H 結(jié)尾)

      //==========================================

      1.2 定時器TIMER底層驅(qū)動構(gòu)件源文件

      //==========================================

      //文件名稱:timer.c

      //功能概要:定時器TIMER底層驅(qū)動構(gòu)件源文件

      //芯片類型:STC89C52

      //版權(quán)所有:CMP-HJ

      //版本更新:2018-10-18? V1.0

      //==========================================

      //1.包含本構(gòu)件頭文件

      #include “timer.h”

      //2.對僅用于本文件的全局變量和內(nèi)部函數(shù)的聲明

      //3.對外接口函數(shù)的定義與實(shí)現(xiàn)

      //==========================================

      //函數(shù)名稱:timer_init

      //函數(shù)功能:定時器初始化

      //函數(shù)參數(shù):timer_No: 定時器號TIMER_0、TIMER_1

      //? ?int_ms:定時時間,推薦最大值50 ms單位ms

      //函數(shù)返回:無

      //==========================================

      void timer_init(uint_8 timer_No, uint_8 int_ms)

      {

      uint_16 timer_value;//存放定時器初值

      switch(timer_No)

      {

      case TIMER_0:

      TMOD &= ~0x0f;//TIMER_0工作方式1

      TMOD |= 0x01;

      timer_value=65536-(uint_16)(int_ms*(CLK_KHZ/12));

      TH0 = timer_value>>8;//定時器初值高8位

      TL0 = (uint_8)timer_value;//定時器初值低8位

      break;

      case TIMER_1:

      TMOD &= ~0xf0;//TIMER_0工作方式1

      TMOD |= 0x10;

      timer_value=65536-(uint_16)(int_ms*(CLK_KHZ/12));

      TH1 = timer_value>>8;//定時器初值高8位

      TL1 = (uint_8)timer_value;//定時器初值低8位

      break;

      default:

      break;

      }

      }

      //==========================================

      //函數(shù)名稱:timer_start

      //函數(shù)功能:定時器啟動運(yùn)行

      //函數(shù)參數(shù):timer_No: 定時器號TIMER_0、TIMER_1

      //函數(shù)返回:無

      //==========================================

      void timer_start(uint_8 timer_No)

      {

      switch(timer_No)

      {

      case TIMER_0:

      TR0 = 1;//TIMER_0啟動

      break;

      case TIMER_1:

      TR1 = 1;//TIMER_1啟動

      break;

      default:

      break;

      }

      }

      //==========================================

      //函數(shù)名稱:timer_stop

      //函數(shù)功能:定時器停止運(yùn)行

      //函數(shù)參數(shù):timer_No:定時器號TIMER_0、TIMER_1

      //函數(shù)返回:無

      //==========================================

      void timer_stop(uint_8 timer_No)

      {

      switch(timer_No)

      {

      case TIMER_0:

      TR0 = 0;//TIMER_0停止

      break;

      case TIMER_1:

      TR1 = 0;//TIMER_1停止

      break;

      default:

      break;

      }

      }

      //==========================================

      //函數(shù)名稱:timer_int_enable

      //函數(shù)功能:開定時器中斷

      //函數(shù)參數(shù):timer_No:定時器號TIMER_0、TIMER_1

      //函數(shù)返回:無

      //==========================================

      void timer_int_enable(uint_8 timer_No)

      {

      switch(timer_No)

      {

      case TIMER_0:

      ET0 = 1;//TIMER_0定時中斷允許

      break;

      case TIMER_1:

      ET1 = 1;//TIMER_1定時中斷允許

      break;

      default:

      break;

      }

      }

      //==========================================

      //函數(shù)名稱:timer_int_disable

      //函數(shù)功能:關(guān)定時器中斷

      //函數(shù)參數(shù):timer_No: 定時器號TIMER_0、TIMER_1

      //函數(shù)返回:無

      //==========================================

      void timer_int_disable(uint_8 timer_No)

      {

      switch(timer_No)

      {

      case TIMER_0:

      ET0 = 0;//TIMER_0定時中斷允許

      break;

      case TIMER_1:

      ET1 = 0;//TIMER_1定時中斷允許

      break;

      default:

      break;

      }

      }

      2 結(jié) 語

      實(shí)踐證明,在上述基于構(gòu)件化的單片機(jī)程序設(shè)計框架下,通過搭積木的方式添加其他MCU底層驅(qū)動構(gòu)件和應(yīng)用外設(shè)驅(qū)動構(gòu)件,并根據(jù)實(shí)際需要編寫工程源程序文件夾中的程序,可快速實(shí)現(xiàn)不同的應(yīng)用功能。同時,基于構(gòu)件化的單片機(jī)程序設(shè)計方法,為高校單片機(jī)應(yīng)用技術(shù)教學(xué)提供一種可行的因材施教、分層教學(xué)的途徑。因此采用構(gòu)件化的單片機(jī)應(yīng)用技術(shù)教材將會推動單片機(jī)應(yīng)用技術(shù)教學(xué)改革,提高教材的教學(xué)效果[9-10]。

      參 考 文 獻(xiàn)

      [1]王宜懷.嵌入式技術(shù)基礎(chǔ)與實(shí)踐[M].北京:清華大學(xué)出版社,2017.

      [2]蔡伯峰,王宜懷.基于ARM Cortex-M4的構(gòu)件化匯編框架的研究[J].計算機(jī)測量與控制,2016,24(10):138-141.

      [3]曹國平,王宜懷,凌云.基于KL25的RFID構(gòu)件化工程框架研究[J].電子技術(shù)應(yīng)用,2015,41(8):20-23.

      [4]張?zhí)祜w,龍海燕,丁嬌,等.基于項目化教學(xué)的單片機(jī)課程改革[J].物聯(lián)網(wǎng)技術(shù),2018,8(4):119-120.

      [5]王靜霞.單片機(jī)應(yīng)用技術(shù)(C語言版)[M].北京:清華大學(xué)出版社,2015.

      [6]聶森.《單片機(jī)原理及應(yīng)用》課程教學(xué)改革研究[J].教育教學(xué)論壇,2018(52):85-86.

      [7]段凌飛,黃健全,張宏橋.單片機(jī)課程實(shí)踐與理論教學(xué)的深入分析與改革應(yīng)用[J].中國現(xiàn)代教育裝備,2018(23):80-82.

      [8]李波.《單片機(jī)原理與應(yīng)用》實(shí)驗教學(xué)改革與實(shí)踐[J].電子世界,2018(23):101.

      [9]金國華,畢勝,王璐,等.單片機(jī)實(shí)踐教學(xué)體系構(gòu)建與實(shí)施[J].電氣電子教學(xué)學(xué)報,2018,40(06):129-133.

      [10]劉長榮,丁勤.基于嵌入式構(gòu)件技術(shù)的教學(xué)具設(shè)計[J].信息與電腦,2016(16):45-46.

      猜你喜歡
      計算機(jī)應(yīng)用技術(shù)因材施教單片機(jī)
      小學(xué)作文如何實(shí)施“因材施教”的策略
      基于單片機(jī)的SPWM控制逆變器的設(shè)計與實(shí)現(xiàn)
      電子制作(2019年13期)2020-01-14 03:15:28
      基于單片機(jī)的層次漸變暖燈的研究
      電子制作(2019年15期)2019-08-27 01:12:10
      基于單片機(jī)的便捷式LCF測量儀
      電子制作(2019年9期)2019-05-30 09:42:02
      明確“因材施教” 促進(jìn)個體發(fā)展
      從《論語》看因材施教
      計算機(jī)應(yīng)用技術(shù)專業(yè)應(yīng)用現(xiàn)代信息技術(shù)組織教學(xué)的工作綜述
      科技資訊(2016年19期)2016-11-15 10:19:08
      計算機(jī)應(yīng)用技術(shù)與企業(yè)信息化建設(shè)
      科技資訊(2016年19期)2016-11-15 10:09:06
      分析計算機(jī)應(yīng)用技術(shù)對企業(yè)信息化的影響
      基于項目課程的計算機(jī)應(yīng)用技術(shù)專業(yè)人才培養(yǎng)方案設(shè)計
      钟山县| 黄浦区| 惠来县| 寻甸| 临洮县| 松江区| 尉氏县| 遵义市| 小金县| 合水县| 疏附县| 林口县| 缙云县| 烟台市| 祁阳县| 深圳市| 南部县| 武宣县| 华亭县| 宕昌县| 垦利县| 郸城县| 衡阳县| 万宁市| 华容县| 定结县| 富蕴县| 万盛区| 颍上县| 滦南县| 多伦县| 光山县| 长顺县| 响水县| 客服| 呼图壁县| 来凤县| 定边县| 沅陵县| 岱山县| 子洲县|