線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1697
推到 Plurk!
推到 Facebook!

關於LED時鐘電路的問題

答題得分者是:暗黑破壞神
chenman
一般會員


發表:5
回覆:12
積分:3
註冊:2004-10-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-26 11:06:35 IP:218.168.xxx.xxx 未訂閱
displaybuffer                equ        30h  
scancounter                equ        38h
onesecondcounter           equ        39h
hourse                        equ        3ah
minuite                        equ        3bh
second                        equ        3ch    ;------------------------------
        org        0h
        jmp        reset1
        org        0bh
        jmp        timerint
reset1:
        mov        sp,#70h
        mov        scancounter,#0
        mov        hourse,#12h
        mov        minuite,#00h
        mov        second,#00h    ;------------------------------
        mov        tmod,#00000001b
        mov        TL0,#(8192-4000).mod.32
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~↑此處有錯
        mov        TH0,#(8192-4000)/32
        mov        ie,#10000010b
        setb        tr0
;------------------------------
mainloop:
        jb        p3.0,checkminuitekey
        mov        second,#0
        mov        r5,#2
        call        delay
        jnb        p3.0,$
        
checkminuitekey:
        jb        p3.1,hoursekey
        mov        a,minuite
        add        a,#1
        da        a
        mov        minuite,a
        cjne        a,#60h,notover1
        mov        minuite,#0
        
notover1:
        mov        r5,#2
        call        delay
        jnb        p3.1,$
        
hoursekey:
        jb        p3.2,mainloop
        mov        a,hourse
        add        a,#1
        da        a
        mov        hourse,a
        cjne        a,#24h,notover2
        mov        hourse,#0
notover2:
        mov        r5,#2
        call        delay
        jnb        p3.2,$
        jmp        mainloop
;------------------------------
timerint:
        mov        TL0,#(8192-4000).mod.32
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~↑此處有錯
        mov        TH0,#(8192-4000)/32
        push        A
~~~~~~~~~~~~~~~~~~↑此處有錯
        push        psw
        setb        rs0
        clr        rs1
        djnz        onesecondcounter,notonesecond
        mov        onesecondcounter,#(1000/4)
        call        clock
        call        displayclockintodisplaybuffer
notonesecond:
        call        scandisplay
        pop        psw
        pop        a
~~~~~~~~~~~~~~~~~~↑此處有錯
        reti
;------------------------------
scandisplay:
        mov        r0,#scancounter
        inc        @r0
        cjne        @r0,#8,notover
        mov        @r0,#0
notover:
        mov        a,@r0
        add        a,#displaybuffer
        mov        r1,a
        mov        a,@r0
        swap        a
        orl        a,@r1
        mov        p1,a
        ret
;------------------------------
clock:
        mov        a,second
        add        a,#1
        da        a
        mov        second,a
        cjne        a,#60h,notoverflow
        mov        second,#0
        
        mov        a,minuite
        add        a,#1
        da        a
        mov        minuite,a
        cjne        a,#60h,notoverflow
        mov        minuite,#0
        
        mov        a,hourse
        add        a,#1
        da        a
        mov        hourse,a
        cjne        a,#60h,notoverflow
        mov        hourse,#0
notoverflow:
        ret
;------------------------------
displayclockintodisplaybuffer:
        mov        r3,#3
        mov        r1,#displaybuffer
loop:
        mov        a,second
        mov        b,#10h
        div        ab
        mov        @r1,b
        inc        r1
        mov        a,minuite
        mov        b,#10h
        div        ab
        mov        @r1,b
        inc        r1
        mov        @r1,a
        inc        r1
        mov        a,hourse
        mov        b,#10h
        div        ab
        mov        @r1,b
        inc        r1
        mov        @r1,a
        ret
;------------------------------
delay:
        mov        r6,#40
del:        mov        r7,#249
d1:        djnz        r7,d1
        djnz        r6,del
        djnz        r5,delay
        ret
        end
此電路是LED時鐘電路~~~ 我是照著課本範例做的~~可是在編碼的時後有錯誤~~ 怎麼改都無法正確~~不知是何原因!有人可以為我解答的一下嗎= =
pdcmg
一般會員


發表:3
回覆:22
積分:20
註冊:2004-11-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-26 13:56:42 IP:61.57.xxx.xxx 未訂閱
push A pop a ?? 建議你大小寫用一樣看看...mod那邊也是... 很多時候都是大小寫的問題~試試吧...
chenman
一般會員


發表:5
回覆:12
積分:3
註冊:2004-10-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-26 20:45:30 IP:220.136.xxx.xxx 未訂閱
關於大小寫的問題~~~ 我都有試過pop a、POP A、pop A、POP a~~~~ 諸如此類的都有試過了嘿= =||| 還是不行~~不知道如何是好~~~
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-26 22:31:00 IP:59.104.xxx.xxx 未訂閱
首先,你要知道.mod.這是一個虛擬指令。 所以它不是51的指令。 如果不是 51 的指令。那就是由你的組譯器來做到這個功能。 所以。只能跟你說。很可惜,你的組譯器沒有這個指令。 一個是你換一個組譯器。(不要找我要。你可以去買一本旗標的書,林X茂寫的。那個就有附了,那一個有這個指令) 當然啦。對於窮學生來說,一本書可能可以吃一週了。 那就要去了解這個虛擬指令做了什麼事????
mov        TL0,#(8192-4000).mod.32
.mod.是取餘數。什麼的餘數?8192-4000 之後的值。再除以32後餘數。 所以應該是。。。。。0. 所以把這行改成
mov TL0, #00H
這樣就可以了。^_^
chenman
一般會員


發表:5
回覆:12
積分:3
註冊:2004-10-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-27 00:04:16 IP:220.136.xxx.xxx 未訂閱
一個組釋器~~我感覺有分好多種說~~ 不知道什麼樣的~~支援所有指令呢= = 還有pop a為何會有錯誤內= = 這也讓偶很難懂
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-27 12:02:39 IP:59.104.xxx.xxx 未訂閱
嗯,好吧。既然我上一篇你看不懂。 那我用白一點的來說好了。 你用的工具太爛了。 去買一本書。那本書是旗標出的。 林伸茂寫的。 叫 8051 徹底研究。 不管什麼篇都可以。 你用它書上附的工具來組譯你的程式碼就一切OK了。 至少我用你的程式碼,試過可以組譯,沒有錯誤了。
     Assembler for 8051 (EDUCATION) Copyright(C) 1996 by EVERPRECISION TECH CORP.
       This software was written by C.Y.L  Date:88/06/18
 --------------------------------------------------------------------    Current Address:f5    Output OBJ file name :
Output Object File.                   Total compile line : 151      Total error message : 0                            !!!!   END COMPILE   !!!!
chenman
一般會員


發表:5
回覆:12
積分:3
註冊:2004-10-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-30 23:39:43 IP:218.168.xxx.xxx 未訂閱
感謝大大的教導~~~ 我已經解決無法編譯的問題了~~~ 我也下載到比較能支援更多指令的編譯器了~~~謝謝啦^^"
系統時間:2024-04-26 22:16:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!