999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Protues仿真的MCS-51單片機教學實踐與探討
——利用仿真軟件解決MCS-51單片機教學中常見的問題

2013-02-01 06:14:04侯俊才楊蜀秦
中國現代教育裝備 2013年19期
關鍵詞:指令單片機程序

侯俊才 楊蜀秦

西北農林科技大學機械與電子工程學院 陜西楊凌 712100

單片機是高校電子、電氣、機電、信息類專業一門重要的專業基礎課,具有極強的實踐性和綜合性,對學生硬件電路設計能力、軟件編程能力、創新能力的培養有著重要作用;另外對學生掌握職業技能、增強就業競爭力具有十分重要的意義。受各種條件限制,傳統的教學往往把理論講授、實驗教學、實踐環節分開。在理論講授時,由于有些問題教材中介紹不清,學生學習時,不可避免地存在迷惑和誤解。Protues軟件以其強大的單片機仿真功能受到學習者的歡迎,它可以對單片機系統進行軟硬件設計和仿真。在教學環節中引入Protues軟件來模擬實際電路,通過各個顯示窗口可以直觀地展示電路的工作過程和代碼的執行過程,增加了學習的興趣,讓學生感性認識電路與程序的運行過程,更有助于掌握授課內容。

筆者根據教學實踐,利用Protues對學生在學習過程中常見的問題和誤區進行分析和探討。

1 MCS-51單片機常見問題與誤區在Protues下仿真解決及解釋

1.1 內部數據存儲器RAM高128 B單元與特殊功能寄存器地址重疊問題

初學者往往對內部RAM高128 B的使用問題易混淆。52子系列單片機80H~0FFH的單元既是內部RAM地址,又是特殊功能寄存器(SFR)的地址。作為RAM使用時只能用寄存器間接尋址,而對SFR只能直接尋址。對51子系列內部RAM高128 B不可用,雖然對這些地址單元用寄存器間接尋址方式尋址讀寫時編譯不會出錯,但讀寫無效;對這些地址單元用直接尋址方式訪問時,訪問的是SFR。即對高128 B的內部數據存儲器單元來說,作為RAM和SFR有著相同的地址單元,但有著不同的物理空間。例如在Protues下選取80C51單片機,用下列程序進行驗證:

ORG 0000H

MOV R0,#90H

MOV A,@R0

MOV @R0,#08HH

MOV 90H,#80H

SJMP $

END

在Protues下單步仿真結果如圖1所示:直接尋址訪問的是SFR。

接著看8052的情形,用下列程序來驗證:

ORG 0000H

MOV 90H,#55H

MOV R0,#90H

MOV A,@R0

MOV @R0,#08H

SJMP $

END

由圖2可以看出,第一條指令執行完后,數據55H直接傳送給SFR的90H,而Internal Memory中90H的內容并沒有改變,因為對目的操作數而言,尋址方式是直接尋址,直接尋址訪問的是SFR,而不是內部數據存儲器。MOV A,@R0執行完后A(地址為SFR中的E0H)的內容為00H,而非55H,因為內部數據存儲單元90H中的內容為00H,指令對源操作數的訪問方式為寄存器間接尋址,訪問的是內部數據存儲單元,而不是SFR。根據以上表述,指令MOV @R0,#08H執行后,內部數據存儲單元90H內容自然就變為08H。

1.2 寄存器尋址與直接尋址、位尋址區別

1.2.1 C與CY的區別

C是位累加器,采用寄存器尋址方式,而不能用直接尋址方式。CY則為位名,訪問形式是位尋址。例如位操作中的數據傳送指令MOV C,BIT和MOV BIT,C,不能寫作MOV CY,BIT和MOV BIT,CY,如果寫成后者,編譯會提示有非法字符,因為位數據傳送時必須借助位累加器C。既然對C的訪問為寄存器尋址,對CY訪問為普通位尋址,那么位操作指令SETB C,CLR C,CPL C與SEB CY,CLR CY,CPL CY就不相同,前三者為寄存器尋址,其機器碼為單字節,后三者為位尋址,機器碼為雙字節。用下列程序驗證,仿真如圖3所示。

ORG 0000H

SETB C

CLR C

SETB CY

CLR CY

CPL C

CPL CY

SJMP $

END

圖3 C與CY的位操作仿真圖

如圖3所示,編譯通過,其中CY作操作數時代碼占2個字節,C作操作數時占1個字節。

