org 0000h
datar0 equ 50h ;定義儲存採集現場資料單元
ljmp main
org 000bh ;定義定時/計數器 t0 中斷入口位址
ljmp t0p
org 0100h
main : mov sp , #60h ;設定中斷指標
mov tmod,#01h ;設定定時/計數器 t0 為工作方式 1、定時
mov tl0 ,#0d0h ;設定定時常數
mov th0 ,#80h
setb tr0 ;開啟定時/計數器 t0
setb et0 ;開啟定時/計數器 t0 中斷允許開關
setb ea ;開啟總開關
mov dptr,#3000h ;設定第三通道位址
movx @dptr,a ;啟動第三通道轉換
loop: lcall data1
lcall display
sjmp loop
t0p:
mov tl0,#0d0h ;重新設定定時常數
mov th0,#80h
mov dptr,#3000h ;將第三通道位址送 dptr
movx a,@dptr ;讀取轉換值
mov datar0,a ;保留轉換值
movx @dptr,a ;重啟第三通道轉換
reti
data1: ;顯示格式轉換子程式
mov79h,#03h
mov7ah,#11h
mov a,datar0
anl a,#0f0h
swap a
mov7bh,a
mov a,datar0
anl a,#0fh
mov7ch,a
retdisplay:
movr0,#79h ;顯示緩衝區首位址送 r0
movr3,#01h ;字位碼送 r3 儲存
mov a,r3
ld0:
mov p2,a ;字位碼送位碼埠 p2,點亮該位
mov a,@r0
;取出一位要顯示的資料
mov dptr,#tab1 ;表首位址送 dptr
movc a,@a+dptr ;查表獲取該資料的字型碼
dir1:
mov p0,a ;字型碼送段碼埠 p0
acall dl11 ;呼叫延時子程式
incr0
;緩衝區位址+1
mov a,r3
;取出位碼
jb acc.5,ld1 ;判斷 6 位數碼管顯示完嗎?顯示完轉 ld1
rl a ;未完,左移一位
movr3,a ;儲存位碼
ajmp ld0
ld1:
ret;子程式返回
微控制器實驗彙編 A D轉換實驗
一.實驗要求 利用實驗板上的adc0809做a d轉換器,利用實驗板上的電位器w1提供模擬量輸入。編制程式,將模擬量轉換成二進位制數字量,用發光二極體顯示。二.實驗目的 1 掌握a d轉換與微控制器的介面方法。2 了解a d晶元adc0809轉換效能及程式設計。3 通過實驗了解微控制器如何進行資料採...
微控制器第七次實驗課 A D 和 D A 實驗
1 完成 a d 介面設計,採用查詢方式和中斷方式編寫程式。2 實現 d a 介面設計,編寫程式輸出方波 鋸齒波 正弦波,使用示波器觀察波形。實驗室裡只用做第二個 鋸齒波彙編 此處沒設延時,如果設延時則一定不要設太大,不然波形會變形 org 0000h mov a,00h back mov dptr...
51微控制器複習 DA轉換
dac轉換器的原理 t型電阻網路dac轉換器 運放兩個輸入端為 虛地 所以電位都約為零。從右往左看,第乙個電阻2r和第二個電阻2r併聯等效為乙個電阻為r的電阻 與上方的電阻r串聯為2r,然後繼續重複前面的操作,最後總電阻值等效為r 總電流為i u r,分電流也就很好算了,那各支路電壓不就更好算了嗎 ...