国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

時斌

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

【關鍵詞】微機原理 8086 TC77 Proteus 仿真

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

1 8086最小系統(tǒng)

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

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

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

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

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

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

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

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

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

采用數(shù)碼管顯示是因為程序比較簡單,畢竟8086CPU要用匯編進行編程。

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

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

圖4 TC77的時序圖

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

圖4為TC77的時序圖,圖5為TC77的數(shù)據(jù)格式。由圖5可看出TC77有16位數(shù)據(jù),但其中后3位不用,一直為1,所以有效位為13位,故圖4時序圖中為13位數(shù)據(jù),注意其中第1位為符號位,最低有效位表示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

上述程序為顯示子程序,注意seg7段放在程序的代碼段里,因為在Proteus中分段比較麻煩,為簡單考慮就一起放在代碼段里了。8255的控制口地址為8026h,A口地址為8020h,B口地址為8022h,C口地址為8024h。該子程序的入口AL中放入要輸出的00~0F字符,AH中放入位碼,第1個數(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

上述程序為TC77讀取數(shù)據(jù)程序,為簡單起見,未考慮小數(shù)和負數(shù)的情況。返回的TC77數(shù)據(jù)放在AH中。該程序先把TC77的CS置1,SCK清0,再把CS清0,然后開始串行讀取數(shù)據(jù),總共讀了9位,其中第1位為符號位,為簡單考慮丟棄了,最后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

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

7 仿真結果

圖6 仿真結果

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

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

【參考文獻】

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

猜你喜歡
數(shù)碼管子程序微機
Arduino編程
Fuzzy Search for Multiple Chinese Keywords in Cloud Environment
MC9S08FL16單片機數(shù)碼管靜態(tài)顯示分析
單片機控制的四位數(shù)碼管動態(tài)顯示編程
基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設計與實現(xiàn)
電力系統(tǒng)微機保護裝置的抗干擾措施
淺談子程序在數(shù)控車編程中的應用
子程序在數(shù)控車加工槽中的應用探索
西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
新型微機可控頂控制系統(tǒng)原理及現(xiàn)狀