1.2.2 A與Acc的區別

(1)在字節操作指令中,A是SFR中的累加器,Acc與A是同一物理存在,有著同一單元地址。但是對A的尋址為寄存器尋址,其占有機器代碼字節數少,執行時所需機器周期短;對Acc的尋址為直接尋址,機器代碼字節數多,執行時所需機器周期長。還有,在尋址累加器單元的位x(x=0~7)時,只能寫作Acc.x,而不能寫作A.x,否則編譯出錯。

(2)對累加器單元的內容進行堆棧操作時,只能采用PUSH Acc和POP Acc直接尋址方式,而不能采用PUSH A和POP A寄存器尋址方式,因為在堆棧操作指令中出現的操作數只能用直接尋址方式。如果將A錯寫成Acc,Protues編譯不會通過,提示有非法字符。

1.3 寄存器Ri(i=0,1)間接尋址外部RAM

利用Ri作為間接寄存器可以訪問內部RAM,也可以尋址外部RAM。對于Ri間接訪問內部RAM此處不做討論,只討論訪問外部RAM的情形。訪問外部RAM時的指令為:

MOVX @Ri,A和MOV A,@Ri

這兩條指令的尋址空間取決于P2和Ri的內容,單片機復位時P2=0FFH,那么程序中在該兩條指令執行前不再給出P2的值,則執行這兩條指令時尋址外部RAM的0FF(Ri)H單元地址。有些教材上說:如果P2無定義,默認P2為00H,指令執行時訪問外部RAM的00(Ri)地址單元。顯然這種說法是錯誤的。任何時候這兩條指令執行時,訪問外部RAM的地址值由當前的P2值和Ri值確定。程序如下:

ORG 0000H

MOV R0,#30H

MOV A,#55H

MOVX @R0,A

SJMP $

END

上電后單片機復位,此時P2=0FFH,程序中沒有修改P2的內容,由圖4可見,在執行MOVX指令后并沒有修改外部空間0030H的內容。該段程序在偉福仿真時,單步執行MOVX @R0,A后的仿真圖如圖5所示,顯然,這種情況下訪問了0FF30H,也就是P2=0FFH。

圖4 寄存器間接尋址外部RAM空間仿真圖

圖5 寄存器間接尋址外部RAM空間的偉福仿真圖

1.4 相對轉移類指令的跳轉問題

控制轉移類指令中的相對轉移指令(如累加器為零轉移指令JZ rel,短轉移指令SJMP rel等)的機器碼中都有一個字節的偏移量rel,但這個rel在匯編程序中不能按偏移量給出,要按目的地址給出,或者以目的地址的標號形式給出。機器碼中的偏移量是編譯軟件經過計算后得到的。例如:指令JZ rel,關于這類指令,許多MCS-5l單片機教材認為rel是偏移量,甚至有教材給出諸如SJMP 0FBH匯編指令后,解釋說此處0FBH是地址偏移量。對于指令SJMP rel執行過程而言,PC←PC+2+rel,許多教材的表述是:其機器指令的代碼為80H rel,其中80H是SJMP指令的操作碼,rel是地址偏移量。筆者認為這是不正確的。雖然在程序中也可以用符號“rel”來表示此處是相對轉移,轉移量范圍在-128 B~+127 B內,但此處的rel和機器碼中的rel不同。實際上,在匯編程序中的rel代表的是跳轉的目的地址,只能用目的地址或代表目的地址的標號來表示,該目的地址到當前指令的下一條指令之間的距離不能超過-128 B~+127 B;在匯編語言中,此處不應該給出相對偏移量,如果給出相對偏移量,那么程序就會跳轉到所謂偏移量數值為目的地址的程序單元,即仍然以此處數值作為目的地址,當然前提是不能超出-128 B~+127 B。

下面以JNZ 08H為例在Protues中觀察其跳轉過程,驗證程序及其各條指令占用地址如下:

由圖6可以看出,地址為0002H的相對轉移指令JZ 08H執行后,程序直接跳轉到以0008H作為目的地址的指令上,而并非是0002+2+08H=000CH的指令上。對這段程序在偉福軟件下進行編譯,可以觀察到指令JZ 08H形成的機器代碼為6004H,其中60H為操作符JZ的機器代碼,04H為實際偏移量,這個偏移量就是按跳轉的目的地址(0008H)減當前PC值(0004H)得出的,當執行指令JZ 08H時,PC指向下一條指令地址0004H,即當前PC值為0004H。所以教材中所說的偏移量rel是存儲在機器碼中,而匯編語言中要給出目的地址或者代表目的地址的標號,機器碼中的偏移量是由編譯軟件算出的。

2 結束語

在單片機教學中引入Protues軟件,可以對知識點作出適時仿真,讓學生看清楚問題的本質,對單片機問題有更深入的認識。通過仿真直觀感性地接受知識,對一些容易模糊不清的概念和知識進行辨別、了解,澄清教材錯誤和學生的誤解,能夠更好地掌握單片機知識。教學過程中適時運用Proteus仿真可以解決單片機授課中常見的問題與難點,在單片機教學中具有一定的推廣意義。

[1] 高玉芹.單片機原理與應用及C51編程技術[M].北京:機械工業出版社,2011.

[2] 俞國亮.MCS-51單片機原理與應用[M].北京:清華大學出版社,2008.

[3] 牛昱光.單片機原理與接口技術[M].北京:電子工業出版社,2008.

[4] 郭文川.單片機原理與接口技術[M].北京:中國農業出版社,2007.

[5] 任斌.單片機學習中的常見問題和誤區[J].科教文匯:上旬刊,2007(5):191-192.

[6] 姜志海.單片機原理及應用[M].北京:電子工業出版社,2005.

[7] 張志良.單片機原理與控制技術[M].北京:機械工業出版社,2001.

[8] 薛鈞義,張彥斌.MCS-51/96系列單片微型計算機及其應用[M].西安:西安交通大學出版社,1997.

[9] 李廣弟.單片機基礎[M].北京:北京航空航天大學出版社,1994.

猜你喜歡
指令單片機程序
聽我指令:大催眠術
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 波多野结衣视频一区二区| 久久国产精品夜色| 久热中文字幕在线| 亚洲人网站| 亚洲不卡影院| 久久精品波多野结衣| 久久精品一品道久久精品| 中文字幕亚洲无线码一区女同| 久久国产香蕉| 亚洲精品在线观看91| 亚洲精品欧美重口| 91精品国产丝袜| 2020精品极品国产色在线观看| 久久久久久久久18禁秘| 99热精品久久| 国产精品99久久久久久董美香 | 欧美三级日韩三级| 潮喷在线无码白浆| 久久99精品久久久久纯品| 女人18毛片一级毛片在线 | 欧美特黄一免在线观看| 国产精品30p| 狠狠久久综合伊人不卡| 亚洲色欲色欲www在线观看| 伊人五月丁香综合AⅤ| 久久精品亚洲专区| 欧美另类视频一区二区三区| 国产高清无码麻豆精品| 亚洲香蕉久久| 91网在线| 亚洲国产成人久久77| 尤物在线观看乱码| 国产本道久久一区二区三区| 国产亚洲精久久久久久久91| 亚洲a免费| 丝袜久久剧情精品国产| 久久综合丝袜长腿丝袜| 日本午夜精品一本在线观看| 欧美精品xx| 在线观看免费黄色网址| 又粗又硬又大又爽免费视频播放| 久久这里只有精品66| 99久久99视频| 2020亚洲精品无码| 欧美国产日韩一区二区三区精品影视 | 日韩AV手机在线观看蜜芽| 91成人在线观看| 亚洲欧美不卡视频| 午夜综合网| 日韩高清无码免费| 一级爆乳无码av| 亚洲黄色视频在线观看一区| 欧美一区二区自偷自拍视频| 国产人成在线观看| 狠狠色丁香婷婷综合| 精品国产成人三级在线观看| 国产欧美日韩综合一区在线播放| 国产在线97| 丁香五月婷婷激情基地| 欧美一区二区人人喊爽| 精品国产美女福到在线不卡f| 午夜日b视频| 日韩精品高清自在线| 国产精品免费露脸视频| 日本高清免费不卡视频| 91精品日韩人妻无码久久| 9cao视频精品| 国产欧美日韩va| 在线欧美日韩国产| 国产天天射| 99热精品久久| 日韩欧美成人高清在线观看| 精品偷拍一区二区| 精品91在线| 青草午夜精品视频在线观看| 无码内射在线| 一区二区无码在线视频| 中文字幕在线日本| 有专无码视频| JIZZ亚洲国产| 午夜性爽视频男人的天堂| 免费观看亚洲人成网站|