• 
    

    
    

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

      ?

      中職單片機(jī)應(yīng)用技術(shù)課程學(xué)習(xí)技巧探究

      2019-10-30 06:58馬花萍
      關(guān)鍵詞:二極管延時(shí)對話框

      馬花萍

      [摘 ? ? ? ? ? 要] ?單片機(jī)應(yīng)用技術(shù)課程是電子與信息技術(shù)、機(jī)電、電氣自動化職業(yè)院校學(xué)生的一門主修課,也是培養(yǎng)智能化電子產(chǎn)品設(shè)計(jì)技術(shù)人員的一門基礎(chǔ)課,為進(jìn)一步學(xué)習(xí)嵌入式系統(tǒng)奠定基礎(chǔ)。單片機(jī)具備體積小、成本低、功耗小、功能強(qiáng)、可靠性高等特點(diǎn),廣泛應(yīng)用于工業(yè)測控、醫(yī)療設(shè)備、智能儀器儀表、家電、通信、交通國防等各個(gè)領(lǐng)域,可以說“想得到就用得上”。

      [關(guān) ? ?鍵 ? 詞] ?單片機(jī);程序;思路;代碼

      [中圖分類號] ?G712 ? ? ? ? ? ? ? ? [文獻(xiàn)標(biāo)志碼] ?A ? ? ? ? ? ?[文章編號] ?2096-0603(2019)23-0008-02

      什么是單片機(jī)呢?簡單地說,單片機(jī)就是一個(gè)小的計(jì)算機(jī)系統(tǒng),同時(shí)也是一種集成電路芯片,是典型的嵌入式微控制器。如何能夠掌握單片機(jī)應(yīng)用技術(shù),具備應(yīng)用單片機(jī)知識解決實(shí)際問題的能力呢?針對這一狀況,作為工作在教學(xué)一線的專業(yè)課教師,對單片機(jī)應(yīng)用技術(shù)課程進(jìn)行了“基于工作過程的”項(xiàng)目化教學(xué),讓單片機(jī)學(xué)習(xí)不再抽象、不再枯燥。本文提出了一些單片機(jī)學(xué)習(xí)技巧,為大家學(xué)好單片機(jī)提供建議。

      一、好的開始是成功的一半,樹立信心,勇敢地邁出第一步

      剛開始學(xué)習(xí)單片機(jī)的時(shí)候,要樹立信心,采用項(xiàng)目學(xué)習(xí)法,要一步一個(gè)腳印,一個(gè)一個(gè)項(xiàng)目來。單片機(jī)學(xué)習(xí)的一般流程是:①電路設(shè)計(jì);②連接電路;③程序設(shè)計(jì)與調(diào)試;④編譯程序并燒寫芯片??梢詮囊粋€(gè)簡單的單片機(jī)任務(wù)入手,了解整個(gè)流程。例如,我們用開關(guān)來控制LED發(fā)光二極管的亮滅。當(dāng)開關(guān)閉合時(shí),發(fā)光二極管亮;開關(guān)斷開時(shí),二極管滅。根據(jù)題意,畫出電路圖,并進(jìn)行電路連接。接下來,創(chuàng)建一個(gè)工程,然后編寫程序并進(jìn)行調(diào)試。

      (一)創(chuàng)建工程

      (1)新建工程文件:單擊菜單【Project】—【New Project…】在彈出的“Create New Project”對話框中,選擇保存路徑,并在“文件名”的輸入框中輸入工程的名字(如led),不需要擴(kuò)展名。單擊“保存”按鈕,便會彈出第二個(gè)對話框,要求選擇CPU型號,選好后單擊確認(rèn)。(2)工程的設(shè)置:在“Target1(目標(biāo))”上單擊鼠標(biāo)右鍵,接著單擊“Options for Target‘Target1”選項(xiàng),即出現(xiàn)工程設(shè)置對話框。主要設(shè)置對話框中的“Output”頁面,選中其中的“Create HEX File”用于生成可執(zhí)行的代碼文件。

      (二)新建源程序文件

      (1)建立并保存源文件:單擊菜單【File】—【New…】可在項(xiàng)目窗口的右側(cè)打開一個(gè)新的文本編輯窗口。單擊菜單【File】—【Save】在彈出的對話框“文件名”的輸入框中輸入文件名,同時(shí)必須輸入正確的擴(kuò)展名(C語言源程序以.c為擴(kuò)展名),單擊保存。(2)添加源文件到工程中:在源程序組上單擊右鍵,彈出快捷菜單,接著單擊“Add Files to Group ‘Source Group1”選項(xiàng),在彈出的對話框中選中“l(fā)ed.c”。

      (三)編寫程序

      暫時(shí)不管程序?yàn)槭裁催@樣寫,先在程序輸入窗口里輸入程序,然后保存。

      (四)在keil中調(diào)試程序,燒寫芯片

      (1)程序編譯:選擇菜單【Project】 —【Build target】對當(dāng)前工程進(jìn)行連接,產(chǎn)生目標(biāo)代碼。(2)使用串行口ISP下載線下載程序。這時(shí)給系統(tǒng)上電,如果通信正常,則可完成將程序?qū)懭雴纹瑱C(jī)的程序存儲器。

      在單片機(jī)的學(xué)習(xí)過程中,不管遇到多么復(fù)雜的任務(wù),新建工程、新建源文件、程序編譯、調(diào)試、仿真、燒寫等操作都是一樣的,從最簡單的任務(wù)入手,讓它先運(yùn)行起來,熟練掌握一整套系列的流程。

      二、先參考別人的程序代碼,掌握其中的思路,先學(xué)用到的知識點(diǎn),沒有用到的暫時(shí)放到一邊

      從單片機(jī)的學(xué)習(xí)流程中,我們知道單片機(jī)的學(xué)習(xí)重點(diǎn)在于電路和編程方法,剛開始,可以直接把別人的程序代碼拿過來用,學(xué)習(xí)其中的程序思路,思考都用到了哪些知識點(diǎn)。單片機(jī)的學(xué)習(xí)是注重理論和實(shí)踐結(jié)合的,學(xué)習(xí)初期光看書不去動手,是學(xué)不會的。厚厚的一本書,如果不分主次通篇去看,看著看著頭就暈了,也許你學(xué)了后面的,前面的內(nèi)容估計(jì)也快忘光了。所以,最好結(jié)合實(shí)際任務(wù),把程序中用到的知識點(diǎn),認(rèn)真學(xué)習(xí)一下,暫時(shí)用不到的內(nèi)容,就先跳過去,不必非要把書從第一頁看起。比如,流水燈程序:

      #include ?#include

      int main(void) ?{ unsigned int i; ?P2=0xfe; ?while(1)

      { for(i=0;i<30000;i++);P2=_crol_(P2,1); ?} }

      流水燈程序和開關(guān)控制二極管的亮滅程序比較,都用到了單片機(jī)的頭文件,程序中都有主函數(shù),內(nèi)部都嵌套了死循環(huán)函數(shù)。在流水燈程序中又多了內(nèi)部函數(shù)頭文件,定義了無符號整型變量,引入了for循環(huán)的延時(shí)函數(shù)。在后面提到的秒閃電路的制作,用到了定時(shí)器中斷,那時(shí)我們才去學(xué)習(xí)定時(shí)器的內(nèi)容。把整本書化整為零,等用到了再去學(xué)習(xí),這樣學(xué)習(xí)的內(nèi)容既扎實(shí)又牢固。

      三、無論多簡單的程序,都要寫一遍,不能光看,一定要開動腦筋,采用多種方法,優(yōu)化并實(shí)現(xiàn)自己的程序效果

      剛開始的時(shí)候,對內(nèi)容不了解,可以先抄寫老師和教材中的程序,看看每一句代碼有什么功能,可達(dá)到什么目的,運(yùn)行后有什么結(jié)果。比如,單片機(jī)驅(qū)動點(diǎn)亮發(fā)光二極管程序,這個(gè)程序我們可以用位操作法,在程序中直接對某位引腳進(jìn)行賦值。

      #include ?sbit d1=P1^0; ?#define d2 P1_1

      main() ?{d1=0;d2=1;P1_2=0;while(1);}

      此程序?qū)崿F(xiàn)了發(fā)光二極管的d1,d3亮,d2不亮。除了頭文件,程序中用兩種方法定義引腳的名稱,第一種是通過名稱P1定義引腳名,第二種是通過已有名稱定義新名稱,一定要區(qū)分清楚,程序看明白后一定要自己重新寫一遍,寫過之后,你會發(fā)現(xiàn),原來看明白別人的程序很容易,但自己寫的時(shí)候卻一句也寫不出來,并且還會丟三落四出現(xiàn)很多問題。當(dāng)自己能順利寫出程序代碼時(shí),說明自己真的懂了。學(xué)習(xí)需要有舉一反三的過程,才會有提高。點(diǎn)亮發(fā)光二極管的程序,還可以用字節(jié)操作法。字節(jié)操作,就是用一個(gè)字節(jié)數(shù)據(jù)同時(shí)設(shè)置I/O口8個(gè)引腳的狀態(tài)。用這種方法時(shí),要先分析P1口每位的值,然后寫出十六進(jìn)制數(shù)。程序如下:#include ?main() ?{P1=0x02;while(1);}

      同樣實(shí)現(xiàn)點(diǎn)亮d1,d3,關(guān)閉d2,字節(jié)操作,代碼少,效率高,程序運(yùn)行的速度快,充分優(yōu)化了程序功能。

      四、相同的任務(wù),不同的人有不同的代碼寫法,主要是找到硬件電路的制作和程序設(shè)計(jì)的思路,著重培養(yǎng)解決問題的能力

      如何寫出一個(gè)程序來控制器件,按你想要的結(jié)果去運(yùn)作,這個(gè)就是解題的思路。要寫程序,就要先找到解決問題的思路,思路有了,方法就會有許多種。對同一個(gè)項(xiàng)目任務(wù),用不同方法來實(shí)現(xiàn)同一功能,這是一個(gè)練習(xí)和提高的過程。用單片機(jī)一位I/O口去控制發(fā)光二極管的閃亮。LED的工作過程是:點(diǎn)亮→延時(shí)→熄滅→延時(shí)→點(diǎn)亮→延時(shí)……如此循環(huán),實(shí)現(xiàn)了閃爍的效果。它的硬件電路很簡單,我們以亞龍YL-236型單片機(jī)控制功能實(shí)訓(xùn)考核試驗(yàn)臺為界面連接電路。程序設(shè)計(jì)起來也不難,通過流程圖對程序進(jìn)行設(shè)計(jì),是在點(diǎn)亮發(fā)光二極管程序的基礎(chǔ)上實(shí)現(xiàn)延時(shí)。

      方法一:#include ?sbit led=P0^0;

      void main() ?{unsigned int i;While(1)

      {led=0;for(i=0;i,50000;i++); ?led=1;for(i=0;i,50000;i++);}

      這個(gè)問題,算是解決了,能不能換種寫法實(shí)現(xiàn)同一功能。

      方法二:#include ?sbit led=P0^0;

      void delay(void) {unsigned int i=50000;while(i--);}

      void main() { while(1) {led=0; delay(); led=1;delay();} }

      方法一實(shí)現(xiàn)二極管閃亮,運(yùn)用了for循環(huán)延時(shí),方法二采用了delay自定義延時(shí)函數(shù),都是延時(shí)50000us。延時(shí)時(shí)間一樣長,利用我們學(xué)到的知識,還可以考慮如果發(fā)光二極管“亮/滅”的時(shí)間不一樣長,而且有多種變化怎么來寫程序?寫程序的過程也是一個(gè)創(chuàng)造的過程。

      五、對于一個(gè)新項(xiàng)目,要學(xué)會對任務(wù)進(jìn)行分析,不要急于去尋找別人的代碼,學(xué)會掌握程序的設(shè)計(jì)與調(diào)試

      當(dāng)你接到一個(gè)新的項(xiàng)目時(shí),先自己構(gòu)思一下整個(gè)過程,例如秒閃電路的制作。這個(gè)項(xiàng)目的難點(diǎn)在于程序設(shè)計(jì)思路,有了思路,編寫程序就容易多了。分析任務(wù):所謂秒閃電路,即1秒定時(shí)閃爍的電路。就是讓一個(gè)LED每1秒固定閃爍一次,實(shí)際上就是讓LED亮500ms,滅500ms,然后再循環(huán)。涉及時(shí)間的問題,首先就要考慮用定時(shí)器來做。如果定時(shí)時(shí)間較長,則要盡量使定時(shí)器中斷時(shí)間間隔大些,減少中斷次數(shù),提高程序的效率。通過前面的知識我們知道,定時(shí)器0工作在方式1下最大定時(shí)只有65.536ms,經(jīng)過分析,如果我們采用定時(shí)器0,利用工作方式1,通常將定時(shí)器設(shè)為50ms的時(shí)間間隔,即每50ms中斷一次,然后通過一個(gè)變量記錄中斷次數(shù),每中斷一次,讓這個(gè)變量加1,當(dāng)這個(gè)變量等于10,說明已經(jīng)中斷10次,正好就是500ms,實(shí)現(xiàn)1秒定時(shí)閃爍。設(shè)計(jì)思路有了,程序編寫就簡單了。

      對任務(wù)進(jìn)行分析,事先規(guī)劃好程序的流程圖,程序代碼寫出來易如反掌,但是問題又來了,不少學(xué)生把程序代碼寫好了,然后一運(yùn)行,不是自己想要的結(jié)果,有的時(shí)候甚至結(jié)果出不來,頭就暈了,然后就跑去問老師“為什么我的程序不能正常運(yùn)行”就等老師來給自己分析。這是一種很不好的習(xí)慣,應(yīng)該自己學(xué)會發(fā)現(xiàn)問題和學(xué)會如何解決問題。在解決問題的過程中,通過程序的排錯(cuò),你會學(xué)到很多平時(shí)聽課、看書學(xué)不到的東西。糾錯(cuò)的過程就是學(xué)習(xí)的過程,并且比用其他的方法都學(xué)得多、記得深。通過編譯程序,排查出簡單的語法錯(cuò)誤,對生成的目標(biāo)文件進(jìn)行調(diào)試運(yùn)行,單步執(zhí)行與全速執(zhí)行相結(jié)合,實(shí)現(xiàn)自己的程序功能。

      參考文獻(xiàn):

      [1]金杰.MCS-51單片機(jī)C語言程序設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2017.

      [2]老盛林,吳慧芳.單片機(jī)應(yīng)用技術(shù)[M].北京:北京理工大學(xué)出版社,2018.

      [3]蘇珊,高如新.單片機(jī)原理與應(yīng)用[M].成都:電子科技大學(xué)出版社,2016.

      編輯 張 慧

      猜你喜歡
      二極管延時(shí)對話框
      課后延時(shí)服務(wù)
      課后延時(shí)中如何優(yōu)化不同年級學(xué)生活動效果
      Bootlace Worms’Secret etc.
      What Is Beauty?
      論延時(shí)攝影的類型與表現(xiàn)手法
      目標(biāo)教學(xué)法在中職校電子電工專業(yè)教學(xué)中的實(shí)踐
      含理想二極管電路的疑難問題辨析お
      一種“死時(shí)間”少和自動校準(zhǔn)容易的Wave Union TDC
      淺談VB的通用對話框《CommonDialog》控件的使用
      Smart Shirts Generate Electricity
      东源县| 张家港市| 得荣县| 东乡族自治县| 北安市| 柳江县| 长垣县| 美姑县| 大关县| 皮山县| 新巴尔虎左旗| 离岛区| 中宁县| 定结县| 华亭县| 深水埗区| 内丘县| 五指山市| 广河县| 巢湖市| 赤城县| 浮山县| 霞浦县| 无极县| 兴山县| 佛冈县| 富裕县| 竹山县| 梁平县| 金塔县| 锡林郭勒盟| 凭祥市| 肃南| 台江县| 泾阳县| 达孜县| 潞西市| 六盘水市| 嫩江县| 西昌市| 楚雄市|