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

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

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

單片機(jī)程序設(shè)計(jì)

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

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

中圖分類號:TP332 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599?。?012) 17-0000-02

1 SystemC介紹

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

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

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

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

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

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

一、機(jī)器周期和指令周期

1.機(jī)器周期

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

2.指令周期

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

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

二、延時指令

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

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

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

2.空操作指令NOP

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

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

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

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

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

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

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

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

③DJNZ R7,I2只要R7-1不為0,就反復(fù)執(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。

所以總延時時間計(jì)算為:

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

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

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

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

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

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

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

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

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

2 研究擬達(dá)到目標(biāo)

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

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

3 主要研究方法

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

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

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

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

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

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

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

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

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

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

1 單片機(jī)的開發(fā)

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

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

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

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

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

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

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

2.1 特點(diǎn)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 總結(jié)

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

參考文獻(xiàn):

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

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

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

[4]牛余朋,談?wù)凜語言在單片機(jī)開發(fā)中的應(yīng)用[J].電子制作,2009(01)

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

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

作者簡介:

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

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)鍵詞: 學(xué)用并存;交叉融合;面向?qū)ο?/p>

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

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

0引言

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

1提高??齐婎悓I(yè)C++課程的定位準(zhǔn)確性

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

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

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

3C++課程教學(xué)方法研究

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

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

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

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

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

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

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

關(guān)鍵詞:項(xiàng)目教學(xué)法 開放式程序設(shè)計(jì) 單片機(jī)教學(xué)

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

1.《單片機(jī)》課程應(yīng)用項(xiàng)目教學(xué)法的必要性

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

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

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

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

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

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

3.1確定項(xiàng)目任務(wù)

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

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

3.2討論制定計(jì)劃

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

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

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

3.3實(shí)施完成計(jì)劃

按照確定的最優(yōu)解決方案,學(xué)生獨(dú)自或以小組方式在工作計(jì)劃指導(dǎo)下完成工作任務(wù)。

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

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

3.4評價(jià)總結(jié)

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

4.課后反思

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

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

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

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

1 概述

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

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

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

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

3 硬件電路設(shè)計(jì)

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

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

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

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

鍵盤主要是用硎淙胄畔,這些信息包括各種啟停信號、分控制器地址號、復(fù)位等。本設(shè)計(jì)采用4×4矩陣式鍵盤,與單片機(jī)的P1并行口連接。每個按鍵對應(yīng)一個功能,鍵盤行線與列線呈垂直排列分布,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管來顯示。利用單片機(jī)的P.0端口控制管腳,為了滿足LED管正常發(fā)光所需的電流,加入74HC245進(jìn)行驅(qū)動。

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

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

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

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

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

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

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

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

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

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

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

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

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

照明啟停控制主要是分控制器接收主機(jī)發(fā)送的命令信息,利用485通信方式,適時反饋給主控制器信息,最后執(zhí)行并完成任務(wù)。

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

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

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

第三步:讀取輸入信號。

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

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

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

4.2.2 單獨(dú)啟停控制程序步驟:

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

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

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

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

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

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

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

圖3 鍵盤掃描流程圖

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

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

第二步:查表讀取段碼。

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

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

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

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

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

第一步:初始化。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5 結(jié)語

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

參考文獻(xiàn)

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

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

[3] 吳金戎,沈慶陽,等.8051單片機(jī)實(shí)踐與應(yīng)用[M].北京:清華大學(xué)出版社,2002.

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

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

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

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

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

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

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

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

2 實(shí)驗(yàn)教學(xué)環(huán)節(jié)設(shè)計(jì)

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

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

3 課程評價(jià)的考核目標(biāo)和學(xué)習(xí)產(chǎn)出的關(guān)系

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

4 結(jié)語

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

參考文獻(xiàn)

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

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

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

[4] 鄧?yán)冢獙W(xué)鋒,劉君瑞.實(shí)施專業(yè)融合,提升理工科學(xué)生的計(jì)算思維能力[J].工業(yè)和信息化教育,2013(6):15,37-41.

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

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

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

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

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

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

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

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

2.1信號采集與放大電路

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

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

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

2.2溫度補(bǔ)償電路

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

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

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

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

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

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

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

2.4CPU 電路

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

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

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

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

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

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