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
