SOGO論壇
  登入   註冊   找回密碼
查看: 1936|回覆: 4
列印 上一主題 下一主題

[程式設計] 8051進位旗標程式問題(急) 拜託 [複製連結]

Rank: 2

狀態︰ 離線
跳轉到指定樓層
1
發表於 2011-6-13 21:42:02 |只看該作者 |倒序瀏覽
為甚麼如果只是單純0~99循環,就不用加另PSW.7   PSW.6為0,而這個0~60循環程式就要?
MAIN:    MOV     TMOD,#00000001B
            MOV      TH0,#01100011B
            MOV      TL0,#11000000B
            MOV       IE,#10000010B
            MOV      A,#0              
            DA         A                     
            MOV     P2,A
            MOV     R0,#25
            SETB   TCON.4
LOOP:    AJMP   LOOP        
                                                   

TIMER0: MOV     TH0,#01100011B   
            MOV     TL0,#11000000B
            SETB   TCON.4
            DJNZ    R0,CONT
            INC       A                              
            CJNE   A,#5AH,CONT1                                                   >>0~99無這行
                    MOV     A,#0                                                                >>0~99無這行
CONT1:  CLR      PSW.6                   >知道是另進位旗標為0,但在這個程式裡的作用在哪       >>0~99無這行
                    CLR     PSW.7                     >作用在哪,同上                                 >>0~99無這行
                    DA       A                                                         
            MOV    P2,A
            MOV   R0,#25
CONT:  RETI

謝謝
喜歡嗎?分享這篇文章給親朋好友︰
               感謝作者     

Rank: 2

狀態︰ 離線
2
發表於 2011-6-15 00:35:12 |只看該作者
請問您確定是0-60循環計數嗎?  看起來比較像是0-90的耶

Rank: 5Rank: 5

數位硬體勳章

狀態︰ 離線
3
發表於 2011-6-15 09:21:26 |只看該作者
大大
關鍵就是在 DA A這個指令
因為0~99循環時
99+1=9Ah
經過DA A轉換以後A的值變成00,Carry=1
所以沒有必要將A歸零
如果是0~59
當計數到59的下一次A的值是5Ah
經過DA A轉換以後A的值變成60而不是00
所以要讓他歸零就必須加上
  CJNE  A,#5AH,CONT1
  MOV   A,#0
去比較A的值如果=5Ah時就要將A歸零
至於
CONT1:  CLR      PSW.6                  
                    CLR     PSW.7                     
                    DA       A
我認為是有錯誤的
應該改成
                     CLR      PSW.6                  
              CLR     PSW.7                     
CONT1:        DA       A
因為當計數到5A將A歸零後才有必要去清除C和AC
如果不清除C和AC只將A歸零的話
則DA A以後A的值會變成06
至於為什麼請自行研究DA A這個指令的用法

或是你也可以這樣寫
            INC       A   
                    DA       A
            CJNE  A,#60H,CONT1
            MOV   A,#0
CONT1:  MOV    P2,A
            MOV   R0,#25
CONT:   RETI


先轉換以後再做比較

《 本帖最後由 Jackchen00 於 2011-6-15 10:04 編輯 》
已有 1 人評分威望 收起 理由
紅塵孤鳥 + 2 感謝您熱心幫助會員解決問題,論壇需要您 ...

總評分: 威望 + 2   查看全部評分

Rank: 5Rank: 5

數位硬體勳章

狀態︰ 離線
4
發表於 2011-6-21 20:58:03 |只看該作者
這位開版大大
我實在不知你的急是急在哪裡
如果真的急的話
早該看了也早該給個回應了
至今給你解答都一星期了
到底對你有沒幫助
連回應一下或說個謝字也有那麼難嗎?
那以後這裡還有誰願意去幫人解答呢?

Rank: 2

狀態︰ 離線
5
發表於 2011-6-30 17:09:04 |只看該作者

回覆 #4 Jackchen00 的帖子

抱歉,忘了回覆了,謝謝你的說明,看完你的說明我大概懂了
請注意︰利用多帳號發表自問自答的業配文置入性行銷廣告者,將直接禁訪或刪除帳號及全部文章!
您需要登錄後才可以回覆 登入 | 註冊


本論壇為非營利自由討論平台,所有個人言論不代表本站立場。文章內容如有涉及侵權,請通知管理人員,將立即刪除相關文章資料。侵權申訴或移除要求:abuse@oursogo.com

GMT+8, 2025-1-11 05:36

© 2004-2025 SOGO論壇 OURSOGO.COM
回頂部