Câu hỏi 1:
Bạn nào có thể giúp mình 1 đoạn code dùng để điều khiển led đơn sẽ sáng dần và tắt dần.
Khi viết thì gọi bao nhiêu hàm delay vậy?
Cảm ơn nhé/
Câu hỏi 2:
Đoạn code này mình tìm thấy trong diễn đàn tạo delay, nhưng mình chưa hiểu lắm...
Delay viết bằng assembly với thạch anh là 24Mhz:
Đây là code delay chuẩn theo ms và tối đa là 255ms
Còn đây là code chuẩn delay s và tối đa delay là 255s
Chú ý: num_ms và num_s là biến
ví dụ delay:
delay 10s và 50ms:
BẠN NÀO GIÚP MÌNH TÍ NHÉ, CẢM ƠN NHIỀU
ĐOẠN CODE NÀY MÌNH TEST THỬ MÀ KHÔNG CHẠY ĐC, BẠN NÀO EDIT GIÚP MÌNH NHÉ
còn cái đoạn
num_ms equ 30h
num_s equ 31h
mov num_ms,#50
mov num_s,#10
call delay_ms
call delay_s
THÌ THÊM VÀO ĐÂU? HELP
Bạn nào có thể giúp mình 1 đoạn code dùng để điều khiển led đơn sẽ sáng dần và tắt dần.
Khi viết thì gọi bao nhiêu hàm delay vậy?
Cảm ơn nhé/
Câu hỏi 2:
Đoạn code này mình tìm thấy trong diễn đàn tạo delay, nhưng mình chưa hiểu lắm...
Delay viết bằng assembly với thạch anh là 24Mhz:
Đây là code delay chuẩn theo ms và tối đa là 255ms
Code:
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ delay_ms: push 7 push 6 push 5 mov r5,num_ms mov r6,#4 mov r7,#249 djnz r7,$ ;2*249=498 djnz r6,$-4 ;(489+2)*4=2000 ; djnz r5,$-8 ;(2000+2)*num_ms= clk_delay pop 5 ;T_dl= clk_delay*chu_ki_may=clk_delay*1/(24000000/12) pop 6 ; =clk_delay*1/2000000 ~= num_ms/1000 (s) pop 7 ; =num_ms (ms) ret ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Code:
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ delay_s: push 7 push 6 push 5 push 4 mov r4,num_s mov r5,#20 mov r6,#200 mov r7,#249 djnz r7,$ ;2*249=498 djnz r6,$-4 ;(498+2)*200=100000 djnz r5,$-8 ;(100000+2)*20=2000000 djnz r4,$-12 ;2000000*num_s = clk_delay pop 4 ; pop 5 ;T_dl= clk_delay*chu_ki_may=clk_delay*1/(24000000/12) pop 6 ; =clk_delay*1/2000000 ~= num_s(s) pop 7 ; ret ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;####################################################################################### ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Chú ý: num_ms và num_s là biến
ví dụ delay:
delay 10s và 50ms:
Code:
num_ms equ 30h num_s equ 31h mov num_ms,#50 mov num_s,#10 call delay_ms call delay_s
ĐOẠN CODE NÀY MÌNH TEST THỬ MÀ KHÔNG CHẠY ĐC, BẠN NÀO EDIT GIÚP MÌNH NHÉ
Code:
ORG 0000H MAIN: CALL CT1 JMP MAIN CT1: SETB P0.0 CALL delay_s CLR P0.0 delay_s: push 7 push 6 push 5 push 4 mov r4,num_s mov r5,#20 mov r6,#200 mov r7,#249 djnz r7,$ ;2*249=498 djnz r6,$-4 ;(498+2)*200=100000 djnz r5,$-8 ;(100000+2)*20=2000000 djnz r4,$-12 ;2000000*num_s = clk_delay pop 4 ; pop 5 ;T_dl= clk_delay*chu_ki_may=clk_delay*1/(24000000/12) pop 6 ; =clk_delay*1/2000000 ~= num_s(s) pop RET END
num_ms equ 30h
num_s equ 31h
mov num_ms,#50
mov num_s,#10
call delay_ms
call delay_s
THÌ THÊM VÀO ĐÂU? HELP