![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 請問一下,8051的先進魔人大大們
(https://www.pcdvd.com.tw/showthread.php?t=638029)
|
---|
|
補充一下,林振漢老師的這本書
裡面也有組合語言 而且,同一個題目,有組合語言的程式,也有c語言的程式 真的是出外旅行,殺人滅口,必備良藥~~~~~~:D:D:D:D:D |
補充一下
林振漢老師的這一本書 裡面也有組合語言 而且,每一個題目都有組合語言及C語言的程式~~~ 實在是居家旅行~上班兼差~~~~必備良書啊~~~~:D:D:D:D:D |
引用:
<<< 這一篇是開玩笑~打錯的~~~ 望請林老師不要介意~~~ 我只是塵世中的小小工程師啊~~~~ 就請林老師海量海量 :ase :ase :ase |
感謝yhboy 和 finkel 兩位大大的解惑,小弟了解了
想再請問一下 CLK1: REG 40H.0 CLK2: REG 40H.1 CLK3: REG 40H.2 CLK4: REG 40H.3 CLK5: REG 40H.4 CLK6: REG 40H.5 CLK7: REG 40H.6 CLK8: REG 40H.7 CLR 40H.7 MOV A,#40H MOV P0,A 那這樣 A 的值還會是 40H(即 0100 0000)嗎!? 另外 finkel 大大您是學 keil C 的嗎!? |
紅色 LED 32顆 和 藍色 LED 32顆
紅藍色 LED各自從 P0.6出發,各自無限迴圈一直繞(紅藍色 LED 都只亮一顆LED 做移位);都是透過 P0&P1&P2&P3 顯示 .CHIP 8052 ;---------------------------------------------- ORG 0000H LCALL DELAY \ 呼叫延遲時間約 2 秒 LCALL DELAY / 讓電路穩定 ;---------------------------------------------- MOV 40H,#DFH \ 紅色LED初始值 MOV 41H,#FFH \ 只有亮P0.6 MOV 42H,#FFH / MOV 43H,#FFH / MOV 44H,#DFH \ 藍色LED初始值 MOV 45H,#FFH \ 只有亮P0.6 MOV 46H,#FFH / MOV 47H,#FFH / ;---------------------------------------------- LOOP: LCALL L_DATA 呼叫左旋程式,紅色 LED 從 P0.6 LCALL DELAY1 往 P1 P2 P3 移動 MOV A,40H 40H = 紅色 LED P0埠 MOV P0,A MOV A,41H 41H = 紅色 LED P1埠 MOV P1,A MOV A,42H 42H = 紅色 LED P2埠 MOV P2,A MOV A,43H 43H = 紅色 LED P3埠 MOV P3,A ;---------------------------------------------- LCALL R_DATA 呼叫右旋程式,紅色 LED 從 P0.6 MOV A,44H 44H = 藍色 LED P0埠 MOV P0,A MOV A,45H 45H = 藍色 LED P1埠 MOV P1,A MOV A,46H 46H = 藍色 LED P2埠 MOV P2,A MOV A,47H 47H = 藍色 LED P3埠 MOV P3,A LJMP LOOP 再跳回 LOOP 無限迴圈 ;------------------------------------------- L_DATA: 左旋初始設定 MOV R0,#40H MOV R1,#43H CALL L_CHANGE 左旋資料移動 RET ;------------------------------------------- R_DATA: 右旋初始設定 MOV R0,#44H MOV R1,#45H CALL R_CHANGE 右旋資料移動 RET ;-------------------------------------------- L_CHANGE: 40H和41H和42H和43H 左旋資料移動 MOV A,@R1 RLC A MOV A,@R0 RLC A MOV @R0,A INC R0 MOV A,@R0 RLC A MOV @R0,A INC R0 MOV A,@R0 RLC A MOV @R0,A MOV A,@R1 RLC A MOV @R1,A RET ;------------------------------------- R_CHANGE: 44H和45H和46H和47H 右旋資料移動 MOV A,@R1 RRC A MOV @R1,A MOV A,@R0 RRC A MOV @R0,A INC R0 INC R0 INC R0 MOV A,@R0 RRC A MOV @R0,A DEC R0 MOV A,@R0 RRC A MOV @R0,A RET ;-------------------------------------- DELAY: 約 1 秒的延遲時間 MOV R5,#20 CD01: MOV R6,#200 CD02: MOV R7,#250 DJNZ R7,$ DJNZ R6,CD02 DJNZ R5,CD01 RET ;-------------------------------------- DELAY1: 約 0.5 秒的延遲時間 MOV R5,#10 CD03: MOV R6,#200 CD04: MOV R7,#250 DJNZ R7,$ DJNZ R6,CD04 DJNZ R5,CD03 RET ;-------------------------------------- END 用記事本寫,用8051編譯,用LINK聯結,但結果是 .....只有右旋有動作;左旋確沒有動作 小弟有各自測試左旋和右旋,動作都正常OK 但現在加在一起卻,只有右旋有動作,小弟哪邊寫錯了嗎!? |
依程式來看左旋不是沒動作,而是被右旋的結果所"取代"。
|
引用:
大大小弟不懂的地方就在這 分開執行左旋和右旋都可以 可是為什麼架構在一起就不行!? 可以提示一下小弟哪邊的觀念不對嗎!?@_@!? |
引用:
大大,小弟覺得自己好像有點是急病亂投醫....XD 學校:老師上課用的(只有一個學期,不是學年唷!!小弟是 讀進修部四技的) 知城 8551/8052單晶片微電腦原理 與應用 小弟還另外買了:旗標 8051單晶片 徹底研究入門篇 旗標 8051單晶片 徹底研究實習篇 旗標 8051單晶片 徹底研究經驗篇 文魁 單晶片 8051 實作入門 全華 單晶片微電腦 8051/8951原理與 應用修訂 4版 總共 6 本.............XD 這樣會不會投資太多了!?@_@!? |
我舉個例子好了,其他的就由你去體會了或是由他人發揮 :D
假設 PORT 0的狀態是 10000001,現在要把bit4變1,但不改其他值,所以最終狀態是 10010001。 原值是81h(稱A值),現在要加入10h(稱B)之值,要如何才得出91h,有點要注意,這不是算術問題,而是位元運算。 上面的程式是A值送出後,再送B值,A的結果被B取代了.... 不過,我有疑問,送同一值出去,紅藍不會同時亮嗎?還是???? LED如何接? |
所有的時間均為GMT +8。 現在的時間是09:22 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。