عکس پیش‌فرض نوشته

در این روش می‌توانید به تعداد پایه‌های میکرو موج PWM تولید کنید. اما نکته مهم در این مورد این است که این موج خیلی دقیق نیست و فقط می‌توان برای تابلوهای LED استفاده کرد که بتوان با آن نور LEDها را کم کرد.

موج PWM

روش استفاده:

ابتدا میکرو را معرفی می‌کنیم:

$regfile = "m32def.dat"

$crystal = 8000000

Config Porta = output

Dim C As Byte , X As Byte , LED(8) As Byte

سپس پیکربندی تایمر 1:

Config Timer0 = Timer , Prescale = 1

On Ovf0 Rgbpwm

Enable Timer0

Enable Interrupts

For x=1 to 8

LED(x) = 0

next

/* در این قسمت برنامه خودتون رو بنویسید */

Do

اکنون در بین do   loop باید برنامه‌ای بنویسید که مقادیر متغییرهای LED رو با توجه به شدت نور مقداردهی کنید. بین 0 تا 255 (0 برای کاملا خاموش و 1 برای کاملا روشن)

به‌طور مثال: با توجه به شکل بالا رنگ قرمز برابر 210 و سبز 120 و آبی 50 است که با توجه به عددها رنگ قرمز پرنورتر از همه و رنگ آبی کم‌نورتر از همه است.

led1 = 210

led2 = 120

led3 = 50

Loop

END

 این قسمت باید در پایین‌ترین قسمت برنامه و زیر END قرار دهید.

در این قسمت LED قرمز به پورت a.0 که همان متقیر led1 است متصل شده و به همین ترتیب led سبز به پورت a.1 و led آبی به پورت a.2 متصل شده است.

Rgbpwm:

Timer0 = 0

Incr C

If C = 0 Then Porta = &B11111111

If LED1 = C Then Reset Porta.0

If LED2 = C Then Reset Porta.1

If LED3 = C Then Reset Porta.2

Return

در صورت نیاز به کدها می‌توانید آن‌ها را از باکس زیر به رایگان دانلود و استفاده کنید: