公務員期刊網(wǎng) 精選范文 單片機程序設(shè)計范文

單片機程序設(shè)計精選(九篇)

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

單片機程序設(shè)計

第1篇:單片機程序設(shè)計范文

關(guān)鍵詞:SystemC;51單片機;仿真環(huán)境

中圖分類號:TP332 文獻標識碼:A 文章編號:1007-9599?。?012) 17-0000-02

1 SystemC介紹

SystemC由C++衍生而來,在C++基礎(chǔ)上添加硬件擴展庫和仿真庫構(gòu)成,從而使SystemC可以建模不同抽象級別的包括軟件和硬件的復雜電子系統(tǒng),既可以描述純功能模型和系統(tǒng)體系結(jié)構(gòu),也可以描述軟硬件的具體實現(xiàn)。

事物級建模因不考慮很多底層細節(jié),所以進行建模時間短,并且可以將重點放在如何通信,而不是通信在更底層如何實現(xiàn)。事物級建??梢允褂檬录?qū)動,由一事件可驅(qū)動一系列行為,因此建??梢栽谠缙谶M行。

在設(shè)計軟件算法以及接口說明時,往往采用C++語言,主要是因為C或C++語言提供了在開發(fā)緊湊及有效的系統(tǒng)時所需要的控制以及數(shù)據(jù)抽象。而大多數(shù)的設(shè)計人員都熟悉C或C++語言,同時,大部分的開發(fā)工具都與C或C++有一定的關(guān)聯(lián)。

SystemC類庫提供了構(gòu)建系統(tǒng)結(jié)構(gòu)模型所必須的元素,這些元素包括:硬件時序、芯片工作的若干激勵信號等。而這些元素在標準的C++語言所缺乏的特性,若將這些元素加入C中需要擴展語言本身的屬性,這樣做對整個行業(yè)而言是很難接受的。面向?qū)ο蟮腃++語言則可通過類來擴展語言本身,而無需添加任何新的syntactic。SystemC給出了這些構(gòu)建系統(tǒng)結(jié)構(gòu)模型所必須的元素并允許設(shè)計人員繼續(xù)利用所熟悉的C++語言以及其他開發(fā)工具進行系統(tǒng)設(shè)計。[2]

本文的系統(tǒng)是利用SystemC3.0.1實現(xiàn)了一個51單片機程序設(shè)計的仿真環(huán)境。

第2篇:單片機程序設(shè)計范文

一、機器周期和指令周期

1.機器周期

機器周期是指單片機完成一個基本操作所花費的時間,一般使用μs來計量單片機的運行速度。MCS-51單片機的一個機器周期包括12個振蕩脈沖周期,因此,一個機器周期就是振蕩脈沖的十二分頻。如果MCS-51單片機的振蕩脈沖頻率為12MHz時,那么執(zhí)行一個機器周期就只需要1μs;如果采用的是6MHz的晶振,那么執(zhí)行一個機器周期就需要2μs。

2.指令周期

指令周期是指單片機執(zhí)行一條指令所需要的時間,一般以單片機的機器周期來計量指令周期。MCS-51單片機的指令周期根據(jù)指令的不同,分成單周期指令(執(zhí)行這條指令只需一個機器周期)、雙周期指令和四周期指令。除了乘、除兩條指令是四周期指令之外,其余MCS-51單片機指令均為單周期或雙周期指令。如果MCS-51單片機采用的是12MHz晶振,那么它執(zhí)行一條指令一般只需1~2μs的時間;如果采用的是6MHz晶振,執(zhí)行一條指令一般就需2~4μs的時間。

現(xiàn)在的單片機有很多種型號,但每個型號的單片機器件手冊中都會詳細說明執(zhí)行各種指令所需的機器周期。我們可以依據(jù)單片機器件手冊中的指令執(zhí)行周期和單片機所使用晶振頻率,來完成需要用軟件的方法進行的延時的程序設(shè)計。

二、延時指令

在MCS-51單片機指令中并沒有真正的延時指令,從以上的概念我們知道單片機每執(zhí)行一條指令都需要一定的時間。所以可以讓單片機不斷地執(zhí)行沒有具體實際意義的指令(通常把這些指令稱為啞指令),就可以達到軟件延時的效果。

1.數(shù)據(jù)傳送指令MOV

數(shù)據(jù)傳送指令功能是將數(shù)據(jù)從一個地方復制、拷貝到另一個地方。如:MOV R7,#80H,執(zhí)行這條指令的功能是將立即數(shù)80H送到寄存器R7。就單這條指令而言并沒有任何實際意義,而執(zhí)行該指令則需要一個機器周期。

2.空操作指令NOP

空操作指令功能只是讓單片機執(zhí)行沒有意義的操作,消耗一個機器周期。

3.減1條件轉(zhuǎn)移指令DJNZ

減1條件轉(zhuǎn)移指令功能是將第一個操作數(shù)的內(nèi)容減1,判斷所得結(jié)果是否為0,不為0則轉(zhuǎn)移到指定地點,為0則順序往下執(zhí)行。

利用以上三條指令的組合就可以比較精確地用軟件的方法設(shè)計出所需要的延時程序。

三、50ms延時程序的設(shè)計

50ms延時程序的設(shè)計(設(shè)晶振頻率f=12MHz,則機器周期為1μs)(見下表)。

①MOV R6,#100在整個程序中只被執(zhí)行一次,且為單周期指令,所以耗時1×1μs。

②MOV R7,#250從②看到④只要R6-1不為0,就會返回到這句,共執(zhí)行了R6次,共耗時1×100μs。

③DJNZ R7,I2只要R7-1不為0,就反復執(zhí)行此句(內(nèi)循環(huán)R7次),又受外循環(huán)R6控制,所以共執(zhí)行R7*R6次,因是雙周期指令,所以耗時2×R7×R6=2×250×100μs。

④DJNZ R6,I1從④看到②只要R6-1不為0,就會R6次執(zhí)行這句,因是雙周期指令,所以耗時2×100μs。

⑤RET是一條子程序返回指令。在整個程序中只被執(zhí)行一次,且為雙周期指令,所以耗時2×1μs。

所以總延時時間計算為:

t=(1×1+1×100+2×250×100+2×100+2×1)×機器周期=50303μs=50.3ms

第3篇:單片機程序設(shè)計范文

關(guān)鍵詞:單片機;課程實踐;答辯;KEIL C

中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2013)36-8369-02

單片機課程實踐是高校自動化專業(yè)集中實踐環(huán)節(jié)的必修課,是學生學習《單片機原理》課程后,進行的一次全面的綜合實踐,其目的旨在加深對單片機基礎(chǔ)理論和基本知識的理解,培養(yǎng)學生具有單片機系統(tǒng)應用軟件設(shè)計和開發(fā)的能力,在具體實現(xiàn)過程中強化學生的實踐意識,提高應用能力、創(chuàng)新意識和合作精神。在項目的實踐中,使得學生掌握一定的理論與技術(shù)知識,而且應該樹立管理理念,建立項目工程思維觀念,而這一點正是高級語言編程思維的一種體現(xiàn)。

通過將單片機課程實踐和高級語言程序設(shè)計實驗相結(jié)合,使學生在理解單片機理論和高級語言編程思想的基礎(chǔ)上,實際動手開發(fā)一個實際的應用系統(tǒng),來提高綜合運用所學理論知識的能力。

1 研究內(nèi)容或?qū)ο?/p>

引導學生運用已學的單片機理論知識、單片機程序設(shè)計方法和高級語言編程思想,具體設(shè)計一個實用的小型單片機應用系統(tǒng),開發(fā)設(shè)計過程按以下順序進行――選定課題、調(diào)查用戶需求、總結(jié)歸納數(shù)據(jù)流程、分析性能、書寫需求分析及總體設(shè)計報告(包括組成原理圖、硬件連接、程序流程、系統(tǒng)功能模塊)、完成應用系統(tǒng)的開發(fā)、撰寫課程實踐報告、系統(tǒng)驗收、組織課程實踐答辯。讓學生在這一系列工作中綜合運用單片機系統(tǒng)原理以及編程語言等相關(guān)課程知識,培養(yǎng)學生的綜合素質(zhì)。

根據(jù)單片機課程實踐和專業(yè)課程實踐兩個實踐教學環(huán)節(jié)各有4~5周但分散的實際情況,考慮將其進行整合。并在實踐教學環(huán)節(jié)中安排相應的指導老師對學生進行必要的指導和幫助,為學生提供分析思路,解決學生項目完成中碰到的實際問題。

2 研究擬達到目標

通過在單片機課程實踐中結(jié)合高級語言編程思想,使學生在掌握單片機理論基礎(chǔ)知識的同時,通過參與項目的分析、設(shè)計與實現(xiàn),建立軟件工程理念,具備一定的理論與單片機實物實踐相結(jié)合、解決實際應用問題的能力。同時在完成項目的過程中,鍛煉科研開發(fā)能力和科研論文寫作能力,為大四的畢業(yè)設(shè)計和畢業(yè)論文的順利完成奠定基礎(chǔ),并為以后工作中的理論與實踐相結(jié)合奠定良好的基礎(chǔ)。

使學生在單片機課程實踐和高級語言程序編程實踐相結(jié)合的實踐教學環(huán)節(jié)中,利用所學的單片機系統(tǒng)原理和C語言程序設(shè)計基礎(chǔ)知識設(shè)計單片機應用系統(tǒng),解決單片機系統(tǒng)應用中的實際問題,掌握高級語言編程思想,借助相關(guān)編程工具,完成一個小型項目的自主分析、設(shè)計與實現(xiàn)。

3 主要研究方法

教師提供部分項目供學生選擇,學生亦可自擬項目,但課題的選擇要由教師審查核準。項目盡量選擇實際需求的題目,讓學生走出校園,通過調(diào)查走訪,了解國內(nèi)單片機應用發(fā)展的狀況,開闊眼界,而且在開發(fā)一個真實項目的過程中,帶來求知的源動力,激發(fā)學生自主學習的渴望以及創(chuàng)造力;對于虛擬項目,要求學生做到切合實際需求,能解決一定的應用問題,有一定的應用價值。

編程開發(fā)工具原則上推薦學生使用KEIL C,如果學生認為其它開發(fā)工具更適合可由學生自主選擇。由于實際可用的編程開發(fā)工具與日俱增且不斷更新,為此在課程實踐中,對學生開發(fā)工具的選擇不做過多限制,使得學生可以選擇自己感興趣的程序設(shè)計工具進行項目開發(fā),既鍛煉了學生自學的能力,又能讓學生成為項目開發(fā)的決策者,這種主人翁意識使得學生變被動學習為主動學習,從而激發(fā)學生自主學習的積極性。

為了防止學生對課程實踐任務敷衍了事,對課程實踐的考核方式由原來的提交程序和文檔改變?yōu)榇疝q的方式。且在集中教學環(huán)節(jié)之前就讓學生明確單片機課程實踐的任務,同時考慮在集中教學環(huán)節(jié)結(jié)束后適當放寬學生上交可運行的項目程序和課程實踐報告以及組織答辯的時間,讓學生能更好的延續(xù)自主學習的積極性并進一步完善項目的開發(fā)。

4 特色、創(chuàng)新及推廣應用價值

通過將單片機課程實踐和高級語言程序設(shè)計基礎(chǔ)實驗相結(jié)合,讓學生在項目的分析、設(shè)計、與實現(xiàn)的過程中掌握單片機理論知識、單片機系統(tǒng)應用的設(shè)計方法和高級語言程序編程思想 ,提高自動化專業(yè)學生理論與實踐相結(jié)合的能力,激發(fā)學生的學習積極性和主觀能動性,提高學生解決實際應用問題的能力。

《單片機原理》課程實踐教學,將單片機課程實踐和高級語言程序設(shè)計實驗兩個教學環(huán)節(jié)有機整合,讓學生能在該實踐教學環(huán)節(jié)中綜合運用單片機系統(tǒng)原理和高級語言程序設(shè)計基礎(chǔ)以及相關(guān)編程思想等多種知識,培養(yǎng)初步的科研能力和科研論文寫作能力以及團隊合作精神。并通過組織課程實踐答辯使學生進行類似畢業(yè)答辯的演習。

在自動化專業(yè)學生的單片機課程實踐教學環(huán)節(jié)中,通過團隊合作的方式,以共同完成項目為目標,讓學生在單片機課程實踐中綜合運用所學的單片機系統(tǒng)原理和高級語言程序設(shè)計基礎(chǔ)的理論知識來完成項目的分析與設(shè)計,并借助相關(guān)的編程語言來完成項目的編程實現(xiàn)。將原本獨立但有高度關(guān)聯(lián)的兩個實踐教學環(huán)節(jié)進行有機整合,可以讓學生有更多的時間來系統(tǒng)而連續(xù)的綜合運用所學的相關(guān)知識,進而更好的將理論與實踐進行有機結(jié)合,激發(fā)學生的學習熱情,提高學生的學習積極性。

第4篇:單片機程序設(shè)計范文

關(guān)鍵詞: C語言;單片機;開發(fā);應用

作為一種智能化工具,單片機的開發(fā)在傳統(tǒng)上來說更傾向于使用匯編語言,而高級語言一直使用的甚少。但面對目前計算機領(lǐng)域技術(shù)發(fā)展的最新環(huán)境,匯編語言對于單片機開發(fā)來說已經(jīng)不是最適合的編程語言了。從長遠來看,將類似于C語言這樣的高級計算機語言運用于單片機開發(fā)的技術(shù)雖然目前尚未成熟,但卻是單片機開發(fā)技術(shù)更為完善和發(fā)展的大勢所趨。

1 單片機的開發(fā)

近代計算機技術(shù)發(fā)展的突出特點是微電子技術(shù)的蓬勃興起,作為微電子技術(shù)發(fā)展的代表,單片機逐漸被應用于生活的各個領(lǐng)域。它的出現(xiàn)使近代計算機技術(shù)向前邁進了一大步,更從系統(tǒng)分支上使計算機形成了兩大系統(tǒng)分支:通用系統(tǒng)和嵌入系統(tǒng)。在現(xiàn)代電子系統(tǒng)中,單片機有其無可比擬的優(yōu)越性:成本低、芯片體積小、性能好,因此,單片機的適用領(lǐng)域也非常廣泛。在我們?nèi)缃竦纳钪?,單片機技術(shù)已成功被滲入到儀器儀表、家用電器、汽車機械等領(lǐng)域,是智能化工具的代表。

1.1 單片機開發(fā)的特征

目前單片機的開發(fā)主要具有以下特征:“擴展的串行方式、廣泛的運用在片程序儲存器技術(shù)、全盤CMOS化、8位機的主導地位、逐步使用C語言”[1]。上述特征概括性的展示了單片機技術(shù)目前的發(fā)展狀況,其中,C語言的使用已經(jīng)開始成為單片機技術(shù)開發(fā)的主要語言。

1.2 單片機開發(fā)的語言

應用于單片機開發(fā)的語言主要有兩種:匯編語言與高級語言,其中高級語言以C語言為代表。匯編語言相較C語言來說具有較高的可控性,使用起來較為簡便,因此在單片機開發(fā)中運用的較為廣泛。隨著目前處理器對C語言的運用逐漸增多,結(jié)合C語言相較于匯編語言來說具有更強的可移植性的特點,在對處理器內(nèi)部結(jié)構(gòu)的具體情況不甚清楚的狀況下,處理C語言的編譯器也可很快上手,因此,C語言比匯編語言更加適用于目前的單片機開發(fā)系統(tǒng)。

2 C語言應用于單片機開發(fā)

作為編譯型語言,C語言兼具高級語言和匯編語言的特點和功能,因其自身強大的可移植性,C語言在單片機的開發(fā)應用中有很大的便捷性。C語言主導結(jié)構(gòu)化的程序設(shè)計方式,自頂向下展開。使用C語言進行單片機開發(fā),即使沒有對單片機的硬件結(jié)構(gòu)的詳細了解,編譯器也可以按照自頂向下的設(shè)計方式使變量儲存單元得到合理有效的分配,如此設(shè)計出的單片機程序十分可靠易行。

2.1 特點

作為程序設(shè)計語言中的一種,C語言以其結(jié)構(gòu)化的特征被廣泛運用于程序開發(fā)。C語言具有以下特點:功能性強、結(jié)構(gòu)性好、高度的可移植性(不同的機型都可運行,面向用戶)。此外,相比于匯編語言,C語言這種編譯型程序設(shè)計語言具有更強的可讀性,這主要是得益于該種語言有功能強大的庫函數(shù)、高效的編譯能力和迅捷簡便的運算。

使用C語言進行單片機開發(fā)程序的編寫,程序開發(fā)者不用時時與硬件接觸,能夠?qū)⒕θ考杏谒伎汲绦虻乃惴ê凸δ埽瑢τ谝恍┈嵥榈募毠?jié)問題可以大而化之不必過于在意,因此C語言比匯編語言更適應一般人的思維習慣,更能節(jié)省程序編寫的時間。

除了上述兩點之外,C語言在自身改進和擴充方面也是十分便捷的,這主要得益于它功能完善的程序結(jié)構(gòu),此種強大的程序結(jié)構(gòu)很適合用來設(shè)計模塊化程序。“自頂向下、逐步求精”是結(jié)構(gòu)化程序設(shè)計的主要原則,C語言在應用于單片機系統(tǒng)開發(fā)時主要采用該種設(shè)計方法。這種方法的優(yōu)勢就在于可以使模塊功能得到系統(tǒng)化的分工,每個模塊有每個模塊的任務。

2.2 C語言對單片機的優(yōu)化

單片機開發(fā)目前被廣泛應用于工業(yè)測控領(lǐng)域中的嵌入式系統(tǒng),這是利用C語言對單片機系統(tǒng)資源的優(yōu)化,這樣的應用使得單片機開發(fā)所面對的工作環(huán)境和內(nèi)容日趨復雜,最繁瑣的便是軟件的設(shè)計。由于工作任務艱巨,設(shè)計人員尤其需要考慮控制系統(tǒng)單片機的資源分配(軟硬件方面),而單片機系統(tǒng)的資源量卻不夠充裕。這種不充裕主要體現(xiàn)為結(jié)構(gòu)簡單的CPU和片內(nèi)結(jié)構(gòu)以及缺少程序存儲器等方面的資源。

基于以上原因,利用有限的資源做好C語言的程序設(shè)計成為單片機開發(fā)的關(guān)鍵環(huán)節(jié)。C語言作為高級計算機語言利弊并存,雖然優(yōu)點很多,但是不能忽視的是,C語言由于生成代碼長,造成占用存儲空間大,基本在20%~50%左右,這就要求我們在具體操作的時候要知曉軟硬件的任務所屬,根據(jù)其不同的優(yōu)勢來分配任務,對系統(tǒng)任務也要做到預先分析。因此,當C語言運用于單片機開發(fā)時,對程序的優(yōu)化是需要適當進行的。這不僅是C語言本身的特點所決定的,也是單片機開發(fā)的現(xiàn)狀所決定的。

2.3 開發(fā)環(huán)境

以C語言編程的單片機應用開發(fā)軟件有很多,其中KEILC51

以其完善的性能成為這其中的佼佼者?!斑@款軟件既能編輯仿真,又能編譯,它同時支持不同公司的以MCS51為架構(gòu)的芯片,也支持匯編和C語言的程序設(shè)計”[2]。這款軟件功能強大,尤其是在程序的調(diào)試和仿真軟件方面具有卓越的功能,方便學習使用和投入工作。在這種單一卻不失靈活的開發(fā)環(huán)境中,C語言被集成于統(tǒng)一的開發(fā)環(huán)境,“這個集成開發(fā)環(huán)境包含:編譯器,匯編器,實時操作系統(tǒng),項目管理器,調(diào)試器”[3]。這種單一卻不失靈活的開發(fā)環(huán)境有如下特點:

該軟件的工程由三部分組成:源文件、開發(fā)工具選項、編程說明。該軟件的特點就是一對多(一個工程對應產(chǎn)生一個或N個目標程序),從而構(gòu)成多個組。

該軟件可以滿足用戶瀏覽源文件的需求,且方便快速,可以尋找文件,全局搜索文件,在集成開發(fā)的環(huán)境下也可保證用戶功能得以啟動?!傲硗釱EILC51可以在編輯器內(nèi)編輯、調(diào)試程序,它能提供一種自然的調(diào)試環(huán)境,使你更快速地檢查和修改程序”[4]。

2.4 C語言在單片機開發(fā)中運用的步驟

C語言在單片機開發(fā)中運用的步驟主要有:編寫編譯源程序和連接轉(zhuǎn)換目標代碼。除了這兩方面的主要內(nèi)容之外,當程序設(shè)計結(jié)束之后,還應該將“源程序轉(zhuǎn)換成在單片機上能運行的HEX件,使單片機能執(zhí)行編寫好的程序”[5]。具體的C語言在單片機開發(fā)中的步驟如下所述:

1)安裝軟件。作為商業(yè)軟件,我們在KEIL的網(wǎng)站上可以下載到軟件的安裝包,這個過程很簡單,只要跟隨軟件提示安裝即可。首先對安裝包進行解壓,然后打開SETUP.EXE文件,點擊安裝,按照提示輸入序列號并在詢問是否接受版權(quán)信息時點擊接受按鈕,最后按要求完成安裝。

2)進行C源文件的創(chuàng)建工作。第一步建立新項目,在新項目中添加以前就有的程序文件或者建立新文件。第二步建立一個新的程序文件,找到新文件的文字編輯窗口,在其中編寫程序,即可生成C源文件。

3)編譯并調(diào)試。編譯調(diào)試是C語言運用于單片機開發(fā)的中間階段。這一階段首先要求軟件操作者調(diào)整到調(diào)試模式,然后使用仿真器在源程序的一級進行程序調(diào)試,調(diào)試的時候要注意對已建立的源文件糾錯,同時編譯源程序,在使用C51編譯器的基礎(chǔ)上生成目標文件或浮動的目標碼模塊。最后,將編譯好的模塊連接,生成文件。

4)最后進行生成HEX文件的工作。作為整個步驟的最后一步。生成文件對C語言的運用有著非常重要的作用,也使單片機開發(fā)在性能、功效上有了現(xiàn)實的意義。進行這一步首先要把目標文件生成HEX文件,該文件的主要功能是燒寫芯片。該文件以Intel公司所提出的數(shù)據(jù)寬度為字節(jié),“文件轉(zhuǎn)換后所生成的HEX文件可以通過編程器寫入單片機的程序存儲器,也可以用仿真器進行調(diào)試”[6]。

3 總結(jié)

C語言在單片機開發(fā)中的運用目前比較廣泛,它使單片機應用于生產(chǎn)生活的時候更為有效,同時極高的開發(fā)效率將單片機的使用推廣到了生產(chǎn)生活的各個方面。面對目前計算機領(lǐng)域技術(shù)發(fā)展的最新環(huán)境,匯編語言對于單片機開發(fā)來說已經(jīng)不是最適合的程序編寫技術(shù)了。綜上所述,C語言應用于單片機的開發(fā)對單片機在未來運用于更廣闊的空間具有很大的促進作用。

參考文獻:

[1]居水榮,單片機開發(fā)系統(tǒng)綜述[J].半導體情報,2011(01).

[2]張亞力、賈英布,基于C語言在單片機技術(shù)的應用[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2011(05).

[3]董蘊寶、潘旭君,淺談C語言在單片機中的程序設(shè)計[J].科學與技術(shù)信息,2009(11).

[4]牛余朋,談談C語言在單片機開發(fā)中的應用[J].電子制作,2009(01)

[5]趙亮、候國銳,單片機C語言編程與實例[M].北京:人民郵電出版社,2009.

[6]范壽康、王寧,單片微型計算機的應用開發(fā)技術(shù)[M].北京:人民郵電出版社,2009.

作者簡介:

第5篇:單片機程序設(shè)計范文

Abstract: Based on the practice of C++ curriculum reform of electrical specialty in my school, considering from the problems of electrical specialty C++ programs in colleges and the actual needs of graduates of electrical specialty to the C++ course, this paper sums up content and method of C++ teaching reform of college electrical specialty in my school ,learning each other with relevant colleagues.

關(guān)鍵詞: 學用并存;交叉融合;面向?qū)ο?/p>

Key words: studies co-exist with using;cross fusion;object-oriented

中圖分類號:G71 文獻標識碼:A文章編號:1006-4311(2010)29-0245-01

0引言

隨著工業(yè)現(xiàn)代化的進展,微機控制技術(shù)在自動控制中使用越來越多,其中基于PC總線的工控機系統(tǒng)占了相當大的部分。這些系統(tǒng)多數(shù)采用Windows操作系統(tǒng),采用建立在Windows操作系統(tǒng)上的組態(tài)軟件作為控制軟件,因此,微機控制技術(shù)的發(fā)展對??齐婎悓I(yè)的程序設(shè)計語言的教學提出了更高的要求。傳統(tǒng)的轉(zhuǎn)科電類專業(yè)講授Basic語言和C語言,這些語言已經(jīng)不能滿足對控制用的組態(tài)軟件等的設(shè)計和維護的任務。C++語言是從C語言發(fā)展來的,它繼承了C語言程序設(shè)計作為一門高級實用的程序設(shè)計語言,因此我校在2000年將C++程序設(shè)計語言引入電類專業(yè)的教學中,經(jīng)過多年的學習實踐,探索出了一部分經(jīng)驗,現(xiàn)總結(jié)如下:

