使用89c51+74LS47+七段顯示器 做上下數計時器問題 |
尚未結案
|
mylove04
一般會員 發表:1 回覆:1 積分:0 註冊:2013-01-08 發送簡訊給我 |
使用二進制補數的方式做減法成下數
七段顯示器顯示0~9 ABCDEF 似乎是16進制 如何讓他只顯示0~9 就是轉換成十進制 需要怎麼改 是74LS47的問題嗎 因為程式查無減法轉換BCD的指令 sos~~~~~~~~~~~~~~~~~~ ------------------------------以下是小弟的程式--------------------------- ORG 0000H CLR A ;清除a ADD A,#153 ;將a加至153 MOV R0,A ;將a值放入R0暫存器 LOOP: MOV P1,A ;將a值顯示於P1 JNB P3.7,$ ;3.7未按開路,等待 ACALL DELAY ;開路(延遲) JB P3.7,$ ;3.7按下閉路,等待 ACALL DELAY ;閉路(延遲) CLR C ;清除CY值 MOV R0,A ;將a值放入R0暫存器(被減數) MOV A,#1 ;減數 CPL A ;將減數反向 INC A ;減數 1 ADD A,R0 ;被減數 反向後減數 MOV R0,A ;等於答案 MOV P1,A ;顯示P1 AJMP LOOP ;跳躍回主程式 ; DELAY: MOV R6,#100 DL: MOV R7,#200 DJNZ R7,$ DJNZ R6,DL RET ; END |
kib72377
高階會員 發表:1 回覆:217 積分:238 註冊:2004-11-12 發送簡訊給我 |
|
mylove04
一般會員 發表:1 回覆:1 積分:0 註冊:2013-01-08 發送簡訊給我 |
|
handystudio
高階會員 發表:1 回覆:81 積分:106 註冊:2005-03-26 發送簡訊給我 |
你需仔細看一下 DA A 這個指令
DA A調整當累積器A先前與變數相加的8位元結果,累積器A與變數都必須是BCD碼的格式。ADD及ADDC指令後都可使用此指令。 如果累積器A位元3~0的值大於9(xxxx-1010 ~ xxxx-1111),或是AC旗號等於1,累積器A會在低4位元(low nibble)進行加6使成BCD範圍,若此內部加值使低4位元產生進位,進位值將被加到高4位元(high nibble),若高4位元仍產生進位,則進位旗號會被設定。 如果進位旗號已經設定,或高4位元(high nibble)大於9(1010-xxxx ~ 1111-ffff),高4位元會被自動加6使成BCD範圍,當然若高4位元加6後產生進位,進位旗號會為1,否則為0。因此,進位旗號指示兩個BCD變數相加後的合,是否大於99,來處理準確的多位數十進制加法運算。OV不會被影響。 所有發生的所有動作都在一個機器週期裡,實質上,此指令是加00H、06H、60H、66H到累積器A執行十進制轉換,當然要依據累積器A的值及PSW的條件而定。 註:DA A不能對累積器A內容,直接做十六進制轉十進制的轉換,須在運算指令(如ADD、ADDC)後使用,也不能使用於十進制減法。 ===================引 用 mylove04 文 章=================== 使用二進制補數的方式做減法成下數 七段顯示器顯示0~9 ABCDEF 似乎是16進制 如何讓他只顯示0~9 就是轉換成十進制 需要怎麼改 是74LS47的問題嗎 因為程式查無減法轉換BCD的指令 sos~~~~~~~~~~~~~~~~~~ ------------------------------以下是小弟的程式--------------------------- ORG 0000H CLR A ;清除a ADD A,#153 ;將a加至153 MOV R0,A ;將a值放入R0暫存器 LOOP: MOV P1,A ;將a值顯示於P1 JNB P3.7,$ ;3.7未按開路,等待 ACALL DELAY ;開路(延遲) JB P3.7,$ ;3.7按下閉路,等待 ACALL DELAY ;閉路(延遲) CLR C ;清除CY值 MOV R0,A ;將a值放入R0暫存器(被減數) MOV A,#1 ;減數 CPL A ;將減數反向 INC A ;減數 1 ADD A,R0 ;被減數 反向後減數 MOV R0,A ;等於答案 MOV P1,A ;顯示P1 AJMP LOOP ;跳躍回主程式 ; DELAY: MOV R6,#100 DL: MOV R7,#200 DJNZ R7,$ DJNZ R6,DL RET ; END
------
歡迎光臨 輕巧工作室 網站 http://www.handystudio.tw 控制電路板客製設計、製作交貨 8051專題製作/專題客製 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |