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單片機系列
主站蜘蛛池模板: 91精品综合| 亚洲第一极品精品无码| 国产精品亚洲专区一区| 一级毛片基地| 亚洲国产清纯| 四虎成人免费毛片| 中文无码精品a∨在线观看| 亚洲福利一区二区三区| 中文字幕久久亚洲一区| 天堂av高清一区二区三区| 亚洲制服中文字幕一区二区| 天天爽免费视频| 亚洲综合欧美在线一区在线播放| 99久久精彩视频| 天天色综合4| 午夜精品区| 欧美专区在线观看| 日韩A∨精品日韩精品无码| a级毛片免费播放| 99久久精品国产麻豆婷婷| 精品中文字幕一区在线| 国产高颜值露脸在线观看| 亚洲人成网站色7799在线播放| 又黄又湿又爽的视频| 国产成人资源| 被公侵犯人妻少妇一区二区三区| 巨熟乳波霸若妻中文观看免费| 亚洲第一中文字幕| 色吊丝av中文字幕| 欧美日韩在线观看一区二区三区| V一区无码内射国产| 国产成人精品一区二区三在线观看| 中文精品久久久久国产网址| 国产精品免费入口视频| 国产视频自拍一区| 日本高清有码人妻| 国产一级二级三级毛片| 国产又黄又硬又粗| 毛片久久网站小视频| 国产精品视频猛进猛出| 妇女自拍偷自拍亚洲精品| 亚洲 欧美 偷自乱 图片 | 国产一区免费在线观看| 一级毛片免费观看不卡视频| 国产在线观看成人91| 丁香六月激情综合| 久久久黄色片| 色综合久久88色综合天天提莫| 亚洲男人在线天堂| 国产不卡一级毛片视频| 色婷婷国产精品视频| 欧美性久久久久| 91在线播放免费不卡无毒| 成人综合在线观看| 片在线无码观看| 香蕉蕉亚亚洲aav综合| 91精品情国产情侣高潮对白蜜| 91口爆吞精国产对白第三集| 久久黄色毛片| 欧美高清国产| 九九九精品视频| 国产在线观看一区精品| 伊人成色综合网| 久久综合色天堂av| 99久久婷婷国产综合精| 天天综合网站| 青青草一区二区免费精品| 999福利激情视频| 在线亚洲精品自拍| 99人妻碰碰碰久久久久禁片| 亚洲欧美h| 在线高清亚洲精品二区| 国产99视频免费精品是看6| h视频在线播放| 国产自在线播放| 国产欧美视频在线观看| lhav亚洲精品| 久久国产精品77777| 欧美精品v欧洲精品| 99这里只有精品免费视频| 久久国产亚洲欧美日韩精品| 无码专区第一页|