1提高專科電類專業(yè)C++課程的定位準確性

??齐婎悓I(yè)主要培養(yǎng)獲得電氣工程師基本的訓練,具有較高素質(zhì)的綜合性應用型高級工程技術(shù)人才,畢業(yè)生主要在生產(chǎn)一線工作,這就要求學生具有對較先進的計算機控制系統(tǒng)的設(shè)計和維護能力。專科電類專業(yè)C++課程的教學目標首先應是滿足學生對VC++或VB總結(jié)學習,從而能夠滿足其對控制軟件進行設(shè)計使用維護的要求。作為VC++或VB的基礎(chǔ),學生需全面掌握C++語言的基本概念和面向?qū)ο蟮某绦蛟O(shè)計的思想,因此,C++課程首先應是一門語言基礎(chǔ)課,其次,電類專業(yè)的學生多數(shù)都學習計算機控制技術(shù)和單片機,而單片機的程序設(shè)計現(xiàn)在多采用C語言設(shè)計,因此學習C++需同時照顧到學生學習單片機程序的要求,所以C++課程同時也是一門專業(yè)實踐課。

2提高C++課程教學內(nèi)容的實用性

C++語言所涉及的概念很多,要全部學習需要很多的課時,對于??齐婎悓I(yè)的學生來說,課時往往都很少,因此,C++課程的教學內(nèi)容應有所側(cè)重,針對學生學習單片機課程的需要,理論聯(lián)系實際,從實際應用出發(fā),將C++語言中過程化語言的部分安排1/2以上的課時,其中函數(shù)的概念、數(shù)組的概念、指針的概念、結(jié)構(gòu)的概念、三種程序的基本結(jié)構(gòu)及流程控制語句應詳細講透。而針對繼續(xù)學習VC或VB等程序語言的要求,引用、繼承與函數(shù)的概念應是重點講授的內(nèi)容。

3C++課程教學方法研究

C++課程內(nèi)容很多,??茖W校所安排的課時較少,因此學生學習起來有一定的難度,教師需采取一定的方法來引導學生盡快掌握C++的精髓,實際教學中,我采取了以下方法:

3.1 聯(lián)系實際,提高興趣,學用并存單純的語言學習往往比較單調(diào)、枯燥,因此學生往往厭學,在課程學習開始階段,我們給學生放一些先進的計算機控制的現(xiàn)場畫面,演示一下組態(tài)軟件在計算機控制中的作用,并告訴學生這些軟件是用建立在C++語言基礎(chǔ)上的VC++等語言做成的,使學生看到C++語言的應用前景,從而樹立起明確的學習目標,這樣可以有效的激發(fā)學生學習C++語言的學習興趣。

由于C++語言的前半部分是過程性語言部分,本質(zhì)上是高版本的C,因此在學習的過程中,可以結(jié)合單片機的程序設(shè)計編一些短小實用的控制程序,并用單片機給學生作一些演示,讓學生體會一下用C語言來設(shè)計程序相對于匯編語言的優(yōu)點,同時用一些實際小問題,讓學生自己編寫程序,解決問題,學用并行,提高學生的興趣和實際動手能力。

3.2 針對電類專業(yè)的特點,突出C++語言的控制特點電類專業(yè)的學生學習C++語言主要是以控制為目的,因此,在講授C++時應突出其控制特色,C++語言程序的基本結(jié)構(gòu)及流程控制語句、函數(shù)、指針、數(shù)組、結(jié)構(gòu)的概念作為與單片機的控制有關(guān)的概念是C++的重要概念,結(jié)合單片機的C語言程序設(shè)計,讓學生明白C++程序是函數(shù)驅(qū)動的,在講述它的概念時,要突出它是面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ),具有在它的基礎(chǔ)上控制用的組態(tài)軟件才能夠進行模塊化設(shè)計,具有突出控制的特色。

3.3 突出對象,重點培養(yǎng)學生面向?qū)ο蟪绦蛟O(shè)計的思想現(xiàn)代計算機控制系統(tǒng)所有的組態(tài)軟件種類很多,比如國外的IFLX,國內(nèi)的組態(tài)王等,這些軟件各有特色,但其共有的特色是可以自由組態(tài),設(shè)計快捷方便,維護簡單。而要實現(xiàn)這些功能,沒有面向?qū)ο蟮某绦蛟O(shè)計語言的支持是不可能的,而C++語言正是由于引入了面向?qū)ο蟪绦蛟O(shè)計的思想后,才變得功能強大而使用靈活方便,因此在講授C++程序設(shè)計語言時需重點培養(yǎng)學生面向?qū)ο蟪绦蛟O(shè)計的思想,讓學生在面向?qū)ο蟪绦蛟O(shè)計的思想指導下來理解和掌握對象的概念,從而能夠更好的理解組態(tài)軟件的設(shè)計基礎(chǔ),有利于自己對組態(tài)軟件的應用和維護。

3.4 從工程實際應用出發(fā),加強課程之間的交叉融合C++課程理論性較強,因此從解決實際問題出發(fā),將 C++語言程序設(shè)計和單片機應用與開發(fā),以及拖動控制系統(tǒng)課程的部分內(nèi)容進行有機整合,通過課程之間的交叉滲透,以及對實際調(diào)速問題的解決,提高學生的語言程序設(shè)計的應用能力。我校將C++語言程序課程設(shè)計、單片機應用課程設(shè)計,以及拖動控制系統(tǒng)課程設(shè)計結(jié)合一起,用C++語言程序設(shè)計,實現(xiàn)了對步進電機、交直流電機調(diào)速的微機控制。既提高了學生對課程的理解,又提高了他們的實踐動手能力,效果突出,受到學生的好評。

第6篇:單片機程序設(shè)計范文

關(guān)鍵詞:項目教學法 開放式程序設(shè)計 單片機教學

近年來,在職業(yè)教育教學改革中提到最多的就是項目教學法,總的來說項目教學法主要是改變以往教學模式中先從理論概念入手,先理論后實踐,先學后用的模式,變?yōu)橐月殬I(yè)活動導向的具體項目為目標的新的教育模式,這種從項目案例引出問題,從實踐到理論,從具體到抽象,從個別到一般的新型教育模式就是“以項目為導向的教學方法”。

1.《單片機》課程應用項目教學法的必要性

目前幾乎所有的中、高職院校在電類、計算機類專業(yè)中都開設(shè)了《單片機》課程,而傳統(tǒng)的單片機教學大都還延續(xù)著“講結(jié)構(gòu)”“學指令”“背程序”的教學過程,由于單片機本身內(nèi)部結(jié)構(gòu)抽象,指令繁雜難記,最終導致學生“背”程序的局面??偠灾畟鹘y(tǒng)教學的枯燥繁瑣使得大多數(shù)學生失去了學習的興趣,因而對單片機教學方法的改革勢在必行。

“項目教學法”最顯著的特點是“以項目為主線、以教師為主導、以學生為主體”,改變了以往“教師講,學生聽”被動的教學模式,創(chuàng)造了學生主動參與、自主協(xié)作、探索創(chuàng)新的新型教學模式。這種教學模式在單片機教學中顯得尤為適合,一個個鮮活的項目不僅有效的激發(fā)的學生學習的興趣,而且項目聯(lián)系生活實際,指令穿插其中,學習的過程也不會覺得枯燥無味了。

2.“開放式程序設(shè)計”與項目教學的巧妙結(jié)合

項目教學的靈魂是以學生為主體,以教師為主導,在以往單片機教學中教師往往直接給出學生實現(xiàn)任務的程序清單,針對程序清單上的指令一條條講解,學生被動學習,指令聽懂了還好,不懂就背,至于程序是怎么寫出來的就更不清楚了。而項目教學首先在選題上必須接近實際,與其在一些傳統(tǒng)的例程如求一個數(shù)的階乘;把一個數(shù)從幾加到幾這樣的題目中選擇,不如選擇類似控制循環(huán)彩燈的實際項目。

