• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Proteus和C51在單片機(jī)課程教學(xué)改革中的應(yīng)用

      2011-04-14 03:16:42集美大學(xué)信息工程學(xué)院福建廈門(mén)361021
      關(guān)鍵詞:匯編語(yǔ)言調(diào)試處理器

      舒 劍 (集美大學(xué)信息工程學(xué)院,福建 廈門(mén)361021)

      單片機(jī)應(yīng)用技術(shù)是高等院校電子信息類(lèi)專(zhuān)業(yè)的一門(mén)重要課程,隨著微控制器技術(shù)廣泛深入地應(yīng)用于工農(nóng)業(yè)生產(chǎn)和日常消費(fèi)電子領(lǐng)域,該課程的重要性越顯突出。該課程學(xué)習(xí)的目的是為了工程應(yīng)用,教學(xué)必須以此目的為出發(fā)點(diǎn)??集美大學(xué)校級(jí)精品課程建設(shè)立項(xiàng) (C14615)。。這決定了這門(mén)課程在學(xué)習(xí)過(guò)程中的2個(gè)重要特點(diǎn),一是以基本原理和設(shè)計(jì)思想為主導(dǎo)的理論學(xué)習(xí),二是要有培養(yǎng)實(shí)踐動(dòng)手能力的強(qiáng)烈意識(shí)。兩者相互相成,實(shí)驗(yàn)教學(xué)提供的實(shí)踐機(jī)會(huì)能讓學(xué)生找到 “感覺(jué)”,對(duì)理論的理解將更形象和深刻,而實(shí)踐能力的加強(qiáng)也需要理論作為基礎(chǔ)。

      1 對(duì)課程教學(xué)改革的思考

      在課堂教學(xué)環(huán)節(jié),考慮到電子信息專(zhuān)業(yè)學(xué)生在第5學(xué)期已學(xué)習(xí)過(guò)微機(jī)原理與接口技術(shù)課程,以8086匯編講授軟件編程部分,且在更早以前學(xué)習(xí)過(guò)計(jì)算機(jī)C語(yǔ)言課程,因此第6學(xué)期的單片機(jī)應(yīng)用技術(shù)可采用C51來(lái)講授MCS-51的軟件編程部分,以充分借助已有基礎(chǔ),更好地?cái)U(kuò)展更高更新的知識(shí)。在實(shí)踐教學(xué)環(huán)節(jié),通行的做法是學(xué)生在實(shí)驗(yàn)之前預(yù)習(xí),也就是根據(jù)書(shū)本理論編寫(xiě)代碼,實(shí)際是否可行需等到實(shí)驗(yàn)室的實(shí)驗(yàn)箱上驗(yàn)證。這種方式有2個(gè)弊端,一是除了實(shí)驗(yàn)上課時(shí)間外,學(xué)生平時(shí)難得有機(jī)會(huì),尤其是需要在實(shí)驗(yàn)箱上進(jìn)行的硬件實(shí)驗(yàn);二是實(shí)驗(yàn)室采用的實(shí)驗(yàn)硬件平臺(tái)大多是實(shí)驗(yàn)箱,是為了滿(mǎn)足大多數(shù)專(zhuān)業(yè)對(duì)單片機(jī)課程實(shí)驗(yàn)環(huán)節(jié)的需要,但這種成品實(shí)驗(yàn)箱卻限制了學(xué)生對(duì)硬件的了解,無(wú)法真實(shí)參與細(xì)節(jié)設(shè)計(jì),另外實(shí)驗(yàn)項(xiàng)目也基本固定,限制了自主學(xué)習(xí)興趣的發(fā)揮。采用支持全面的Proteus仿真軟件進(jìn)行輔助可在很大程度上彌補(bǔ)上述弊端。

      2 采用C51進(jìn)行教學(xué)

      MCS-51單片機(jī)匯編語(yǔ)言與8086匯編語(yǔ)言有許多共通點(diǎn),但也有一些明顯差異,如尋址方式、存儲(chǔ)器訪問(wèn)方式等,這是2種處理器的體系結(jié)構(gòu)差異造成的。在教學(xué)過(guò)程中必須鮮明、重點(diǎn)地提出這些差異,這些差異并不復(fù)雜,也不難,只要交代清楚,完全可達(dá)到滿(mǎn)意的效果,沒(méi)有必要重復(fù)完整講授MCS-51的匯編指令。在教學(xué)上突出MCS-51匯編與8086匯編的差異,然后把主要精力轉(zhuǎn)向C51編程。這樣可充分利用以往學(xué)過(guò)的計(jì)算機(jī)C語(yǔ)言基礎(chǔ),以及微機(jī)原理與接口技術(shù)課程的基礎(chǔ),在單片機(jī)應(yīng)用技術(shù)課程中再上新高度。

      2.1 Keil C51的優(yōu)勢(shì)

      Keil C51是Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言,與匯編相比,C語(yǔ)言在功能、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì)。Keil uVision3是基于C51的集成開(kāi)發(fā)環(huán)境,支持匯編和C51編程,可編譯生成HEX下載文件。若掛接與目標(biāo)處理器相應(yīng)的硬件仿真器可直接進(jìn)行軟硬件聯(lián)合調(diào)試,若純軟件實(shí)驗(yàn)還可完全不需要硬件而單獨(dú)調(diào)試程序。與匯編語(yǔ)言相比,C51可簡(jiǎn)潔地實(shí)現(xiàn)碼制轉(zhuǎn)換、多字節(jié)四則運(yùn)算、浮點(diǎn)數(shù)運(yùn)算,而這些在8位MCS-51上用匯編語(yǔ)言實(shí)現(xiàn)還需要一定的編程量。C51完全采用C風(fēng)格,面向過(guò)程編程,即利用函數(shù) (子程序)來(lái)規(guī)劃整體軟件,雖然匯編語(yǔ)言編程時(shí)也大量采用子程序,但需謹(jǐn)慎處理現(xiàn)場(chǎng)保護(hù)和參數(shù)傳遞問(wèn)題,遠(yuǎn)不如C函數(shù)調(diào)用方便。

      2.2 C51編程要點(diǎn)

      在講授C51編程時(shí),須著重提醒學(xué)生C51與早先學(xué)習(xí)的計(jì)算機(jī)C語(yǔ)言的異同,尤其是它們的差異,防止學(xué)生把兩者混淆。差異主要在以下方面。

      1)存儲(chǔ)器模型 用于指定自動(dòng)變量的默認(rèn)位置,C51提供Small Model、Compact Model和Large Model 3種模型。優(yōu)先考慮Small Model,使用片內(nèi)RAM,生成的代碼更簡(jiǎn)潔,若片內(nèi)RAM不夠用可使用Compact Model或Large Model,但同時(shí)要求硬件在CPU外部以總線方式擴(kuò)展RAM作為配合。

      2)存儲(chǔ)器類(lèi)型 由于MCS-51的存儲(chǔ)器有程序存儲(chǔ)器、片內(nèi)低128BRAM、片內(nèi)高128BRAM、外部RAM、片內(nèi)可位尋址單元,因此一個(gè)變量的存儲(chǔ)位置可以位于上述任何一個(gè)之中,對(duì)應(yīng)類(lèi)型為code、data、idata、xdata、bdata。如以下方法將變量存儲(chǔ)在片內(nèi)低128BRAM中:

      char data var1=100;

      將字符串存儲(chǔ)在程序存儲(chǔ)器中:

      char code text1 []= “This is a string in ROM.”;

      將數(shù)組存儲(chǔ)在片外RAM:

      unsigned int xdata vec1 [2][3];

      3)數(shù)據(jù)類(lèi)型 MCS-51是8位處理器,因此數(shù)據(jù)類(lèi)型定義與計(jì)算機(jī)不同,char類(lèi)型是8位,short和int類(lèi)型是16位,long和float類(lèi)型是32位,bit和sbit類(lèi)型是1位,sfr類(lèi)型是8位,sfr16是16位??梢?jiàn)后4種是ANSI C所沒(méi)有的。數(shù)據(jù)類(lèi)型是編程的基礎(chǔ),熟悉它們才能正確表達(dá)數(shù)值并實(shí)施運(yùn)算,避免溢出等錯(cuò)誤結(jié)果。

      4)中斷 MCS-51有5個(gè)中斷源6個(gè)中斷標(biāo)志,按優(yōu)先級(jí)從高到低依次為/INT0、T0、/INT1、T1、串行口,對(duì)應(yīng)在C51中的中斷編號(hào)為0~4。如T0的中斷服務(wù)子程序應(yīng)寫(xiě)為:

      當(dāng)CPU發(fā)生T0中斷事件時(shí),硬件自動(dòng)轉(zhuǎn)入哪個(gè)中斷子程序是依靠 “interrupt 1”來(lái)確定的,與函數(shù)名無(wú)關(guān),函數(shù)名可任意。后面的 “using 2”用來(lái)指明函數(shù)跳轉(zhuǎn)時(shí)保護(hù)現(xiàn)場(chǎng)使用4組工作寄存器中的第2組,可用其他組,此部分也可不寫(xiě),則C51將中斷程序中用到的寄存器全部壓入堆棧保護(hù)。

      5)指針 如變量的存儲(chǔ)位置有多種,指針本身也是變量,需要占用存儲(chǔ)空間。因此需要討論指針存放在哪里,以及它所指向的變量存放在哪里。如下例,指針ptr存放在片內(nèi)低128BRAM,所指向的int變量位于片外RAM:

      int xdata* data ptr;

      可以看出,這些差異均與MCS-51單片機(jī)體系結(jié)構(gòu)和硬件組成密切相關(guān),因此課堂上講授這部分原理和理論很重要,否則無(wú)法深刻理解C51語(yǔ)言。

      2.3 應(yīng)用舉例

      采用MCS-51串行口擴(kuò)展16位并行輸出口,顯示2位數(shù)碼值。串行口使用方式0,片外擴(kuò)展一片74HC164移位寄存器芯片。圖1為原理圖[1]。

      圖1 MCS-51擴(kuò)展并行口

      采用C51編寫(xiě)程序,為節(jié)省篇幅省略delay()延時(shí)函數(shù)體。

      以上C51代碼在Keil uVision3下可直接反編譯匯編代碼,如圖2所示,可見(jiàn)C51生成的代碼緊湊,效率高,不亞于人工編寫(xiě)的高質(zhì)量匯編代碼。

      3 采用Proteus仿真軟件輔助教學(xué)

      3.1 Proteus仿真軟件的特點(diǎn)

      Proteus ISIS是英國(guó) Labcenter Electronics公司出品的電路分析與仿真軟件。軟件特點(diǎn)如下:①單片機(jī)仿真與SPICE電路仿真相結(jié)合;②支持示波器、信號(hào)發(fā)生器、邏輯分析儀等虛擬儀器,器儀具有理想?yún)?shù)指標(biāo),例如極高輸入阻抗或極低輸出阻抗,這些都盡可能減少了儀器對(duì)測(cè)量結(jié)果的影響[2],支持眾多外部模擬和數(shù)字器件,支持68000、51、PIC、AVR等眾多系列處理器;③自身提供軟件調(diào)試功能,也支持Keil C51等外部編譯和調(diào)試環(huán)境。

      圖2 反編譯C51代碼

      3.2 采用Proteus輔助設(shè)計(jì)的優(yōu)勢(shì)

      在模擬和數(shù)字電路設(shè)計(jì)中,常用的仿真軟件如MultiSim可實(shí)現(xiàn)器件和電路整體的仿真分析,但不支持可內(nèi)裝用戶(hù)自定義程序的微處理器。而Keil uVision3等仿真軟件可實(shí)現(xiàn)單純的處理器仿真,也就是僅支持對(duì)處理器本身仿真,不支持或極少支持處理器擴(kuò)展外圍電路。

      Proteus軟件集中了這兩者的優(yōu)點(diǎn),允許用戶(hù)搭建以單片機(jī)為核心的完整的電路系統(tǒng),并進(jìn)行整體硬件仿真和軟件調(diào)試,能真正對(duì)單片機(jī)系統(tǒng)進(jìn)行輔助設(shè)計(jì)。Proteus還支持與Keil聯(lián)合調(diào)試,在聯(lián)調(diào)時(shí),Keil作為軟件調(diào)試界面,Proteus作為硬件仿真和調(diào)試界面。如可以在Keil中單步執(zhí)行程序,在Proteus看到硬件系統(tǒng)的反應(yīng)。

      Proteus軟件的這些優(yōu)勢(shì)對(duì)于學(xué)生的學(xué)習(xí)具有積極意義,很好地彌補(bǔ)了前文所述的課程實(shí)踐環(huán)節(jié)的限制。學(xué)生即使離開(kāi)實(shí)驗(yàn)室,脫離實(shí)驗(yàn)箱也可以進(jìn)行完整的系統(tǒng)設(shè)計(jì),而且能通過(guò)仿真看到結(jié)果,這對(duì)學(xué)習(xí)是一個(gè)鼓勵(lì),有助于激勵(lì)和培養(yǎng)興趣。另外,學(xué)生還可以不受成品實(shí)驗(yàn)箱實(shí)驗(yàn)項(xiàng)目相對(duì)固定的限制,可以自由發(fā)揮設(shè)計(jì)靈感。

      3.3 應(yīng)用舉例

      繼續(xù)前文的例子,將MCS-51串行口擴(kuò)展16位并行輸出用Proteus進(jìn)行仿真。首先在Proteus ISIS中繪制完整電路,如圖3所示。

      然后在Keil uVision3中輸入并編譯上文所列C51程序。回到ISIS中,在Source菜單中添加該程序,接下來(lái)就可以運(yùn)行并觀察到仿真結(jié)果。改變段碼的值,可立即在Proteus中看到變化。

      在Proteus與Keil聯(lián)合調(diào)試時(shí),Keil的調(diào)試方法全部可用,在Keil調(diào)試程序的同時(shí),在Proteus中可觀察到硬件狀態(tài)的變化。為實(shí)現(xiàn)聯(lián)合調(diào)試,需對(duì)Keil和Proteus軟件做一些設(shè)置[3-4],在此不贅述。

      圖3 Proteus中的電路設(shè)計(jì)

      4 C51程序設(shè)計(jì)的若干經(jīng)驗(yàn)

      C51程序與匯編程序有1個(gè)顯著不同,C51程序語(yǔ)句與最終機(jī)器碼不會(huì)一一對(duì)應(yīng),也不會(huì)固定,相同的語(yǔ)句在不同的設(shè)置下會(huì)得到不同的機(jī)器碼,而匯編語(yǔ)言則不會(huì),它與最終的機(jī)器碼明確對(duì)應(yīng),所以采用匯編語(yǔ)言編程時(shí),用戶(hù)直接決定了最終的機(jī)器碼。而采用C51編程時(shí),用戶(hù)則必須熟悉編譯器的規(guī)則,以使得編譯器編譯出盡可能簡(jiǎn)潔的機(jī)器碼。因此在C51編程中有一個(gè)代碼優(yōu)化的問(wèn)題。

      1)選擇合適的算法 例如將比較慢的順序查找法用較快的二分查找法代替,冒泡排序用快速排序、合并排序或根排序代替。數(shù)組與指針關(guān)系密切,對(duì)大部分編譯器而言使用指針比使用數(shù)組生成的代碼更簡(jiǎn)潔,但Keil相反,使用數(shù)組比使用指針生成的代碼更簡(jiǎn)潔。

      2)使用小數(shù)據(jù)類(lèi)型 MCS-51是8位處理器,應(yīng)盡可能使用8位變量,如char,盡量避免使用浮點(diǎn)數(shù)據(jù)類(lèi)型。

      3)使用自增自減語(yǔ)句 用a+=1或a-=1時(shí),編譯器通常能夠生成INC或DEC指令,而使用a=a+1或a=a-1時(shí),C編譯器通常會(huì)生成2~3個(gè)字節(jié)的指令。

      4)避免復(fù)雜運(yùn)算 這里所說(shuō)的復(fù)雜運(yùn)算是對(duì)MCS-51而言的。MCS-51有加減乘除指令,因此應(yīng)盡量將復(fù)雜運(yùn)算變換為四則運(yùn)算或邏輯運(yùn)算。例如,使用乘法代替平方和立方函數(shù),用移位實(shí)現(xiàn)乘除運(yùn)算 (如a=a*17可改用a= (a?4)+a實(shí)現(xiàn))。

      5)善于運(yùn)用查表 如浮點(diǎn)數(shù)的乘除和開(kāi)方、數(shù)學(xué)模型插補(bǔ)運(yùn)算等復(fù)雜運(yùn)算,應(yīng)盡量使用查表解決,這是對(duì)MCS-51的揚(yáng)長(zhǎng)避短,MCS-51的復(fù)雜運(yùn)算會(huì)耗費(fèi)大量CPU時(shí)間。

      [1]張毅剛 .單片機(jī)原理及應(yīng)用 [M].北京:高等教育出版社,2004:224.

      [2]周潤(rùn)景,張麗娜 .基于PROTEUS的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真 [M].北京:北京航空航天大學(xué)出版社,2006:182-183.

      [3]孫凌燕,黃允千.Proteus與Keil軟件的整合在單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)中的應(yīng)用 [J].實(shí)驗(yàn)室研究與探索,2008(4):59-61.

      [4]伍馮潔,謝陳躍,謝斌.Proteus與Keil在單片機(jī)開(kāi)放性實(shí)驗(yàn)中的應(yīng)用 [J].電子測(cè)量技術(shù),2008(6):100-103.

      猜你喜歡
      匯編語(yǔ)言調(diào)試處理器
      高等學(xué)校計(jì)算機(jī)專(zhuān)業(yè)課程教學(xué)改革實(shí)踐——以匯編語(yǔ)言與接口技術(shù)課程為例
      匯編語(yǔ)言與C語(yǔ)言的混合程序設(shè)計(jì)技術(shù)研究
      電子制作(2019年10期)2019-06-17 11:45:16
      基于航拍無(wú)人機(jī)的設(shè)計(jì)與調(diào)試
      電子制作(2018年12期)2018-08-01 00:47:44
      FOCAS功能在機(jī)床調(diào)試中的開(kāi)發(fā)與應(yīng)用
      提高《匯編語(yǔ)言程序設(shè)計(jì)》教學(xué)效率的思考與實(shí)踐
      無(wú)線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
      電子制作(2017年19期)2017-02-02 07:08:38
      調(diào)壓柜的調(diào)試與試運(yùn)行探討
      Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
      ADI推出新一代SigmaDSP處理器
      呼嚕處理器
      西吉县| 合阳县| 拉孜县| 泰兴市| 乌拉特后旗| 遂溪县| 荣昌县| 汉沽区| 辉南县| 阳江市| 赤城县| 台安县| 新余市| 乃东县| 子洲县| 瓦房店市| 翁牛特旗| 文水县| 通化县| 拉萨市| 夹江县| 阳新县| 来安县| 循化| 贡觉县| 潼南县| 中超| 南溪县| 云安县| 明水县| 周至县| 沅江市| 西丰县| 蓬安县| 建德市| 德令哈市| 遵义市| 全椒县| 井冈山市| 收藏| 武城县|