前言:中文期刊網精心挑選了單片機編程范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
單片機編程范文1
關鍵詞 單片機;計算機語言;C語言
中圖分類號:TP315 文獻標識碼:A 文章編號:1671-7597(2013)22-0055-01
單片機是一個小型的電腦系統,它具備完成一項某項任務的功能,有的甚至可以完成多項功能,這在工業控制以及智能開發上有巨大用途。單片機系統的實現是建立在大規模集成電路技術發展成熟的基礎之上,它將中央處理器CPU,數據存儲ROM,負責信息傳輸的線路和I/O接口整合到一起,放在集成電路板上,完成電腦系統的制作。至于C語言,就是一種特定的機器語言,能幫助我們編譯計算機能夠識別的指令,而且整個編譯過程不需要依靠計算機硬件的應用程序,非常的簡單可行。
1 單片機C語言的編程優點
1)單片機因為是集成電路系統,能在一個很小的原件上完成較為復雜的操作反應,運行簡單,價格便宜,還能支持C語言的編譯。今天我們所提到的單片機C語言是C語言的一種,它能為單片機提供更多的數據類型,幫助用戶分析遇到的問題,并且針對問題做出專業性處理。整體流程如下:命令以單片機C語言的形式下達,然后通過傳輸接口傳到單片機的存儲器上,CPU在從存儲器上提取信息,進行計算并發出指令,發出的指令在通過接口傳到給執行機器,如此完成整個動作。整個過程沒有異步過程,而且提供標準函數庫,程序員不需要熟記單片機的指令庫就可以完成整個編譯過程。
2)C語言作為一種高級語言,能直接用于操控機器,而不需要軟硬件的驅動程序,為軟件的開發提供了可靠的保障,C語言的應用極大的增加的程序編譯員的工作效率,給開發者更多的時間跟精力去專心研究編譯程序的功能,不用在分精力在硬件與軟件的契合方面。但是單片機C語言占用系統量較大,對一般的單片機來說,CPU直接讀取的存儲是有限的,用C語言進行編譯,很容易將原本簡單的編譯信息寫成多條信息,這就增加了直接存儲的負荷,導致單片機直接存儲不夠用或者棧溢出等問題。
2 單片機C語言的編程問題分析
1)研究表明,單片機C語言編輯器也不是萬能的,不可能支持所有的數據類型。不過現今比較流行的幾種數據類型還是能夠支持的。像是擁有16位數據的char型存儲數據類型,它主要是運用ASCII字符集。像存儲位數為四字節的Int數據存儲類型,它是一個整型數據。整型數據中又有長整型數據,也就是long數據。另外一種數據是浮點型數據,我們在C語言編輯中經常用到,邏輯開頭為float。單片機除了上述的語言類型外,還支持Sfr這種特殊功能寄存器,不僅僅能夠存儲數據,還能任意訪問數據存儲所在的位置。作為一種跟程序存儲器資源相結合的編譯語言,單片機C語言也具有一定的缺陷性,我們拿最常見的51系列單片機為例子。作為單片機中最常見的,我們知道51系列的單片機CPU是八位的,要計算二的八次方個數據,我們如果想提高代碼的準確率,一般都是采用減少單片機的位數的長度,也就減少了CPU的數據計算數量。我們在使用中,為了避免占用內存過大,通常會減少程序執行過程中的運算次數,減少輸入字符串的總體長度,能夠用小字符串進行定義的絕不使用大的,能夠用整型變量進行定義的就盡量不用長整型變量,這也是我們進行C語言設計時需要遵循的一個原則。在C語言的處理過程中,必須從數據庫里提取公式,但是浮點型的數據就有一定的內部函數來支持,整個浮點型函數經過如此變化,會生成較長代碼,所以我們在運用數據時,要盡量選取合適數據類型,本著減少代碼長度的覺悟,盡量做到合理。
2)單片機C語言的算法的詳解。C語言是算法組成的,它能夠完成單一命令或多種命令。單片機C語言也是由一個個算法組成的,但是普通C語言跟單片機C語言的最大不同就在于存儲量的大小,通常普通C語言的編譯是不需要考慮編譯程序代碼的長度問題,我們只需要考慮編譯的結果符合我們的要求即可。但是在單片機C語言編譯中,因為單片機本身的存儲性能有限,我們就必須對長度過長的代碼進行重新設計排版,讓程序算法最少。當然算法少的程序并不一定是代碼少的程序,有些本身代碼不長的程序,因為要在運行中走函數或者子程序,造成原本認為少的程序在運行中涉及的算法更多。為了降低程序消耗的內存,不僅僅要考慮編輯好的程序算法,還要考慮算法運行的本身。通常我們都知道算法是包括控制結構以及原始操作結構的,原始操作結構也就是我們常說的輸入機構,控制結構與原始操作機構的運行得出結果的時間就是算法執行的時間,但是普通的一個算法,會因為編譯算法的語言不通,編譯程序的軟件不通,編譯完成后在運行計算機的不同產生不同的結果。所以我們在進行單片機上的算法設計時,要考慮解決一個問題時,哪種策略更簡單,哪種策略使用規模最小,哪種策略書寫的程序語言最少,就選用哪一種算法。在C語言中,算法直接影響對語言的實現級別。
3)單片機C語言存儲器的分配結果。單片機的存儲設備一般都是隨即存儲,存儲數據非常少,一般也就64kb,也就是我們常說的單片機的內存,除了隨即內存外,單片機有時還具備內部存儲設備。在實際運行中,數據從內部存儲轉到隨即存儲,空余的存儲地址在由新的存儲數據填充。 這就涉及到全局變量以及靜態存儲變量,靜態變量因為是函數調用的,所以所處的存儲器地址基本是不變的,在全局變化中,能被釋放的只有局部變量,我們為了保證單片機的內存,要盡量提高存儲器的利用率,合理分配存儲器地址。
4)存儲器有三種不同的存儲模式,分別為小模式,壓縮模式以及大模式,判定的值是變量所處的地址范圍。我們選取不同的模式,將直接影響到代碼的長度以及程序的執行速度,在研究中發現,我們要把程序代碼放在存儲空間里,然后將一部分訪問變量設計成xdata的類型,放在實時存儲里面,就能減少不必要的時間。
單片機C語言這種通用的計算機語言有著很多優點,功能強大,便于結構化,可讀性強,可移植性強,維護和運用方便,反應速度快,并且具有通用性。單片機的性能在飛速提高,這就需要編程者隨時掌握學習知識,提升技術,在單片機目前有限的系統資源下研究開發出更加優秀的單片機系統。
參考文獻
單片機編程范文2
關鍵詞:單片機 發光二極管 閃爍
0 引言
單片機由于體積小、價格低廉、功能強、可靠性高、面向控制和價格低廉等優點,不僅成為工業測控領域使用的智能化控制工具,而且已滲入到人們工作和生活的各個角落。在工科學校中基本都開設有《單片機原理及應用》這門課,而對所有學習單片機的人來說最入門的就是對發光二級管LED的控制。
1 發光二級管的工作原理
發光二極管Light-Emitting Diode簡稱為LED,由鎵(Ga)與砷(As)、磷(P)的化合物制成的二極管。發光二極管與普通二極管一樣是由一個PN結組成,也具有單向導電性。當給發光二極管加上正向電壓后,從P區注入到N區的空穴和由N區注入到P區的電子,在PN結附近數微米內分別與N區的電子和P區的空穴復合,產生自發輻射的熒光,因而可以用來制成發光二極管。在電路及儀器中作為指示燈,或者組成文字或數字顯示。磷砷化鎵二極管發紅光,磷化鎵二極管發綠光,碳化硅二極管發黃光。
LED只能往一個方向導通,發光二極管的反向擊穿電壓約5伏。它的正向伏安特性曲線很陡,使用時必須串聯限流電阻以控制通過管子的電流來控制LED的亮度。限流電阻R可用下式計算:
R=(E-UF)/IF
式中E為電源電壓,UF為LED的正向壓降,IF為LED的一般工作電流。
2 LED的編程方法
假設LED的連接電路圖如圖1所示,八個紅色發光二極管通過限流電阻分別接到單片機P1端口的8個引腳上,單片機選用AT89C51。
2.1 單個發光二極管的控制
在圖1中,如圖所示,如果要使發光二極管D1點亮,由于D1的正極通過電阻R1接到電源VCC上,那么D1要正向導通必須使D1的陰極為低電平,也就是P1.0引腳為低電平,這個可以通過軟件可以控制,完整的C51程序如下:
同樣的,如果要使發光二極管D1一亮一滅不停地閃爍,則工作原理是讓D1點亮并延時一段時間,接著使D1熄滅并延時一段時間并不斷的循環,這樣就可以觀察到D1一亮一滅不停地閃爍。延時可以采用軟件延時或者定時計數器定時延時兩種方式,本文采用軟件延時,其工作原理是利用每條指令運行都需要一定的時鐘周期,運行一定數量的時鐘周期可以實現延時的功能,本圖中晶振為12MHz,那么12個振蕩周期為1us,延時1ms的延時程序如下:
2.2 多個發光二極管的控制 多個多個發光二極管的控制原理與單個發光二級管的控制原理一樣,在圖1中,如果要控制8個發光二極管同時一亮一滅的閃爍,那么只需要同時使8個發光二級管點亮延時一段時間,再同時使8個發光二級管熄滅并延時一段時間,周而復始不斷循環就可以實現8個LED不停地閃爍,完整的C51程序如
下:
2.3 花樣流水燈的控制 對于花樣流水燈,工作原理和前面多個發光二極管的控制原理一樣,只需要把不同狀態下燈所對應端口的值送到相應的控制端口并延時一定的時間就可以實現,編程時可以把所以對應狀態的端口值放在一個數組里存放,不停循環地取數組的值,每取一個值延時一段時間,即可以實現,程序略。
3 總結
單片機在各行各業中使用越來越多,文中對單片機中發光二極管的使用和編程方法進行總結,并給出各種方法的工作原理和完整的程序。
參考文獻:
[1]戴仙金.51單片機及其C語言程序開發實例.北京:清華大學出版社,2007.
[2]李朝青.單片機原理與接口技術.北京:北京航空航天大學出版社,2005.
[3]李廣軍等.實用接口技術.成都:電子科技大學出版社,1997.
單片機編程范文3
關鍵詞:單片機;可編程控制器;教學設計
中圖分類號:TP273 文獻標識碼:A 文章編號:1674-7712 (2014) 04-0000-01
可編程控制器早已在各類工科院校的相關實驗、實訓教學中得到了廣泛的應用,成為了高校自動化、機電一體化等專業實驗、實訓教學的“得力助手”。然而,由于目前市場上可供應的工業用可編程控制器存在價格偏高,使用的編程語言特別,編程模式相對固定,靈活性較差等原因,雖然其在性能方面更專業功能更強些,但在高校教學中推廣應用還是有一定的困難。本文中所介紹的基于單片機的可編程控制器,是針對各類工科院校的實驗、實訓教學而設計,在實驗過程中學生可根據自己的需要,通過對該可編程控制器的操作,達到預期的實驗、實訓目的,這樣不僅能促使學生充分理解單片機和可編程控制器的基本原理和應用,還為學生提供一個靈活方便的智能設計平臺。
一、系統功能架構
本文所介紹的可編程控制器使用89C51系列單片機做為核心控制芯片。下面就該系統的主要模塊設計作如下介紹。
(一)單片機基本系統
該模塊為系統的核心部分,它能完成下位機與相應上位機的通信以及對整個系統輸出端口的控制與調節功能。
(二)系統電源部分
本系統屬于教學用的單片機應用系統,其電源的獲取主要是從實驗室中獲得。實驗室中提供的電源一般是220V的單相交流電,而系統所需的標準電壓一般為+5V的直流電壓以及相關的直流電平,因此,要求系統電源相應的功能模塊應當能夠將220V交流電轉化為5V直流電的AC/DC轉化功能以及5V轉其他實驗用的直流電平DC/DC轉化功能。
(三)串口通信部分
1.基于RS-232的通信。首先,對于串口通信的接口,51系列單片機擁有可編程全雙工串行口通信接口,能夠用于異步接收或者發送UART。其相應楨格式主要包括8、10、11等幾位,我們能夠利用其進行可變還有不可變波特率的具體設定工作。而IBM上位機則相應的配置有RS232-C通信接口。由于數據實際傳輸量較小,因此,該控制器一般通過異步方式實現通信。
對于串口通信轉換電路,MAX232芯片使用IC芯片的RS-232電平轉換芯片,該芯片具有兩路接收和驅動器,可以滿足各式232通信接口需要。在MAX232芯片里包包含一電壓轉化器,從而將輸入進來的+5V電壓轉化為+10V與-10VRS-232輸出電平要求的電壓。因此,串行通信系統如果使用該芯片接口,則只要求具有+5V電源就可以了。
2.基于RS-485的通信。由于前的RS-232協議傳輸距離較短,傳輸速度又較慢,加之無法實現多機通信,而且其傳輸信號不穩定,容易受到干擾等不利條件,因此該協議已無法滿足當前的設計的需求。
本文所介紹的系統是使用性能較好的RS-485接口芯片,從而能保證多個下位機與上位機終端通訊的順利實現。MAX485芯片的結構以及相應的引腳都極為簡易,而且其內部一般包含有相應的接收器以及驅動器,主要功能是負責把TTL電平轉化成RS-485的工作電平。其相應的端口芯片主要是利用+5V電源保證系統的正常運行,相應電流的額定值一般在300μA上下,往往采取半雙工(HalfDuplex)數據傳輸方法來實現正常通訊。
在實際運行環境中,上位機與RS-485下位機的正常通信需要有相應的接口卡。本控制器的接口采用的是RS-232/RS-485轉換器。
3.通信方式的選擇電路。在該控制器通信系統的設計中,RS-485將與RS-232并存。由于單片機只包含有一個串行口,所以不符合設計的需求,因此我們將配置了選擇電路,通過該選擇電路選擇開關實現在MAX485與MAX232之間的選擇,從而完成多機之間的通信,以滿足各種不同實驗、實訓的需求。實際通信選擇電路示意如圖1。
二、系統功能概述
該可編程控制器的具體功能如下:
(1)8路開關量信號經光電耦合器,將數據送入信號輸入緩沖器,再進入單片機P1端口。利用可編程控制器程序的相應運算,得出最終結果,然后再經P1端口輸出,利用光電耦合器以及相應的數據鎖存器輸出信號電平。此外,該系統還可以做相應的擴展。
(2)利用RS-232串口滿足上位機和下位機正常通信功能,從而為組態編程設置接口;利用RS-485可滿足PC機和多單片機的聯通以及正常通信。
(3)搭配的液晶顯示模塊LCD1602可以實時地顯示輸入信號以及相應的輸出信號,并可以顯示編程狀態以及相關的時鐘。
(4)時鐘芯片主要是給系統大時間繼電器裝置提供所需的時間參照信號,從而實現8位輸入/輸出的統一協調,進而使控制器成功而精確地對外部設備進行控制,從而保證了PLC相應功能的實現。
三、結束語
目前,大多數工科類院校都擁有了許多能供相關專業實驗、實訓教學使用的智能型電子設備,然而,利用89C51系列單片機開發的可編程控制器,由于其價格低廉、運行可靠、操作簡單等特點,使其能夠更好地適合學校的教學需要,它不但能大大減少教學成本、提高教學效果,還能促使學生對單片機及可編程控制器的原理和應用有更深的了解。我院電氣工程系利用自行設計開發的基于89C51系列單片機可編程控制器,在電子、自動化及機電一體化等專業的多個實驗、實訓項目(如自動洗衣機控制、自動送料裝車系統控制、自動售貨機控制、五層電梯的自動控制、裝配流水線控制等)中使用,收到了滿意的教學效果。
參考文獻:
單片機編程范文4
關鍵詞:MCS-51 單片機 匯編 IDE 編譯器
中圖分類號:TP313 文獻標識碼:A 文章編號:1007-9416(2013)05-0029-01
1 單片機簡介
1.1 單片機介紹
單片機是一種集成電路芯片,它將CPU、RAM、ROM、I/O接口、中斷系統等等功能集成到一塊硅片上,構成一個微型計算機系統,所以單片機也叫做微控制器。在工業控制領域中,單片機具有非常重要的地位。MCS-51單片機是一種8位單片機,雖然目前已經有32位單片機的出現,但8位單片機在很多行業中仍在被廣泛使用,其性能較之以前也有巨大的提升。
1.2 單片機發展方向
單片機發展有兩個方向:
(1)改進集成電路工藝,提高芯片速度。
(2)根據不同領域需要,在保留基本外設裝置和公共指令的基礎上,將不同的外設裝置集成到芯片中。
(3)MCS-51單片機指令。MCS-51單片機的指令系統功能強、指令短、執行的速度也快,一共有111條指令以及8條偽指令,可以從功能上將其劃分為數據傳送、邏輯操作、算術操作、程序移位操作等四大類;空間屬性上來分,分為單字節指令、雙字節指令和三字節指令;時間屬性上來分,分為單機器周期指令、雙機器周期指令和四機器周期指令。MCS-51單片機的指令由操作碼和操作數組成,操作數又有無操作數、單操作數、雙操作數三種情況。格式如下:
【標號:】操作碼助記符【目的操作數】【,源操作數】【.注釋】。
偽指令不用計算機做任何操作,只是幫助匯編,不影響程序執行。
2 IDE簡介
2.1 IDE介紹
IDE(Integrated Development Environment,集成開發環境),包括代碼編輯器、編譯器、調試器、用戶界面等,是用于編程語言開發的應用程序。目前的單片機IDE,主要是由國外幾大面向嵌入式系統的軟件公司來開發,如:德國的Keil,美國的Franklin等,國內幾乎沒有自主研發的優秀的單片機IDE。
2.2 IDE主要功能
(1)代碼編輯。程序員在使用IDE進行程序開發時,大部分的時間都是在進行代碼的編輯,一個好的IDE應該在代碼編輯中為用戶提供幫助,提高他們的開發效率,例如:通過改善顯示效果來提高程序可讀性;讓部門代碼自動生成從而簡化用戶輸入的動作;方便用戶進行程序閱讀等等。(2)項目管理與編譯控制。(3)平臺信息管理。主要是針對嵌入式開發環境,針對不同的CPU體系、開發板名稱,將所有的平臺信息在信息管理模塊中分類記錄,用戶選取相應的配置文件來使用新的開發平臺,這樣就能最快的進入最終應用開發階段。(4)調試功能。IDE的調試功能是十分重要的,它能檢查出軟件執行過程中出現的錯誤,當然,在嵌入式系統開發中,還要支持遠程調試。
2.3 在IDE中單片機匯編程序的開發
基于MCS-51單片機匯編語言程序的應用系統開發,有以下幾個步驟:(1)源代碼編輯。(2)生成目標程序。(3)下載或編程。(4)調試。
3 設計思路與詳細步驟
3.1 界面設計
設計IDE時,選擇微軟的VC++工具,它是面向對象的程序設計工具,可視化功能強,界面友好,易于解決大型問題,軟件維護方便。選好設計工具,就開始進入界面的設計,要讓單片機匯編語言的初學者較好掌握這門語言,IDE就應該簡單直觀,易于操作。編輯框當中包含以下幾個部分:(1)文件(file):新建、打開、保存、關閉、打印、退出;(2)編輯(edit):剪切、復制、粘貼、查找、撤銷;(3)編譯(compile):編譯連接、裝載程序;(4)實驗演示和參數設置;(5)系統登錄。
3.2 編譯器設計
3.2.1 分解
一個編譯器的整個工作流程是分階段進行的,這幾個階段是:詞法分析、語法分析、語義分析、目標代碼生成。如果編譯過程中發現源程序有錯誤,編譯程序要報告出錯誤的性質和發生的地方,將錯誤的影響盡量限定在很小范圍內,使得程序的其他代碼能繼續被編譯。
3.2.2 設計步驟
(1)總體設計。設計時使用兩遍掃描,第一遍是建立符號表和確定源程序每一行的偏移地址,同時檢查匯編程序是否有錯誤;第二遍是利用第一遍掃描所生成的符號表,產生可供微處理器執行的機器代碼文件,并產生一個列表文件。
(2)指令系統設計。MCS-51單片機共有111條可執行的指令和8條偽指令,建立一個對象,用來存儲用戶使用的指令系統的信息,如序號、操作數對應的Token碼等,為了在編譯時能夠判斷輸入的語句正確與否,先要建立一個指令表和操作碼表,然后將語句與111條指令進行匹配。
(3)詞法分析設計。MCS-51單片機匯編語言程序,是將若干條MCS-51指令行組合而成,指令行格式:
【標號:】MCS一51操作碼【操作數1】,【操作數2】,【操作數3】【;注釋】
偽指令語句格式:
【標號:或字符串】MCS-51偽代碼表達式列表【;注釋】
定義一個類來進行詞法分析,設置兩個變量a,b,分別代表讀入單詞的頭指針和尾指針,先將b的值賦值給a,然后通過循環逐個判斷,得出a的真正位置,從而實現對詞語的判斷。
(4)符號表管理設計。符號表一個鏈表中的每個元素都是一個結構體,每個結構體包含多個域,如果遇到一個詞語并判斷出它是變量,就將它的名字、類型、值描述出來,存入符號表。
(5)出錯處理設計。發現的錯誤必須由用戶對源程序進行改正后再重新編譯,錯誤信息和警告信息包括:出錯的匯編源文件的文件名,出錯行的行號,具體的出錯信息等。
參考文獻
單片機編程范文5
關鍵詞:高等院校;微機原理;單片機;教學改革
中圖分類號:G642.423 文獻標識碼:A 文章編號:2095-1302(2012)07-0074-03
0 引 言
微機原理及應用和單片機原理及應用是現今大多數院校自動化、電氣自動化等信息工程類專業的重要課程。微機原理偏向于原理性的介紹,涉及的實驗比較簡單;而單片機則更偏向于應用性,涉及的實驗較多。這兩門課程的實驗過程及使用的芯片及編程的的方式非常類似。大多數院校選擇先開設微機原理的課程,在隨后的一個學期開設單片機的課程。這樣的選擇在邏輯上沒有錯誤,可畢竟這兩門課程有很大的相似之處,但又有各自的特點。微機原理和單片機的內容既相關又有明顯的區別,前后開課會使得學生可能產生忘了前面、記不住后面的感覺,同時兩門課的相似點又使得學生區分不清,對內容產生混淆。而實驗的環節,用的實驗箱不同,雖然芯片不同,學生也僅僅為做而做。在實際教學中,會經常碰到學生提出“微機原理的匯編語言編程要分段(segment),而單片機的匯編語言編程為何不分段”、“微機原理課里的標志寄存器有16位,為什么單片機里才有8位”等問題。此外,這兩門課一般都由同一位教師講授,教師備課時不由得對比著備課,在教學中自然把兩門課相關知識點進行描述或比較,使得單一門課程的教學時間無形中被占用。對此,以筆者實際的教學經驗,現對這兩門課程的教學改革進行一些探討。
1 課程改革思路
微機原理及應用課程主要是幫助學生理解計算機的原理和結構,通過學習,使學生熟悉一款比較經典的CPU和以該CPU為中心的總線、存儲器存儲過程等數據處理以及用匯編語言編寫程序的方法;同時,還涉及了諸如8255、8259A等一些芯片的運用及接口編程知識,微機原理及應用偏向于原理性的闡述。而單片機原理及應用課程主要是針對某類型已經非常成熟的單片機型號,幫助學生學會如何使用單片微型機以及針對實現不同的功能進行編程的知識,該課程更偏向于應用。
這兩門課程的內容既有很大交叉,又有各自的特點:微機原理及應用理論更系統,單片機應用性更強。獨立開設兩門課程,不可避免地會出現知識點的重復和各自重點的缺失。由此,針對這兩門課程授課過程中的不足,筆者有了對這兩門課程進行改革的想法。即:同步開課,結合實際教授理論內容,合理分配實驗學時等。
2 教學方面
2.1 教學內容
在理論教學方面,筆者對微機原理和單片機的教學內容進行了整合。微機原理基于馮·諾依曼結構,這種理論更易于學生了解計算機體系和計算機系統的工作方式;單片機本質上也是計算機系統,只是性能弱,功能單一。因此,在理論講課過程中,應該以微機原理為主,同時針對微機原理和單片機的明顯不同,比如同是45H,在微機原理中是立即數,在單片機中是存儲的地址等,在這方面加以重點講解。微機原理的內容較多,涉及面廣,如果對知識點面面俱到,不僅時間不夠,而且學生的學習積極性肯定不高。單片機原理課程主要基于80C51單片機進行講解,并介紹單片機的特點、在片資源、匯編語言編程、片內接口及中斷、通信及A/D、D/A轉換等。在這當中,肯定會遇到一些和微機原理相沖突的地方,不論講解與否,勢必會影響到后續課程講授的連貫和流暢,因此,必須要對相關內容進行取舍。
單片機編程范文6
一、c語言與單片機課程在中職學校電子及相關專業中的重要地位
c語言是一種被廣泛使用的計算機程序設計語言,在中職學校引入c語言課程,不但能使學生掌握一種基礎的編程語言,還為學生發展能力和進一步學習打下基礎。
傳統的電子裝置,只能使用復雜的模擬電路或分立的集成電路來實現,這樣的產品不僅體積大,且成本高,控制的精度也不高,適應性更差。有了單片機后,可實現很多復雜的功能。而學好單片機可讓學生在電子行業內找到一個比較好的工作。所以,單片機課程,也常被稱為“飯碗”課程。
二、中職學校“c語言”與“單片機”課程教學方式現狀分析
目前,中職學校中“c語言”與“單片機”課程的教學是采用完全割離的方式進行的,一般在第二學期開設“c語言”,在第四學期開設“單片機”。
在講授“c語言”時,通常以turboc 2.0為藍本,除了介紹“c語言”的數據類型、控制語句、數組、指針外,還對函數、結構體甚至文件進行詳細地介紹。整個教學過程中,過分注重語句、語法的細節和程序設計技巧的講授,對如何分析和解決實際問題講得不夠。從而沒有明確的學習目的,更缺少學習的興趣。wwW.133229.Com
而單片機的教材中,往往以匯編語言做為編程工具,為了能正確地運用匯編語言編寫單片機的程序,就要對單片機內部結構、存儲器結構等知識做詳細介紹。從多年的教學實踐來看,單片機課程講到尋址方式時,就基本上講不下去了,后面的課程,學生只能像聽天書一樣被動地接受。
所以,多年來,學生怕學c語言,更怕學單片機。學過c語言課程的學生,不知道c語言的具體用途,學完后很快就忘記了。學過單片機的學生,感覺單片機內部結構難懂,匯編語言更加難掌握,學到最后,連數碼管、鍵盤這樣的最基本的程序,也無法順利完成。因此,這兩門課程的教學改革,勢在必行。
三、“c語言”與“單片機”課程整合的可行性分析
通過上述對“c語言”與“單片機”本文由收集整理教學現狀的分析,我們發現,之所以這兩門課難教難學,其根本原因在于兩門課教學過程的割裂。
c語言是一門較特別的高級語言,它把高級語言的基本結構和語句與低級語言的實用性結合起來,允許直接訪問物理地址,可直接對硬件進行操作,因此既具有高級語言的功能,又有低級語言的許多功能,能夠像匯編語言一樣對位、字節和地址進行操作。而單片機的指令系統和硬件結構,正是學生最頭疼的內容。而有了c語言這個編程工具后,單片機的學習效率會大大提高。
同時,單片機用c語言編程,繞過了單片機中難學的內容,用c語言編程,驅動單片機裝置,解決了c語言應用抽象的難題,所以,這兩個課程,整合在一起教學,真可謂是“天生一對”!
四、“c語言”與“單片機”課程整合的方法
對c語言與單片機課程的教學過程進行整合,可提高兩門課的學習效果,但整合過程中,要想達到最佳的效果,也要采用正確的方法。
首先,這種整合不是簡單的“一加一”式的整合,不是將兩門課在相對集中的時間內相繼開設,就叫“整合”,而是要以單片機課程做為“主線”,在講授單片機課程的同時,根據編程的需要,不斷地“滲透”c語言的知識。再通過觀察程序驅動硬件的現象,深入體會單片機的原理。
其次,這種整合,也不必追求課時的壓縮,認為既然是“整合”了,效率提高了,就應該體現在課時的減少上,這種想法是錯誤的。所以,建議兩門課程,仍然保持兩個學期的課時量:第一個學期,主要介紹基本知識;第二個學期,可以項目實訓的方式,讓學生完成一些綜合性的實驗,以提高對兩門課程知識的實際運用能力。
五、“c語言”與“單片機”課程整合的實踐與效果