其次,我覺得用“開放式程序設(shè)計”的思想引導學生自主編寫程序,跟有利于激發(fā)學生的學習興趣,提高學生獨立創(chuàng)新能力。即在教授給學生基本的程序設(shè)計方法后,針對某一項目不給出學生以標準程序清單,而讓學生獨立自主,發(fā)散思維,需要我們教師做的只是順著他的思路去思考,幫他去完善,最后總結(jié)提高。這樣的開放式編程往往會收到意想不到的效果,并且極大地調(diào)動了學生獨立思考的能力、與學習的積極性,學生在課堂上都互相比著誰的程序更簡單,誰的程序更優(yōu)化,誰的思路更巧妙,真正的讓學生變?yōu)閷W習的主體,教師作為輔助、引導。

3.“開放式程序設(shè)計”結(jié)合項目教學法在單片機教學中的具體應用

3.1確定項目任務

單片機常見的輸出設(shè)備有發(fā)光二極管、LED數(shù)碼管、點陣、液晶等,若要實現(xiàn)的人機對話功能,充分體現(xiàn)單片機強大的交互性,沒有輸入設(shè)備是萬萬不可的。而單片機常用的輸入設(shè)備非鍵盤莫屬。因而在完成以發(fā)光二極管和LED顯示器為核心的前兩個項目之后,怎樣通過程序使鍵盤實現(xiàn)對單片機的控制將是本次項目完成的主要任務。

本次項目的名稱是“鍵盤控制單片機輸入輸出”。作為一個完整的項目,它必須在“多學時、多任務、多相關(guān)知識鏈接”的模式下完成。本節(jié)課內(nèi)容出自項目的第一個工作任務“指撥開關(guān)控制流水燈”。學生剛剛在課堂上剛剛完成了兩個顯示設(shè)備――流水燈與LED數(shù)碼管部分的學習,如果這個時候把鍵盤部分學懂,正好能夠完成用輸入來控制輸出,從知識的銜接上也比較合理。

3.2討論制定計劃

計劃是項目教學成敗的關(guān)鍵。若要完成工作任務,學習計劃的制定容不得出現(xiàn)一點偏差,這個環(huán)節(jié)上一定要體現(xiàn)學生的團隊協(xié)作能力,即分組后由組長組織組內(nèi)討論,組間討論,教師把關(guān),最后制定出完成的學習計劃。整個過程知識上要跟前面項目充分銜接,技術(shù)上可以利用多媒體、互聯(lián)網(wǎng)等手段,教師引導把握方向。

例如本次項目若要實現(xiàn)編寫程序完成鍵盤對輸出的控制,兩部分知識儲備必不可少,即硬件知識和軟件知識。學生在上本節(jié)課之前,只對輸出設(shè)備的硬件結(jié)構(gòu)有所了解,輸入設(shè)備的硬件結(jié)構(gòu)還沒有接觸到。因此在完善好硬件知識的基礎(chǔ)上,再學習用匯編語言相應指令編寫程序,這樣循序漸進才能完成教學任務。

在學生基本討論完畢后,教師應引導學生明確本次課的重點、難點、關(guān)鍵的。我認為單片機的特點是以硬件為基礎(chǔ),以軟件為核心,二者相互依存、缺一不可。由于電專業(yè)學生有電類課程作為基礎(chǔ),學習硬件知識難度不大;因此我將本課的重點確定為單片機軟件的學習――控制轉(zhuǎn)移指令的理解與熟練運用;本節(jié)課的難點是用不同編程思路實施同一任務;突破難點的關(guān)鍵是透徹理解程序每步運行過程。

3.3實施完成計劃

按照確定的最優(yōu)解決方案,學生獨自或以小組方式在工作計劃指導下完成工作任務。

在這個項目中學生會依次接受到三個不同的工作任務,學生會結(jié)合軟、硬件知識獨立在計算機上編寫、調(diào)試程序。這個階段顛覆了以前傳統(tǒng)的教學方法即給學生程序、講程序、學生敲程序的教學模式,而讓學生逐步體會的工作理念是“放式程序設(shè)計”,即你寫的程序沒有對和錯之分,只有實驗現(xiàn)象與工作任務的相同和不同之分。而往往同一工作任務,學生經(jīng)過思考后寫出了不同思路的、不同種類的程序,且都達到了任務要求。這個過程我如果看到學生的思路跟我預計的標準思路對不上,我并沒有否定,而是順著他的思路去思考,幫他去完善。最后在全班找到最優(yōu)化程序的同時,極大的開發(fā)了學生的思維發(fā)散能力。

拓展延伸很重要。我的拓展方法是在開放式編程的基礎(chǔ)上對每次拋出的工作任務在完成后都馬上做延伸。例如第一個工作任務“1個指撥開關(guān)控制1個燈亮”在完成后馬上延伸到如何能控制燈只亮1秒鐘呢?在開關(guān)抬起后怎么控制小燈馬上熄滅呢?我認為通過知識的延伸能更好的鍛煉學生思維的靈活性,光明白指令還不行,必須要達到熟練應用的目的。在本工作任務延伸完畢之后馬上進入到下一個工作任務,之后再延伸,這樣反復練習不僅拓展了學生的思路,而且學生編程、調(diào)試的效率也大大提高了。

3.4評價總結(jié)

在學生完成工作任務的同時引導學生注重成果體驗分析與評價,當學生編寫、調(diào)試好一個程序后馬上用仿真軟件進行仿真,觀看效果。我這個階段做的一是給做好的同學馬上記錄成績,給予肯定表揚,對還沒有完成的同學解決共性問題、給予鼓勵。二是找出幾名用不同思路編寫的程序,把機房所有學生電腦屏幕依次切換到那幾名同學的電腦上。讓學生面向全班同學分析自己的編程思路,把自己的程序分享給大家。之后全班以分組討論的形式自主研究他的成果,若有不同意見提出問題,該生馬上與之探討,教師輔助引導、掌控全局。這樣做的好處是使學生學會與別人分享成果,感悟團結(jié)協(xié)作、主動探究的樂趣,充分建立起自己的自信心與主人翁意識。

4.課后反思

項目教學法改變了以往單片機課程傳統(tǒng)的教學過程,為了達到教學目標、激發(fā)學生的學習興趣與獨立思考的能力,在課堂上給學生充足的時間與空間進行“開放式程序設(shè)計”,以學生為主體,引導學生自主、探究、合作學習。從中也體現(xiàn)了“做中教、做中學”的教育理念。由于采用了“開放式程序設(shè)計”并對每個工作任務進行了拓展延伸,學生對本節(jié)課的重點――熟練運用控制轉(zhuǎn)移指令有了很好的掌握,而且由于方法得當本節(jié)課的難點也得到了很好的突破,最后90%的同學能夠在規(guī)定時間內(nèi)成功調(diào)試程序。

第7篇:單片機程序設(shè)計范文

關(guān)鍵詞:單片機;主控制器;分控制器;有線通信;光亮度檢測;零點檢測 文獻標識碼:A

中圖分類號:TP273 文章編號:1009-2374(2017)02-0007-03 DOI:10.13535/ki.11-4406/n.2017.02.004

1 概述

照明耗電是高校消耗電能比較多的一部分,目前很多高校教學樓并沒有專人管理,有些學校雖然設(shè)了專人管理,但是管理模式落后,這些管理模式包括:設(shè)定統(tǒng)一的開啟和關(guān)閉整座教學樓照明電源時間;設(shè)定統(tǒng)一的時間并分層送電。這些模式相比較無人管理,在一定程度上達到了節(jié)能的目的,存在著在白天光照良好的情況下教室燈具開啟和在午休時間長明燈的現(xiàn)象,造成電能浪費。但是統(tǒng)一開啟模式,并不能根據(jù)教室里實際需要開啟的光源或者實際需要開啟的教室數(shù)來啟動照明系統(tǒng),不能真正意義上達到節(jié)能的效果。

為此,本系統(tǒng)是以單片機為控制器的核心,根據(jù)高校某教學樓照明系統(tǒng)在實際運行中的情況,設(shè)計照明節(jié)能統(tǒng)一控制系統(tǒng)。該系統(tǒng)能夠根據(jù)不同的環(huán)境下,統(tǒng)一安排對整個教學樓的照明進行控制,在既保證教室辦公照度的前提下,又達到節(jié)能的目的,從而使照明的量和質(zhì)達到一個平衡。

2 系統(tǒng)整體方案

根據(jù)功能要求,系統(tǒng)需要設(shè)計遠程操作室的上位機系統(tǒng),每個教室個體的下位機系統(tǒng)以及上下位機系統(tǒng)之間的通信系統(tǒng)。本設(shè)計選用單片機系統(tǒng)作為上下位系統(tǒng)的控制器,采用485半雙工通信方式組建主從模式的通信系統(tǒng)。整個系統(tǒng)的結(jié)構(gòu)框圖如圖1所示:

3 硬件電路設(shè)計

3.1 電源電路的設(shè)計

本系統(tǒng)設(shè)計了一個+5V的直流電源給單片機供電,該電路將市電220V交流電降壓為10V交流電,再經(jīng)過二級管橋式整流、電容濾波、LM7805穩(wěn)壓,最后輸出一個穩(wěn)定的+5V直流電,輸出的電壓偏差不超過0.1V,整體性能達到預期要求。

3.2 主控制器的電路設(shè)計

主控制器選用單片機(AT89S51),搭配鍵盤、數(shù)碼顯示、復位、晶振及通訊接口。

鍵盤主要是用硎淙胄畔,這些信息包括各種啟停信號、分控制器地址號、復位等。本設(shè)計采用4×4矩陣式鍵盤,與單片機的P1并行口連接。每個按鍵對應一個功能,鍵盤行線與列線呈垂直排列分布,16個開關(guān)按鍵都放于行列的交叉處,鍵盤行線一端通過上拉電阻與電源連接,一端與P1口連接,分別為P1.4、P1.5、P1.6、P1.7,列與P1口的低四位連接,分別是P1.0、P1.1、P1.2、P1.3。

由于本系統(tǒng)顯示要求不是很高,所以選用數(shù)字共陰極結(jié)構(gòu)的七段LED管來顯示。利用單片機的P.0端口控制管腳,為了滿足LED管正常發(fā)光所需的電流,加入74HC245進行驅(qū)動。

3.3 分控制器電路設(shè)計

分控制器實現(xiàn)的控制和數(shù)據(jù)處理任務相對簡單,采用單片機(AT89S2051),搭配晶振、實時時鐘芯片、可控硅控制電路、零點檢測電路、看門狗電路、通信接口電路。

利用硅光電池的短路電流與光照度成線性關(guān)系的這個特性,對光照亮度進行檢測,再用LM324運算放大器對硅電池檢測產(chǎn)生的電信號進行放大,將光電池傳感器輸出的0~0.5V電壓放大為0~5V,提供給A/D轉(zhuǎn)換模塊用。

利用限流電阻和兩個發(fā)光二極管組成電路,控制單片機P1.3接口點位的高低,從而控制發(fā)光二極管電路的通斷,從而實現(xiàn)電壓過零點的檢測。

照明亮度控制系統(tǒng)是將前面放大的硅光電池信號強度與設(shè)定的亮度信號進行比較,根據(jù)差值情況調(diào)整輸出電壓來控制照明燈的亮度。輸出電壓的平均值,

利用單片機的定時器配合軟件產(chǎn)生輸出一定頻率的方波,當電源電壓VCC不變的情況下,改變波形的占空比α來改變輸出電壓的平均值。

3.4 RS485通信電路的設(shè)計

根據(jù)任務,本系統(tǒng)設(shè)計由一個主機帶多個從機的通信系統(tǒng)。具體選用專用的485低功耗通信芯片(MAX485),用一對雙絞線將各個接口連接起來實現(xiàn)。將該芯片的RO和DI端連接到單片機的RXD和TXD,利用單片機控制芯片的和DE端,接收數(shù)據(jù)時令=0,發(fā)送數(shù)據(jù)時令DE=1。另外,采用光電耦合器提高系統(tǒng)的抗煩擾能力。

4 系統(tǒng)軟件設(shè)計

4.1 程序總體結(jié)構(gòu)設(shè)計

本控制系統(tǒng)軟件設(shè)計的總體結(jié)構(gòu)如圖2所示:

整個程序設(shè)計要完成照明啟停、照明亮度調(diào)節(jié)、人機交互、通信控制這四大部分的控制任務。照明啟??刂撇糠职ń淌覇我粏⑼?刂萍叭拷淌医y(tǒng)一啟??刂疲蝗藱C交互包括操作鍵盤系統(tǒng)和監(jiān)視的數(shù)碼顯示系統(tǒng)。

4.2 照明啟??刂瞥绦蛟O(shè)計

照明啟??刂浦饕欠挚刂破鹘邮罩鳈C發(fā)送的命令信息,利用485通信方式,適時反饋給主控制器信息,最后執(zhí)行并完成任務。

4.2.1 全部啟??刂瞥绦虿襟E:

第一步:數(shù)據(jù)初始化。

第二步:調(diào)用鍵盤掃描子程序,并判別是否有啟停控制信號輸入;如果沒有返回上一步,如果有進入下一步。

第三步:讀取輸入信號。

第四步:主控制器發(fā)送全部啟停信號到各個分控制器。

第五步:各分控制器反饋給主控制器地址信號。

第六步:判別主、分地址是否一致。如果一致,主控制器給分控制器發(fā)送確定信號后返回;如果不一致,顯示錯誤信息后返回。

4.2.2 單獨啟??刂瞥绦虿襟E:

第一步:數(shù)據(jù)初始化。

第二步:主控制器發(fā)送給某分控制器地址信號。

第三步:分控制器系統(tǒng)判別地址是否與主控制器發(fā)送的一致。如果不一致,關(guān)閉該分控制器系統(tǒng);如果一致,向主機匯報地址接收主機一致信息。

第四步:分控制器執(zhí)行主控制器發(fā)送的啟停信號。

第五步:執(zhí)行完成后返回。

4.3 人機交互程序設(shè)計

4.3.1 鍵盤掃描程序設(shè)計。鍵盤掃描程序主要完成前面提到的啟??刂?、分控制器控制、確認等任務,由于動作的特殊性,需要在程序中考慮防抖,引入延時程序,在延時一段時間后再次鍵盤掃描,如果3次檢測都有信號即可說明該按鍵確實動作。具體的程序流程如圖3所示:

圖3 鍵盤掃描流程圖

4.3.2 顯示程序設(shè)計。本顯示系統(tǒng)主要是完成分控制器地址的顯示,具體的程序流程:

第一步:數(shù)據(jù)初始化。

第二步:查表讀取段碼。

第三步:將上面的碼送到驅(qū)動顯示。

第四步:送信息給譯碼器選通低電位數(shù)碼管。

第五步:判別顯示是否完整。是結(jié)束返回;不是將顯示的緩沖區(qū)左移并返回到第二步,繼續(xù)往下執(zhí)行。

4.4 RS485通信程序設(shè)計

4.4.1 主控制器通信程序設(shè)計。主控制器通信部分主要是完成向分控制器下達指令、接收分控制器反饋的各種信息。具體程序設(shè)計流程包括:

第一步:初始化。

第二步:主控制器向各個分控制發(fā)送地址幀。

第三步:判別是否為廣播模式。如果不是,將等待從機信息反饋;如果是,執(zhí)行下一步。

第四步:主控制器向分控制器發(fā)送數(shù)據(jù)。

第五步:等待分控制器應答,發(fā)送成果Y束并返回。

4.4.2 分控制器通信程序設(shè)計。分控制器通信部分主要完成:接收主控制下達的指令信息,將本控制器的地址、執(zhí)行情況信息反饋給主控制器,然后確認信息準確后執(zhí)行并完成任務。具體程序設(shè)計流程包括:

第一步:數(shù)據(jù)初始化。

第二步:判別主控制器發(fā)送的地址是否與本分控制器地址一致。如果一致,反饋給主控制器一致信息,然后到下一步;如果不一致,結(jié)束。

第三步:執(zhí)行主控制器發(fā)送的控制任務。

第四步:反饋給主控制器執(zhí)行成功信號。

第五步:結(jié)束返回。

4.5 照明亮度控制程序設(shè)計

照明亮度控制系統(tǒng)主要是完成PWM信號的占空比調(diào)節(jié)。具體程序設(shè)計流程包括:

第一步:數(shù)據(jù)初始化。

第二步:單片機輸出一定頻率的方波,并接收亮度檢測信息。

第三步:判別亮度是否與設(shè)定值一致。如果一致,程序結(jié)束;如果不一致,執(zhí)行下一步。

第四步:根據(jù)大小調(diào)節(jié)占空比,并返回檢測。

5 結(jié)語

本文主要提出了一種教室節(jié)能智能照明控制系統(tǒng)的設(shè)計方案,并介紹了具體的軟、硬件電路設(shè)計過程。該系統(tǒng)利用485構(gòu)建的主從通信方式,完成主分控制器之間的信息傳遞與處理。各個分控制器能夠根據(jù)主控制器發(fā)出的指令,完成各個教室照明系統(tǒng)開啟、亮度調(diào)節(jié)且完成相應的顯示任務。在一定程度上解決無專人設(shè)置或者有專人設(shè)置但是不能自主開啟各教室、照明亮度調(diào)節(jié)的問題,更加有效地節(jié)能。但是在教室照明系統(tǒng)的實際運行中,發(fā)現(xiàn)由于學生步入教室行為的不確定性,學生進入教室后選擇座位的不確定性等,如何將智能控制理論應用到單片機系統(tǒng)開發(fā),實現(xiàn)更優(yōu)的照明控制系統(tǒng)設(shè)計將是下一步研究的重點。

參考文獻

[1] 李華.MCS-51系列單片機實用接口技術(shù)[M].北京:北京航空航天大學出版社,2003.

[2] 孫涵芳,徐愛卿.單片機原理及應用[M].北京:北京航空航天大學出版社,1996.

[3] 吳金戎,沈慶陽,等.8051單片機實踐與應用[M].北京:清華大學出版社,2002.

第8篇:單片機程序設(shè)計范文

關(guān)鍵詞:OBE(Out-Based Education) 單片機原理課程 計算思維能力 教學改革

中圖分類號:G64 文獻標識碼:A 文章編號:1672-3791(2015)10(c)-0093-02

OBE(Outcome-Based Education)教育理念起源于美國,并在20世紀的后20年在一些發(fā)達國家發(fā)展起來的一種新的教育模式。隨著其理念的普及與深入發(fā)展,OBE教育模式逐步成為工程教育人才培養(yǎng)的基礎(chǔ)。OBE教育理念的實質(zhì)是把學生在學習過程中的主體表現(xiàn)作為教育質(zhì)量考核的重要指標,在人才培養(yǎng)的過程中強調(diào)學生的學習結(jié)果,并以此作為反饋教學活動質(zhì)量的重要因素。

單片機原理及應用是電氣工程、電子工程、自動化、通信工程等專業(yè)的核心基礎(chǔ)課程。該課程主要包括了單片機的硬件結(jié)構(gòu),匯編指令和匯編程序設(shè)計,接口技術(shù)以及C程序設(shè)計技術(shù),是一門實踐性很強的課程。在傳統(tǒng)的教學過程中,通常以教師為教學活動的主體,學生被動的接受課程知識,因此在這門實踐為主體的課程中,學生很難達到應有的教學目標。此外,在該課程所配套的實驗教學過程中,多數(shù)以驗證性實驗為主,部分學生在實驗過程中目的性不強,很多的時候也只是看到了實驗最終的一個現(xiàn)象,并沒有深刻體會到實驗過程中所涉及到的分析流程,并且在課程的考核上很多的時候都是以卷面考核的方式來進行,在考試過程中很多學生也只是靠僵硬的記憶來答卷,在試卷考核的內(nèi)容中有一些靈活應用的地方就容易大量丟分,究其原因,很多的學生在學習過程中其目的就是考試及格,學習并不是源于學習的興趣。

1 課程理論內(nèi)容講授環(huán)節(jié)設(shè)計

從學生的學習效果反饋來看,單片機這門課程難點很大程度上在于很多同學沒有建立起利用計算機進行解決問題的思維方式,換言之,就是很多同學覺得單片機難學在于他們碰到程序設(shè)計問題的時候,很多時候無從下手解決,因此可以分析出在教學過程中的匯編指令,匯編程序設(shè)計以及高級語言程序設(shè)計時單片機教學的重點和難點。根據(jù)OBE理論就需要從新反向設(shè)計這部分的教學內(nèi)容和教學手段,在講授方式上教師應當注意由淺入深,課堂上適當增加程序分析和設(shè)計的內(nèi)容,同時注重理論和實踐相結(jié)合,可以選擇一個適當?shù)木C合性題目,在題目的完成過程逐步掌握基本程序設(shè)計的要領(lǐng)。

基于OBE教育理念的教學方式就是以預期的學習產(chǎn)出作為目標,并通過產(chǎn)出的結(jié)果反向設(shè)計和課程相關(guān)的教學活動。在單片機原理及應用的授課過程中,制定課程的預期學習產(chǎn)出和相應的教學策略是實現(xiàn)OBE工程教育的重要前提。針對單片機原理及應用這門課程需要較高實踐性的特定,同時優(yōu)化理論教學和實驗教學,激發(fā)學生的學習興趣和動力。建立起學生自主學習的積極性,提高教學效率和改善教學效果。

2 實驗教學環(huán)節(jié)設(shè)計

實驗教學是本科教育教學工作的重要組成部分,是人才培養(yǎng)過程十分關(guān)鍵重要步驟,實驗教學和理論教學在單片機這門過程中二者的關(guān)系是相輔相成的。在單片機原理及應用教學中,強化學生在實踐教學環(huán)節(jié)的學習效果,有利于提高實踐教學質(zhì)量,提升學生實踐能力、合作精神和創(chuàng)新意識。從人才培養(yǎng)的根本目的看,實踐環(huán)節(jié)的意義在于實踐理論,實現(xiàn)學生專業(yè)知識外化的轉(zhuǎn)化能力。

在實驗教學環(huán)節(jié),優(yōu)化實踐教學方案,制訂實驗教學大綱,設(shè)計實踐教學的環(huán)節(jié)和相關(guān)子項目,突出學生實踐能力培養(yǎng)、重視實踐教學效果、明確技能考核要求,充分體現(xiàn)課程體系下實踐教學改革的總體思路,從根源上優(yōu)化各專業(yè)的實踐教學方案,以便形成科學且合理的實踐教學體系。在制定電子信息類專業(yè)教學計劃時,教學大綱的制定重視課程與實驗內(nèi)容的合理優(yōu)化配合,避免理論知識與實踐的重復或脫節(jié);另外,充分體系課程知識結(jié)構(gòu)發(fā)展和教學安排的組織、內(nèi)容及方法的映射關(guān)系,避免重復的驗證性實驗項目,增加具有創(chuàng)新性、設(shè)計性、綜合性的實驗項目的實踐教學體系,使學生在實驗教學環(huán)節(jié)能提升其實踐主動性、創(chuàng)新能力、求實及合作精神的作用。因此,構(gòu)建科學、合理的實踐教學體系對此實踐教學目標產(chǎn)生深遠的影響。

3 課程評價的考核目標和學習產(chǎn)出的關(guān)系

課程評價的考核目標引導和決定預期學習產(chǎn)出的結(jié)果,具有重要的導向作用。在單片機原理課程上實行相應的多元考核評價方法,多元化的評價模式包括兩個方面,理論環(huán)節(jié)和實驗環(huán)節(jié)。其中理論環(huán)節(jié)包括識記能力、理解能力和表達能力;實驗環(huán)節(jié)包括實踐能力、小組合作能力和創(chuàng)新意識。通過理論環(huán)節(jié)和實踐環(huán)節(jié)測評的設(shè)定,過程考核和結(jié)果考核有機地結(jié)合起來,學習結(jié)果可體現(xiàn)為過程和結(jié)果兩個方面。

4 結(jié)語

對大學生計算思維能力的培養(yǎng)已經(jīng)成為工程教育界的共識,其最終目的是培養(yǎng)大學生的實踐與思維相結(jié)合的能力,培養(yǎng)大學生利用已有計算機和數(shù)學基礎(chǔ)發(fā)現(xiàn)和解決問題的創(chuàng)新能力。該研究通過對計算思維基本概念的界定,介紹了以計算思維能力培養(yǎng)為導向的單片機原理課程的教學改革現(xiàn)狀,探討了其中存在的問題,提出了相應的教學模式與解決策略。

參考文獻

[1] 高鳳梅,劉艷,張文超.“以學生為本”的《單片機原理》課程教學模式改革[J].高教論壇,2010(6):35-36.

[2] 顧佩華,李N平,沈民奮,等.以設(shè)計為導向的EIP-CDIO創(chuàng)新型工程人才培養(yǎng)模式[J].中國高等教育,2009(Z1):47-49.

[3] 劉光蓉.以計算思維能力培養(yǎng)為導向的C程序設(shè)計實驗教學[J].實驗技術(shù)與管理,2013(1):154-156,191.

[4] 鄧磊,姜學鋒,劉君瑞.實施專業(yè)融合,提升理工科學生的計算思維能力[J].工業(yè)和信息化教育,2013(6):15,37-41.

[5] 馬寶山,劉劍橋,金國華,等.單片機應用課程設(shè)計教學改革探討[J].實驗科學與技術(shù),2015,13(2):103-104.

[6] 顧佩華,沈民奮,李升平,等.從CDIO到EIP-CDIO――汕頭大學工程教育與人才培養(yǎng)模式探索[J].高等工程教育研究,2008(1):12-20.

第9篇:單片機程序設(shè)計范文

關(guān)鍵詞:單片機;溫度測控;控制系統(tǒng)

溫度測控在工業(yè)領(lǐng)域具有廣泛的應用,隨著傳感器技術(shù)、微電子技術(shù)、單片機技術(shù)的不斷發(fā)展, 為智能溫度測控系統(tǒng)測控功能的完善、測控精度的提高和抗干擾能力的增強等提供了條件。由于單片機具有集成度高、功能強、體積小、價格低、抗干擾能力等優(yōu)于一般 CPU 的優(yōu)點,因此,在要求較高的控制精度和較低成本的工業(yè)測控系統(tǒng)中,往往采用單片機作為數(shù)字控制器取代模擬控制器。

1、控制系統(tǒng)原理

控制系統(tǒng)由硬件和軟件兩部分組成。其中硬件部分主要由信號采集與放大電路、溫度補償電路、A/D 轉(zhuǎn)換電路、單片機電路幾部分組成 。 軟件包括單片機AT89C52 程序設(shè)計、單片機AT89C52 與AT89C2051 通信程序設(shè)計、單片機 AT89C2051 程序設(shè)計三個主要模塊組成。

2、控制系統(tǒng)硬件設(shè)計

2.1信號采集與放大電路

采用 K 型熱電偶獲得現(xiàn)場的實際溫度,溫度采樣范圍為 0-400℃, 相應地轉(zhuǎn)換的電壓信號范圍為 0—20mv。因為系統(tǒng)要控制 8 路工業(yè)電爐, 所以就要對 8 路溫度進行檢測采樣和控制, 這里采用 CD4051 實現(xiàn)八選一通道選擇。電壓信號放大采用低零漂移的運算放大器 OP07, 差分雙端輸入, 可以有效地抑制共模干擾。

從熱電偶獲得的最大有效電壓為 20mv, 而 ICL7135 滿量程時的電壓為 2V, 所以放大電路的放大倍數(shù)為 100, 該放大電路由運放 U4、U5 組成第一級差分武電路, U6 組成第二級差分式電路, 根據(jù)這一放大倍數(shù)來取電阻的阻值, 該放大電路的放大倍數(shù)可由下式計算:

Av=A1A2=(1+2R96/R95) (- R89/R98), 要保證 Av=-100, 取 R89=20K, 取 R98=20K。取 R96=20K, R95 為一電位器, 其取值范圍之為 0-500。所以只要調(diào)節(jié)電位器 R95, 就可以滿足要求。

2.2溫度補償電路

熱電偶分度表是在冷端溫度為 0℃時測定的, 熱電偶在實際測量中, 當冷端的溫度不是 0℃時, 就不能直接利用分度表得知溫度值, 因此必須對熱電偶冷端進行溫度補償修正。熱電偶測溫電路中要有冷端溫度補償電路、冷端補償方法較多, 這里采用冷端溫度補償器來實現(xiàn)溫度補償。該補償電路的工作原理是熱電偶產(chǎn)生的電勢經(jīng)濾波放大后有一定的靈敏度, 采用溫敏二極管組成的測量電橋的輸出經(jīng)放大器放大后也有相同的靈敏度。將這兩個放大后的信號再通過增益為 1 的運算放大器相加, 則可以自動補償冷端溫度變化引起的誤差。

2.3A/D 轉(zhuǎn)換電路

因溫度是一個緩慢變化的過程, 對采樣速率要求不高,為提高抗干擾能力,采用雙積分 A/D 轉(zhuǎn)換器。

本文采用 MAXIM 公司的 ICL7135,MC1403 芯片為 ICL7135 提供基準電壓。通常情況下, 設(shè)計者都是用單片機來并行采集 ICL7135 的數(shù)據(jù), 在這里, 作者采用單片機對 ICL7135 進行串行數(shù)據(jù)采集, 利用該方式具有結(jié)構(gòu)簡單、占用單片- 機資源少等特點。

在 ICL7135 與單片機系統(tǒng)進行連接時,如果使用 ICL7135 的并行采集方式, 則不但要連接 BCD 碼數(shù)據(jù)輸出線, 又要連接 BCD 碼數(shù)據(jù)的位驅(qū)動信號輸出端, 這樣至少需要 9 根 I/0 口線, 因此, 系統(tǒng)的連接比較復雜, ICL7135 的串行接法是通過計脈沖數(shù)的方法來獲得測量轉(zhuǎn)換結(jié)果的, 可以通過單片機的定時器 TO 或 Tl 來作計數(shù)脈沖器, 定時器 TO 所用的 CLK 頻率是系統(tǒng)晶振頻率的 1/12, 因此可利用單片機的ALE 信號經(jīng) 74LS74 分頻后作為 ICL7135 的脈沖(CLK) 輸入, 便可得到定時器 TO 所使用的頻率與單片機系統(tǒng)晶振頻率的關(guān)系, 以及ICL7135 所需頻率輸入與單片機系統(tǒng)晶振頻率的關(guān)系。為使定時器TO 計數(shù)脈沖與 ICL7135 工作所需的脈沖同步, 可以將 ICL7135 的BUSY 信號接至 AT89C52 的 P3.2(INTO) 引腳上, 此時定時器 TO 是否工作將受 BUSY 信號的控制, 并且將定時器 TO 的選通控制信號GATE 位置 1。ICL7135 的輸入電壓與 TO 計數(shù)脈沖成線性關(guān)系,ICL7135 滿量程時對應的有效計數(shù)脈沖為 20000, 可以得以下公式:

fIN=VIN/VMAX*20000=VIN/VR*1000, 式中: fIN 為對應輸入電壓VIN 的計數(shù)脈沖, VMAX, VR 分別為 ICL7135 的最大工作電壓和基準電壓, 且有 VMAX=2VR, VR 工作時事先通過 MC1403 輸出端電位器調(diào)好。

只要 VR 非常準確, 且準確測量出 VIN, 因 ICL7135 和 AT89C52的精確度都非常高, 故得到的 fIN 也可達到很高的精度。

2.4CPU 電路

之所以要用 AT89C52 和 AT89C2051 兩個單片機, 主要是考慮到 AT89C52 要實現(xiàn)的功能比較多, 負荷較重, 且其片內(nèi) RAM 空間已全部分配完所以采用 AT89C52 作為系統(tǒng)的核心控制芯片, 用 AT89C52 用于產(chǎn)生 PWM波形去控制固態(tài)繼電器的導通與截止。

3、控制系統(tǒng)的軟件設(shè)計

3.1單片機 AT89C52 程序設(shè)計

包括主程序設(shè)計和中斷采樣程序設(shè)計, 要對 8 路溫度進行循環(huán)采集, 通過定時器 T2 每隔 1s 定時對 8路溫度進行順序采集, 這就要對通道選擇, 這可通過 AT89C52 的P2.0、P2.1、P2.2 對多路開關(guān) CD4051 的地址引腳 A0、Al、A2 進行控制而實現(xiàn)在采樣中斷子程序中, 要對看門狗計數(shù)器清零, 這可通過AT89C52 的 Pl.1 來控制 MAX813L 的 WD1 引腳實現(xiàn),每次進人中斷采樣時, 給 MAX813L 的 WD1 引腳一個脈沖, 從而對其內(nèi)部計數(shù)器清零。獲得采樣數(shù)據(jù)后, 要進行處理, 加熱模式判別, 與 AT89C2051 進行通信, 將獲得的控制量傳送給 AT89C2051 以實現(xiàn)PWM波形的生成, 偏差和偏差變化率存取計算。

3.2單片機 AT89C2051 程序設(shè)計

利用 AT89C2051 來完成 PWM波形的發(fā)生AT89C52 只需將經(jīng)運算后得到的控制量送 給AT89C2051,這樣, AT89C52 的負荷就減輕了,有利于提高整個系統(tǒng)的工作性能。而 AT89C2051 只管 PWM波形的發(fā)生, 有利于提高控制精度, 獲得較好的實時性,且電路結(jié)構(gòu)相當簡單,八路輸出, 只需要一片AT89C2051,和一個簡單的驅(qū)動電路。其工作過程也十分簡單:AT89C2051 經(jīng)軟件算法后獲得 PWM波形,八路輸出采用循環(huán)輸出,因每路數(shù)據(jù)的更新時間非常短,不會影響控制的實時性,然后通過驅(qū)動電路驅(qū)動后去控制固態(tài)繼電器的閉合時間。