公務(wù)員期刊網(wǎng) 精選范文 單片機c語言范文

單片機c語言精選(九篇)

前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的單片機c語言主題范文,僅供參考,歡迎閱讀并收藏。

單片機c語言

第1篇:單片機c語言范文

關(guān)鍵詞:C語言程序設(shè)計;教學方法;單片機

中圖分類號:G642.4 文獻標志碼:A 文章編號:1674-9324(2014)10-0066-02

一、引言

隨著微電子技術(shù)的不斷發(fā)展和廣泛應(yīng)用,計算機編程語言也越來越豐富,因而學生也被要求具有應(yīng)對各種語言的學習應(yīng)用能力,在掌握好C語言后,對于其它語言的學習則游刃有余。基于單片機進行應(yīng)用系統(tǒng)開發(fā),C語言作為一種高級的編程語言,無論是現(xiàn)在進行嵌入式系統(tǒng)開發(fā)的相關(guān)企業(yè),還是當前的全國電子設(shè)計大賽等學生競賽中,都越來越受到大家的關(guān)注,并將其作為一個主要語言開發(fā)工具。故本文提出的基于單片機的C語言教學方法,對結(jié)合單片機進行符合實際工程需求的硬件和軟件開發(fā)的愛好者或?qū)W習者有很重要的意義。

二、教學對象

本學期本人所教授的主要課程之一是《C語言程序設(shè)計》,所面向的教學對象是大一新生,大多數(shù)同學由于在高中階段很少接觸電腦,對于語言的學習更是陌生,而且數(shù)學功底比較薄弱,同時,加上學習過程中大多數(shù)學生往往缺乏積極性和主動性,遇到困難不能刻苦鉆研,往往選擇放棄。因此,針對學生的基礎(chǔ)情況,教學講授的進度不能太快,教學的內(nèi)容不能講的太過深奧,而且教學方法要靈活多變,結(jié)合實際事物進行簡單比喻來講解,只有這樣才能較為形象地教好C語言這門課。

三、C語言的應(yīng)用地位

C語言是一門使用最廣泛的程序開發(fā)工具編程語言,是極具發(fā)展前景的計算機高級語言。其作為一種結(jié)構(gòu)化的程序設(shè)計語言,具有相當強的結(jié)構(gòu)性、可移植性和功能性。通過采用C語言進行編程開發(fā)可以使眾多開發(fā)者專心研究所設(shè)計程序要實現(xiàn)的功能及相關(guān)實現(xiàn)算法,從而有效減少開發(fā)和軟件調(diào)試的時間。C程序設(shè)計具有良好的程序結(jié)構(gòu),對于模塊化的程序設(shè)計非常適合,故通常會采用從上至下,追求逐步求精的結(jié)構(gòu)化程序設(shè)計方法,來將所要實現(xiàn)的功能模塊化,不同的功能通過不同的模塊去完成。這樣易于進行調(diào)試工作和方便快捷地管理好大型項目,從而最大限度地減少重復勞動。

四、單片機的應(yīng)用教學現(xiàn)狀

單片機的學習是我院電子類專業(yè)需要掌握的一門實踐性非常強的專業(yè)課程,我院學生通過對其的實踐性學習后,能夠獨立參加全國電子設(shè)計大賽,并能較好地完成比賽項目。為使我院的單片機教學效果更好,學生對該門課程掌握的更加牢靠,故需要對單片機的教學進行大膽改革,通過在C語言的課程教學上,結(jié)合單片機以及相關(guān)的硬件設(shè)計知識進行講解。從我院電子專業(yè)開設(shè)C程序設(shè)計課程以來,通過學生所反映的情況是該門課程比較難學習,而且不知道他們在學完C語言后到底有什么用,能夠應(yīng)用到哪些地方,更不知道將自己的所學應(yīng)用于單片機的開發(fā)中能不能實現(xiàn)目標。故根據(jù)以往教師的教學經(jīng)驗,并結(jié)合學生反映的情況考慮,本人覺得有必要作出這樣的改進,在C語言的課程上,通過結(jié)合單片機及相關(guān)硬件設(shè)計知識來講解C語言,并從以下幾方面引起重視。

五、《C語言程序設(shè)計》的課堂教學

1.教學設(shè)計前的思考?!禖語言程序設(shè)計》不僅是電子類專業(yè)理工科學生的一門計算機公共必修課程,而且C語言也是作為計算機等級考試(二級)的考試內(nèi)容之一。C語言對于大部分剛進入大學的學生來說,也是一門比較難的計算機語言課程。要做好這門課程的教學設(shè)計,首先要對學生的具體情況有一定程度的了解。該課程通常的教學法是語法格式的講解、語法要點的逐步講解和通過例題對語法的應(yīng)用講解。這種機械的教學灌輸思想枯燥無味,會使學生失去對該門課程的學習興趣,所以,本人認為應(yīng)該先要求學生課前對本堂課所要講解的知識進行預習,并能識記有關(guān)知識點,將不理解之處畫上記號,待課堂老師講解時再認真聽并理解所教授內(nèi)容,這樣通過教師為主導、學生為主體的方式學習,教師通過精講相關(guān)的硬件設(shè)計實例,通過硬件設(shè)計所要實現(xiàn)的功能引出相關(guān)軟件設(shè)計,進而將軟件設(shè)計時所涉及到的相關(guān)C知識進行講解,然后通過另一簡單例子讓學生自己去通過分析來鞏固知識點。

2.結(jié)合多媒體的講解,強化實驗及實踐能力。因為教師授課的主要對象是大學一年級新生,所以需要教師采用通俗易懂,并結(jié)合簡單例子進行相關(guān)講解,這樣能夠使學生容易理解和消化。教學過程中,采用多媒體,通過編程演示加深學生對運用的語法理解和深刻記憶。并把理論知識和硬軟件的設(shè)計內(nèi)容進行整合講解,讓每個學生獨立完成實際應(yīng)用實驗題。

3.減少和消除學生對程序設(shè)計語言的排斥和畏懼感。本人在教學中會引導學生多讀程序,在讀的過程中領(lǐng)悟和提高。對于軟件生存周期的設(shè)計、編碼、調(diào)試、運行這幾個階段,本人可以通過C語言設(shè)計實例來體現(xiàn),以培養(yǎng)學生編程中的工程思想。講授課程時以提出問題、解決問題、深入拓展問題、再解決問題,對問題進行評價和優(yōu)化設(shè)計的螺旋式滾動教學的方法,收到了不錯的教學效果。

教學過程中,對于數(shù)組、指針等重要的知識點,則需要制作更生動的課件,提高學生的學習興趣和主動性。例如,在講解數(shù)組的冒泡法排序時,本人讓7位同學分別拿著一個數(shù)據(jù)牌站到講臺,進行現(xiàn)場模擬氣泡排序過程,通過第一次排序找到了該組中的最大值,經(jīng)過第二次排序找到了次大值,通過現(xiàn)場的模擬以及班上同學的參與,使課堂更加豐富有趣,并且所有同學都能掌握氣泡排序的過程。由于在教學中引入的現(xiàn)場模擬,使同學們更容易理解這些抽象的內(nèi)容,更重要的是碰到類似的問題他們會觸類旁通,從而慢慢培養(yǎng)出編程的興趣。

六、實踐培訓操作

上機實驗是學習程序設(shè)計語言的重要環(huán)節(jié),自己編寫的程序上機調(diào)試運行中,可能有很多想不到的錯誤,通過改正這些錯誤,可逐步提高自己對C語言語法的理解力。在課程的教學中,會進行階段性的實訓項目,將每一階段的學習進行小結(jié)性的貫穿和提高。將相關(guān)的知識點融入到程序的編寫中,從而鞏固知識點并將瑣碎的知識點做一個整合。暑假期間,對于電子愛好的學生進行集中培訓,然后按照全國電子設(shè)計大賽的要求給大家?guī)讉€題目做,這幾個題目涵蓋非常廣的知識點,大家如果想編出程序就必須要找到課本的相應(yīng)知識點進行復習,從而編出程序,學生普遍反映通過集中培訓課的鍛煉,他們的編程能力有了很大的提高,很多以前不懂的內(nèi)容通過自己鉆研也懂了,通過自己的努力以后也體會到了編出程序的喜悅感,可以說收到不錯的成效。

七、結(jié)束語

C語言的教學重點是培養(yǎng)學生分析與解決問題的能力,這種能力的培養(yǎng)與學生的刻苦學習分不開,因此,在本人的課堂中會一再強調(diào)C語言不是看會的,也不是聽會的,而是親自動手實踐練會的?;趩纹瑱C的C語言開發(fā)和設(shè)計,極大地促進了單片機在生產(chǎn)、生活各個領(lǐng)域的應(yīng)用,提高了程序開發(fā)效率。因而,C語言學習效果的好壞,對今后單片機課程的學習具有深遠的影響。

參考文獻:

[1]向艷.C程序設(shè)計課程教學體系和模式探討[J].計算機教育,2010,(3):112-114.

[2]譚浩強.C語言程序設(shè)計教程(第三版)[M].北京:清華大學出版社,2013.

[3]馮運仿.《C語言程序設(shè)計》課程教學模式的研究與實踐.福建電腦,2012,(1).

第2篇:單片機c語言范文

關(guān)鍵詞 單片機;教學改革;C語言

中圖分類號:G642.0 文獻標識碼:B 文章編號:1671-489X(2012)24-0080-03

Teaching Reform and Probe of Microcontroller & Interface Techniques Course based on C Language//Ju Yang

Abstract The paper presents the reform of teaching contents of microcontroller courses based on present situation of teaching and practice application in our country. The teaching methods of microcontroller courses based on C language are discussed in detail. The research and practice of research-oriented teaching are enhanced. The study interests of undergraduates are increased and good teaching results are obtained in practice.

Key words microcontroller; teaching reform; C language

Author’s address School of Electric Power of Nanjing Institute of Technology, Nanjing, China 211167

單片機是典型的嵌入式微控制器,在工業(yè)控制、機電一體化、通信終端、智能儀表、家用電器等諸多領(lǐng)域應(yīng)用廣泛。國內(nèi)高校的一些相關(guān)專業(yè)在20世紀80年代末就開設(shè)了單片機原理及應(yīng)用課程,并成為電氣信息類、機械類等專業(yè)的專業(yè)核心課程。因為單片機在實際生活中廣泛應(yīng)用,該課程在培養(yǎng)環(huán)節(jié)中都被定位在理論與實踐并重,著重培養(yǎng)學生開發(fā)實際應(yīng)用系統(tǒng)的能力。

該門課程是一門涉及硬件、軟件技術(shù)的綜合性課程。在學習本課程的時候,學生應(yīng)該掌握邏輯電路設(shè)計、計算機原理硬件以及軟件編程等知識。但在實際教學中發(fā)現(xiàn),當需要學生綜合運用這些知識分析解決單片機在實際生產(chǎn)過程中的具體問題時,往往不能融會貫通地加以理解和應(yīng)用,容易造成學生對本課程的畏難情緒,學習積極性受到影響。原因有不少,采用匯編語言為主的傳統(tǒng)授課方式就是其中之一,分析其原因包括:匯編語言語句抽象,可讀性差,學生難理解;匯編語言編程效率低,學生學習難度大;匯編語言代碼結(jié)構(gòu)復雜,難以維護、更新;匯編語言對硬件結(jié)構(gòu)依賴較大,難以實現(xiàn)在不同種類和系列單片機之間移植。

如今,企業(yè)的單片機項目開發(fā),一般都采用C語言。為適應(yīng)時展的要求,需要培養(yǎng)滿足社會需求的基于C語言的單片機人才。在多年的課程教學及科研實踐中,不斷總結(jié)、摸索和改革,構(gòu)建一套以C語言為主、匯編語言為輔、單片機應(yīng)用系統(tǒng)為教學主線、能力培養(yǎng)為目標的課程教學體系。

1 C語言的特點

C語言源于編寫UNIX系統(tǒng),與匯編語言和其他高級語言相比,優(yōu)點有很多:具有豐富的流程控制語句,適用于結(jié)構(gòu)化和模塊化設(shè)計,使得程序?qū)哟吻逦?,易于閱讀、編寫、調(diào)試和維護;使用范圍廣泛,可移植性強,目前主流的CPU和MCU都有支持C的編譯器;數(shù)據(jù)結(jié)構(gòu)和運算符豐富,有強大的庫函數(shù)支持,使用靈活方便;允許直接訪問物理地址,可以直接操作計算機硬件;編程和調(diào)試效率高,目標代碼質(zhì)量好。

用C語言編寫單片機程序與用匯編語言編寫單片機程序不太一樣。用匯編語言編寫單片機程序要按實際地址組織、分配存儲器資源,處理端口數(shù)據(jù);用C編寫程序不必十分熟系處理器的運算過程和數(shù)據(jù)的具體組織,可以更專注于算法而不是具體實現(xiàn)細節(jié),也更符合人們的思考習慣。由于C語言具有這樣的優(yōu)點,幾乎各品種單片機的廠商都了相應(yīng)的C語言開發(fā),因此采用C語言開發(fā)單片機已成為必然趨勢。

2 教學內(nèi)容和教學方法

在傳統(tǒng)的教學模式中,“單片機與接口技術(shù)”課程內(nèi)容安排一般都是概述、硬件結(jié)構(gòu)、指令系統(tǒng)、匯編語言設(shè)計、存儲器擴展、中斷與定時系統(tǒng)、I/O口擴展及應(yīng)用、串行數(shù)據(jù)通訊。采用C語言教學,匯編語言應(yīng)要求適當掌握。因為大量現(xiàn)有的寶貴資料是匯編語言編制的,需具備一定的閱讀能力。掌握的程度以能閱讀和理解常用的指令為度,不要求所有的指令都熟記。

第3篇:單片機c語言范文

【關(guān)鍵詞】溫濕度;監(jiān)測系統(tǒng);主控電路;PIC

目前,大部分常用的溫濕度監(jiān)測系統(tǒng)是以晶體管電路或51單片機為核心部件,再配以相應(yīng)的傳感器和A/D轉(zhuǎn)換電路組成的溫度和濕度實時監(jiān)測系統(tǒng)。這樣的系統(tǒng),在實際工作中存在諸如在線調(diào)節(jié)不方便、數(shù)字化和智能化程度較低等缺點。

因此,本文研究了基于PIC16F877A單片機的蔬菜大棚溫濕度監(jiān)測系統(tǒng)相關(guān)技術(shù),對主控電路進行了改進,提出了相應(yīng)的對策和解決方案。

1 設(shè)計思路

通常情況下,溫室內(nèi)的溫度和濕度對作物的影響巨大。如若要使得這些植物在非本季節(jié)處于較佳的生長狀態(tài),就必須嚴格控制溫室內(nèi)的溫濕度。而不同類別的植物,所需溫濕度也不盡相同。嚴格監(jiān)測和控制溫室內(nèi)溫度和濕度環(huán)境參數(shù),能夠有效保障植物時刻處于較佳的生長狀態(tài),有利于提高生產(chǎn)質(zhì)量和產(chǎn)量。

首先,本文分析了溫室溫濕度監(jiān)測系統(tǒng)基本原理和性能要求,針對農(nóng)業(yè)生產(chǎn)所使用的普通MCU與PIC系列PIC16F877A進行性能比較,對優(yōu)化主控電路做出理論依據(jù),并提出相應(yīng)的優(yōu)化方案和整改對策。 然后分析了目前農(nóng)業(yè)生產(chǎn)所使用的模擬量傳感器和直插式數(shù)字傳感器進行性能差異,從非電和電兩個方面著手對影響溫濕度監(jiān)測精度及可靠性的原因進行分析,并在優(yōu)化的主控電路。最后采用了以PIC16F877A對直插數(shù)字集成式溫濕度傳感器DHT11進行循環(huán)控制,達到對蔬菜大棚溫濕度實時監(jiān)控的目的1。

2 硬件電路設(shè)計

圖1 主控電路示意圖

本文選用DHT11作為溫濕度環(huán)境信號監(jiān)測系統(tǒng)的主要傳感器件。DHT11數(shù)字溫濕度傳感器含有已校準數(shù)字信號輸出,包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連,具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、性價比極高等優(yōu)點。DHT11傳感器的校準系數(shù)以程序的形式存在OTP內(nèi)存中,傳感器內(nèi)部在檢測型號的處理過程中要調(diào)用這些校準系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,非常適合溫室內(nèi)的溫度和濕度環(huán)境參數(shù)信號監(jiān)測系統(tǒng)的技術(shù)特點2。

本設(shè)計利用DHT11直插式數(shù)字溫濕度傳感器對蔬菜大棚溫濕度進行實時監(jiān)測,并把實測溫濕度值實時顯示在LCD1602上,可以通過鍵盤設(shè)定溫濕度極限值,如果實測溫濕度超過設(shè)定極限值,則進行LED或者蜂鳴器報警操作。

基于PIC16F877A單片機的蔬菜大棚溫濕度監(jiān)測系統(tǒng)主控電路如圖1所示,監(jiān)測過程大體如下:當產(chǎn)品上電時,PIC16F877A與DHT11傳感器通訊,當PIC做好數(shù)據(jù)接收準備時,DHT11通過單總線將數(shù)據(jù)發(fā)到至PIC,最后再由PIC將處理過的檢測數(shù)據(jù)發(fā)送至LCD1062進行顯示,從而達到蔬菜大棚溫濕度的實時檢測。在此基礎(chǔ)上,用戶可以通過按鍵輸入溫濕度極限值,對溫濕度報警值進行設(shè)定,之后以達到峰值超標自動報警的目的。

3 主函數(shù)初始化和外部中斷流程圖設(shè)計

我們對需要的特殊寄存器進行初始化后,使其進入while循環(huán),等待外部中斷。

①初始化

初始化函數(shù)包括了系統(tǒng)初始化函數(shù)sys init();,LCD初始化函數(shù)lcd_init();等。系統(tǒng)初始化函數(shù)主要是對外部中斷的I/O口,和使能端進行設(shè)置3。LCD初始化函數(shù)lcd_init();主要是多LCD的I/O口進行方向設(shè)置,LCD指令輸入等操作。如圖2所示,對主函數(shù)進行初始化設(shè)計。

圖2 主函數(shù)初始化流程圖

初始化過程(復位過程)

1.延時15ms

2.寫指令38H(不檢測忙信號)

3.延時5ms

4.寫指令38H(不檢測忙信號)

5.延時5ms

6.寫指令38H(不檢測忙信號)

7.(以后每次寫指令、讀/寫數(shù)據(jù)操作之前均需檢測忙信號)

8.寫指令38H:顯示模式設(shè)置

9.寫指令08H:顯示關(guān)閉

10.寫指令01H:顯示清屏

11.寫指令06H:顯示光標移動設(shè)置

12.寫指令0CH:顯示開及光標設(shè)置

本設(shè)計運用了.h,將LCD1602的初始化程序模塊化,這樣便于整體程序設(shè)計的模塊化操作,LCD1602原函數(shù)代碼如下所示:

void lcd_init()

{

ADCON1=0x07; // PORTA as Digital

CTRL_DIR=0x00; //設(shè)置控制端口為輸出

DATA_DIR=0x00; //設(shè)置數(shù)據(jù)端口為輸出

lcd_cmd(CLR_DISP); //清屏

lcd_cmd(DISP_2Line_8Bit); //8位2行5*7點陣

lcd_cmd(DISP_ON); //顯示開,光標開

lcd_cmd(ENTRY_INC); //文字不動,光標右移

lcd_cmd(DD_RAM_BASE); //顯示起始地址

}

②外部中斷

在本文中外部中斷主要有兩大部分,第一部分是主要是由鍵盤來實施操作,其目的是在溫濕度檢測的同時能夠?qū)崿F(xiàn)溫濕度極限值的設(shè)定。第二部分是有程序內(nèi)部的數(shù)據(jù)判斷來實施中斷,其主要目的在于所采集到的溫濕度當前值是否超過所設(shè)定的極限值,如果超過,以此來做出報警動作,反之中斷不進行任何操作。

第一部分,即鍵盤設(shè)定極限值的操作中斷源代碼如下:

if(INTE && INTF) // 是RB0中斷,切換報警值選項 {

INTF=0;

__delay_ms(20); // 按鍵延時消抖

if(RB0==0)

option*=-1;

}

第二部分,即做出報警操作的中斷源代碼如下:

if(CCP1IE&&CCP1IF) // RC2(CCP1)中斷,增加報警值 {

CCP1IF=0;

if(option==-1) // 增加濕度報警值

{

humid++;

if(humid>90)

humid=90;

}

if(option==1) // 增加溫度報警值

{

temp++;

if(temp>50)

temp=50;

}

write_eeprom();

}

if(CCP2IE&&CCP2IF) //RC1(CCP2)中斷, 減小報警值

{

CCP2IF=0;

if(option==-1) // 減小濕度報警值

{

humid--;

if(humid

humid=20;

}

if(option==1) // 減小溫度報警值

{

temp--;

if(temp

temp=5;

}

write_eeprom();

}

如圖3所示,本文對中斷入口和外部信號進行了設(shè)置,使得設(shè)計的主控電路能夠更好的響應(yīng)其他優(yōu)先級更高的事件,從而完成了外部中斷流程的設(shè)計。

圖3 外部中斷流程圖設(shè)計

從上述設(shè)計的主控電路來看,本文在對傳統(tǒng)主控程序進行分析后,才給出基于PIC16F877A的溫濕度監(jiān)測系統(tǒng)主控程序的設(shè)計,并設(shè)計主要模塊的流程圖。不難看出,通過PIC單片機設(shè)計監(jiān)測系統(tǒng)的主控電路,能夠使得整個監(jiān)測系統(tǒng)的主要部分實現(xiàn)模塊化設(shè)計,這將有利于系統(tǒng)將來的升級改造,并降低了整個程序復雜度,使程序設(shè)計、調(diào)試和維護等操作簡單化。從而使得整個監(jiān)測系統(tǒng)相對與傳統(tǒng)的監(jiān)測系統(tǒng)而言,能夠體現(xiàn)出智能化、數(shù)字化的特點。

【參考文獻】

[1] 孫安青.PIC單片機實用C語言程序設(shè)計與典型實例[M].北京.中國電力出版社.2008.21-31.

第4篇:單片機c語言范文

【關(guān)鍵詞】PIC單片機熱電偶PWMPID算法

0 引言

溫度是工業(yè)控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機械等工業(yè)中,具有舉足輕重的作用。對于不同場所、工藝,所需的溫度范圍、精度要求,則采用的測溫元件、測溫方法以及對溫度的控制方法也將不同。

在服裝、食品等一些輕工業(yè)中,對溫度控制的范圍、精度有特殊的要求,且對溫控設(shè)備的造價十分敏感,因而需要一種經(jīng)濟而實用的溫控系統(tǒng)。

如在服裝工業(yè)中,服裝的印染、燙畫,溫度一般要求在150~180℃,溫控精度在0~399℃的范圍內(nèi)應(yīng)達到±2℃,時間以s為單位。如果溫度或時間不能滿足要求,則產(chǎn)品的質(zhì)量就達不到要求,甚至可能損壞原材料。因此要求比較高的溫度及時間精度。同時,由于其產(chǎn)品的低成本性,要求溫控系統(tǒng)的成本盡量低。

1 溫度檢測部分

工作溫度一般為0~399℃,溫控精度為±2℃,所以我們選擇K型熱電偶。鎳鉻-鎳硅(鎳鋁)熱電偶(分度號為K)。

該熱電偶的正極為含鉻10%的鎳鉻合金,負極為含硅3%的鎳硅合金(有些國家的產(chǎn)品負極為純鎳)。可測量0~1300℃的介質(zhì)溫度,適宜在氧化性及惰性氣體中連續(xù)使用,短期使用溫度為1200℃,長期使用溫度為1000℃,其熱電勢與溫度的關(guān)系近似線性,價格便宜,是目前用量最大的熱電偶。

1 .1 熱電偶測溫原理

熱電偶是一種感溫元件,它能將溫度信號轉(zhuǎn)換成熱電勢信號,通過電氣測量儀表的配合,就能測量出被測的溫度。

熱電偶測溫的基本原理是熱電效應(yīng)。在由兩種不同材料的導體A和B所組成的閉合回路中,當A和B的兩個接點處于不同溫度T和T。時,在回路中就會產(chǎn)生熱電勢。這就是所謂的塞貝克效應(yīng)。

導體A和B稱為熱電極。溫度較高的一端(T>叫工作端(通常焊接在一起);溫度較低的一端(T。>叫自由端(通常處于某個恒定的溫度下)。

根據(jù)熱電勢與溫度函數(shù)關(guān)系??芍瞥蔁犭娕挤侄缺怼7侄缺硎窃谧杂啥藴囟萒。=0℃的條件下得到的。不同的熱電偶具有不同的分度表。

在熱電偶回路中接入第三種金屬材料時,只要該材料兩個接點的溫度相同,熱電偶所產(chǎn)生的熱電勢將保持不變,即不受第三種金屬接入回路中的影響。因此,在熱電偶測溫時,可接入測量儀表,測得熱電勢后,即可知道被測介質(zhì)的溫度。

第5篇:單片機c語言范文

【關(guān)鍵詞】溫度測量;PIC16F877;DS18B20;仿真測試

在日常生活經(jīng)常要用到溫度的檢測及控制,傳統(tǒng)的測溫元件有熱電偶和熱電阻,而熱電偶和熱電阻測出的一般是電壓,在轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的硬件支持,硬件電路很復雜,軟件調(diào)試也復雜,制作成本高。而且測出來的溫度精度也沒有技術(shù)成熟的溫度傳感器高。

本文基于PIC單片機來設(shè)計數(shù)字式測溫計,直接采用數(shù)字式溫度傳感器DS18B20,用單片機對18B20進行控制,來進行測溫[1]。顯示部分可用lcd1602,單片機可直接驅(qū)動lcd1602顯示溫度,硬件較簡單,穩(wěn)定。DS18B20采用單總線技術(shù),容易擴展,并且具有轉(zhuǎn)換速度快,轉(zhuǎn)換精度高,可由片機直接讀出溫度并顯示出來等優(yōu)點。

一、設(shè)計目標和思路

本文采用PIC16F877的USART異步通信模式,可廣泛應(yīng)用于單片機與PC機,以及單片機與單片機之間的通信。USART接口由RC6、RC7這兩只引腳構(gòu)成。RC6用于數(shù)據(jù)的發(fā)送,RC7用于接收數(shù)據(jù)[2]。

當單片機需要通過USART發(fā)送數(shù)據(jù)時,只需將所發(fā)送數(shù)據(jù)送入數(shù)據(jù)緩沖寄存器TXERG,然后系統(tǒng)會自動將TXREG寄存器內(nèi)容送入發(fā)送移位寄存器TSR,接著系統(tǒng)會根據(jù)所設(shè)置的波特率脈沖信號,通過RC6引腳從高位到低位依次發(fā)送出去。當系統(tǒng)將TXERG寄存器內(nèi)容加載到TSR中時,會自動將中斷發(fā)送標志位TXIF置位,根據(jù)程序決定是否進入中斷。而當單片機需要通過USART接受數(shù)據(jù)時,通過RC7引腳將數(shù)據(jù)依次送入接收移位寄存器RSR中,當收到一個停止位時,移位寄存器RSR就把收到的8位數(shù)據(jù)自動送入接收數(shù)據(jù)緩沖器RCREG中。在接收數(shù)據(jù)緩沖器RCREG收到一個穩(wěn)定的數(shù)據(jù)后,接收中斷標志位RCIF將自動置位,根據(jù)程序決定是否進入中斷。

二、原理結(jié)構(gòu)圖

本文利用PIC16F877和DS18B20傳感器設(shè)計了測溫計,其包含主控器部分、溫度顯示部分、傳感測試部分和按鍵設(shè)計部分[3]。

基于PIC16F877的測溫計原理電路圖結(jié)構(gòu)如圖1所示。

其中,電源部分的S1為復位按鈕它在被按得時候斷開放開后自動閉合,在其斷開又閉合的瞬間使整套電路中各芯片的供電電壓實現(xiàn)從5V降到0V再升到5V的過程,從而達到復位的目的。輸入電容C2一般情況不接,但當集成穩(wěn)壓器遠離整流、濾波電路時應(yīng)接入一個0.33μf的電容器,它的作用是改善紋波和抑制輸入的瞬時過電壓,保證78L05的輸入與輸出間的電壓差不會超過允許值。輸出電容C3一般不采用大容量的電解電容器,只要接入0.1μf的電容器便可以改善負載的瞬態(tài)響應(yīng)。但是,為了減小輸出的紋波電壓,在輸出端并聯(lián)一只大容量的電解電容C4,會取得更好的效果。然而,這樣將隨之產(chǎn)生一種弊端:一旦78L05的輸入端出現(xiàn)短路時,輸出端上的大電容器上儲存的電荷將通過集成穩(wěn)壓器內(nèi)部電路調(diào)整管的發(fā)射極與基極泄放,因大容量電容器釋放能量較大,會造成集成穩(wěn)壓器內(nèi)部調(diào)整管的損壞,導致電路無法工作。為了防止這一點,在78L05的輸入端與輸出端之間跨接一個二極管,它為C4上電荷的泄放提供了一個分流通路,對集成穩(wěn)壓器起保護作用。

串口接收溫度函數(shù)流程圖如圖2所示。

三、Protues仿真調(diào)試

為調(diào)試和檢驗上述的電路原理圖的正確性和合理性,本文通過Protues軟件仿真來進行波形調(diào)試。

在仿真調(diào)試的過程中,先后對DS18B20測溫模塊、lcd1602顯示模塊、PIC單片機的USART模塊通信等,分別進行了仿真測試。待各部分均測試正確無誤后,方才對整體電路進行測試。圖3所示即為本文對溫度測量部分進行仿真調(diào)試和測試。

從Protues的仿真結(jié)果來看,本文設(shè)計的數(shù)字溫度測量電路,以PIC16F877單片機為工作處理器的核心,外接DS18B20和LCD1602,用單片機處理數(shù)字信號,再把其送入顯示器顯示。在經(jīng)過反復的仿真調(diào)試和測試后,驗證其使用起來比較方便且結(jié)果簡單易讀。與此同時,如果在本文涉及的基礎(chǔ)上在擴展其功能,如多點測溫、溫度報警等,則只需調(diào)整PIC單片機程序即可。這樣的話,本文設(shè)計的測溫系統(tǒng),在具有電路簡單、維護方便等優(yōu)點的同時,還具有擴展兼容性好、讀數(shù)準確易懂等特點,能夠滿足日常生活對測溫計的一般基本要求。

參考文獻

[1]劉君華.傳感器技術(shù)及應(yīng)用實例[M].電子工業(yè)出版社, 2008.

[2]彭樹生,莊志洪,趙惠昌.《PIC單片機原理及應(yīng)用》P224-226[M].機械出版社,2001,1.

[3]李榮正.PIC單片機原理及應(yīng)用[M].北京航空航天大學出版社,2005.

作者簡介:

第6篇:單片機c語言范文

關(guān)鍵詞 AT89C52單片機;步進電機;工作模式

中圖分類號:TM383 文獻標識碼:A 文章編號:1671—7597(2013)021-080-02

步進電機可以將數(shù)字信息轉(zhuǎn)化為角位移或者線性位移,其在開環(huán)工作方面具有出色性能,便于通過數(shù)字設(shè)備對其進行智能控制。同時,步進電機的控制系統(tǒng)結(jié)構(gòu)相對簡單,但是具有較高的定位精度,還可以通過不同方式的信號輸入進行轉(zhuǎn)動方向和移動速度調(diào)節(jié)。因此,步進電機在工業(yè)領(lǐng)域中得到了非常廣泛的應(yīng)用。

完整的步進電機系統(tǒng)分為三部分,分別為控制部分、驅(qū)動部分以及步進電機部分。本文設(shè)計分析了一種采用AT89C52型單片機為控制核心的步進電機控制系統(tǒng)。

1 步進電機工作原理及單片機控制實現(xiàn)分析

1.1 步進電機工作原理

步進電機由驅(qū)動電路進行驅(qū)動,通常驅(qū)動模塊會采用雙極性驅(qū)動的方式進行步進驅(qū)動。這種驅(qū)動方式的優(yōu)勢在于電機線圈中的電流可以改變流動方向,不同的流動方向會產(chǎn)生不同的驅(qū)動效果。利用雙極性驅(qū)動模塊進行步進電機驅(qū)動可以同時驅(qū)動四線或六線的多相混合步進電機。本文以兩相步進電機為例。

當控制模塊向驅(qū)動模塊發(fā)送脈沖信號時,若步進電機需要進行正向轉(zhuǎn)動,則根據(jù)其轉(zhuǎn)動方式可以確定電機通電順序為A+B+A-B+A-B-A+B-。若需要步進電機進行反向轉(zhuǎn)動,則步進電機繞組的通電相序則進行相應(yīng)的調(diào)整,變?yōu)锳+B-A-B-A-B+A+B+。此外,步進電機旋轉(zhuǎn)角頻率是由通電頻率確定的,因此,可以通過改變通電頻率來改變步進電機的運行速度。

1.2 單片機控制實現(xiàn)

根據(jù)選定的步進電機的相數(shù)可以確定AT89C52單片機所需要產(chǎn)生的相位信息。選用AT89C52的一個好處是其在接口和控制性能上都要優(yōu)于51單片機,故其擴展性能要更優(yōu)一些。通常步進電機的額定電壓為12 V左右,額定電流為8 A左右,其電流需求較大,但是電壓需求較低。因此需要在單片機和步進電機之間增加隔離電路和放大電路,以滿足系統(tǒng)需求。因此單片機控制系統(tǒng)可以通過圖1框圖實現(xiàn):

2 硬件電路設(shè)計

由圖1可知,硬件電路分為輸入輸出部分、單片機部分、步進電機部分、電源部分等。下面分別對每部分性能進行分析。

2.1 輸入輸出部分

為提高系統(tǒng)的靈活度,便于對步進電機的系統(tǒng)參數(shù)進行控制和調(diào)整,需要引入輸入設(shè)備,本處選用鍵盤。輸出設(shè)備要求可以顯示當前的控制狀態(tài)和電機運行狀態(tài),可以選用LCD設(shè)備進行顯示。

通過鍵盤可以對系統(tǒng)輸入?yún)?shù)指令和控制指令,進而控制單片機實現(xiàn)對系統(tǒng)的控制。而LCE設(shè)備的選用可以根據(jù)AT89C52的接口分布進行確定,通過LCD設(shè)備可以顯示步進電機的運行狀態(tài)和運行速度等信息。

此外,本文選用了一片8279作為鍵盤和顯示器與單片機之間的接口芯片。通過該芯片可以更好的滿足操作性能和控制性能的均衡需求。

2.2 單片機部分

單片機為該系統(tǒng)的核心模塊,本文選用AT89C52單片機產(chǎn)生控制信號。AT89C52具有8 KB的RAM和ROM,式中信號為12 MHz,可以很好的滿足系統(tǒng)需求。如果后續(xù)使用中需要進行系統(tǒng)擴展,C52單片機還提供有RAM和ROM外擴接口。

利用引腳P1.0-P1.7進行步進電機脈沖信號輸出,將引腳P3.0、P3.1、P3.2、P3.3、P3.4等分配給鍵盤控制部分,可以通過鍵盤實現(xiàn)正反轉(zhuǎn)、加減速、停止等功能操作。將引腳P2.0、P2.1、P2.2、P2.3、P2.4、P2.5、等分配給LCD顯示器,可以控制輸出顯示步進電機當前的運行狀態(tài)和運行速度。

2.3 步進電機部分

根據(jù)上文分析可知,單片機無法與步進電機直接進行連接,需要通過該隔離、放大電路實現(xiàn)連接。實際應(yīng)用中,對于強弱電的隔離通??梢圆捎霉怆姼綦x的方式,這種方式效果好,受干擾小。對于放大電路的選取,可以使用集成功放元件也可以根據(jù)實際需要配置獨立模塊。

2.4 電源部分

在系統(tǒng)框圖中可以看到,該系統(tǒng)涉及兩種不同的工作電壓,因此需要分別設(shè)計強電和弱點部分的電源。為滿足系統(tǒng)需求,可以使用集成穩(wěn)壓器和可變輸出電壓模塊分別為單片機和步進電機進行供電。需要注意的是,兩個電源不能共地。

3 軟件程序設(shè)計

硬件平臺設(shè)計完畢后,需要根據(jù)硬件電路對單片機進行系統(tǒng)編程,以滿足操作和控制需求保證各部分電路可以根據(jù)控制信號正常進行工作。系統(tǒng)軟件部分分為三部分,分別為鍵盤和顯示模塊、系統(tǒng)監(jiān)控模塊、控制信號生成模塊等。

3.1 鍵盤和顯示模塊

該模塊實現(xiàn)的功能是,對鍵盤按鍵進行確認,確認無誤后對輸入鍵值進行信號處理,如,若輸入的是輸入鍵則需要調(diào)用輸入程序、若輸入的是控制鍵則需要調(diào)用控制程序。而顯示模塊則是通過定時查詢接口數(shù)據(jù),實時顯示步進電機的工作狀態(tài)、鍵盤輸入數(shù)據(jù)等。

3.2 系統(tǒng)監(jiān)控模塊

系統(tǒng)監(jiān)控模塊在系統(tǒng)啟動后就開始運行,其主要功能是完成對鍵盤的掃描,根據(jù)掃描結(jié)果設(shè)置單片機控制幀內(nèi)容等,以滿足步進電機的操作要求。對于鍵盤的掃描通常采用中斷的方式實現(xiàn),原因在于,中斷服務(wù)程序在單片機中地位較高,當系統(tǒng)產(chǎn)生中斷時,單片機可以進行有限相應(yīng),可以更好的滿足系統(tǒng)的實時性和靈活性要求。

3.3 控制信號生成模塊

該模塊的主要作用是根據(jù)鍵盤輸入內(nèi)容控制單片機的系統(tǒng)配置和步進電機的工作模式,如設(shè)置單片機輸出控制幾相電機、步進電機的轉(zhuǎn)動方向、轉(zhuǎn)動步數(shù)、系統(tǒng)運行頻率等。該模塊主要通過調(diào)整單片機的控制幀結(jié)構(gòu)實現(xiàn)對步進電機系統(tǒng)的控制。

4 總結(jié)

本文設(shè)計了一種基于AT89C52單片機的步進電機控制系統(tǒng),該系統(tǒng)可以通過鍵盤輸入控制信息,繼而油單片機根據(jù)輸入信息發(fā)送相應(yīng)的控制信號,控制步進電機的轉(zhuǎn)動方向、轉(zhuǎn)動速率、轉(zhuǎn)動頻率等。該系統(tǒng)功能豐富、控制靈活度高、有較強的實際編程性,可適用范圍廣,具有一定的實用價值。

參考文獻

[1]何沖,王淑紅,侯勝偉,?;畚?基于AT89C52單片機的步進電機控制系統(tǒng)研究[J].電氣技術(shù),2012(4).

[2]彭礴,張明敏,林飛龍,湛翔飛,李杰,謝斌,晏敏.基于AT89S52高精度步進電機伺服控制系統(tǒng)設(shè)計[J].電子測量技術(shù),2011,34(3).

第7篇:單片機c語言范文

關(guān)鍵詞:C語言;高職;單片機

中圖分類號:G642 文獻標識碼:B

“C語言程序設(shè)計”是高職高專電子專業(yè)的專業(yè)必修課。傳統(tǒng)教學以理論為主,以學科本位的邏輯體系來設(shè)計課程的教學內(nèi)容。課程內(nèi)容沒有與高職電子專業(yè)的其他課程有機銜接,不符合高職高專技能培養(yǎng)的特點。學生在學習C語言之后,不能用之有效地解決實際問題,學生的學習積極性難以調(diào)動,因此有必要對該課程進行改革。

1 現(xiàn)狀分析

目前高等學校都把“C語言程序設(shè)計”作為理工科非計算機專業(yè)的計算機基礎(chǔ)教育課程,屬于計算機基礎(chǔ)教育課程的一部分。但課程設(shè)置并沒有考慮與其他專業(yè)課程之間的關(guān)系,沒有針對高職應(yīng)用電子技術(shù)的專業(yè)特點,成了非計算機專業(yè)學生的“計算機通識教育”課程。

雖然許多學校對“C語言程序設(shè)計”課程從教學內(nèi)容、教學手段、教學方法等方面進行了大膽的改革,把邏輯與編程解題思路(算法)放在主體地位,講解如何分析問題和解決問題;但是受“在學校里牢固掌握基礎(chǔ)知識,畢業(yè)后在實踐中積累經(jīng)驗”這種傳統(tǒng)的教學理念的影響,把培養(yǎng)學生閱讀程序、設(shè)計程序的能力,分析問題、、解決問題的能力和邏輯思維能力作為教學目標。課堂上學到的也只是用C語言解決一些數(shù)學問題,所學內(nèi)容和實際應(yīng)用相脫節(jié),認識不到“C語言程序設(shè)計”和自己專業(yè)之間的關(guān)系,學生在學習C語言之后,不能用C語言編寫為本專業(yè)服務(wù)的應(yīng)用軟件。特別對高職高專電子專業(yè)學生來說,C語言的知識成了他們專業(yè)知識結(jié)構(gòu)中的一個“孤島”。

2 改革的必要性

C語言是影響深遠的、傳統(tǒng)的、優(yōu)秀的面向過程的結(jié)構(gòu)化程序設(shè)計語言。C語言功能豐富、表達能力強、使用靈活方便、應(yīng)用面廣、代碼轉(zhuǎn)換質(zhì)量高。C語言方便進行模塊化軟件設(shè)計,還可以實現(xiàn)C語言和匯編語言的混合編程。C語言既具有高級語言的優(yōu)點,又具有低級語言的許多特點,能像匯編語言那樣直接利用CPU的硬件特性進行程序設(shè)計。既可以編寫應(yīng)用軟件,又可以編寫系統(tǒng)軟件。和匯編語言相比,C高級語言程序設(shè)計快、可讀性、可移植性和可維護性好。一般情況下,完成同樣的任務(wù),使用C高級語言比用匯編語言可提高工作效率5-10倍,在調(diào)試階段更容易體會到這一點,因此C語言特別適合單片機的開發(fā)。嵌入式系統(tǒng)中使用的嵌入式操作系統(tǒng)絕大部分也都是以C高級語言為基礎(chǔ)的,很多直接將源代碼提供給使用者。目前在單片機應(yīng)用領(lǐng)域,C高級語言越來越受到人們的重視。用C語言進行單片機程序設(shè)計已經(jīng)成為單片機開發(fā)的一個主流,是單片機開發(fā)與應(yīng)用的必然趨勢。

單片機課程是應(yīng)用電子技術(shù)及相關(guān)專業(yè)的一門重要的專業(yè)主干課,在專業(yè)基礎(chǔ)課和其他專業(yè)課方面起著重要的橋梁作用。它涉及到的基礎(chǔ)理論知識較廣,應(yīng)用范圍廣,是一門實踐性、工程性很強的技術(shù)課程,在電子技術(shù)及相關(guān)專業(yè)課程中群中占有十分重要的地位。電子專業(yè)的學生普遍將單片機用于課程設(shè)計、畢業(yè)設(shè)計和電子產(chǎn)品設(shè)計大賽等許多實踐環(huán)節(jié)。單片機應(yīng)用也是學生將來在電子類公司或電子行業(yè)工作的最基本的技能。“單片機原理與應(yīng)用”課程都是基于匯編語言的,高職高專學生很難應(yīng)用匯編語言去搞程序設(shè)計,學生學到的單片機知識不能得到應(yīng)用。

高等職業(yè)教育的培養(yǎng)目標是:培養(yǎng)既有一定理論基礎(chǔ)又有較強實踐能力,在生產(chǎn)服務(wù)第一線工作高層次的實用型、技術(shù)型人才,它不同于一般本科院校的學術(shù)型、工程型人才的培養(yǎng)目標。就高職應(yīng)用電子技術(shù)專業(yè)而言,它培養(yǎng)強電弱電相結(jié)合,以弱電為主,并能熟練應(yīng)用電氣技術(shù)、計算機技術(shù)和控制技術(shù)等現(xiàn)代科學技術(shù),具有較強實踐能力的技術(shù)管理人才。強調(diào)應(yīng)用性、實用性是高職教育的特色,教學內(nèi)容突出基礎(chǔ)理論知識的應(yīng)用和實踐能力培養(yǎng)的原則,以應(yīng)用為目的,以“必需、夠用”為度,加強針對性和實用性。

因此,高職應(yīng)用電子專業(yè)的“C語言程序設(shè)計課程”應(yīng)不同于本科相應(yīng)專業(yè),也應(yīng)不同于高職其他專業(yè)?!癈語言程序設(shè)計”課程的開設(shè)應(yīng)緊扣本專業(yè)的特點,為本專業(yè)的培養(yǎng)目標服務(wù)。如果將“C語言程序設(shè)計”變成“單片機C語言程序設(shè)計”,學生通過本課程的學習掌握單片機C語言程序設(shè)計方法,達到獨立利用C語言編寫單片機應(yīng)用程序的目的。將C語言“知識孤島”和單片機“知識孤島”連接起來,結(jié)合所學其他專業(yè)知識,使學生學會應(yīng)用單片機開發(fā)電子系統(tǒng)的基本方法。如果學生以后需要用C語言或其他高級語言開發(fā)通用計算機系統(tǒng)的應(yīng)用軟件或系統(tǒng)軟件,有了“單片機C語言程序設(shè)計”的基礎(chǔ),可以觸類旁通,很容易掌握其他高級程序設(shè)計語言。這也符合從特殊到一般,再從一般到特殊的認知規(guī)律。

3 課程改革設(shè)想:

3.1 課程內(nèi)容的改革

把“C語言程序設(shè)計”置換為“單片機C語言程序設(shè)計”,放在“單片機原理與應(yīng)用”課程之后開設(shè),將“計算機基礎(chǔ)教育”課程變成“單片機開發(fā)技能”課程。課程內(nèi)容適用于C高級語言的初學者,包括數(shù)據(jù)類型、運算符和表達式、數(shù)組、指針和函數(shù)、程序的順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)、程序設(shè)計基本知識和單片機的C編程等內(nèi)容。對C語言中較難或單片機程序不常使用的內(nèi)容,比如多維數(shù)組、指向指針的指針、鏈表等進行刪減。相關(guān)例題應(yīng)本著“深入淺出,突出實用”的指導思想,難度應(yīng)與高職高專學生的基礎(chǔ)相適應(yīng),算法不要過于復雜。單片機的C語言編程部分主要應(yīng)包括中斷、定時器/計數(shù)器、串行口、鍵盤和顯示等相關(guān)應(yīng)用,適當包含少量可編程芯片的應(yīng)用。所選內(nèi)容應(yīng)體現(xiàn)先進性、實用性和技能培養(yǎng)的特點,拋棄一些過時或不實用的內(nèi)容,把提高學生的職業(yè)技能放在突出的重要位置。整門課程應(yīng)將單片機和C語言有機結(jié)合起來,強調(diào)知識點在單片機程序設(shè)計中的應(yīng)用,體現(xiàn)“單片機C語言”的特色,避免把課程內(nèi)容分為“C語言程序設(shè)計”和“單片機C編程”兩部分。

