• 
    

    
    

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

      PROTEUS在單片機(jī)教學(xué)中的應(yīng)用

      2012-12-17 10:48:46惠州工業(yè)科技學(xué)校周彩云
      電子世界 2012年15期
      關(guān)鍵詞:數(shù)碼管個(gè)位子程序

      惠州工業(yè)科技學(xué)校 周彩云

      單片機(jī)是電氣信息類專業(yè)一門重要的專業(yè)課,實(shí)踐性非常強(qiáng),又非常抽象,學(xué)生普遍反映比較難學(xué)。通常,要做一次課堂演示實(shí)驗(yàn)要準(zhǔn)備計(jì)算機(jī)、仿真器或編程器、電源和實(shí)驗(yàn)電路板等設(shè)備。如果用仿真器做實(shí)驗(yàn),稍有不慎,仿真頭就可能從實(shí)驗(yàn)電路板中脫落而造成錯(cuò)誤,甚至損壞設(shè)備。如果用編程器寫芯片的方法來驗(yàn)證實(shí)驗(yàn)結(jié)果,那么就得多次在實(shí)驗(yàn)板與編程器之間拔、插芯片,很麻煩,效率低。即使勉強(qiáng)做,由于實(shí)驗(yàn)電路板上的器件較小,學(xué)生很難看清現(xiàn)象,教學(xué)效果不佳。伴隨著計(jì)算機(jī)軟件技術(shù)的飛速發(fā)展,出現(xiàn)了大量的軟件仿真工具,本文介紹的Proteus軟件可以在計(jì)算機(jī)上進(jìn)行單片機(jī)及其外圍器件的模擬仿真。

      一、Proteus簡介

      Proteus是英國Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。它是目前最好的仿真單片機(jī)及外圍器件的工具。該軟件的特點(diǎn)是:

      圖1 Proteus的工作界面

      圖2 4位時(shí)鐘電路原理圖

      圖3 選擇代碼生成工具

      1.實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。

      2.支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。

      3.提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2、MPLAB等軟件。

      圖4 4位時(shí)鐘的流程圖

      4.具有強(qiáng)大的原理圖繪制功能。

      二、Proteus仿真使用

      下面以AT89S51為控制芯片的4位時(shí)鐘為例,介紹怎樣利用PROTEUS軟件實(shí)現(xiàn)電路的硬件設(shè)計(jì)、軟件調(diào)試與系統(tǒng)仿真、實(shí)現(xiàn)單片機(jī)電路的功能要求,完成對控制方案的驗(yàn)證。在單片機(jī)教學(xué)中利用以上過程可以讓學(xué)生方便地進(jìn)行電路與程序調(diào)試,發(fā)現(xiàn)程序和電路設(shè)計(jì)中遇到的問題,引起學(xué)生的思考,進(jìn)而掌握解決這些問題的思路和方法,克服了老師反復(fù)講解和演示弊端,實(shí)現(xiàn)了單片機(jī)的一體化教學(xué)。

      1.電路原理圖設(shè)計(jì)。運(yùn)行Proteus軟件進(jìn)入其編輯環(huán)境,主界面如圖1所示。

      點(diǎn)擊對象選擇區(qū)的P命令即彈出元器件選擇(Pick Devices)對話框,調(diào)入所需元件仿真庫。將電路中的所用到的元件從元器件庫中調(diào)出來,放到繪圖區(qū)并編輯其屬性,接著進(jìn)行合理的布局后,就可以進(jìn)行連接了。與用Protel軟件繪制原理圖類似,Proteus軟件也具有自動(dòng)捕捉節(jié)點(diǎn)和自動(dòng)布線的功能,連線時(shí)當(dāng)標(biāo)的指針靠近一個(gè)對象的引腳時(shí),跟著鼠標(biāo)的指針就會出現(xiàn)一個(gè)紅色小框,點(diǎn)擊鼠標(biāo)左鍵就可畫線了,需要拐彎時(shí)點(diǎn)擊一下即可,在終點(diǎn)再點(diǎn)擊確認(rèn)一下就畫出了一段導(dǎo)線,所有導(dǎo)線畫完后,再點(diǎn)擊工具欄的按鈕,即可出現(xiàn)可用的終端。在對象選擇器中的對象列表中,單擊POWER,在預(yù)覽窗口出現(xiàn)電源符號,在需要放置電源的地方單擊,即可放置電源符號。放置接地符號(地線)的方法與放置電源類似,在對象選擇列表中單擊GROUND,然后在需要接地符號的地方單擊,就可以了。添加完必要的電源和接地符號,原理圖的繪制就完成了,4位時(shí)鐘電路原理圖如圖2所示。

      圖5 4位時(shí)鐘軟件仿真效果

      2.軟件編程。程序的流程如圖3所示,具體完成程序及生成代碼的方法如下:

      通過菜單點(diǎn)擊“源代碼→添加/刪除源文件”,彈出對話框,如圖3所示。

      在“代碼生成工具”的下拉菜單中選擇代碼生成工具ASEM51,然后點(diǎn)擊“新建”按鈕,彈出選擇文件對話框,輸入4位時(shí)鐘程序的文件名保存并打開文件即可在PROTEUS提供的文體編程器中編輯源程序。

      程序編好后保存,再通過菜單“源代碼→全部編譯”編譯匯編源程序,生成目標(biāo)代碼文件。若編譯失敗,可對程序進(jìn)行修改調(diào)試直至編譯匯編成功,生成:4位時(shí)鐘.Hex文件。

      完整的4位時(shí)鐘程序如下(流程圖見圖4):

      ORG 0000H

      LJMP START

      ORG 0030H

      START:MOV 40H,#00H ;軟件計(jì)數(shù)器清零

      MOV 41H,#0F7H ;位選地址存儲單元

      MOV 42H,#50H ;數(shù)碼管顯存單元首地址

      MOV 50H,#00H ;顯示單元,秒個(gè)位

      MOV 51H,#00H ;顯示單元,秒十位

      MOV 52H,#00H ;顯示單元,分個(gè)位

      MOV 53H,#00H ;顯示單元,分十位

      MOV TMOD,#01H ;設(shè)置定時(shí)器T0工作在方式1

      MOV TH0,#0ECH ;設(shè)定5ms初值

      MOV TL0,#78H

      SETB TR0 ;啟動(dòng)定時(shí)/計(jì)數(shù)器T0

      MAIN:JNB TF0,$ ;不斷查詢T0有無溢出

      MOV TH0,#0ECH ;重新置初值

      MOV TL0,#78H

      CLR TF0 ;溢出標(biāo)志位清零

      ;;;;;;;;;;5ms定時(shí)時(shí)間到,執(zhí)行相應(yīng)的服務(wù)程序;;;;;;;;;;

      MOV P2,#0FFH ;關(guān)數(shù)碼管顯示,軟件仿真的使用,實(shí)際可省略

      LCALL DISP ;每5ms調(diào)用1次數(shù)碼管顯示子程序

      INC 40H ;軟件計(jì)數(shù)器加1

      MOV A,40H

      CJNE A,#200,MAIN ;判斷是否到200次,即1S,5ms*200次=1秒

      MOV 40H,#00H ;軟件計(jì)數(shù)器清零

      LCALL TIME ;分秒加1計(jì)時(shí)子程序

      LJMP MAIN

      ;;;;分秒加1計(jì)時(shí)子程序;;;;;

      TIME:INC 50H ;秒個(gè)位加1

      MOV A,50H

      CJNE A,#10,TIME1 ;判斷秒個(gè)位是否等于10

      MOV 50H,#00H ;秒個(gè)位等于10,將秒個(gè)位清零

      INC 51H ;秒十位加1

      MOV A,51H

      CJNE A,#6,TIME1 ;判斷秒十位是否等于6

      MOV 51H,#00H ;秒十位等于6,將秒十位清零

      INC 52H ;分個(gè)位加1

      MOV A,52H

      CJNE A,#10,TIME1 ;判斷分個(gè)位是否等于10

      MOV 52H,#00H ;分個(gè)位等于10,將分個(gè)位清零

      INC 53H ;分十位加1

      MOV A,53H

      CJNE A,#6,TIME1 ;判斷分十位是否等于6

      MOV 53H,#00H ;分十位等于6,將分十位清零

      TIME1:RET

      ;;;;;顯示子程序;;;;;

      DISP:MOV R0,42H ;數(shù)碼管顯示位送到R0

      MOV A,@R0 ;將顯示單元的數(shù)據(jù)送到A

      MOV DPTR,#TAB ;將表地址送到DPTR

      MOVC A,@A+DPTR ;查表

      MOV P0,A ;數(shù)據(jù)送到P0顯示

      MOV A,41H ;將位選地址送到累加器A

      MOV P2,A ;將位選數(shù)據(jù)送到P2

      CJNE A,#0FEH, DISP1 ;判斷是否選到最后一位數(shù)碼管

      MOV 41H,#0F7H ;是,則重新設(shè)置選擇第一位數(shù)碼管

      MOV 42H,#50H ;重新設(shè)置顯示單元為秒個(gè)位

      JMP DISP2 DISP1:RR A ;沒到最后一位數(shù)碼管,則右移選擇下一位數(shù)碼管

      MOV 41H,A ;移位后重新送到位選地址寄存單元

      INC 42H ;顯示單元加1

      DISP2:RET

      TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;顯示數(shù)字0-5的數(shù)據(jù)

      DB 82H,0F8H,80H,90H

      ;顯示數(shù)字6~9的數(shù)據(jù)

      END

      3.系統(tǒng)仿真

      運(yùn)行Proteus軟件,打開之前所畫電路圖“4dpy.dsn”文件。雙擊AT89S51芯片,將生成的“4位時(shí)鐘.hex”文件打開,按確定后返回Proteus軟件界面。

      三、結(jié)束語

      通過以上實(shí)例的仿真過程,可以看出利用PROTEUS虛擬實(shí)驗(yàn)環(huán)境,克服了硬件平臺的束縛,很好的解決學(xué)生理論與實(shí)踐脫節(jié)的矛盾。在模擬實(shí)驗(yàn)中做實(shí)驗(yàn),可以將大量教學(xué)信息直接地表現(xiàn)出來,調(diào)動(dòng)了學(xué)生的學(xué)習(xí)積極性和主動(dòng)性,極大地提高了單片機(jī)實(shí)驗(yàn)的教學(xué)效果。

      猜你喜歡
      數(shù)碼管個(gè)位子程序
      Arduino編程
      電腦報(bào)(2019年2期)2019-09-10 07:22:44
      MC9S08FL16單片機(jī)數(shù)碼管靜態(tài)顯示分析
      個(gè)位與十位的故事
      個(gè)位與十位的故事
      單片機(jī)控制的四位數(shù)碼管動(dòng)態(tài)顯示編程
      基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      個(gè)位與十位的故事
      學(xué)習(xí)100以內(nèi)的數(shù)三要點(diǎn)
      淺談子程序在數(shù)控車編程中的應(yīng)用
      子程序在數(shù)控車加工槽中的應(yīng)用探索
      凉山| 天等县| 科尔| 延边| 长垣县| 靖边县| 留坝县| 万载县| 太康县| 阳谷县| 仁化县| 苏尼特左旗| 桐庐县| 文成县| 铜梁县| 永和县| 邵阳市| 承德县| 景洪市| 永清县| 达州市| 来宾市| 汾阳市| 乌拉特前旗| 永寿县| 琼结县| 巴南区| 抚顺县| 宜州市| 昌都县| 昆山市| 仙桃市| 图木舒克市| 凤台县| 洞头县| 济宁市| 海丰县| 阳西县| 长宁区| 云安县| 藁城市|