• 
    

    
    

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

      8086系統(tǒng)中數(shù)字溫度傳感器TC77的Proteus仿真

      2015-05-30 18:23:40時(shí)斌
      儷人·教師版 2015年24期
      關(guān)鍵詞:數(shù)碼管子程序微機(jī)

      時(shí)斌

      【摘要】Proteus軟件強(qiáng)大的CPU仿真功能讓其在電子、通信、物聯(lián)網(wǎng)等相關(guān)專業(yè)的課程學(xué)習(xí)中有著重要作用。本文給出了一個(gè)用Proteus軟件仿真8086系統(tǒng)下數(shù)字溫度傳感器TC77的實(shí)例,指出在教學(xué)實(shí)踐中采用適當(dāng)?shù)姆抡婕夹g(shù)對教學(xué)質(zhì)量提高的重要意義。

      【關(guān)鍵詞】微機(jī)原理 8086 TC77 Proteus 仿真

      電子、通信、物聯(lián)網(wǎng)等相關(guān)專業(yè)在選修課學(xué)習(xí)中大多有傳感器技術(shù)等課程,而對傳感器的相關(guān)實(shí)驗(yàn)有仿真和實(shí)際制作兩大類,即使是實(shí)際制作,之前先做仿真也是一個(gè)比較好的選擇。目前高校的教學(xué)中以8088為重點(diǎn)的微機(jī)原理課程一般安排在單片機(jī)之前,以致學(xué)習(xí)傳感器課程時(shí)單片機(jī)課程尚未學(xué)完,故用微機(jī)原理的知識(shí)進(jìn)行傳感器的仿真成為一種選擇,同時(shí)也能深化對微機(jī)原理課程的理解。

      1 8086最小系統(tǒng)

      微機(jī)原理課程大多以8088為核心進(jìn)行講解,但遺憾的是目前Proteus軟件里沒有8088CPU,只有8086,故要稍作修改,幸好改的地方不多。

      圖1 8086最小系統(tǒng)圖

      圖1為8086最小系統(tǒng)圖,該圖提供了16根地址線A0~A15,8根數(shù)據(jù)線D0~D7,理論上8086可提供16根數(shù)據(jù)線,但本應(yīng)用中有8根即可,所以D8~D15沒有畫出。注意8086的READY端要接VCC,否則系統(tǒng)運(yùn)行時(shí)只運(yùn)行1條語句,8086的CLK端未接,時(shí)鐘用的是內(nèi)部仿真時(shí)鐘,一般用5MHz即可。

      2 系統(tǒng)的控制信號(hào)

      圖2 8086系統(tǒng)的控制信號(hào)

      圖2為系統(tǒng)的控制信號(hào),CS0為8255的片選信號(hào),IOR和IOW為8255的讀選通和寫選通信號(hào)。另外要注意8086的28腳M/IO信號(hào)和8088不一樣,該腳為低電平時(shí)表示IO接口,高電平時(shí)表示存儲(chǔ)器,該表示方法正好和8088相反。

      3 IO接口及傳感器和顯示部分

      圖3 8255接口、TC77和顯示部分

      圖3為8255接口和數(shù)字傳感器TC77及數(shù)碼管顯示部分,8255的A口接數(shù)碼管的段碼,B口低4位接數(shù)碼管的位碼,本應(yīng)用中用的是共陽數(shù)碼管。8255的PC7接TC77的CS,PC6接TC77的SCK,PC0接TC77的SI/O。

      采用數(shù)碼管顯示是因?yàn)槌绦虮容^簡單,畢竟8086CPU要用匯編進(jìn)行編程。

      4 數(shù)字溫度傳感器TC77

      如圖3所示,TC77有5個(gè)引腳,另外2個(gè)是電源和地。

      圖4 TC77的時(shí)序圖

      圖5 TC77的數(shù)據(jù)格式

      圖4為TC77的時(shí)序圖,圖5為TC77的數(shù)據(jù)格式。由圖5可看出TC77有16位數(shù)據(jù),但其中后3位不用,一直為1,所以有效位為13位,故圖4時(shí)序圖中為13位數(shù)據(jù),注意其中第1位為符號(hào)位,最低有效位表示0.0625℃。

      5 數(shù)碼管顯示子程序

      display proc ;輸出一位數(shù)碼管

      mov dx,8020h

      mov bx,offset seg7

      xlat

      xor al,0FFh

      out dx,al ;輸出段碼

      mov dx,8022h

      mov al,ah

      out dx,al ;輸出位碼

      call delay

      mov al,00h ;清位碼

      out dx,al

      ret

      display endp

      org 0400h ;數(shù)碼管段碼

      seg7 db 03fh,006h,05bh,04fh,066h,06dh,07dh,007h,

      db 07fh,06fh,077h,07ch,039h,05eh,079h,071h

      上述程序?yàn)轱@示子程序,注意seg7段放在程序的代碼段里,因?yàn)樵赑roteus中分段比較麻煩,為簡單考慮就一起放在代碼段里了。8255的控制口地址為8026h,A口地址為8020h,B口地址為8022h,C口地址為8024h。該子程序的入口AL中放入要輸出的00~0F字符,AH中放入位碼,第1個(gè)數(shù)碼管為01h,第2、3、4數(shù)碼管分別為02h、04h、08h。

      6 讀取TC77數(shù)據(jù)子程序

      Getdata proc

      mov ah,0h

      mov dx,8024h

      mov al,80h ;CS:1,SCK:0

      out dx,al

      mov al,00h ;CS:0,SCK:0

      out dx,al

      mov cx,9

      g10: in al,dx

      and al,01h

      shl ah,1

      add ah,al

      mov al,40h ;SCK:1

      out dx,al

      mov al,00h ;SCK:0

      out dx,al

      loop g10

      mov al,80h ;CS:1

      out dx,al

      ret

      getdata endp

      上述程序?yàn)門C77讀取數(shù)據(jù)程序,為簡單起見,未考慮小數(shù)和負(fù)數(shù)的情況。返回的TC77數(shù)據(jù)放在AH中。該程序先把TC77的CS置1,SCK清0,再把CS清0,然后開始串行讀取數(shù)據(jù),總共讀了9位,其中第1位為符號(hào)位,為簡單考慮丟棄了,最后1位正好代表1℃。

      7 主循環(huán)程序

      start proc far

      mov sp,800h

      mov dx,8026h

      mov al,81h

      out dx,al

      s10: call getdata ;ah:溫度值

      mov al,ah

      mov ah,0

      mov bl,10

      div bl

      push ax

      mov al,ah

      mov ah,4

      call display

      pop ax

      mov ah,2

      call display

      jmp s10

      start endp

      上述程序?yàn)橹餮h(huán)程序,第1行設(shè)置了SP,后3行對8255進(jìn)行初始化。循環(huán)體中的程序?yàn)檎{(diào)用讀取TC77數(shù)據(jù)子程序及把返回的AH值用十進(jìn)制方式顯示在數(shù)碼管的2、3位上。

      7 仿真結(jié)果

      圖6 仿真結(jié)果

      圖6為仿真結(jié)果,如調(diào)整TC77的上下按鈕可看到數(shù)碼管上的數(shù)據(jù)相應(yīng)變化,TC77每一次變化0.5℃,連續(xù)變化2次就可看到數(shù)碼管上變化1℃。圖6中示波器上的3個(gè)信號(hào)分別為TC77的CS、SCK、SI/O信號(hào),圖6中SI/O的數(shù)據(jù)為000011100,第1位為符號(hào)位,后面8位轉(zhuǎn)換為十進(jìn)制即為28,和數(shù)碼管中顯示的一致。

      本文給出了一個(gè)用Proteus軟件仿真8086系統(tǒng)下數(shù)字溫度傳感器TC77的實(shí)例,很好地理解了數(shù)字溫度傳感器的使用方法,為以后的實(shí)際制作打下了良好的基礎(chǔ),同時(shí)用8086CPU做主控系統(tǒng)在高校的本科教學(xué)中也起到了承上啟下的效果。

      【參考文獻(xiàn)】

      [1]微型計(jì)算機(jī)原理與接口技術(shù)(第3版)馮博琴 吳寧主編 清華大學(xué)出版社

      猜你喜歡
      數(shù)碼管子程序微機(jī)
      Arduino編程
      電腦報(bào)(2019年2期)2019-09-10 07:22:44
      Fuzzy Search for Multiple Chinese Keywords in Cloud Environment
      MC9S08FL16單片機(jī)數(shù)碼管靜態(tài)顯示分析
      單片機(jī)控制的四位數(shù)碼管動(dòng)態(tài)顯示編程
      基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      電力系統(tǒng)微機(jī)保護(hù)裝置的抗干擾措施
      淺談子程序在數(shù)控車編程中的應(yīng)用
      子程序在數(shù)控車加工槽中的應(yīng)用探索
      西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
      新型微機(jī)可控頂控制系統(tǒng)原理及現(xiàn)狀
      张家口市| 九龙坡区| 繁峙县| 泽库县| 丰原市| 和龙市| 湖口县| 石门县| 荣成市| 新兴县| 元谋县| 曲水县| 遵化市| 安泽县| 朔州市| 朝阳区| 武乡县| 忻州市| 陈巴尔虎旗| 井研县| 武陟县| 凤阳县| 民丰县| 澄迈县| 西平县| 乌兰察布市| 大名县| 沁阳市| 阿坝县| 新野县| 东明县| 吉木萨尔县| 无为县| 阿拉尔市| 南皮县| 惠东县| 惠州市| 宣城市| 锦州市| 田东县| 文水县|