3.2 編譯開發(fā)環(huán)境

以80C51系列為基礎(chǔ),開發(fā)環(huán)境選擇德國KeilSoftware公司的Keil uVision集成開發(fā)環(huán)境(當前版本是uVision3)。這是一個基于Windows的開發(fā)平臺,集成了編輯器、項目管理器、Cx51編譯器、Ax51宏匯編器、BL51/Lx51連接定位器和調(diào)試器,用戶群極為龐大,符合教學特點的典型性。其中Cx51是專為80C51單片機設(shè)計的C語言編譯器,生成的程序代碼運行速度高,存儲空間小。KeiluVision還提供了強大的項目管理功能,可以十分方便地進行結(jié)構(gòu)化多模塊程序設(shè)計,特別是Keil提供的純軟件模擬仿真功能(也支持硬件目標板在線仿真),非常適合教學使用。Keil調(diào)試器支持斷點管理和程序代碼的多種 執(zhí)行方式(全速、單步、執(zhí)行到指定行等)。在調(diào)試狀態(tài)下有寄存器窗口、存儲器窗口、觀察窗口和命令窗口,用于程序執(zhí)調(diào)試過程中顯示單片機寄存器、存儲器、局部變量和觀察點的狀態(tài)和輸入各種調(diào)試命令。Keil uVision的集成功能(Peripherals)菜單可以打開中斷系統(tǒng)、I/O接口、串行口、定時器計數(shù)器等狀態(tài)窗口,通過這些狀態(tài)窗口可以觀察軟件仿真結(jié)果。

Keil uVision可以與PROTEUS整合構(gòu)建單片機虛擬實驗室。PROTEUS是目前世界上最先進最完善的嵌入式系統(tǒng)設(shè)計與仿真平臺,可以實現(xiàn)數(shù)字電路、模擬電路及微控制器與外設(shè)組成的混合電路系統(tǒng)仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計等全部功能。由于PROTEUS軟件包逼真、真實的協(xié)同仿真功能,得到了包括劍橋在內(nèi)的眾多大學用戶的認可,作為電子學或嵌入式系統(tǒng)的課程教學、實驗和水平考試平臺。Keil uVision與PROTEUS通過設(shè)置聯(lián)機調(diào)試單片機系統(tǒng),在PROTEUS中完成單片機系統(tǒng)的電路原理圖繪制后,在Keil uVision集成開發(fā)環(huán)境中進行程序設(shè)計、項目的創(chuàng)建、編譯鏈接和調(diào)試,同時可在PROTEUS查看直觀的結(jié)果(如鍵盤輸入和LCD顯示等)。

3.3 教學方式的改革

高職教學應(yīng)該是基礎(chǔ)和技能的教學同步進行,甚至先教技能再教理論,在不斷實踐中掌握技能,在技能學習中提高基礎(chǔ)理論。在高級語言程序設(shè)計教學中,不能期望高職學生對每一個算法都理解。一些太復雜的算法、單片機應(yīng)用系統(tǒng)中常用芯片的驅(qū)動程序,可以以函數(shù)庫或軟件包的形式直接提供給學生,供學生在程序設(shè)計中調(diào)用,降低理論教學難度。

