Thông báo

Collapse
No announcement yet.

Help! Code lập trình sáng tắt dần cho led đơn (led sao băng)

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Help! Code lập trình sáng tắt dần cho led đơn (led sao băng)

    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
    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
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ;#######################################################################################
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Còn đây là code chuẩn delay s và tối đa delay là 255s
    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
    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É
    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
    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

Về tác giả

Collapse

namkoi312 Tìm hiểu thêm về namkoi312

Bài viết mới nhất

Collapse

Đang tải...
X