اطلاعیه

Collapse
No announcement yet.

ایجاد سه پالس با یک تایمر

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ایجاد سه پالس با یک تایمر

    با سلام

    می خواهم سه پالس با فرکانس های 2 و 3 و 6 کیلو هرتز را روی سه پایه مختلف میکرو تولید کنم.
    آیا این امکان با یک تایمر ممکن است !؟

    این برنامه ای است که خودم نوشتم که فرکانس های 6 و 2 را تولید می کند.
    نمی دانم چگونه سومی را با اینها مچ کنم . ( کانتر R1 را برابر 3 بایستی قرار داد اما ... ) !؟


    کد:
    mov tmod,00000010b
    mov tl0,low(-83)
    mov th0,high(-83)
    start: mov r0,#4
    setb tr0
    wait: jnb tf0,wait
    cpl p1.0
    clr tf0
    djnz r1,wait
    cpl p1.1
    jmp start

    کسی نمی تواند کمکم کند !؟

    #2
    پاسخ : ایجاد سه پالس با یک تایمر

    کد:
    OUT1	EQU	P1.0
    OUT2	EQU	P1.1 
    OUT3	EQU	P1.2
    
    ORG 0000H
    	LJMP	MAIN
    ORG 001BH
    	LJMP	T1ISR
    ORG 0030H
    ;******************************************************
    MAIN:
    	MOV	SP,#80H	
    	MOV	TMOD,#00010000B   ;TIMER1 MODE1 16 BIT
    	MOV	IE,#10001000B	  ;ENABLE GLOBAL AND TIMER1 INTERRUPTS
    	SETB  TF1
    	MOV	R0,#2
    	MOV	R1,#3
    LOOP:
    	SJMP	LOOP
    ;********************************************************
    T1ISR:
    	CLR   TR1
    	MOV   TL1,# LOW -333
    	MOV   TH1,# HIGH -333
    	SETB	TR1
    	CPL	OUT1
    	DJNZ	R0,NOOUT2
    	CPL	OUT2
    	MOV	R0,#2
    NOOUT2:	
    	DJNZ	R1,T1END
    	CPL	OUT3
    	MOV	R1,#3
    T1END:	
    	RETI
    END
    با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

    دیدگاه


      #3
      پاسخ : ایجاد سه پالس با یک تایمر

      ممنون از لطفتون ...
      اگر امکان داره یکم توضح هم می فرمایید که این برنامه چگونه کار می کند !؟ :eek:

      با مدلی که من برای 2 فرکانس نوشتم خیلی فرق می کنه !

      دیدگاه


        #4
        پاسخ : ایجاد سه پالس با یک تایمر

        تایمر 1 روی 12 کیلوهرتز تنظیم شده تا اینتراپت بده
        در روتین اینتراپت:
        خروجی 1 مکمل میشه پس فرکانس 6 کیلو در این خروجی ظاهر میشه
        مقدار R0 که مقدار اولیه اش 2 است یکی کم میشه و چون صفر نشده در اینتراپت بعدی یکی دیگه ازش کم میشه و چون اینبار صفر میشه خروجی 2 مکمل میشه. فرکانس خروجی 2 تقسیم بر2 فرکانس خروجی 1 خواهد بود پس میشه 3 کیلو.
        به همین طریق خروجی 3 تقسیم بر سه خروجی 1 خواهد بود پس میشه 2 کیلوهرتز
        با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

        دیدگاه

        لطفا صبر کنید...
        X