999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關于單片機應用技術教材建設的思考

2019-03-28 13:16:12韓靜
物聯網技術 2019年3期
關鍵詞:因材施教單片機

韓靜

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

關鍵詞:單片機;構件化;可移植與可復用;教材建設與改革;因材施教;計算機應用技術

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

0 引 言

單片機應用技術是電子信息、物聯網、自動化等專業的核心課程。經市場調研,從單片機編程語言角度出發,目前單片機應用技術教材主要包括匯編語言、C語言、匯編語言和C語言并存的三種類型,不論哪種類型的教材,都將重點集中于講述單片機結構原理、接口電路與編程,而沒有體現單片機程序的可移植、可復用及其實現方法。為此,提出基于構件化的單片機程序設計方法。

1 基于構件的單片機程序設計方法

現給出keil環境下51單片機的定時器應用構件化程序設計框架如圖1所列。以此說明單片機構件化程序設計方法[1-2]。

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

在教學中,MCU底層驅動構件和應用外設構件可先由老師設計好,引導學生將學習重點放在以下方面:

(1)掌握MCU底層驅動構件頭文件和應用外設構件頭文件的使用方法,熟悉相關宏定義,掌握對外接口函數的調用方法;

(2)根據系統功能,進行工程源程序設計和優化。在此基礎上,引導基礎較好的學生進行MCU底層驅動構件和應用外設驅動構件設計,進一步提高其單片機程序設計水平。可見,基于構件化的單片機程序設計方法,為高校單片機應用技術教學提供了一種有效的因材施教途徑[6-8]。

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

1.1 定時器TIMER底層驅動構件頭文件

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

//文件名稱:timer.h

//功能概要:定時器TIMER底層驅動構件頭文件

//芯片類型:STC89C52

//版權所有:CMP-HJ

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

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

#ifndef? _TIMER_H//防止重復定義(_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.對外接口函數聲明

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

//函數名稱:timer_init

//函數功能:定時器初始化

//函數參數:timer_No: 定時器號TIMER_0、TIMER_1

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

//函數返回:無

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

void timer_init(uint_8 timer_No, uint_8 int_ms);

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

//函數名稱:timer_start

//函數功能:定時器啟動運行

//函數參數:timer_No:定時器號TIMER_0、TIMER_1

//函數返回:無

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

void timer_start(uint_8 timer_No);

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

//函數名稱:timer_stop

//函數功能:定時器停止運行

//函數參數:timer_No: 定時器號TIMER_0、TIMER_1

//函數返回:無

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

void timer_stop(uint_8 timer_No);

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

//函數名稱:timer_int_enable

//函數功能:開定時器中斷

//函數參數:timer_No: 定時器號TIMER_0、TIMER_1

//函數返回:無

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

void timer_int_enable(uint_8 timer_No);

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

//函數名稱:timer_int_disable

//函數功能:關定時器中斷

//函數參數:timer_No: 定時器號TIMER_0、TIMER_1

//函數返回:無

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

void timer_int_disable(uint_8 timer_No);

#endif//防止重復定義(_TIMER_H 結尾)

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

1.2 定時器TIMER底層驅動構件源文件

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

//文件名稱:timer.c

//功能概要:定時器TIMER底層驅動構件源文件

//芯片類型:STC89C52

//版權所有:CMP-HJ

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

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

//1.包含本構件頭文件

#include “timer.h”

//2.對僅用于本文件的全局變量和內部函數的聲明

//3.對外接口函數的定義與實現

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

//函數名稱:timer_init

//函數功能:定時器初始化

//函數參數:timer_No: 定時器號TIMER_0、TIMER_1

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

//函數返回:無

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

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;

}

}

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

//函數名稱:timer_start

//函數功能:定時器啟動運行

//函數參數:timer_No: 定時器號TIMER_0、TIMER_1

//函數返回:無

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

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;

}

}

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

//函數名稱:timer_stop

//函數功能:定時器停止運行

//函數參數:timer_No:定時器號TIMER_0、TIMER_1

//函數返回:無

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

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;

}

}

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

//函數名稱:timer_int_enable

//函數功能:開定時器中斷

//函數參數:timer_No:定時器號TIMER_0、TIMER_1

//函數返回:無

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

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;

}

}

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

//函數名稱:timer_int_disable

//函數功能:關定時器中斷

//函數參數:timer_No: 定時器號TIMER_0、TIMER_1

//函數返回:無

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

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 結 語

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

參 考 文 獻

[1]王宜懷.嵌入式技術基礎與實踐[M].北京:清華大學出版社,2017.

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

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

[4]張天飛,龍海燕,丁嬌,等.基于項目化教學的單片機課程改革[J].物聯網技術,2018,8(4):119-120.

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

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

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

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

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

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

猜你喜歡
因材施教單片機
小學作文如何實施“因材施教”的策略
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
明確“因材施教” 促進個體發展
從《論語》看因材施教
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
因材施教在小學教學中的應用意義
Microchip推出兩個全新PIC單片機系列
主站蜘蛛池模板: a亚洲视频| 国产一级二级三级毛片| 亚洲av日韩综合一区尤物| 亚洲国产日韩欧美在线| 免费可以看的无遮挡av无码| 日韩成人午夜| 亚洲首页国产精品丝袜| 国产午夜无码专区喷水| 色综合天天操| 日本午夜影院| 97精品久久久大香线焦| 538精品在线观看| 婷婷亚洲最大| 国产人在线成免费视频| 九色综合伊人久久富二代| 国产精品嫩草影院视频| 国产成人喷潮在线观看| 亚洲国产精品无码AV| 69精品在线观看| 久久网欧美| 一级做a爰片久久免费| 91福利一区二区三区| 久久中文字幕不卡一二区| 中文字幕人成人乱码亚洲电影| 亚洲第一色视频| a国产精品| 国产女人在线| 精品国产免费观看| 欧美日韩中文国产| 国产丝袜无码一区二区视频| 国产精品刺激对白在线| 亚洲天堂视频在线播放| 国产一区亚洲一区| 免费观看男人免费桶女人视频| 久久亚洲综合伊人| 在线视频一区二区三区不卡| 国产女人综合久久精品视| 日本一区二区三区精品国产| 亚洲第七页| 欧美日韩国产在线观看一区二区三区| 69视频国产| 亚洲男人天堂2020| 国产精品久久久久久久久| 最新国产在线| 精品伊人久久久香线蕉 | 免费人成网站在线观看欧美| 国产亚洲欧美在线专区| 久久精品视频亚洲| 亚洲Aⅴ无码专区在线观看q| 97狠狠操| av无码久久精品| 久久国产精品波多野结衣| 国内精品小视频福利网址| 亚洲日本在线免费观看| 欧美日韩另类国产| 美女扒开下面流白浆在线试听| 亚洲国产中文欧美在线人成大黄瓜 | 四虎永久免费地址在线网站| 国产黑丝一区| 国产成人精品一区二区三在线观看| 一级成人a做片免费| 超碰免费91| 久久精品人人做人人综合试看| 韩日无码在线不卡| 欧美特黄一免在线观看| 久久香蕉国产线| 国产精品无码一二三视频| 久久精品国产91久久综合麻豆自制| 国产浮力第一页永久地址 | 日韩麻豆小视频| 婷婷色一区二区三区| 77777亚洲午夜久久多人| 日本免费a视频| 国产精品无码AⅤ在线观看播放| 欧美国产日韩在线观看| 国产91在线|日本| 9999在线视频| 国产国产人免费视频成18 | 在线欧美a| аⅴ资源中文在线天堂| 亚欧成人无码AV在线播放| 国产精品污污在线观看网站|