DS1821在8051寫程式的問題 |
答題得分者是:阿信
|
romextromext
一般會員 發表:6 回覆:26 積分:11 註冊:2009-08-24 發送簡訊給我 |
我目前要寫一個時間鬧鈴溫度顯示在LCD上面 可是目前就只差DS1821不給我面子 讀取的溫度值不會改變都是55 我不太清楚位什麼 所以請大家能幫我解答一下ˊˋ 麻煩幫我看DS1821的部份 還有我並不是很專業我只是學生一個所以有些英文都有點亂打 [code delphi] 請在此區域輸入程式碼 ; NRTE EQU R6 ;比較那個數值被抓到 DNOP1 EQU 35H DNOP0 EQU 36H KEYSPM EQU 37H ;掃描的指標 KEYV EQU 38H ;目前有數值 KEYT EQU 39H ;讀取到數值的次數 NOKEYT EQU 3AH ;沒有讀取到數值的次數 NEWKEYV EQU 3BH ;讀取到的新數值 KEYBUF EQU 3CH ;讀取到的數值的備分暫存器 KEYBUS EQU P2 KEYM EQU 20H.1 ;真正讀取到按鍵的指標 KEYM1 EQU 20H.4 SEC EQU 3DH ;秒 MID EQU 3EH ;分 HOUR EQU 3FH ;時 TMM0 EQU 20H.2 ;分該進位的標誌 TMM1 EQU 20H.3 ;時間是否進行更新 TIM0 EQU 21H.0 ;檢查小時的數字是否超過24 TIM1 EQU 21H.1 ;檢查分鐘的數字是否超過60 TIM2 EQU 21H.2 ;檢查秒鐘的數字是否超過60 TIM3 EQU 21H.3 ;時間設定的固定數字 如果輸入錯誤結果則不輸出數字(這個指標的功能) TIM4 EQU 21H.4 ;設定鬧鐘的小時,分鐘 TIM5 EQU 21H.5 ;鬧鐘啟動的指標 TIM6 EQU 21H.6 ;鬧鐘啟動的指標 TIM7 EQU 21H.7 ; LCDBUS DATA P0 ;資料匯流排DB0-DB7接腳, LCDBUS.7: BUSY FLAG ENABLE BIT P1.3 ;LCD模組上致能接腳 0: DISABLE, 1: ENABLE RW BIT P1.2 ;LCD模組上R/W接腳, 0: WRITE, 1: READ RS BIT P1.1 ;LCD模組上RS接腳, 0: INSTRUCTION, 1: DATA DIRFLAG BIT 20H.0 ;方向旗標 DISP10 EQU 40H ;第一列起始位址 DISP20 EQU 50H ;第二列起始位址 DEY EQU 31H DEYT EQU 32H DQ EQU P3.7 ; ↑↑定義站存器↑↑ ORG 0000H JMP START ORG 000BH ;鍵盤掃描 JMP KEY0 ORG 001BH ;溫度時間 JMP TIME0 ;------------------- ; ///////初始/////// ;------------------- ORG 0030H START: MOV SP,#05FH MOV IE,#08AH MOV TMOD,#011H SETB DQ CALL RDS0 ;DS1821重置副程式 MOV A,#00CH ;寫入開始下指令的指令 CALL CHOOSE0 MOV A,#0EEH CALL CHOOSE0 CLR P3.6 MOV 30H,#20 MOV SEC,#00 MOV MID,#00 MOV HOUR,#00 ; FILL LCD WITH BLANK CALL CLRBUF MOV 40H,#"0" MOV 41H,#"0" MOV 42H,#":";時分中間的分號 MOV 43H,#"0" MOV 44H,#"0" MOV 45H,#":";分秒中間的分號 MOV 46H,#"0" MOV 47H,#"0" MOV 4EH,#11011111B ;度 MOV 4FH,#01000011B ;C MOV P2,#0FFH MOV KEYSPM,#0FEH MOV 20H,#00H MOV 21H,#00H ;---------------------- ; ///////LCD初始/////// ;---------------------- CALL INIT ;------------------------------- ; ///////鍵盤掃描的計時器/////// ;------------------------------- MOV TH0,#0ECH MOV TL0,#078H SETB TR0 ;--------------------------- ; ///////時間的計時器/////// ;--------------------------- MOV TH1,#03CH MOV TL1,#0B0H SETB TR1 L1: JB KEYM,KEYSP0 JMP L1 KEYSP0: CLR KEYM MOV A,KEYBUF MOV DPTR,#TAB2 MOVC A,@A DPTR JNB TIM6,KEYSP0_0 JMP KEYSP5 KEYSP0_0: JMP KEYSP1 ;--------------------------- ; ///////時間設定/////// ;--------------------------- KEYSP1: CJNE A,#0BH,KEYSP2 SETB TMM1 SETB KEYM1 MOV 21H,#00 MOV 40H,#"?" MOV 41H,#"?" MOV 43H,#"?" MOV 44H,#"?" MOV 46H,#"?" MOV 47H,#"?" MOV SEC,#00H MOV MID,#00H MOV HOUR,#00H JMP L1 ;--------------------------- ; ///////鬧鐘時間設定/////// ;--------------------------- KEYSP2: CJNE A,#0AH,KEYSP3 JB TMM1,KEYSP3 JB TIM4,KEYSP4 MOV 50H,#"A" MOV 51H,#"?" MOV 52H,#"?" MOV 53H,#":" MOV 54H,#"?" MOV 55H,#"?" SETB TIM4 SETB KEYM1 JMP L1 KEYSP3: JNB KEYM1,KEYSP7 JMP CPE KEYSP4: MOV 50H,#" " MOV 51H,#" " MOV 52H,#" " MOV 53H,#" " MOV 54H,#" " MOV 55H,#" " CLR TIM5 CLR TIM4 CLR KEYM1 JMP L1 KEYSP5: JB TIM7,KEYSP6 SETB TIM7 MOV 5FH,#"3" JMP L1 KEYSP6: CJNE A,#03H,KEYSP7 MOV 5FH,#" " CLR TIM6 CLR TIM7 KEYSP7: JMP L1 ;------------------- ; ///////時間/////// ;------------------- TIME0: MOV TH1,#03CH MOV TL1,#0B0H DJNZ 30H,RTIME MOV 30H,#20 MOV A,#01H ;清除所有已寫入畫面且游標移到原點 CALL WRINS CALL DISPLAY ; SEND DATA FROM BUFFER TO LCD ;每秒更新一次LCD的圖 JB TMM1,TIME3 ;如果他是1就代表再設定時間所以先去溫度設定 MOV R0,#SEC CALL TT0 JNB TMM0,TIME2 MOV R0,#MID CALL TT0 JNB TMM0,TIME2 MOV R0,#HOUR MOV A,@R0 CLR TMM0 ADD A,#01 DA A CJNE A,#24H,TIME1 MOV A,#00 TIME1: MOV @R0,A TIME2: CLR A MOV R0,#SEC ;秒的存放 MOV R1,#46H CALL HAL INC R0 ;分的存放 MOV R1,#43H CALL HAL INC R0 ;時的存放 MOV R1,#40H CALL HAL ;------------------- ; ////鬧鐘感測///// ;------------------- TIME3: JNB TIM5,DAL0 TIME4: JNB TIM6,TIME5 JMP TIME7 TIME5: MOV DNOP0,#00H MOV R0,#40H MOV R1,#51H MOV A,#00 TIME6: INC DNOP0 MOV A,@R0 MOV B,@R1 CJNE A,B,DAL0 CLR P3.6 INC R0 INC R1 MOV R7,DNOP0 CJNE R7,#5,TIME6 SETB TIM6 JMP DAL0 TIME7: CPL P3.6 ;------------------- ; ////溫度感測///// ;------------------- DAL0: CALL RDS0 ;DS1821重置副程式 MOV A,#0AAH CALL CHOOSE0 CALL DSR ;接收8個bit到A裡 MOV B,A ANL A,#0FH ORL A,#30H MOV 4DH,A MOV A,B ANL A,#0F0H SWAP A ORL A,#30H MOV 4CH,A RTIME: RETI ;高低位元互換 HAL: MOV A,@R0 ANL A,#0F0H SWAP A ORL A,#30H MOV @R1,A INC R1 MOV A,@R0 ANL A,#0FH ORL A,#30H MOV @R1,A RET TT0: CLR TMM0 CLR C MOV A,@R0 ADD A,#01 DA A CJNE A,#60H,TT1 MOV A,#00 SETB TMM0 TT1: MOV @R0,A RET ;------------------- ; ////鍵盤掃描///// ;------------------- KEY0: MOV TH0,#0ECH MOV TL0,#078H PUSH ACC MOV A,KEYSPM MOV KEYBUS,A RL A MOV KEYSPM,A MOV R7,KEYSPM CJNE R7,#0EFH,KEY1 MOV KEYSPM,#0FEH KEY1: MOV A,KEYBUS ORL A,#0FH CPL A JNZ KEY2 INC NOKEYT MOV R7,NOKEYT CJNE R7,#08,RET_2 MOV KEYT,#00 MOV NEWKEYV,#00 MOV NOKEYT,#00 JMP RET_2 KEY2: MOV NOKEYT,#00 MOV NEWKEYV,KEYBUS MOV A,NEWKEYV CJNE A,KEYV,KEY3 INC KEYT MOV R7,KEYT CJNE R7,#04,KEY4 MOV A,KEYV CLR C SUBB A,#077H ;EE-77=77以此類推 1=77, 2=76, 3=74, 4=70, 5=67, 6=66, 7=64, 8=60-↓ ;9=47, 0=46, A=44, B=40, C=07, D=06, E=04, F=00 INC A ;1=00000001, 2=00000101, 3=00000111, 4=00001000 ;5=01000001, 6=01000101, 7=01000111, 8=01001000 ;9=01100001, 0=01100101, A=01100111, B=01101000 ;C=01110001, D=01110101, E=01110111, F=01111000 CLR C RRC A ;1=00000000=00, 2=00000010=02, 3=00000011=03, 4=00000100=04 ;5=00100000=20, 6=00100010=22, 7=00100011=23, 8=00100100=24 ;9=00110000=30, 0=00110010=32, A=00110011=33, B=00110100=34 ;C=00111000=38, D=00111010=3A, E=00111011=3B, F=00111100=3C CLR C MOV KEYBUF,A SETB KEYM JMP RET_2 KEY3: MOV KEYV,NEWKEYV MOV KEYT,#01 JMP RET_2 KEY4: MOV R7,KEYT CJNE R7,#05,RET_2 DEC KEYT RET_2: CLR RS0 POP ACC RETI ;//////////DS1821重置//////////// RDS0: MOV DEY,#250 ; CLR DQ ; DJNZ DEY,$ ;傳送給他500μs的彽電位 MOV DEY,#35 ; SETB DQ ; JB DQ,$ JNB DQ,$ MOV DEY,#240 ; RDS1: DJNZ DEY,RDS1 ;執行時間為2us 24*5=120us此為接收時間 RET ;//////////DS1821傳送0或1////////////*請先選擇A裡面的資料 比如0EEH 連續讀取 CHOOSE0:MOV B,A MOV DNOP1,#00 CHOOSE1:INC DNOP1 ANL A,#01H JNZ CHOOSE2 MOV A,B RR A CALL DSW0 ;傳送0 MOV R7,DNOP1 CJNE R7,#08H,CHOOSE1 RET CHOOSE2:MOV A,B RR A CALL DSW1 ;傳送1 MOV R7,DNOP1 CJNE R7,#08H,CHOOSE1 RET ;//////////DS1821重寫入0//////////// DSW0: MOV DEY,#35 CLR DQ DJNZ DEY,$ SETB DQ RET ;//////////DS1821重寫入1//////////// DSW1: CLR DQ SETB DQ RET ;//////////DS1821讀取//////////// DSR: MOV DEYT,#8 MOV DEY,#6 DSR1: CLR DQ DJNZ DEY,$ MOV DEY,#30 DJNZ DEY,$ JB DQ,DSR2 RL A DJNZ DEYT,DSR1 RET DSR2: MOV DEY,#30 DJNZ DEY,$ RL A ADD A,#01 DJNZ DEYT,DSR1 FF: RET ;------------------- ;INIT RESET LCD ;------------------- INIT: MOV A,#38H ;8BIT且2行的命令 CALL WRINS MOV A,#0EH ;顯示且游標出現且不閃爍 CALL WRINS MOV A,#06 ;游標寫入資料時向右移動 CALL WRINS MOV A,#01H ;清除所有已寫入畫面且游標移到原點 CALL WRINS RET ;------------------ ; WRITE INSTRUCTION TO LCD ;------------------ WRINS: CALL CHECK ;先確認忙碌 MOV LCDBUS,A ;把命令寫入 CLR RS ;0指令 CLR RW ;0寫入 SETB ENABLE ;1致能 CLR ENABLE ;0除能 RET ;------------------- ; WRITE DATA TO LCD ;------------------- WRDATA: CALL CHECK MOV LCDBUS,A SETB RS CLR RW SETB ENABLE CLR ENABLE RET ;---------------- ; CHECK LCD BUSY ;---------------- CHECK: MOV LCDBUS,#0FFH ;確認BUSY忙碌確認是否忙碌中 CLR RS ;0指令 SETB RW ;1讀取 SETB ENABLE ;1致能 CH1: JB LCDBUS.7,CH1 ;bit7是忙碌街腳 CLR ENABLE ;0除能 RET ;-------------- ;LCD DISPLAY ;-------------- DISPLAY:MOV R0,#DISP10 MOV R2,#10H DP1: MOV A,@R0 CALL WRDATA INC R0 DJNZ R2,DP1 MOV A,#0C0H CALL WRINS MOV R0,#DISP20 MOV R2,#10H DP2: MOV A,@R0 CALL WRDATA INC R0 DJNZ R2,DP2 RET ;--------------------- ; DISPLAY FILL SPACE ;--------------------- CLRBUF: MOV R2,#20H MOV R0,#DISP10 MOV A,#' ' CR1: MOV @R0,A INC R0 DJNZ R2,CR1 CALL DISPLAY RET DCPE3: SETB TIM3 RET DCPE0: JNB TIM0,DCPE3 ;小時的十位數不會有2以上的數字出現 RET DCPE1: JNB TIM1,DCPE3 ;小時的各位數只要有2就不能有3以上出的數字出現 RET DCPE2: JNB TIM2,DCPE3 ;分鐘跟秒的十位數不能有5以上出現 RET ;----------------------- ; ///////時間設定/////// ;----------------------- CPE: CLR TIM3 INC NRTE CJNE A,#00H,CPE0 CPE0: CJNE A,#01H,CPE1 CPE1: CJNE A,#02H,CPE2 CPE2: CJNE A,#03H,CPE3 CALL DCPE0 CPE3: CJNE A,#04H,CPE4 CALL DCPE1 CPE4: CJNE A,#05H,CPE5 CALL DCPE1 CPE5: CJNE A,#06H,CPE6 CALL DCPE2 CPE6: CJNE A,#07H,CPE7 CALL DCPE2 CPE7: CJNE A,#08H,CPE8 CALL DCPE2 CPE8: CJNE A,#09H,CPE9 CALL DCPE2 CPE9: JNB TIM3,CPE10 DEC NRTE ;如果全部都不是就代表不是我要的數值 JMP L1 CPE11: JMP AL0 ;------------------------- ; ///////存回站存器/////// ;------------------------- CPE10: JB TIM4,CPE11 CJNE NRTE,#01,SPD0 SETB TIM0 MOV 40H,A ORL 40H,#30H SWAP A ORL HOUR,A CJNE A,#02,SPD1 SETB TIM1 SPD0: CJNE NRTE,#02,SPD1 SETB TIM1 MOV 41H,A ORL 41H,#30H ORL HOUR,A SPD1: CJNE NRTE,#03,SPD2 SETB TIM2 MOV 43H,A ORL 43H,#30H SWAP A ORL MID,A SPD2: CJNE NRTE,#04,SPD3 CLR TIM2 MOV 44H,A ORL 44H,#30H ORL MID,A SPD3: CJNE NRTE,#05,SPD4 SETB TIM2 MOV 46H,A ORL 46H,#30H SWAP A ORL SEC,A SPD4: CJNE NRTE,#06,SPD5 MOV 47H,A ORL 47H,#30H ORL SEC,A MOV 21H,#00H MOV NRTE,#00H CLR KEYM1 CLR TMM1 MOV A,#01H ;清除所有已寫入畫面且游標移到原點 CALL WRINS CALL DISPLAY ; SEND DATA FROM BUFFER TO LCD ;每秒更新一次LCD的圖 ;SPD5: CJNE NRTE,#07,KEYSP3 ;--------------------------------- SPD5: JMP L1 ;--------------------------- ; ///////鬧鐘時間設定數值/////// ;--------------------------- AL0: AL1: CJNE NRTE,#01,AL11 SETB TIM0 MOV 51H,A ORL 51H,#30H CJNE A,#02,SPD1 SETB TIM1 AL11: CJNE NRTE,#02,AL12 SETB TIM1 MOV 52H,A ORL 52H,#30H AL12: CJNE NRTE,#03,AL13 SETB TIM2 MOV 54H,A ORL 54H,#30H AL13: CJNE NRTE,#04,AL14 CLR TIM2 MOV 55H,A ORL 55H,#30H MOV 21H,#00H MOV NRTE,#00H CLR TIM0 CLR KEYM1 CLR TMM1 CLR TIM4 SETB TIM5 AL14: JMP L1 TAB1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,98H TAB2: DB 001H,000H,002H,003H,004H,000H,000H,000H;07 DB 000H,000H,000H,000H,000H,000H,000H,000H;0F DB 000H,000H,000H,000H,000H,000H,000H,000H;17 DB 000H,000H,000H,000H,000H,000H,000H,000H;1F DB 005H,000H,006H,007H,008H,000H,000H,000H;27 DB 000H,000H,000H,000H,000H,000H,000H,000H;2F DB 009H,000H,000H,00AH,00BH,000H,000H,000H;37 DB 00CH,000H,00DH,00EH,00FH,000H,000H,000H;3F TAB3: DB 000H,000H,000H,000H,000H,000H,000H,001H; DB 002H,003H,004H,005H,006H,007H,008H,009H; TAB4: DB 040H,096H,002H,056H,000H,016H,000H,001H END [/code]
------
這啥需要簽嗎 拿筆來 編輯記錄
romextromext 重新編輯於 2009-08-25 19:49:38, 註解 無‧
romextromext 重新編輯於 2009-08-25 19:49:40, 註解 無‧ romextromext 重新編輯於 2009-09-01 22:56:37, 註解 無‧ romextromext 重新編輯於 2009-09-01 22:57:52, 註解 無‧ |
阿信
版主 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
中文資料請參考:
有關DS1821這顆IC的問題 http://delphi.ktop.com.tw/board.php?cid=173&fid=1265&tid=94738 DS1821使用說明 http://rushoun.myweb.hinet.net/DS1821/DS1821 datasheet.htm 以DS1821為sensor的電子溫度計電路 http://rushoun.myweb.hinet.net/DS1821/DS1821 temperature circuit.htm |
romextromext
一般會員 發表:6 回覆:26 積分:11 註冊:2009-08-24 發送簡訊給我 |
|
阿信
版主 發表:111 回覆:983 積分:813 註冊:2005-03-10 發送簡訊給我 |
|
romextromext
一般會員 發表:6 回覆:26 積分:11 註冊:2009-08-24 發送簡訊給我 |
===================引 用 阿信 文 章=================== >我並沒有要知道這顆IC是如何工作的((因為我早就看熟了= ? = >我只想知道我這個程式是否正確無誤的讓他工作((因為他不會測溫 真奇怪 >或應該修改的地方以便我可以完成這個專題 1.你的近600行的程式,我很難有時間細看! 2.你有看過通訊的波形嗎? 確認接線無誤? 3.又是學長留下來的程式吧! 4.你需要單步執行程式,分析問題出在哪!? 一,所以我才說看溫度感測部分就好了阿!! 二,我想問你DS1821的的所有指令幾乎都在100us就完成作業我不太覺得顯波器能夠讓我看到那瞬間的一個小波可能有會看到一小點就沒了吧((不過我有時間會試試看的 三,專題報告怎麼可能用學長留下來的,當然是作業是要給自己寫的阿= =((所以有些怪怪的直接提出我看的董~"~ 四,應該是在電腦上可以執行8051的程式吧 自己測試又不等於DS1821真的會這樣照你設定的程式做 比如說讀取要先送一個低電位1us然後立刻要提高12us的時間 之後讀取到的資料就是正確的資料 中間我想確定 這個時間以後真的會有正確的讀取到資料那應該怎麼知道問題在哪? 我不能用這樣做測試 是因為我寫入是否正確 跟讀取是否正確 完全要有真正在ds1821完成 再電腦做測試這些是只能自己設定 真正使用又是另外一種結果
------
這啥需要簽嗎 拿筆來
編輯記錄
romextromext 重新編輯於 2009-09-04 22:07:32, 註解 無‧
romextromext 重新編輯於 2009-09-17 21:35:50, 註解 無‧ romextromext 重新編輯於 2009-11-03 21:10:58, 註解 無‧ |
romextromext
一般會員 發表:6 回覆:26 積分:11 註冊:2009-08-24 發送簡訊給我 |
|
gn00683155
一般會員 發表:3 回覆:7 積分:7 註冊:2008-07-28 發送簡訊給我 |
===================引 用 romextromext 文 章=================== 看來好像沒人要在回答我這個問題了== 雖然阿信大大給了很多建議和資訊跟資料 但是好像都不是我所需要的 也不無小補 不過很謝謝阿信大大起碼你有回答我的問題... 老實說DS1821真的很難搞 我目前已經不想弄了 以後有機會在搞 再次謝謝您!! 我想不是沒人想幫你,而是你問人的態度跟觀念不正確的關係。 要問人 或回答別人的問題何必這麼尖酸刻薄呢 其中你有說到 你的1821資料只有在100us 就完成 那用示波器應該不難抓到 我會這麼說就表示 我試過 ok 才敢這麼說 這樣看來會讓我覺得 你可能還要補修一下如何使用示波器才對 在幫你補一個測溫程式好了 我不加註解 希望你能自己一字一字看懂 你來體驗一下你的發文方式跟態度有何不妥吧 ;--------------------------------------- ; EQU MINUTE 21H EQU SECSING 23H EQU MINSING 25H EQU HURSING 27H EQU SHLFUNC 29H TEMP 30H EQU TEMPSING 32H ;--------------------------------------- ; 00H JMP ORG ;Start address for Exinterrupt0 EXINT0 0BH JMP ORG ;Start address for Exinterrupt1 EXINT1 Ready to Work ;--------------------------------------- MOV MOV MOV ;All Function Reset P0,A P2,A A,#0FFH P1,A A,#00H MOV ;Reset Second 21H,A MOV ;Reset Hour A,#0FEH SHLFUNC,A DELAY SETTING ;--------------------------------------- ; SETTING: TMOD,#01H MOV ;10000uS A>@#(65536-10000)=55536=D8F0 TL0,#0EFH TR0 IE,#83H MOV MOV ;10000uS*100=1Sec DISPLAY Display Function ;--------------------------------------- JB ; DISPLAY_HOUR DISPLAY_MINUTE DISPLAY_SECOND DISPLAY DISPLAY_TEMPDEG: CALL MOV CALL MOV CALL CALL MOV CALL CALL MOV CALL CALL MOV MOV DIV MOV MOV MOV MOV MOVC MOV MOV MOV CALL MOV MOV MOVC MOV MOV CALL MOV MOV CALL MOV MOV CALL JMP SETB CLR MOV DJNZ SETB MOV DJNZ JB JNB MOV DJNZ RET TRANSDATA: R6,#8 AGAIN2: MOV JB CLR JMP TRANS_ONE: P3.7 P3.7 MOV DJNZ MOV RR MOV SETB DJNZ RET MOV P3.7 P3.7 R7,#8 R7,$ P3.7,GET_L GET_H GET_L: C CHECK_READ SETB A,TEMP A TEMP,A R6,READ_AGAIN RET DISPLAY_TEMPDEG2: A,#00H P0,A DISPLAY Exinterrupt0 Function ; PUSH PUSH SETB CLR MOV MOV MOV MOV DELAY R2,AGAIN R2,#100 A,P1 A P1,A P2.3 R0,AGAIN SECSING,#0 SECTEN,#0 SECOND,#0 DELAY CHANGE_HOUR: DELAY2 DISPLAY_HOUR DELAY2 P2.1,CHANGE_MINUTE DELAY2 P2.0,CHANGE_HOUR DELAY A,HOUR A A,#24,RETURN_HOUR HOUR,#0 SHOW_HOUR RETURN_HOUR: HOUR,A SHOW_HOUR: A,HOUR B,#10 AB HURTEN,A HURSING,B JMP CALL CALL CALL JB CALL JNB CALL MOV INC CJNE MOV JMP MOV SHOW_MINUTE: A,MINUTE B,#10 AB MINTEN,A MINSING,B JMP PSW ACC Exinterrupt1 Function ; EXINT1: ACC PSW POP POP RETI ;--------------------------------------- ; PUSH PUSH MOV MOV DJNZ CPL MOV A,SECOND A NEXTSECOND: CJNE CLR MOV MOV INC CJNE CLR MINUTE,A A,HOUR A CHECKHOUR: CJNE CLR JMP NEXTMINUTE: MOV MOV JMP MOV MOV JMP MOV SETTING_DISPLAY: A,SECOND MOV DIV MOV MOV MOV ;Change Minute Display B,#10 AB MINSING,B MINTEN,A A,HOUR MOV AB HURSING,B HURTEN,A P2.3 PSW ACC ;--------------------------------------- ; DELAY: ACC PSW R3,#5 D1: R4,#10 D2: R1,#25 R1,$ R4,D2 R3,D1 PSW ACC PUSH PUSH MOV MOV MOV DJNZ DJNZ DJNZ POP POP RET P0,#0FEH MOV MOV MOVC P1,A DELAY P0,#0FDH MOV MOV MOVC P1,A DELAY P0,#0FBH MOV MOV MOVC P1,A DELAY P0,#0F7H MOV MOV MOVC P1,A DELAY P0,#0EFH MOV MOV MOVC P1,A DELAY P0,#0DFH MOV MOV MOVC P1,A DELAY RET ;--------------------------------------- ; DB ;01234 6DH,7DH,27H,7FH,6FH Digit Table For Signle Digits ;--------------------------------------- TABLE_SINGLE: 0BFH,86H,0DBH,0CFH,0E6H DB ;5.6.7.8.9. ;The End of Program
編輯記錄
gn00683155 重新編輯於 2009-11-09 13:49:31, 註解 無‧
gn00683155 重新編輯於 2009-11-09 13:50:19, 註解 無‧ gn00683155 重新編輯於 2009-11-09 13:51:28, 註解 無‧ |
romextromext
一般會員 發表:6 回覆:26 積分:11 註冊:2009-08-24 發送簡訊給我 |
我必須跟阿信大大說對不起了
講話有些不妥 或有點讓人不高興 這並非本意阿 只是我之前很急想要完成 可能是這樣使我打的東西也變了樣 不過有人指出我的不對 那就必然有錯誤的地方值得我檢討 不過我終於董阿信大大說的我近600行很難有時間看 可能是因為我都沒有放註解怎麼多東西讓一個本來沒有要用他的人看,而且完全是他不用管的事何必呢? 這是我發覺從我發問的角度是完全沒考慮的問題 這又是我另外沒注意到的事情 我第一次發文可能什麼都不董但是我願意學習!! 請教人的方法 在這感謝gn00683155大大的教訓 經過這次教訓真的也要再次感謝阿信大大的包容還是願意回我怎麼多次對於我的態度如此不佳
------
這啥需要簽嗎 拿筆來 |
findspace
一般會員 發表:3 回覆:3 積分:1 註冊:2005-03-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |