真人一对一直播,chinese极品人妻videos,青草社区,亚洲影院丰满少妇中文字幕无码

0
首頁 精品范文 單片機c語言

單片機c語言

時間:2023-05-29 17:37:46

開篇:寫作不僅是一種記錄,更是一種創造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇單片機c語言,希望這些內容能成為您創作過程中的良師益友,陪伴您不斷探索和進步。

單片機c語言

第1篇

關鍵詞: C語言;單片機;開發;應用

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

1 單片機的開發

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

1.1 單片機開發的特征

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

1.2 單片機開發的語言

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

2 C語言應用于單片機開發

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

2.1 特點

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

使用C語言進行單片機開發程序的編寫,程序開發者不用時時與硬件接觸,能夠將精力全部集中于思考程序的算法和功能,對于一些瑣碎的細節問題可以大而化之不必過于在意,因此C語言比匯編語言更適應一般人的思維習慣,更能節省程序編寫的時間。

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

2.2 C語言對單片機的優化

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

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

2.3 開發環境

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

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

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

該軟件可以滿足用戶瀏覽源文件的需求,且方便快速,可以尋找文件,全局搜索文件,在集成開發的環境下也可保證用戶功能得以啟動。“另外KEILC51可以在編輯器內編輯、調試程序,它能提供一種自然的調試環境,使你更快速地檢查和修改程序”[4]。

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

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

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

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

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

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

3 總結

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

參考文獻:

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

[2]張亞力、賈英布,基于C語言在單片機技術的應用[J].農業網絡信息,2011(05).

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

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

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

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

作者簡介:

第2篇

一、c語言與單片機課程在中職學校電子及相關專業中的重要地位

c語言是一種被廣泛使用的計算機程序設計語言,在中職學校引入c語言課程,不但能使學生掌握一種基礎的編程語言,還為學生發展能力和進一步學習打下基礎。

傳統的電子裝置,只能使用復雜的模擬電路或分立的集成電路來實現,這樣的產品不僅體積大,且成本高,控制的精度也不高,適應性更差。有了單片機后,可實現很多復雜的功能。而學好單片機可讓學生在電子行業內找到一個比較好的工作。所以,單片機課程,也常被稱為“飯碗”課程。

二、中職學校“c語言”與“單片機”課程教學方式現狀分析

目前,中職學校中“c語言”與“單片機”課程的教學是采用完全割離的方式進行的,一般在第二學期開設“c語言”,在第四學期開設“單片機”。

在講授“c語言”時,通常以turboc 2.0為藍本,除了介紹“c語言”的數據類型、控制語句、數組、指針外,還對函數、結構體甚至文件進行詳細地介紹。整個教學過程中,過分注重語句、語法的細節和程序設計技巧的講授,對如何分析和解決實際問題講得不夠。從而沒有明確的學習目的,更缺少學習的興趣。

而單片機的教材中,往往以匯編語言做為編程工具,為了能正確地運用匯編語言編寫單片機的程序,就要對單片機內部結構、存儲器結構等知識做詳細介紹。從多年的教學實踐來看,單片機課程講到尋址方式時,就基本上講不下去了,后面的課程,學生只能像聽天書一樣被動地接受。

所以,多年來,學生怕學c語言,更怕學單片機。學過c語言課程的學生,不知道c語言的具體用途,學完后很快就忘記了。學過單片機的學生,感覺單片機內部結構難懂,匯編語言更加難掌握,學到最后,連數碼管、鍵盤這樣的最基本的程序,也無法順利完成。因此,這兩門課程的教學改革,勢在必行。

三、“c語言”與“單片機”課程整合的可行性分析

通過上述對“c語言”與“單片機”本文由收集整理教學現狀的分析,我們發現,之所以這兩門課難教難學,其根本原因在于兩門課教學過程的割裂。

c語言是一門較特別的高級語言,它把高級語言的基本結構和語句與低級語言的實用性結合起來,允許直接訪問物理地址,可直接對硬件進行操作,因此既具有高級語言的功能,又有低級語言的許多功能,能夠像匯編語言一樣對位、字節和地址進行操作。而單片機的指令系統和硬件結構,正是學生最頭疼的內容。而有了c語言這個編程工具后,單片機的學習效率會大大提高。

同時,單片機用c語言編程,繞過了單片機中難學的內容,用c語言編程,驅動單片機裝置,解決了c語言應用抽象的難題,所以,這兩個課程,整合在一起教學,真可謂是“天生一對”!

四、“c語言”與“單片機”課程整合的方法

對c語言與單片機課程的教學過程進行整合,可提高兩門課的學習效果,但整合過程中,要想達到最佳的效果,也要采用正確的方法。

首先,這種整合不是簡單的“一加一”式的整合,不是將兩門課在相對集中的時間內相繼開設,就叫“整合”,而是要以單片機課程做為“主線”,在講授單片機課程的同時,根據編程的需要,不斷地“滲透”c語言的知識。再通過觀察程序驅動硬件的現象,深入體會單片機的原理。

其次,這種整合,也不必追求課時的壓縮,認為既然是“整合”了,效率提高了,就應該體現在課時的減少上,這種想法是錯誤的。所以,建議兩門課程,仍然保持兩個學期的課時量:第一個學期,主要介紹基本知識;第二個學期,可以項目實訓的方式,讓學生完成一些綜合性的實驗,以提高對兩門課程知識的實際運用能力。

五、“c語言”與“單片機”課程整合的實踐與效果

第3篇

關鍵詞:C語言;高職;單片機

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

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

1 現狀分析

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

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

2 改革的必要性

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

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

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

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

3 課程改革設想:

3.1 課程內容的改革

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

3.2 編譯開發環境

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

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

3.3 教學方式的改革

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

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

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

第4篇

關鍵詞:單片機;編程

中圖分類號:TP312文獻標識碼:A文章編號:1009-3044(2007)03-10765-01

1 引言

隨著單片機技術日新月益的發展,學習它的人可是越來越多了。對于初學者來說,好多人一開始總會被單片機的各種各樣的編程語言搞糊涂了。因為單片機目前的編程語言常見的有四種,即匯編語言、C語言、PL/M和BASIC。究竟要學哪一種編程語言好呢?我們先來做個比較吧。

2 單片機的BASIC編程語言

BASIC是一種高級語言,它的英文含義是“初學者通用符號指令代碼”,是在1965年5月,由美國科學家托馬斯?庫爾茲研制出來的。10多年后,微軟公司把它移植到微型機上。幾十多年來,BASIC語言一直被認為是初學編程的語言。它已經由QBASIC發展到VB#版本,具備了很多結構化思想和編程方式,如函數、模塊、局部變量、全局變量、數據傳遞等。早期的BASIC語言由于生成的代碼不是最終目標機器的代碼,而是經過一個RUNTIME程序解釋后運行的,所以執行效率低。而單片機的BASIC編譯器是直接將程序代碼編譯成相應芯片的機器碼,不需要在單片機的內存中駐留RUNTIME程序,執行效率與其他編譯器編譯出來的一樣。

我們現在以MCS-Electronics公司開發出來的BASCOM-8051開發環境為例,簡要介紹一下以BASIC語言為基礎的單片機編程系統。

它和一般BASIC語言一樣具有如:For、To、Step、If、Else、End 、Select Case等等命令,其用法及功能是沒有什么區別的,因此初學者比較容易入門。

另外,它還有針對單片機硬件所設計的命令如:LCD命令可以用一條命令來實現LCD的顯示操作。

Cls '清LCD屏

Lcd"Hello world." '向LCD輸入字符串

類似于這樣的命令主要是提供了直接對單片機及其外部硬件的操作,特別是提供了對單片機端口的直接操作,如:P1、P2、P2.1、P0.3等等,簡化了整個開發過程,是開發人員重點學習的部分。

例如有硬件電路如圖(1)所示,編程使發光二極管間隔兩秒鐘閃爍一次的程序如下:

While I = 2

P1.0 = Not P1.0

Wait I

Wend

End

3 單片機的PL/M編程語言

PL/M 語言是Intel公司從8080微處理器開始為其系列產品開發的編程語言,其特點是:

3.1 簡單易學

PL/M-51語言只有兩類語句:一類是說明語句,用于說明變量和過程;另一類是可執行語句,如賦值語句、條件語句和循環語句等。這些語句的功能和BASIC語言中相應的語句相似,如:

P1=02H;/*賦值語句*/

IF M>2 THEN N=P1;/*條件語句*/

DO I=0 TO 10;/*循環語句 */

3.2 可讀性好

PL/M-51是一種結構化語言,其程序是塊式結構,可采用縮進式方法書寫源程序,使程序層次清楚,便于理解和閱讀。一個完整的程序可由多個模塊組成,而每個模塊又是由多個程序塊構成。

3.3 可靠性高

PL/M-51編譯軟件檢查用戶程序對單片機的各種資源使用情況,對沖突使用情況或不合理使用情況能提出警告,并能自動為用戶程序合理分配內存。

3.4 隔離性好

PL/M-51中,既可有全局的靜態變量,也可有局部的動態變量,對于全局性的靜態變量,其性質和BASIC中的變量一樣,該變量在整個程序中均有效。對于局部的動態變量,它只有在其所說明的程序塊中或過程中有效,在該程序塊或過程之外則無效。局部動態變量的特點是,當由多個人共同編制一個程序中的不同模塊時,而不必擔心是否使用了相同的標識符而發生沖突。模塊化的程序設計增加了程序設計的靈活性的方便性。

3.5 兼容性好

PL/M-51可同匯編語言或其他語言的目標模塊連接起來,生成可執行代碼如果用戶必須使用匯編語言編制一段程序,或是想利用已調好的匯編語言程序塊,那么該段匯編可以很方便地連接到PL/M-51程序目標塊中。

3.6 具有良好的算法庫和庫管理能力

PL/M-51語言具有INTEL公司所提供的算法庫和庫管理功能用戶能利用現成的算法庫完成加、減、乘、除等運算,并能建立自己的特定算法庫,使得編程一勞永逸,提高軟件的開發效率。

由上面幾點可見,PL/M語言是類似于Pascal一種語言,是一種結構化語言。PL/M編譯器好像匯編器一樣可產生緊湊代碼,可以說它是一種"高級匯編語言",可詳細控制著代碼的生成。但對51系列的單片機來說,PL/M不支持復雜的

算術運算、浮點變量而無豐富的庫函數支持。學習PL/M無異于學習一種新語言。

4 單片機的匯編語言

匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是占用資源少,程序執行效率高,由于它一條指令就對應一條機器碼,每一步的執行動作都很清楚,并且程序大小和堆棧調用情況都容易控制,調試起來也比較方便。但是不同的類型的單片機,其匯編語言可能有點差異,所以不易移植。比如你在PIC12CE518單片機上用匯編語言編了一個程序,到了STC89C51單片機上那可就運行不了,因為他們的指令系統是有區別的。

單片機的匯編語言非常像其他匯編語言。指令系統比第一代微處理器要強一些。但單片機擁有不同存儲區域使得其編程變得復雜一些,可是作為一位電子工程師,懂得匯編語言就可幫助你了解影響任何語言效率的特殊規定。例如,懂得匯編語言指令就可以使用在片內RAM作變量的優勢,因為片外變量需要幾條指令才能設置累加器和數據指針進行存取。同樣的,當要求使用浮點數和啟用函數時也只有具備匯編編程經驗才能避免生成龐大的、效率低的程序,對于這方面的編程,沒有匯編語言是做不到的。

5 單片機的C語言

單片機的C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。C語言具有功能豐富的庫函數,運算速度快,編譯效率高,有良好的可移植性,而且可以實現直接對系統硬件的控制。此外,C語言程序具有完整的程序模塊結構,從而為軟件開發中采用模塊化程序設計方法提供了有力的保障。與匯編相比,有如下優點:

(1)對單片機的指令系統不要求了解,僅要求對51的存儲器結構有初步了解,至于寄存器分配、不同存儲器的尋址及數據類型等細節均由編譯器管理。

(2)程序有規范的結構,可分為不同的函數。這種方式可使程序結構化,將可變的選擇與特殊操作組合在一起,改善了程序的可讀性。

(3)編程及程序調試時間顯著縮短,從而提高效率。 提供的庫包含許多標準子程序,具有較強的數據處理能將已編好程序可容易的植入新程序,因為它具有方便的模塊化編程技術。

單片機C語言作為一種非常方便的語言而得到廣泛的支持,C語言程序本身并不依賴于機器硬件系統,基本上不做修改就可根據單片機的不同較快地移植過來。

綜上所述,單片機的四種編程語言各有各的優缺點,作為單片機初學者,筆者認為還是應該先學習匯編語言,不一定要學得很精很熟悉,但要有一定的了解。因為匯編語言程序除了具有簡潔明快、跳躍性強、占ROM資源少等優點以外,還因它和單片機底層硬件緊密聯系,可以讓初學者更加了解單片機硬件系統各種資源,熟悉各個功能模塊的作用,從而為編出更高效率的程序打好扎實的基礎。

用單片機匯編語言編寫的程序代碼效率高,但學習起來相對難度較大,而且對于一個大型項目,如果完全采用匯編語言來編程,就顯得很繁瑣,尤其是遇到算法方面的問題時,匯編語言根本就應付不了。況且現在單片機的主頻在不斷的提高,在高頻率時鐘的作用下,我們完全不需要那么高效率的代碼;另外,單片機的ROM和RAM空間也在不斷的增加,足夠裝得下你用C語言寫的任何程序代碼,單片機C語言相關的資料又多又好找,可移植性非常好,比如只需要改變一個IO口寫個溫度傳感器的程序在任何一個單片機上都能使用。由此可見用單片機C語言進行程序設計,已成為單片機軟件開發的一個主流,作為一個技術全面并涉足較大規模的軟件系統開發的單片機開發人員最好能夠掌握基本的C語言編程。

當然,有時候用單片機C語言也不能夠實現所有要編寫程序的功能,比如當想編寫一個精確控制的定時程序時,用起匯編語言來還是比較方便的。因此想成為一個優秀的單片機編程技術員,最好就是能懂得單片機C語言和匯編語言的混合編程。

參考文獻:

[1]藍點方舟科技網. . 8051系列單片機BASIC語言開發環境簡介[Z].

[2]/. PL/M-51高級語言特點[Z].

[3]王杰潔,耿英杰. 單片機C語言和匯編語言的簡單比較[Z].

第5篇

【關鍵詞】項目化教學;電子仿真軟件MULTISIM10;單片機仿真軟件PROTEUS;單片機匯編語言和C語言源程序編輯編譯軟件KEIL;單片機匯編語言和C語言

電子教學采用項目化管理的核心內容是:電子教學采用課題化,以課題項目為單位采用項目化管理;一條龍實現從原理圖繪制,仿真到PCB印刷電路板的制作;從電子電路的搭建到PCB板的焊接調試;

下面以節日彩燈制作為例講解:

課題名稱:制作即日彩燈。

項目要求:用彩色發光二極管設計制作節日彩燈;要求節日彩燈能起到一定的宣傳效果,具備一定的功能;比如流水燈;逐次點亮燈;閃爍燈等。

課題項目的實現:用電子仿真軟件MULTISIM10設計制作節日彩燈并實現電子仿真。

儀器設備:555和電阻電容組成多諧振蕩器;CD4017為十個二進制計數器組成的串行十進制移位計數器。

用555做振蕩器產生振蕩脈沖輸入到CD4017的時鐘脈沖輸入端;由于CD4017是帶進位位的十進制串行移位輸出計數器;方波(高電平)會依時間順序依次從O0~O9移位輸出,方波到來時發光二極管LED正向偏置導通發光。毎十個方波Q5~9上產生一個進位方波。(即接在Q5~9上的紅綠黃發光LED亮一次。同時蜂鳴器響一聲。用虛擬示波器測試電路各點波形;圖1是功能為流水燈節日彩燈的仿真圖。

選擇好節日彩燈的電子元器件,在制作好的PCB板上安裝并焊接調試節日彩燈產品。用雙綜示波器測試555和CD4017的輸入、輸出波形、調試,使其達到設計要求。

采用多樣化的教學手段完成同一個課題;讓我們做的更精彩些:

用單片機仿真軟件設計制作的節日彩燈電路原理圖如圖3:

圖4為PROTEUS制作的即日彩燈單片機仿真圖:

80C51單片機;CRYSTAL為頻率為12MHZ的晶振;CAP為電容器;LED-BARGRAPH-RED為紅色發光條;RX8為二乘十的電阻排;

用匯編語言按照項目設計要求編制節日彩燈的匯編語言源程序;并用KEIL編輯編譯程序產生十六進制代碼文件(后綴為.HEX文件);雙擊80C51單片機把。HEX代碼灌入單片機。

功能說明:單片機P1端口接8只LED,每次點亮兩只,先從右邊向左邊移動點亮;再從左邊向右邊移動點亮,然后閃爍兩次,重復循環。

在ISIS界面下運行PROTEUS單片機仿真文件。觀察功能為雙燈左移然后右移然后閃爍兩次并循環的節日彩燈。

圖3為用匯編語言編制的節日彩燈源程序:

用C語言設計編輯功能為:逐次點亮節日彩燈的C語言源程序:

圖5為用C語言設計編輯功能為:逐次點亮節日彩燈的C語言源程序:

用KEIL編輯編譯C語言源程序;并生成十六進制代碼(*.HEX)文件;雙擊80C51單片機,把*。HEX代碼灌入單片機。運行觀察LED閃亮順序,判斷是否符合設計要求:逐次點亮。

在單片機試驗臺上搭建節日彩燈電路。用擦寫器和下載線把。HEX代碼下載到89S51單片機中。安裝并調試單片機節日彩燈電路,觀察LED閃亮情況直到符合課題項目設計要求。

第6篇

關鍵詞:單片機教學改革;機器人;項目式教學

中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2014)29-0051-02

一、引言

《單片機技術》是高等學校電子通信專業的一門重要的專業課。單片機具有結構簡單、抗干擾能力強、功耗低等特點,被廣泛應用于數字控制、智能傳感器、遙感技術等領域,是現代科技不可缺少的關鍵技術。在家電、通信行業中,尤其需要單片機方面的人才,調查表明,掌握單片機技術的高等學校學生在畢業后,不管是在就業率方面還是滿意度方面都是相當高的。

然而,要學習好單片機這一技術需要較好的模電與數電的基礎,還需要一定的編程能力,傳統的教學模式在組織內容上讓學生感覺到非常難學,學生通常是一開始抱著極高的興趣,但覺得無從入手,到后來漸漸地失去興趣這樣的惡性循環。因此,單片機課程的改革成為各個高校重點改革的課程之一。

二、單片機技術教學存在的問題

目前幾乎每個工科院校都設有《單片機技術》課程,按照用傳統的教學模式是:先基礎后應用。從單片機硬件結構開始到匯編指令系統,接著是系統擴展與接口技術,還有的高校會增加課程設計。學生一開始接觸單片機就從最抽象、最枯燥的硬件結構與匯編語言,如果學生的基礎與理解能力不夠的話,學習起來就會非常吃力,這也是很多學生對《單片機技術》這門課程不感興趣的原因之一。

另外,在傳統的教學中,理論教學部分遠遠多于實踐教學,而實踐部分往往也是教材規定的幾個實驗項目,學生照著接線輸入程序就完成了,學生完成的更多是一種驗證性的工作,導致學生缺少主觀能動性,在學習的積極性與自主創新上大打折扣。

以上單片機課程在教學過程中存在的問題必須得以改革才能更好地讓我們的學生學習和掌握單片機技術。

三、基于機器人工程對象的單片機教學改革

1.利用輪式機器人平臺項目式教學。機器人的控制核心是單片機,控制對象直觀,也極具趣味性,因此很適合作為單片機的學習載體。在各種機器人中,輪式機器人結構簡單清晰,控制難度不高,可搭載多種傳感器實現多種智能控制,擴展性很強,充滿了趣味性,非常適合單片機初學者學習使用。

輪式機器人可根據控制輪子的數量分為四輪、六輪等輪式機器人,輪子數量直接關系到機器人的復雜程度,比如六輪的玉兔月球探測車相當復雜。作為學生學習的輪式機器人,力求結構簡單、容易理解,因此底盤可采用三輪結構,其中兩輪作為驅動輪和一個隨動輪作為支撐。驅動電機采用舵機控制,控制方式是脈沖寬度控制正轉、反轉與靜止,主控制板采用PCBA形式組裝好單片機、通信模塊燒錄接口等,擴展使用排針與面包板外接傳感器或擴展模塊。

輪式機器人的硬件上,除了底盤舵機的接線已經固定外,各種類型的傳感器需要學生使用面包板,自己進行設計安裝,也可以通過擴展模塊進行傳感器的拓展。擴展內容包括有簡單的開關信號、光電管的使用到復雜的顏色傳感器等,改變了傳統教學的純理論學習+實驗的模式,學生在動手調試程序與硬件的過程中,即做即得,這樣不僅加強了學生的動手能力,也大大提高了學生的學習積極性。

2.C語言代替匯編語言。傳統的單片機教學通常以匯編語言進行講解,使用匯編語言的優點是結合硬件,使得學習者能徹底地掌握單片機的運行原理,打好良好的基礎。正因為匯編語言有這樣的顯著優點,現在仍有不少高校以匯編語言進行單片機教學,但是匯編語言抽象難懂,要求學習者有較強的硬件基礎與邏輯思維,不少初學者在接觸單片機就遇到如此難懂的匯編語言使得他們的學習積極性大打折扣,從而影響后續的學習。

C語言是高級編程語言,是最普遍的編程語言之一,它具有良好的移植性,可以在不同平臺上實現移植,例如51單片機可以使用Keil C進行單片機的程序編寫,C語言的程序易讀易懂,極具結構化,在程序的編寫上比匯編語言要簡易很多。目前,絕大部分的電子工程師在使用單片機時都采用C語言編程,而且單片機廠家也提倡工程師使用C語言編程,也提供了大量的源代碼,使得開發速度大大地提高。正因為如此,不少高校開始采用C語言進行單片機教學。

由于C語言移植性非常強,即平臺的依賴性不高,使得程序員不需要十分熟悉單片機的硬件結構就能進行程序的編寫,但作為學生的單片機學習,對硬件結構的掌握是十分必要的,因此,通過輪式機器人平臺的使用,加強了對單片機結構的認識,可以彌補學生在硬件結構學習上的不足。

在輪式機器人的使用過程中,除了與匯編語言相近的I/O使用、延時、條件判斷、循環、中斷等內容,還有C語言的函數、數組、指針等內容,通過機器人的控制結合單片機CPU的結構特點進行學習與設計。例如:使用數組對輪式機器人的行走進行控制,在數組數據類型的選擇、數組成員的多少等,都與單片機的RAM結構有直接的關系,學生通過修改這些參數查看程序狀態來認識單片機的內部結構。

相比匯編語言,C語言在編程效率上有明顯的優勢,可以快速的完成程序的編寫,在教學實踐中,不少學生積極發揮主觀能動性,自己編寫函數、修改例程、完成不同的任務,而在以往的匯編語言的教學中,只有少部分學生能完成類似的任務,由此可見單片機C語言是現代單片機教學改革的一個重要部分。

3.過程考核。在傳統的單片機教學上基本都采用試卷考核的方式,或者采用課程設計的方式,在考核方式上比較單一、片面,也很難對學生階段性的學習進行總結評價,考核方式務必進行改革。

在輪式機器人的單片機教學中采用過程考核與期末考核相結合的方式,過程考核中以具體項目的完成情況進行考核。考核過程包括:(1)學生自評,根據設計的項目,學生對自己的表現做一個總結;(2)小組互評,學生以評委的角度對其他學生評分,可以使得學生培養團隊合作精神并且可以取長補短;(3)教師評價,教師進行總結評價,對個別表現突出,有創新性設計的同學進行點評,帶動其他同學的積極性。

期末考核從課程中的項目選取具有代表性的任務作為考核內容,采用抽簽的方式,學生抽到隨機的任務后,選取相應的傳感器在面包板搭建電路,編寫程序,最終實現任務的要求,完成工程文件(畫電路圖、元件清單、程序流程圖)。教師對學生考核的過程打分,實現考核。

在教學過程中采用過程考核與期末考核結合的方式,使得學生的積極性大大地提高了,無論從學生的理論和實踐上都能取得良好的效果。

四、總結

傳統的單片機教學模式存在不少缺點,本文使用輪式機器人與C語言作為單片機的學習平臺,采用項目式教學,考核上采取過程考核與期末考核相結合的方式對單片機課程進行改革,在進行了一年的單片機教學改革后,明顯發現了學生在學習積極性上得以明顯的改善,學生的創新能力與實踐動手能力都得以提高。實踐證明,基于機器人工程對象的單片機教學模式是單片機教學改革的一種嘗試,而且有一定的效果。

參考文獻:

[1]宋錦.單片機教學中培養學生創新能力探討[J].中國成人教育,2006,(05).

[2]葉愛芬,王旺迪.論工學結合模式下的單片機教學改革[J].科技信息,2011,(11).

第7篇

關鍵詞:單片機 應用原理 開發技巧 作用

二十一世紀,微電子、IC集成電路行業發展迅速,其中單片機行業的發展最引人注目。單片機以其高性價比和靈活性已成為當今電子信息領域應用最廣泛的技術之一。單片機是最普及、最實用的嵌入式微控制器,單片機應用技術也可以說是智能化電子產品設計的核心技術。單片機的應用技術夜是現代電子設計的核心技術,學習單片機知識就是要將單片機應用到電子產品中,以單片機為控制核心實現電子系統所需實現的功能。目前單片機滲透到我們生活的各個領域,導彈的導航裝置,飛機上各種儀表的控制,的網絡通訊與數據傳輸,廣泛使用的各種智能IC卡等等,這些都離不開單片機。可見單片機的應用與開發技巧的掌握對于我們來說至關重要。

1、單片機的特點應用以及應用技術的發展

單片機的特點主要有:高集成度,體積小,高可靠性;控制功能強;低電壓,低功耗,便于生產便攜式產品;易擴展;優異的性能價格比。目前,單片機的應用領域主要包括:辦公自動化設備;單片機在機電一體化中的應用;在實時過程控制中的應用;單片機在日常生活及家用電器領域的應用;在各類儀器儀表中引入單片機,使儀器儀表智能化,提高測試的自動化程度和精度,簡化儀器儀表的硬件結構,提高其性能價格比;在和領域中的應用;商業設備;單片機在醫用設備領域中的應用;汽車產品;航空航天系統和國防軍事、尖端武器等領域,單片機的應用更是不言而喻。

一個單片機系統的可靠性是其自身軟硬件與其所處工作環境綜合作用的結果。對于系統自身而言,能不能在保證系統各項功能實現的同時,對系統自身運行過程中出現的各種干擾信號及直接來自于系統外部的干擾信號進行有效的抑制,是決定系統可靠性的關鍵。有缺陷的系統往往只從邏輯上去保證系統功能的實現,而對于系統運行過程中可能出現的潛在的問題考慮欠缺,采取的措施不足,在干擾信號真正襲來的時候,系統就可能會陷入困境。

2、單片機開發中的幾個基本技巧

在單片機應用開發中,代碼的使用效率問題、單片機抗干擾性和可靠性等問題仍困擾著。在傳統的單片機中,電源及地線是在集成電路外殼的對稱引腳上,一般是在左上、右下或右上、左下的兩對對稱點上。這樣,就使電源噪聲穿過整塊芯片,對單片機的內部電路造成干擾。現在,很多單片機都把地和電源引腳安排在兩條相鄰的引腳上。這樣,不僅降低了穿過整個芯片的電流,而且在印制電路板上容易布置去耦電容,從而降低系統的噪聲。在應用過程中對于如何減少程序的bug,應該先考慮系統運行中應考慮的超范圍參數,包括參數中的激勵參數、采集處理中的運行參數和處理結束的結果參數等;還有在系統中的電路、器件、功能單元的資源,如記憶體容量、存儲單元長度、堆疊深度的資源參數,應用參數:這些應用參數以及常表現為一些單片機、功能單元的應用條件的應用參數和指系統運行中的有序變化的過程參數,對于參數的正確處理,能更好、合理的使用單片機的功能,帶來有利的成效。其次,用C語言進行單片機程序設計是單片機開發與應用的必然趨勢。如果使用C編程時,要達到最高的效率,最好熟悉所使用的C編譯器。先試驗一下每條C語言編譯以后對應的匯編語言的語句行數,這樣就可以很明確的知道效率。對于復雜而開發時間緊的項目時,可以采用C語言,在運用過程別要注意C編譯系統所能支持的數據類型和算法。雖然C語言是最普遍的一種高級語言,但由于不同的MCU廠家其C語言編譯系統是有所差別的,特別是在一些特殊功能模塊的操作上。所以如果對這些特性不了解,那么調試起來問題就會很多,反而導致執行效率低于匯編語言。

在單片機的應用過程中實現其抗干擾性能也是必要的技巧之一。單片機干擾最常見的現象就是復位;至于程序跑飛,其實也可以用軟件陷阱和看門狗將程序拉回到復位狀態;所以單片機軟件抗干擾最重要的是處理好復位狀態。一般來說防止干擾最有效的方法是去除干擾源、隔斷干擾路徑,但往往很難做到,所以只能看單片機抗干擾能力夠不夠強了。因此,在提高硬件系統抗干擾能力的同時,軟件抗干擾以其設計靈活、節省硬件資源、可靠性好越來越受到重視。另外你也可以自己在RAM中埋一些標志。在每次程序復位時,通過判斷這些標志,可以判斷出不同的復位原因等。

另外,當一個單片機系統設計完成,對于不同的單片機系統產品會有不同的測試項目和方法,但是有一些是必須測試的:測試單片機軟件功能的完善性;上電、掉電測試;老化測試;ESD和EFT等測試。我們還可以模擬人為使用中,可能發生的破壞情況,由此測試抗靜電的能力。用大功率電鉆靠近單片機系統工作,由此測試抗電磁干擾能力等。

3、結語

必須由模擬電路或數字電路實現的大部分功能,現在可以利用單片機通過軟件方法來實現,這種軟件代替硬件的控制技術也稱為微控制技術,是傳統控制技術的一次革命。單片機已成為計算機發展和應用的一個重要方面,單片機應用的重要意義還在于,它從根本上改變了傳統的控制系統設計思想和設計方法,發揮它更加廣闊的用途。

第8篇

摘要:本文以AT89C51單片機為核心,設計一個基于單片機的數據采集系統。系統可以采集16路模擬量,精度為12位,16路開關量和2路脈沖量,并將采集到的數據每隔一分鐘通過串口發送到PC機。關鍵字:AT89C51;數據采集;串口通訊作者簡介:嚴懷龍(1972-),江蘇省靖江人,內蒙古烏海市永紅機電成套設備有限責任公司電子工程師。1概述在工業控制系統中,除了控制單元和執行單元外,還必須有反饋環節。在反饋環節中,最重要的就是對數據的采集。一般的工業控制中,數據有很多種形式,最常見的有電流電壓的模擬量、以二進制形式輸入的開關量以及以脈沖形式輸入的脈沖信號。本文設計一數據采集系統系統,系統以AT89C51單片機為核心,AT89C51是一個低電壓,高性能CMOS8位單片機,片內含4kbytes的可反復擦寫的Flash只讀程序存儲器和128bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元。AT89C51是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,2個16位可編程定時計數器,1個全雙工串行通信口[1],AT89C51可以按照常規方法進行編程,也可以在線編程,這給開發帶來方便。如圖1所示為設計的系統原理框圖。系統選擇一個串行的A/D轉換芯片,用模擬開關作擴展,兩個模擬開關即可擴展成16路的模擬量輸入。開關量的采集可以直接用單片機的I/O,用兩個并口即可完成16路的開關量采集。如圖所示,AT89C51單片機還有兩個外部中斷接口,即可用來測量脈沖量的輸入,采集其輸入頻率。單片機可以通過串口與上位PC機進行通訊,把采集到的數據發送到上位機上。圖1系統原理圖2硬件電路設計系統硬件可以分成四個部分,分別為模擬量采集電路、開關量采集電路、脈沖量采集電路以及單片機與PC的串口通訊電路。下面分別作簡單的介紹。2.1模擬量采集電路模擬量的采集要用到A/D轉換芯片,而且精度為12位,這里選擇MAX1241 A/D轉換器。MAX1241是一種低功耗、低電壓的12位逐次逼近型ADC,最大非線性誤差小于1LSB,轉換時間9ms,內置快速采樣/保持電路。MAX1241采用三線式串行接口,與單片機的接線簡單,如圖2所示[3]。圖中兩個電容是去藕電容,用以對電源進行濾波。Vi是采集電壓的輸入端,Vref是A/D轉換器的參考電壓。一般情況下可以接單片機的電源。圖2 MAX1241與單片機的接線圖系統要求對16路的模擬量進行采集,因此,只有一個A/D轉換器就不夠的,但如果用多個A/D轉換器一方面會造成資源浪費,成本加大,另一方面單片機的I/O也不夠,因此這里用兩個8路模擬開關進行擴展,擴展成16路。如圖1的原理圖所示,系統選用兩個CD4051模擬開關[3],并用單片機的四個I/O口控制兩個模擬開關的通道選擇端,在采集過程中,選擇不同的通道進行數據采集。2.2開關量采集電路對開關量的采集電路相對比較簡單,因為開關量的狀態只有0和1兩種,所以只要用兩個單片機的并口就可以了,這里用的是P0口和P2口。但是有一點需要說明的是:由于AT89C51單片機的P0口內部沒有上拉電阻,所以在電路中必須加入外部上拉電阻,阻值可以是4.7K~10K。而P2口內部自帶上拉電阻,所以不需外加上拉電阻。采集輸入電路如圖1系統原理圖所示。2.3脈沖量采集電路脈沖量信號是周期變化的信號,AT89C51單片機有兩個外部中斷INT0和INT1接口,利用這兩個外部中斷輸入接口,可以對脈沖量信號進行測量,脈沖信號可以直接送到單片機的外部中斷接口,也可以進行適當的整形后再送到單片機的外部中斷接口,如加入帶施密特功能的反向器74LS14。也可以用比較器進行整形,這樣使單片機的采集測量更加可靠,更加精確。2.4通訊電路該系統沒有設計數據的顯示系統,所以把采集到的數據發送到上位PC機上,與PC進行通訊。因為單片機與PC機的電平是不一樣的,因此兩者要進行數據交換,必須采用相應的電平轉換電路。用得最多的就是RS232通訊方式,采用MAX232芯片即可完成。簡單的電路如圖3所示。圖3 通訊電路3軟件設計根據設計要求,按照實現功能的分類,軟件部分主要完成四項任務:系統初始化、數據采集、數據處理、向PC機發送數據。在數據處理中,需要進行大量浮點數的乘除法和正弦、余弦運算,因此數據處理部分采用C語言編寫,在Keil環境中模塊化編程,充分利用C語言強大的計算能力。在數據采集部分中,MAX1241對時序要求比較嚴格,采用匯編語言實現,所有功能模塊均為獨立的C文件或ASM文件。而實現C語言和匯編語言的混合編程[2]是軟件設計中的難點和關鍵之一。在設計中,匯編語言采用單獨的文件,通過寄存器傳遞函數參數。程序流程圖如圖4所示。這里給出MAX1214的控制程序,是用匯編語言編寫,控制子程序完成一次A/D轉換和輸入,輸入數據存放于R0,R1寄存器。;寄存器及端口定義:CS:BITP1.0;片選信號位DOUT:BITP1.2

;串行數據輸入位SCLK:BITP1.1;驅動時鐘位DATA_BH:EQUR0;高字節數據存儲單元DATA_BL:EQUR1;低字節數據存儲單元CONT_H:EQUR0;高位取數計數器CONT_L:EQUR1;低8位取數計數器SADC_R:XRLA,A;清AMOVCONT_H,#04H;高8位計數MOVCONT_L,#08H;低8位計數CLRSCLK;SCLK置“0”CLRCS;選中1241,啟動轉換SADCEND:JNBDOUT,SADC_END;檢測A/D轉換結束READ_H:SETBSCLK;CLRSCLK;產生一個驅動時鐘MOVC,DOUT;輸入一位數據RLCA;數據移位至ACC.0DJNZCONT_H,READ_H;高4位輸入結束判別MOVDATA_BH,A;高4位數據送寄存器READ_L:SETBSCLKCLRSCLK;產生一個驅動時鐘MOVC,DOUT;輸入一位數據RLCA;數據移位置ACC.0DJNZCONT_L,READ_L;低8位輸入結束判別MOVDATA_BL,A;低8位數據送寄存器SETBSCLKCLRSCLK;清DOUT輸出SETBCS;撤消片選RET

圖4 軟件程序流程圖4結束語該系統以AT89C51單片機為核心,可以對16路模擬量、16路數字開 關量和兩路脈沖量進行采集,模擬量采集精度達到12位,在實際應用中,可以對電壓信號進行直接采集,如果要對傳感器的標準電流量進行采集時,還需加入采樣電阻,把電流轉換成電壓后進行采集。對采集的脈沖量的頻率取決于單片機的時鐘頻率,一般不能高于單片機的運行時鐘,如單片機用12MHz的晶振,則采集的脈沖頻率只能低于12MHz。本系統在實際應用中已調試通過,采集的數據精度高,速度快。參考文獻[1]孫涵芳.單片機原理及應用(修訂版)北.京航空航天大學出版社,1996年.[2]馬忠梅.單片的C語言應用程序設計(第三版).北京航空航天大學出版社,20__年.[3]于海生.微型計算機控制技術.北京:清華大學出版社,1999年.

第9篇

在單片機課程教學過程中,學生普遍反應不容易入門,針對各個教學難點很多一線教師采用了多種教學方法幫助學生理解抽象的問題,但是仍然沒有改變該門課程不易入門的特點,為了解決這一問題,本文結合目前前沿技術給出了一種采用圖形化語言編譯平臺降低單片機課程入門難度的課改方向。

關鍵詞:

單片機;流碼;課程改革;圖形化語言

0引言

“單片機技術與應用”這門課程目前是電子信息、電氣類專業學生必修的課程之一,通過該課程的學習,學生能夠理解智能儀器的原理及應用方法、了解自動控制設備的控制方法,以及能夠完成一些簡單電子產品的開發設計工作。單片機可以看做屬于計算機硬件范疇的課程,該類課程比較抽象,學生不易入門,是學生比較難以掌握的課程。隨著技術的發展,目前市場上使用的單片機內核種類很多,51、AVR、PIC、MSP430等都是比較常見的單片機類型,但是其中51內核單片機一直是眾多高校或者職業院校教學一直采用的芯片類型。經典51內核單片機之所以被廣泛用于教學主要有以下幾方面原因:

(1)技術成熟,相關學習及應用資料多。

51單片機相對于其他類型單片機起步較早,上世紀80年代就開始傳入我國進行研究應用了。在30多年的教學、科研過程中積累了大量的學習和應用材料,所以不論對于老師教學還是學生自學都有大量的參考學習資料,可以從書籍、網絡論壇、期刊論文數據庫等多途徑獲得。

(2)任課教師普遍熟悉51單片機的原理及應用

很多任課教師自身在學習過程中接觸的就是51內核單片機,所以教師教學過程中更傾向于選擇51單片機作為授課對象,就這樣一代傳一代,51單片機的應用客戶群逐漸壯大起來。

(3)51單片機本身也在不斷完善發展

同為51內核單片機,但是不同品牌廠商對自己的產品都在不同方面進行完善,宏晶科技有限公司的STC各系列單片機就是其中的代表,不論從運算速度、可靠性上還是片上資源上都不斷進行更新,另外在供電方面還有低功耗的類型。所以從技術應用上,51單片機經過多年的發展并沒有落后于其他MCU。

1單片機學習難點

在教學過程中發現,不論是51還是其他內核的單片機都存在入門難特點,這主要是由單片機硬件本身特性決定的。以51單片機為例,單片機學習的難點主要有這幾方面:

(1)硬件結構理解比較抽象

(2)編程語言學習困難

很多學生在學習單片機硬件結構時,對各部分結構的理解停留在概念描述層面,不能很快轉變思維方式,對其功能,實際作用與實際工作和應用聯系不起來。對于沒有編程基礎的同學,不論是學習匯編語言還是C語言,在程序編寫上都需要有一個思維轉變適應的過程,很多學生不適應,一直覺得單片機難學。

(3)知識點難理解

在單片機學習過程會涉及到很多新名詞和知識,例如中斷、定時計數器、串口等,這些功能的工作方式或者啟動流程也是學習過程中需要注意的難點。單片機課程教學可以看成以下三個部分:單片機及語言的選擇、教學實施過程、目標,如圖1所示。檢索很多文獻發現,為了達成教學目標,教學中設計實施了各種教學方法、教學模式改革和創新,對學生學習應該說有很大幫助,但沒有改變單片機學習困難和不易上手的本質。

2高職學生學情分析

當前高職生源存在以下幾個普遍問題:

(1)學生高考成績低,基礎不好;

大部分高職生的基礎就相對薄弱,有些甚至基本的高中物理電學基礎知識都不能很好掌握。

(2)自控性較差,習慣性不學習

高職生源部分學生自控能力差,上課經常玩手機或者看小說等,從小沒有養成良好的學習習慣,所以在教學過程中教師采取各種教學方法吸引學生注意力,但對于一些純理論枯燥的較難知識點,教學效果還是不理想。

(3)對問題的理解能力相對較弱

高職學生與本科生相比,對問題的理解能力的平均水平相對弱,對較為抽象的問題學習起來也會相對吃力。

3新興開發平臺及語言降低單片機學習門檻

(1)Arduino平臺

Arduino是在AVR單片機基礎上開發的一款便捷靈活、方便上手的一款包括軟件和硬件的的開源電子原型平臺。硬件(各種型號的Arduino板)、軟件(ArduinoIDE)。后來隨著技術發展,以其他芯片為基礎的Arduino核心板也出現了,運算速度和硬件資源都相應的得到了提高。軟件平臺ArduinoIDE是基于processingIDE開發。對于初學者來說,極易掌握,同時有著足夠的靈活性。Arduino語言基于wiring語言開發,是對avr-gcc庫的二次封裝,不需要太多的單片機基礎、編程基礎,學習起來相對于直接C語言或者匯編語言開發單片機應用程序更為簡單,可以快速地進行產品開發。另外Arduino平臺在網絡上可以找到很多開源的軟件和硬件資源供初學者學習使用。

(2)圖形化語言開發平臺

圖形化語言開發平臺是近些年編程語言的一個發展方向。Arduino平臺也開發了相應的圖形化程序開發環境,通過圖形化方式更直觀的表現出程序邏輯,直接避開了文本代碼方面的記憶,對于英語不好見英文就怕的學生來說這種圖形化程序更容易接受。最近幾年在圖形化編程環境領域出現了一個新平臺叫Flowcode,目前已經更新到V6版本,該平臺支持PIC、AVR、ARM三種硬件芯片的程序編寫。這款平臺的編程語言也很有創意,類似于程序流程圖,簡稱“流碼”,同時還兼容C語言,對于已經完善的C語言代碼可以直接嵌套到流碼程序中。此外該平臺還支持中文菜單,更容易被學生接受。由于流碼程序近似于程序流程圖,和其他圖形化語言相比,流碼對學生編程思維邏輯培養上更具優勢。在該平臺中還集成了一些基礎功能的驅動宏,直接進行圖標拖拽調用即可,不需要學生深入了解硬件結構和具體寄存器工作原理及配置,這部分工作,Flowcode平臺已經代勞。通過該平臺的學習可以讓學生更快更好理解單片機的用途,并能很快上手應用。

4結語

職業教育教學應該隨著行業技術的發展與時俱進,跟上技術前沿,這樣職業教育才更有意義,培養出的人才能更適應社會需求,圖形化語言對于單片機技術人才培養上縮短了培訓周期,這也意味著單片機行業程序開發人才的供給更快捷,可以為縮短企業產品研發周期和后備技術人才的供給周期,同時也是單片機技術與應用課程授課內容改革的一個重要方向。

參考文獻:

[1]張江城,胡橙.基于Arduino的高職高專單片機相關課程改革設計[J].中小企業管理與科技旬刊,2016(10).

[2]李華洲.基于Arduino的高職物聯網相關課程改革設計[J].大眾科技,2015(01).

第10篇

單片機是利用大規模集成電路技術把中央處理單元(Center Processing Unit,也即常稱的CPU)和RAM、ROM及其他I/O接口集成在一塊芯片上,構成一個最小的計算機系統,而現代的單片機則加上了中斷、定時及A/D等更復雜、更完善的電路,使得單片機的功能越來越強大,應用更廣泛。因此單片機教學在電氣信息類相關專業中越來越重要,“單片機原理及應用”課程必須理論結合實踐,才能取得較好的教學效果。根據本課程的特點,結合應用型本科院校以培養應用性人才的宗旨,課題組對該課程的教學內容、教學模式和實踐訓練三個方面進行了探索與研究。

1 單片機原理及應用教學現狀

目前大多數高校的理論教學過程都是采用先基礎后應用的模式,即單片機硬件結構、指令系統、匯編語言設計、外部系統擴展、接口技術和應用系統設計,這種方法雖然思路清晰,但是存在著過于機械性的弊端,缺乏生動、直觀的實物等輔助教學手段,這樣便使學生覺得學習單片機枯燥乏味,沒有現實意義,缺乏興趣,嚴重影響了教學效果。主要體現有以下兩個方面的問題。

(1)理論教學中主要講述51單片機的硬件結構和相關組成部分的工作原理及外圍接口設計,軟件編程多是以匯編語言為主。匯編語言語句不直觀,為完成一個非常簡單的操作,匯編語言需要寫許多條命令,理解起來很有難度,很容易讓學生失去學習單片機的興趣。

(2)實驗教學中多以驗證性實驗為主,學生編程后進行編譯,將程序下載到單片機實驗箱上演示。實驗指導書上已經寫好了連線方式和程序資料,學生很少獨立分析程序及其編寫代碼。大多數學生只追求實驗結果,對于整個硬件系統設計和軟件調試過程模糊。

2 單片機原理及應用教學改革初探

針對單片機教學和實驗中存在的問題,以培養應用型本科學生為目標,結合工程與應用實際需求,從教學內容、教學模式和實踐訓練3個教學環節進行改革。

2.1 教學內容的改革

在單片機原理及應用課程第一次授課時,給學生展示單片機行業的發展情況、單片機產品以及單片機開發公司的招聘信息。讓學生真正體會到單片機技術的實用性,激發他們學習的興趣和求知欲。學生在看到企業招聘信息后,能夠明確本門課程的學習目標。

隨著時間的推移和科學技術的進步,51單片機已經有了很大的發展和變化,已經派生出來很多51系列產品,其內部資源也變得非常豐富,如看門狗、PWM、SPI、A/D等。因此,更新單片機教學內容勢在必行。在教學中增加新產品、新技術的知識,使得學生能夠滿足企業人才的技術需求。如可以增加I2C總線、SPI總線、CAN總線等內容。

為了讓學生與企業開發接軌,在講授完匯編語言程序設計之后,加入C51語言的相關知識。由于學生已經在大一時期學習過C語言程序設計的課程,只需要在課堂上加以引導,如:C51庫函數、C51的存儲結構、C51擴展關鍵字等強調介紹。同時,在介紹過程中采用匯編語言與C51語言對照的方式講授,學生就能夠很快掌握單片機編程。

2.2 教學模式的改革

采用項目驅動教學法,先簡單后復雜,將各個知識點的學習融入到各個實際工程模塊中,讓學生在每一個項目中學會各個模塊的使用。如:單片機的并行接口技術可以通過舞臺燈光系統、國際交通燈、搶答器項目來介紹;定時器和中斷系統可以通過電子琴、音樂盒、萬年歷項目來介紹;串行通信接口可以通過GPRS通信來介紹;單片機與A/D、D/A轉換器接口可以通過農業大棚溫濕度采集系統,電子壓力秤來介紹。這種教學將“老師講,學生聽”的被動教學模式轉變為“學生主動參與,教師指導”的主動教學模式。教師的教學和學生的學習都圍繞這些項目來完成,強調學生“學中做、做中學”的新型學習過程,極大地激發了學生的學習興趣,創新了教學模式。

2.3 實踐訓練的改革

通過課內實驗教學、課程設計、大學生電子設計競賽等多種渠道實現真正的創新型實踐教學。課堂上引入Proteus和keil軟件的使用,使學生在課堂上可以對相關的軟硬件有一個直觀的了解,課內實驗要求學生將理論授課中的項目通過Proteus設計出仿真的電路圖、用keil軟件編寫實驗程序、最終能實際仿真到效果圖。

課程設計周期為2周,在課程設計中,學生選擇教師所給的題目,根據題目目的和要求查閱相關資料,學生從元器件選擇、電路設計、PCB板繪制、電路焊接、程序編寫到調試都需要獨立完成。對于學生在實驗中出現的問題教師給予指導,在解決問題的過程中加深了學生對單片機應用系統軟硬件設計的理解。

鼓勵學生參加大學生電子設計競賽、全國大學生“飛思卡爾”杯智能汽車競賽、“畢?杯”全國電子創新設計及物聯網應用系統設計競賽等面向大學生的群眾性科技活動,提高學生創新能力、協作精神、理論聯系實際、動手能力和工程素質的培養。

第11篇

關鍵詞:STC89C52;單片機;溫度測量

中圖分類號:TP319 文獻標識碼:A 文章編號:16727800(2013)003010402

0 引言

溫度對于生活、科研、工業、醫藥等各個領域都是一個非常重要的參數。在工業生產中,溫度的控制直接影響到生產工藝、產品質量。大量有關化學反應的工藝過程也必需在適當的溫度下才能正常進行。醫藥食品的生產運輸、農業生產和家禽畜牧也都需要對溫度進行嚴格檢測、控制和記錄。

早期的溫度記錄通常采用人工記錄的管理方法,由工作人員讀取溫度計溫度后手工記錄。現在雖然使用溫度記錄儀,但普通記錄儀體積龐大、精度低、功能不夠完善、穩定性較差。

鑒于上述技術上的不足,研究了一種基于單片機的低功耗、微型化、可以連續記錄的溫度記錄儀。該溫度記錄儀提供PC機通信接口,使PC機軟件實現對溫度數據的存儲記錄、分析和處理。

1 系統總體設計

溫度記錄儀在硬件上主要由STC89C52單片機、DS18B20溫度傳感器、1602液晶、報警指示燈、存儲器構成,系統原理如圖1所示。

1.1 系統硬件設計

本系統用STC89C52單片機作為控制核心,利用AT89C52單片機強大的功能和優異的擴展性,液晶、報警燈和按鍵等少量電路構建系統。

(1)STC89C52單片機。 STC89C52單片機是一種高性能、低電壓,帶8K字節閃爍可編程、可擦除、只讀存儲器的微處理器。STC單片機完全兼容AT89C51,無需用昂貴的軟件編輯器來燒寫程序,支持串口直接下載程序。

(2)測溫電路采用DALLAS公司的DS18B20。 DS18B20是美國DALLAS公司生產的數字溫度傳感器芯片,可直接輸出溫度值,通過簡單接口就能與單片機實現通信,結構簡單、體積小、功耗小、抗干擾能力強、使用方便。采用3腳PR35封裝,其引腳排列及測溫原理如圖2所示。

(3)顯示電路。 本設計采用1602液晶屏顯示。液晶顯示器的主要原理是以電流刺激液晶分子產生點、線、面并配合背部燈管構成畫面。1602通用型液晶一共可以顯示兩行,每行16個字符,具有體積小、功耗低、顯示操作簡單等特點。顯示電路結構如圖3所示。

(4)MAX232串口電路。為了實現PC與單片機之間的串口通信,本設計采用MAX232串口電路。MAX232芯片把電腦串行口rs232信號電平(-10,+10V)轉換為單片機所用到的TTL電平(0,+5V)芯片,從MAX232芯片中的發送和接收中任意選擇一路作為接收,接線時一定要注意引腳的對應,否則會造成計算機串口和對應元器件永久損壞。

1.2 系統軟件設計

(1)單片機程序由主程序和中斷子程序組成。主程序負責對來自上位機的命令進行解析并執行讀溫度值、存儲溫度值、輸出控制等,如圖4所示。

終端服務程序只負責單片機和上位機之間數據的發送和接收。

(2)上位機軟件用VISUAL C++語言設計完成。其界面簡潔、功能全面。

軟件啟動后首先連接設備,然后讀取設備狀態,下載數據,并在數據下載完成后進行分析處理,繪制出溫度變化曲線。

2 結語

利用STC89C52單片機為核心的溫度記錄儀具有系統成本低廉、操作簡單、可擴展性強、易維護、開發周期短等優點。實驗表明:該系統適合用于食品儲藏、醫藥工業、畜牧業等多個領域。

參考文獻:

\[1\] 潘琢金.C8051F高速SOC單片機原理及應用\[M\].北京:北京航空航天大學出版社,2002.

\[2\] 蘇家健.單片機原理及應用技術\[M\].北京:高等教育出版社,2004.

第12篇

關鍵詞:單片機;仿真軟件;實驗系統

DOI:10.16640/ki.37-1222/t.2017.08.178

1 引言

單片機應用是大學本科及專科信息類、電子類、機電類專業的一門核心課程,該課程的前導課程主要有計算機文化基礎、C語言及應用、電路與電子學、數字電路等課程,后續課程按照不同的專業劃分,主要有RFID技術與應用、無線傳感器網絡技術和工業機器人等課程,由于該課程涉及到的知識點多且較難,因此,歷來該課程是工科類大學生的難點和重點課程之一。

2 傳統單片機教學的方式

傳統的單片機教學方式,一般是在專門的單片機實驗室里使用單片機實驗臺和電腦等設備教學[1]。學生首先進行單片機線路的連接,如單片機引腳和LED燈、七段數碼管、8*8點陣等互聯,之后使用電腦進行軟件程序設計,在代碼編譯成功后通過數據線將編譯成功的目標代碼hex文件寫入單片機中,最后系統上電,查看單片機系統的執行效果。

但是傳統的教學方式,有很大的不足之處,主要有以下幾方面:

(1)一般的實驗室的面積有限,單片機實驗綜合系統(包括一臺電腦)只能放8到10套,而一個班的學生一般在35到50人,每個人操作的時間有限;

(2)由于單片機的前導課程之一是電路與電子學,而在單片機實驗室連接線路時,需要使用該前導課程的相關知識,但有些學生的相關知識儲備不充分,因此連接線路易出錯;

(3)物理連線和目標程序寫入等過程,占用了大量的課堂時間。

3 在單片機教學中使用仿真軟件

由于傳統的單片機教學方式存在諸多不足之處,因此我院信息工程學院、機電工程學院等開設單片機應用課程的院系使用了新的教W方式,即使用仿真軟件來進行單片機應用課程的教學。

在實際的教學中,對于硬件系統,使用Proteus進行仿真,而對于軟件部分,則使用傳統的Keil軟件來進行編程[2]。

這樣則可以把該課程的教學從單片機實驗室移到計算機機房中進行,一個標準的計算機機房一般擁有計算機的數量都在50臺以上,因此一個班的學生可以每人一臺計算機進行操作,避免了單片機實驗室人多實驗臺少的情況[3]。同時,減少了連線時間,提高了學習的效率。

4 使用仿真軟件在單片機應用課程中的教學實例

在實際的教學中,采用的教材是電子工業出版社出版的《單片機應用技術(C語言版)》,該教材是任務驅動教學模式,每一個章節即為一個具體的任務,授課時首先由老師講解演示具體的實驗,之后學生做實驗,然后講解相關的理論,這樣的教法,學生普遍反映比先理論后實驗的方式學習效率要高很多。

本文以一個LED燈亮的單片機實驗流程來闡述仿真軟件的應用。

首先由教師演示LED燈亮的效果,引起學生的興趣,接著教師帶領學生一起使用Proteus軟件來進行硬件部分的仿真,涉及到的主要硬件有51單片機,LED燈,電源,電阻等元件。

接著對于通用的元件,如單片機,LED燈等,可以直接告訴學生在Proteus中這些元件的名稱,然后直接畫出,而對于電阻,以及后續章節的諸如七段數碼管,8*8點陣等元件,則可以讓學生自行到百度上搜索具體的名稱,一方面可以培養學生的搜索能力,另一方面可以增加學生學習的興趣。

在Proteus中的硬件電路畫好后,接著學生便可以在Keil中進行軟件系統的設計,該設計流程與傳統的單片機實驗流程相同。

在Keil中編寫好軟件后,學生進行編譯,產生最終的目標代碼hex,然后在Proteus中將此hex文件導入到單片機中,最后點擊Proteus左下角的開始按鈕,即可觀看仿真效果。

5 結論

本文探討了使用仿真軟件在單片機教學中的應用,近年來,我院在單片機的教學、比賽、學生的畢業設計等方面均使用仿真軟件來進行,提高了學生的學習效率和學習興趣,增強了學生在單片機系統的實際開發中的能力,因此,使用仿真軟件來進行單片機的教學,是一個值得推廣的教學方式。

參考文獻:

[1]王靜霞.單片機應用技術(C 語言版)[M].電子工業出版社,2009.

主站蜘蛛池模板: 裕民县| 承德县| 科尔| 大庆市| 稻城县| 家居| 汉沽区| 凉城县| 灵璧县| 梁山县| 静乐县| 财经| 军事| 武定县| 柳江县| 濮阳市| 邵武市| 锡林郭勒盟| 乌拉特后旗| 泉州市| 清水河县| 贞丰县| 甘谷县| 新邵县| 龙海市| 麟游县| 涟源市| 昆山市| 泾源县| 封开县| 德惠市| 双峰县| 东城区| 滕州市| 新竹县| 湘潭市| 古交市| 铜梁县| 阿尔山市| 义马市| 都安|