確立以學生為中心的教學理念。從學生實際出發(fā),以學生為本,采用多樣化、層次化的教學方法,貫徹循序漸進、深入淺出的原則。學生沒有高級語言程序設(shè)計的基礎(chǔ),在“單片機C語言程序設(shè)計”教學中要注意分散難點,縮小臺階。在內(nèi)容體例的設(shè)計上以實用為主,拋棄過多的語法細節(jié)和非通用的或?qū)嶋H用途很少的語言特性,理出重點和教學主線;采用一體化教學方法,以程序樣例為主實施教學。淡化語法教學,以程序設(shè)計帶動基本語法的學習。

上機實驗是掌握單片機C語言程序設(shè)計的必要手段。不能簡單地認為上機實驗只是輔的教學。程序設(shè)計的能力是在實際動手實踐中練就的,通過上機操作和驗證可進一步加深各種語句的理解,提高學生的編程能力。通過Keilu Vision與PROTEUS組成的聯(lián)機調(diào)試環(huán)境,熟練使用Keilu Vision和PROTEUS軟件對學生的深入學習有巨大的幫助。

第8篇:單片機c語言范文

關(guān)鍵詞: C語言 單片機 編程

1.中職C語言教學現(xiàn)狀

C語言是一門廣泛使用的計算機高級語言,中職電子類專業(yè)都開設(shè)了“C語言程序設(shè)計”課程,并為后續(xù)課程(如“單片機原理與應(yīng)用”、“單片機C語言”、“嵌入式系統(tǒng)”)做基礎(chǔ)性準備。因此,對于電子類專業(yè)的學生來說,C語言是一門必須掌握的專業(yè)基礎(chǔ)課。但從多年的教學實踐來看,中職學生數(shù)學、英語底子弱,又是第一次接觸這種抽象類的編程課程,學習主動性不強,學習目的不明確。學生反映這門課枯燥難學,大部分學生半個學期下來還沒入門,雖然有些同學能聽懂老師講的,但實際操作起來無從下手。為了激發(fā)學生學習C語言的興趣,提高編程能力,筆者結(jié)合“單片機”課程,進行了一次教學改革嘗試。

2.C語言教學內(nèi)容改革

2.1原則:夠用就行,不必深究算法。

首先,職業(yè)學校的學生大部分是普通教育分流出來的,他們的智力并不差,在動手能力等方面甚至有優(yōu)勢,但文化基礎(chǔ)知識相對薄弱,要求他們中的多數(shù)人掌握超出對應(yīng)的培養(yǎng)目標所要求的文化知識是不現(xiàn)實的,所以只能遵循夠用原則。

其次,電子專業(yè)學生不同于計算機專業(yè)學生,注重實用,不探究為什么,筆者在教學中重視怎么用,用最簡單的算法,讓學生便于理解,做到會用,能顯示程序的基本功能效果,讓學生快速體驗成功的樂趣。

2.2根據(jù)專業(yè)需要選擇教學內(nèi)容。

C語言作為電子專業(yè)的專業(yè)基礎(chǔ)課,照搬計算機專業(yè)的教學內(nèi)容是不切實際的,筆者根據(jù)多年的C語言和單片機教學,了解哪些知識點特別重要必須掌握,哪些可以完全不涉及,對教學內(nèi)容進行了大膽的調(diào)整,與單片機中c語言的實際編程相聯(lián)系。這樣可以抽出時間抓住重點,提高教師教、學生學的效率。

為單片機服務(wù)的只需要學變量、表達式、if條件選擇、witch-case、for、while循環(huán)、函數(shù)數(shù)組那些結(jié)構(gòu)體、指針、各種排序算法等,就可以暫時舍棄,等到學生入門了,自己回去專研,在優(yōu)化液晶點陣字時候再學,這時學習起來就不難了,可以達到事半功倍的效果。

2.3c語言和單片機結(jié)合教學。

一個知識點的C語言代碼在C語言編譯環(huán)境中運行非??菰?,學生往往不知所言,實訓環(huán)節(jié)將C語言和單片機結(jié)合后,有利于提高學生的興趣,把興趣放在首要環(huán)節(jié),讓學生親自動手,體驗編程的樂趣。我校單機實訓室有30套亞龍YL-236單片機實驗臺,可以滿足一個班級上級練習的需要。由于學生沒接觸過單片機,初期的連線需要花點時間讓學生熟悉,教室的投影直接顯示接線方法,在老師一一檢查接線后,在保證連線后,就可以實施實訓環(huán)節(jié)的教學。

實訓教學內(nèi)容與單片機項目,筆者簡單列出下面表格,教學內(nèi)容對應(yīng)在單片機中的項目,在項目中學生掌握C語言的各個知識點。

由于最簡單的單片機程序都會出現(xiàn)循環(huán)、函數(shù)等知識,對于這些知識,采用黑箱原理,即讓學生不用理會程序的意思,直接復制教師的代碼,集中精力研究教師要求的實訓內(nèi)容。比如以下程序:

#include //包含單片機寄存器的頭文件

voidmain(void)

{

P1=36/5; //求整數(shù)

while(1){//無限循環(huán)防止程序“跑飛”

}

}

通過這個程序,點亮led燈,本程序用于變量和表達式的學習,關(guān)于頭文件,while(1)循環(huán)這兩個知識點學生不必深究。表達式獲得的值通過WedWin軟件編譯環(huán)境顯示變量的值和點亮的8個led燈亮滅組合成二進制數(shù)。表達式的數(shù)值讓學生自由變換,列出自己表達式情況,完成實驗報告,如下表格。

通過這個過程,電子電工專業(yè)學生一開始就把C語言、單片機、二進制數(shù)有機集合在了一起,比單純的C語言的教學更加生動,趣味性更強,實訓結(jié)果直觀。同時在程序中簡單修改,可以讓8個led流水的動起來,流動的模式變幻無窮。

3.結(jié)語

將“C語言”與“單片機”相結(jié)合的教學方法是一個大膽的嘗試,目的是提高學生的學習興趣,培養(yǎng)學生C語言的邏輯思維能力和單片機的動手能力。通過簡單的單片機應(yīng)用使學生產(chǎn)生成就,學生在兩方面的能力都得到了鍛煉。將兩門課程結(jié)合起來,不僅克服了厭學、機械學習的弊端,而且通過實際的操作,提高了學生們的動手能力,為學生們進一步深造或者進入社會打下了堅實的基礎(chǔ)。

參考文獻:

[1]蘇波,陶寧.“C語言”與“單片機”相結(jié)合的教學研究.光學技術(shù),2010(12):109-110.

[2]汪宋良.高職電子類“C語言程序設(shè)計”課程改革研究.職教通訊,2013(15):12-16.

第9篇:單片機c語言范文

關(guān)鍵詞單片機教學 應(yīng)用能力 實踐能力 教學改革

中圖分類號:G420文獻標識碼:A

目前在許多高校里,《單片機原理及應(yīng)用》這門課程是應(yīng)用電子、計算機、自動化甚至機電一體化等專業(yè)學生的必修課,尤其從學生就業(yè)方面來考慮,由于單片機是一門實踐性很強的課程,因此對學生的應(yīng)用能力和實踐能力的培養(yǎng)是必要的。筆者結(jié)合多年單片機教學的實際情況和學生平時上課的表現(xiàn)以及考試的結(jié)果,仔細分析學生的反饋意見,發(fā)現(xiàn)目前的單片機教學當中存在著諸多問題和不足亟待解決和改革。為了保證教學質(zhì)量和教學效果,讓學生畢業(yè)后能夠盡快適應(yīng)工作崗位,基于應(yīng)用能力和實踐能力培養(yǎng)的教學改革勢在必行。

1 明確教學目標,合理組織教學內(nèi)容

目前有些高校開設(shè)本課程的目標并不明確。目標不明確主要表現(xiàn)在三個方面:一是“為什么要學?”,二是“學什么?”,三是“如何學?”。教學目標不僅要讓學生在他的求職簡歷中反映這門課程的成績,而且要使學生在招聘企業(yè)的有關(guān)單片機的軟硬件設(shè)計的筆試或面試中,能夠反映學生的應(yīng)用能力和實踐能力。考慮到單片機的概念多、專有名詞多、內(nèi)容抽象、編程語言指令多、綜合性強和解決實際問題的能力強等特點,在教學時數(shù)的限制下對于單片機的教學內(nèi)容的選擇和組織至關(guān)重要。

目前《單片機原理及應(yīng)用》的教學內(nèi)容分為理論教學和實踐教學兩部分,理論教學內(nèi)容主要包括:單片機硬件結(jié)構(gòu),匯編語言指令系統(tǒng)和程序設(shè)計,系統(tǒng)擴展, 接口技術(shù)及應(yīng)用系統(tǒng)設(shè)計;實踐教學主要包括實驗和課程設(shè)計。

