$nomod51
$include (
sda equ p1.3
scl equ p1.6
jishu equ 30h
org 0000h
ljmp main
org 000bh
ljmp t0_int
main:
lcall chushi呼叫初始化程式 //
數碼管初始值設定
mov 40h,#00
mov 42h,#00
mov 43h,#00
mov 44h,#0ah
mov 45h,#01h
mov 20h,#00h
計數區域清零
mov r7,#10h
mov r0,#jishu
loop3 0---3f區域清零
mov @r0,#00h
inc r0
djnz r7,loop
lcall read
呼叫斷電保護
定時取樣10ms一次
mov tmod,#01h
mov th0,#0d8h
mov tl0,#0f0h
setb et0
setb ea
setb tr0
dy:lcall dis呼叫顯示
sjmp dy
初始化子程式
chushi:
mov sfrpage,#0fh
mov p1mdin,#0ffh ;數字輸入
mov p1mdout,#0efh ;推挽輸出
mov xbr1,#40h交叉開關使能
mov pca0md,#00h ;關閉看門狗
mov psctl,#13h
mov oscicn,#83h ;內部振盪器允許,不分頻
mov dptr,#tab
ret顯示程式
dis:
mov r6,#08
mov r0,#jishu
loop5顯示子程式
lcall disp1
lcall delay戶數轉換延時
lcall write進行保護
inc 45h戶數顯示加一
inc r0
djnz r6,loop5
mov 45h,#01h戶數從一加到八,在變為一,迴圈
retdisp1實現乙個脈衝,0.001度電
mov r3,#8
mov r1,#40h
mov a,@r0脈衝數給a
mov b,#10b==10
div aba除以b,餘數給b,商給a
mov 40h,b把b值送到40h中,即數碼管最右邊一位
mov b,#10
div ab商再除b
mov 41h,b餘數送41h
mov 42h,a商送42h
loop2:
mov a,@r1
cjne r1,#43h,next2將第43h為設為帶小數點為,
mov dptr,#tab1帶小數點為的表
movc a,@a+dptr
sjmp next3
next2:
mov dptr,#tab不帶小數點為的表
movc a,@a+dptr
next3:
mov r4,#8
loop3
jnb acc.0,a1若acc.0=0,則跳動a1
clr p1.1p1.1 時鐘脈衝,上公升沿工作8
setb p1.0p1.0為1時,工作,輸入乙個脈衝,移位一次//
setb p1.1
sjmp a2
a1:clr p1.1
clr p1.0
setb p1.1
a2:rr a
djnz r4,loop38位迴圈inc r1
djnz r3,loop28位迴圈ret中斷取樣程式t0_int:
mov 51h,r3將r0---r7儲存,保護起來//
mov 52h,r5mov 53h,r7mov 50h,r1mov 26h,r6mov 21h,r0mov 54h,r2mov 55h,r4mov th0,#0d8h ;寫入初值,10ms
mov tl0,#0f0h
lcall clear
mov a,p2
cjne a,20h,next4 //與脈衝原始狀態比較
sjmp next
next4:
jnc next判斷是上公升沿還是下降沿
xrl a,20h異或,讀入碼值
mov r0,#jishu
mov r6,#8loop18位數迴圈讀入//
jnb acc.0,next1 //將讀入的碼值加到對應的計數區
inc @r0電度數
next1:
rr a
inc r0
djnz r6,loop1
next:
mov 20h,p2
mov r2,54h
mov r4,55h
mov r0,21h
mov r6,26h
mov r1,50h
mov r3,51h
mov r5,52h
mov r7,53h
reti寫2416程式---
write :
mov 2fh,r0
lcall str;調開始子程式
mov a,#0a0h;控制字,2416的實體地址和寫控制位
lcall i2c_w1w;調向2416寫一位元組並接收訊號子程式
jb f0,write;若寫失敗,從頭開始
mov a,#00h;選擇位址
lcall i2c_w1w
jb f0,write;至此,位址寫完
mov r0,#30h
mov r7,#8
ii1:
mov a,@r0;將30h-3fh的內容寫到2416中
lcall i2c_w1w
jb f0,write
inc r0
djnz r7,ii1
lcall stp;調停止子程
//lcall delay1
mov r0,2fh
ret讀2416程式---
read:
lcall str
mov a,#0a0h;控制字,2416的實體地址和寫控制位
lcall i2c_w1w;調向2416寫一位元組並接收訊號子程式
jb f0,read;若寫失敗,從頭開始
mov a,#00h;選擇位址
lcall i2c_w1w
jb f0,read;至此,位址寫完
lcall str
mov a,#0a1h;控制字,2416的實體地址和讀操作位
lcall i2c_w1w
jb f0,read
mov r0,#30h
mov r7,#16
jj3: lcall i2c_r1w;呼叫從2416中讀1位元組子程式
mov @r0,a;將從2416中讀出的內容儲存到30h-37h中
inc r0
djnz r7,jj3
setb f0
lcall i2c_r1w
lcall stp
ret啟動2402子程式----
str: setb sda
nopsetb scl
nopnop
nopnop
nopclr sda
nopnop
nopnop
nopret停止2402子程式----
stp: clr sda
nopsetb scl
nopnop
nopnop
nopsetb sda
nopnop
nopnop
nopret向2416中寫一位元組並接收2416返回的訊號-------
i2c_w1w: mov r5,#8
clr scl
ar_lp1: nop
nopnop
nopnop
rlc a
mmov sda,c
nopnop
setb scl
nopnop
nopnop
nopclr scl
djnz r5,ar_lp1
nopnop
setb sda
nopnopnop
setb scl
nopnop
nopnop
clr f0
jnb sda,ackend
setb f0
ackend: nop
clr scl
nopnop
ret從2416中讀出1位元組,並傳送應答或非應答訊號
i2c_r1w: mov r5,#08h
rcv: setb sda
nopclr scl
nopnop
nopnop
nopsetb scl
nopnop
nopnop
nopclr c
jnb sda,rcv0
setb c
rcv0: rlc a
nopnop
djnz r5,rcv
clr scl
nopnop
nopnop
clr sda
jnb f0,sendack
setb sda
sendack:nop
nopsetb scl
nopnop
nopnop
nopclr scl
clr f0
ret延時程式delay:
mov r2,#10h
dy1:
mov r3,#200
dy2:
mov r4,#0ffh
dy3:
nopnop
djnz r4,dy3
djnz r3,dy2
djnz r2,dy1
retdelay1: mov r3,#30h
mov r5,#0ffh
loop9 : nop
djnz r5,loop9djnz r3,loop9
ret清零子程式clear:mov r7,#08h
mov r1,#3fh
clr p1.2
nopnop
nopsetb p1.2
loopc1:clr p1.5
nopnop
nopsetb p1.5
jb p1.4,cnt
mov @r1,#00h
dec r1
mov @r1,#00h
sjmp cnt1
cnt:dec r1
cnt1:dec r1
djnz r7,loopc1
rettab:db 88h,0ebh,4ch,49h,2bh,19h,18h,0cbh,8h,09h,07fh ;0,1,2,3,4,5,6,7,8,9,-
tab1:db 80h,0e3h,44h,41h,23h,11h,10h,0c3h,0h,3h;0,1,2,3,4,5,6,7,8,9end
PDH單相電子式多功能電表說明書
pd1056 1h說明書 一 概述 pd1056 1h單相電子式多功能電表是一款集測量 lcd顯示 通訊於一體的電力儀表,可以測量電網頻率。通訊介面支援modbus rtu通訊規約。儀表選配2路開關量輸入和2路開關量輸出,可以實現本地或遠端的開關訊號監測和控制輸出功能 即 遙信 和 遙控 功能 或選...
單相電機的工作原理
當繞組中通入單相交流電流後,產生乙個強弱和正負不斷變化的交變脈動磁場。這磁場沒有旋轉性,不能象三相電機那樣使轉子自行起動。但用外力使轉子往任一方向轉動一下,則轉子便會按外力作用方向繼續旋轉,並逐步提高轉速達到穩定運狀態。為了克服不能自行起動的缺點,設計了各種起動方法,按起動方法的不同,電機可分成五類...
實習報告單相電機的連線
電工電子實習 電機連續轉動控制電路 學號 姓名 指導教師 地點 時間 一 實習目的 1 通過連續轉動控制線路的安裝接線,掌握通過原理圖 電氣接線圖安裝接線的技能。2 熟悉相應低壓電器的功能及接線。3 熟練電工接線及佈線技巧。二 實習要求 1 按元器件明細表將所需器材配齊並檢驗元件質量。2.在操作台上...