亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2011-04-14 03:16:42集美大學(xué)信息工程學(xué)院福建廈門361021
        關(guān)鍵詞:調(diào)試單片機(jī)實(shí)驗(yàn)

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

        單片機(jī)應(yīng)用技術(shù)是高等院校電子信息類專業(yè)的一門重要課程,隨著微控制器技術(shù)廣泛深入地應(yīng)用于工農(nóng)業(yè)生產(chǎn)和日常消費(fèi)電子領(lǐng)域,該課程的重要性越顯突出。該課程學(xué)習(xí)的目的是為了工程應(yīng)用,教學(xué)必須以此目的為出發(fā)點(diǎn)??集美大學(xué)校級精品課程建設(shè)立項(xiàng) (C14615)。。這決定了這門課程在學(xué)習(xí)過程中的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é)生找到 “感覺”,對理論的理解將更形象和深刻,而實(shí)踐能力的加強(qiáng)也需要理論作為基礎(chǔ)。

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

        在課堂教學(xué)環(huán)節(jié),考慮到電子信息專業(yè)學(xué)生在第5學(xué)期已學(xué)習(xí)過微機(jī)原理與接口技術(shù)課程,以8086匯編講授軟件編程部分,且在更早以前學(xué)習(xí)過計(jì)算機(jī)C語言課程,因此第6學(xué)期的單片機(jī)應(yīng)用技術(shù)可采用C51來講授MCS-51的軟件編程部分,以充分借助已有基礎(chǔ),更好地?cái)U(kuò)展更高更新的知識(shí)。在實(shí)踐教學(xué)環(huán)節(jié),通行的做法是學(xué)生在實(shí)驗(yàn)之前預(yù)習(xí),也就是根據(jù)書本理論編寫代碼,實(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)箱,是為了滿足大多數(shù)專業(yè)對單片機(jī)課程實(shí)驗(yàn)環(huán)節(jié)的需要,但這種成品實(shí)驗(yàn)箱卻限制了學(xué)生對硬件的了解,無法真實(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ī)匯編語言與8086匯編語言有許多共通點(diǎn),但也有一些明顯差異,如尋址方式、存儲(chǔ)器訪問方式等,這是2種處理器的體系結(jié)構(gòu)差異造成的。在教學(xué)過程中必須鮮明、重點(diǎn)地提出這些差異,這些差異并不復(fù)雜,也不難,只要交代清楚,完全可達(dá)到滿意的效果,沒有必要重復(fù)完整講授MCS-51的匯編指令。在教學(xué)上突出MCS-51匯編與8086匯編的差異,然后把主要精力轉(zhuǎn)向C51編程。這樣可充分利用以往學(xué)過的計(jì)算機(jī)C語言基礎(chǔ),以及微機(jī)原理與接口技術(shù)課程的基礎(chǔ),在單片機(jī)應(yīng)用技術(shù)課程中再上新高度。

        2.1 Keil C51的優(yōu)勢

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

        2.2 C51編程要點(diǎn)

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

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

        2)存儲(chǔ)器類型 由于MCS-51的存儲(chǔ)器有程序存儲(chǔ)器、片內(nèi)低128BRAM、片內(nèi)高128BRAM、外部RAM、片內(nèi)可位尋址單元,因此一個(gè)變量的存儲(chǔ)位置可以位于上述任何一個(gè)之中,對應(yīng)類型為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ù)類型 MCS-51是8位處理器,因此數(shù)據(jù)類型定義與計(jì)算機(jī)不同,char類型是8位,short和int類型是16位,long和float類型是32位,bit和sbit類型是1位,sfr類型是8位,sfr16是16位??梢姾?種是ANSI C所沒有的。數(shù)據(jù)類型是編程的基礎(chǔ),熟悉它們才能正確表達(dá)數(shù)值并實(shí)施運(yùn)算,避免溢出等錯(cuò)誤結(jié)果。

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

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

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

        int xdata* data ptr;

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

        2.3 應(yīng)用舉例

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

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

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

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

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

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

        Proteus ISIS是英國 Labcenter Electronics公司出品的電路分析與仿真軟件。軟件特點(diǎn)如下:①單片機(jī)仿真與SPICE電路仿真相結(jié)合;②支持示波器、信號發(fā)生器、邏輯分析儀等虛擬儀器,器儀具有理想?yún)?shù)指標(biāo),例如極高輸入阻抗或極低輸出阻抗,這些都盡可能減少了儀器對測量結(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è)計(jì)中,常用的仿真軟件如MultiSim可實(shí)現(xiàn)器件和電路整體的仿真分析,但不支持可內(nèi)裝用戶自定義程序的微處理器。而Keil uVision3等仿真軟件可實(shí)現(xiàn)單純的處理器仿真,也就是僅支持對處理器本身仿真,不支持或極少支持處理器擴(kuò)展外圍電路。

        Proteus軟件集中了這兩者的優(yōu)點(diǎn),允許用戶搭建以單片機(jī)為核心的完整的電路系統(tǒng),并進(jìn)行整體硬件仿真和軟件調(diào)試,能真正對單片機(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)勢對于學(xué)生的學(xué)習(xí)具有積極意義,很好地彌補(bǔ)了前文所述的課程實(shí)踐環(huán)節(jié)的限制。學(xué)生即使離開實(shí)驗(yàn)室,脫離實(shí)驗(yàn)箱也可以進(jìn)行完整的系統(tǒng)設(shè)計(jì),而且能通過仿真看到結(jié)果,這對學(xué)習(xí)是一個(gè)鼓勵(lì),有助于激勵(lì)和培養(yǎng)興趣。另外,學(xué)生還可以不受成品實(shí)驗(yàn)箱實(shí)驗(yàn)項(xiàng)目相對固定的限制,可以自由發(fā)揮設(shè)計(jì)靈感。

        3.3 應(yīng)用舉例

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

        然后在Keil uVision3中輸入并編譯上文所列C51程序。回到ISIS中,在Source菜單中添加該程序,接下來就可以運(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)試,需對Keil和Proteus軟件做一些設(shè)置[3-4],在此不贅述。

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

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

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

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

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

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

        4)避免復(fù)雜運(yùn)算 這里所說的復(fù)雜運(yùn)算是對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ù)的乘除和開方、數(shù)學(xué)模型插補(bǔ)運(yùn)算等復(fù)雜運(yùn)算,應(yīng)盡量使用查表解決,這是對MCS-51的揚(yáng)長避短,MCS-51的復(fù)雜運(yùn)算會(huì)耗費(fèi)大量CPU時(shí)間。

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

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

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

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

        猜你喜歡
        調(diào)試單片機(jī)實(shí)驗(yàn)
        記一次有趣的實(shí)驗(yàn)
        基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        做個(gè)怪怪長實(shí)驗(yàn)
        基于單片機(jī)的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        基于單片機(jī)的便捷式LCF測量儀
        電子制作(2019年9期)2019-05-30 09:42:02
        基于航拍無人機(jī)的設(shè)計(jì)與調(diào)試
        電子制作(2018年12期)2018-08-01 00:47:44
        FOCAS功能在機(jī)床調(diào)試中的開發(fā)與應(yīng)用
        無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
        電子制作(2017年19期)2017-02-02 07:08:38
        NO與NO2相互轉(zhuǎn)化實(shí)驗(yàn)的改進(jìn)
        實(shí)踐十號上的19項(xiàng)實(shí)驗(yàn)
        太空探索(2016年5期)2016-07-12 15:17:55
        国产精品无码精品久久久| 久久精品国产69国产精品亚洲| 精品亚洲天堂一区二区三区| 真实国产精品vr专区| 国产精品一区二区久久乐下载| 国产一区二区三区杨幂| 日本师生三片在线观看| 无码a级毛片免费视频内谢5j| 天天鲁在视频在线观看| 人人妻人人澡人人爽人人精品电影| 亚洲中文字幕精品久久久久久直播| 国产另类人妖在线观看| 熟女体下毛荫荫黑森林| 欧美极品色午夜在线视频| 久久中文字幕无码一区二区| 按摩师玩弄少妇到高潮hd| 美妇炮灰被狂躁爽到高潮h| 欧美乱妇高清无乱码在线观看| 香蕉视频一级片| 激情视频在线观看国产中文| 中文字幕隔壁人妻欲求不满 | 久久综合九色综合久久久| 麻豆国产一区二区三区四区| 尤物视频在线观看| 国产精品短视频| 日本高清无卡一区二区三区| 26uuu在线亚洲欧美| 女性女同性aⅴ免费观女性恋| 香蕉视频免费在线| 久久精品蜜桃美女av| 午夜时刻免费入口| 国产成人+亚洲欧洲+综合| 精品黑人一区二区三区| 亚洲熟女少妇精品综合| 亚洲码国产精品高潮在线| av无码av在线a∨天堂app| 国产亚洲精品综合一区二区| 国产精品天干天干| 区二区欧美性插b在线视频网站| 国产精品亚洲av国产| 超级乱淫片国语对白免费视频|