長期以來,單片機的教學都是以匯編語言為主,而匯編語言的學習和單片機抽象的內(nèi)部硬件結(jié)構(gòu)密切相關(guān),其程序涉及到存儲器、寄存器、狀態(tài)標志等,使學生在學習的過程中難閱讀、難理解、難編程,容易感覺枯燥乏味從而失去了學習的激情和興趣,致使教學質(zhì)量和效果都不盡人意。而C語言是一種結(jié)構(gòu)化的高級語言,它具有豐富的庫函數(shù),可以減少大量的代碼編寫負擔,可以輕松實現(xiàn)復雜的數(shù)值計算。同時,C語言較匯編語言有可讀性、可維護性好,便于維護、調(diào)試以及移植容易等優(yōu)點,越來越多的單片機編程人員轉(zhuǎn)向使用C語言開發(fā)程序。另外,一般學生在學習單片機之前剛剛學習過標準C語言,而且單片機的C語言KEIL C的大部分和標準C是一樣的,這樣有利于學生在短期內(nèi)掌握單片機的C語言編程。

在實踐教學中,由于Proteus具有強大的仿真功能以及原理圖和PCB設(shè)計能力,而且可以與Keil C整合構(gòu)建完整的實驗開發(fā)平臺,①完全可以替代硬件電路相對固定的實驗箱或?qū)嶒炁_,讓學生進行豐富靈活的實踐。使用Proteus進行實踐教學既可以激發(fā)學生的學習興趣,又能鍛煉學生的動手能力,培養(yǎng)學生從原理圖制作,程序開發(fā),仿真驗證和測試以及PCB制作等一系列的全面且完備的能力。另一方面,學校實驗室引入Proteus,可以減少大量由于實驗設(shè)備的損壞和維護帶來的資金投入。因此,在單片機的教學中引入單片機C語言開發(fā)工具Keil C51和仿真工具Proteus的相關(guān)內(nèi)容,增加一些具體應(yīng)用實例的教學和實踐,以培養(yǎng)學生單片機的應(yīng)用能力和實踐能力為目標,將有助于提高單片機教學的質(zhì)量和教學效果。

2 充分利用現(xiàn)有優(yōu)勢資源,改革教學手段,構(gòu)建新的教學模式

目前大多數(shù)院校的單片機教學手段都是以板書講授為主,缺乏生動、直觀的一些輔助手段,實驗教學大多以單片機實驗箱或?qū)嶒炁_為實驗平臺,而且實驗時間一般安排在“匯編指令系統(tǒng)”講完之后,理論學習和實驗進行時間的不對應(yīng),無法實現(xiàn)課堂上理論教學和實驗室的實踐相聯(lián)系。另外實驗的內(nèi)容也多為驗證性實驗,很少進行開放性和設(shè)計性的實驗,導致學生過度追求實驗結(jié)果,而忽略了軟硬件設(shè)計和調(diào)試等過程,單片機的應(yīng)用能力、開發(fā)技巧得不到很好的鍛煉。因此,在教學手段方面引入多媒體教學,在單片機C語言開發(fā)工具Keil C51和仿真工具Proteus的平臺支持下,②先利用Proteus可以快速地完成元器件的放置和原理圖的設(shè)計,然后在Keil C51開發(fā)環(huán)境下編寫程序,把源程序編譯連接后,學生可從窗口中清楚地看到程序每條指令的地址、機器碼和源代碼。而且還可以通過單步運行,還可看到單片機內(nèi)部特殊功能寄存器的變化。這樣不僅可以幫助學生比較直觀地學習單片機的內(nèi)部硬件結(jié)構(gòu),而且容易理解堆棧、定時器、中斷向量、中斷調(diào)用等抽象的概念。在Keil C51下生成一個可運行的目標文件(如HEX文件),再添加到Proteus的平臺下就可以進行系統(tǒng)仿真了。Proteus所進行的是一種交互式仿真,在仿真進行中可以對各控制按鈕和按鍵等進行操作,系統(tǒng)實時地輸出對輸入的響應(yīng)。這樣在課堂教學中配合多媒體手段,可以節(jié)約大量的繪圖時間,而且可快速靈活地修改硬件設(shè)計和軟件編程,實現(xiàn)不同功能的應(yīng)用設(shè)計。

利用多媒體不僅可以增加知識的傳授量,使教學更直觀,教學內(nèi)容更加豐富多彩、形象、生動,而且可以激發(fā)學生的學習興趣,促進學生對知識的理解和應(yīng)用。這樣實驗教學可以和理論教學同步進行,在教室中教師利用仿真軟件和學生一起做驗證性實驗,③課下讓學生提前在Keil C51和仿真工具Proteus的平臺下做設(shè)計性、動手性實驗,最后到實驗室進行驗證和實踐,這樣就可增強他們自主分析問題和解決問題的能力。課程學完之后通過單片機課程設(shè)計這一實踐環(huán)節(jié),使學生從單片機的選型、接口電路設(shè)計、編程及調(diào)試等各環(huán)節(jié)進行一次系統(tǒng)的綜合訓練,例如電子鐘、步進電機控制器、單片機交通燈控制器等的軟、硬件設(shè)計,使學生具有單片機應(yīng)用系統(tǒng)的初步設(shè)計能力。

在教學手段方面,采用板書和多媒體相結(jié)合進行直觀教學以及學生通過實驗室實踐操作外,還應(yīng)充分發(fā)揮校園網(wǎng)、Internet在教學中的作用。教師可以引導學生學會查閱、消化和運用一些網(wǎng)絡(luò)資源,如廠家提供的芯片技術(shù)資料、單片機論壇和教學網(wǎng)站里面大量的設(shè)計案例、技術(shù)文章和單片機軟硬件資源,為自己進行單片機軟硬件設(shè)計打下良好基礎(chǔ)。

3 綜合運用多種教學方法,提高教學質(zhì)量和效果

在單片機的教學中根據(jù)不同的教學對象和教學內(nèi)容采用不同的教學方法,如演示法、實物法、互動法、類比法、啟發(fā)法、討論法、任務(wù)驅(qū)動法等,可以起到事半功倍的教學效果。上單片機第一堂課,教師可以帶一個單片機實驗板的實物到教室,為學生演示一個單片機控制的“走馬燈”實例,其它上課時間也可以根據(jù)需要通過實物或多媒體向?qū)W生演示單片機的工作過程,這不僅可以有效激發(fā)學生學習單片機的興趣,而且使學生對單片機及電路有一個感性認識,為其逐步學會應(yīng)用單片機進行軟硬件設(shè)計打下一定的基礎(chǔ)。講課過程中要有師生間的交流互動,鼓勵學生質(zhì)疑,并為學生提供自由提問、質(zhì)疑、探究、討論問題的機會,讓學生通過個人、小組、集體等多種形式解難釋疑。作為教師,要密切注意學生在教學活動中的表現(xiàn),適當適時啟發(fā)學生思考,充分挖掘不同層次學生的潛力,這是取得良好教學效果的保證。另外,對重點概念卻比較抽象的知識可采用類比法進行教學。比如中斷、定時器溢出概念,可分別用接電話和鬧鐘等生活中的事例來類比講解,有助于學生理解和掌握這些難懂的概念。當學生對單片片機的應(yīng)用有了初步了解后,可以針對某個知識塊采用任務(wù)驅(qū)動法對學生提出具體的設(shè)計要求,比如對并行I/O口的使用這部分內(nèi)容,可以給出這樣一個任務(wù),單片機的P1口連接8個按鍵,P0口通過上拉電阻接8個發(fā)光二極管,編程實現(xiàn)按下某個按鍵對應(yīng)發(fā)光二極管亮的程序。運行成功后可以改變硬件連接,比如斷開上拉電阻,觀察運行結(jié)果;或者改變P1口為P2口,如何修改程序等,通過對任務(wù)的實現(xiàn)過程,可以達到對并行I/O口的靈活使用。

4 結(jié)束語

本文基于學生單片機應(yīng)用能力和實踐能力的培養(yǎng),從教學內(nèi)容、教學手段、教學模式和教學方法等多方面提出了單片機改革的必要性和具體措施,在單片機的教學中引入單片機C語言開發(fā)工具Keil C51和仿真工具Proteus,在實際教學過程中取得良好的教學效果,值得其他院校借鑒。

注釋

①房惠龍.基于Proteus的單片機實驗平臺的創(chuàng)建[J].常州:常州信息職業(yè)技術(shù)學院學報,2007(6).