با درود خدمت دوستان
طرح یه دیمر دیجیتال رو توی یه سایت خارجی پیدا کردم. البته دقیقا همین طرح رو ، بدون کوچکترین تغییری توی یه سایت داخلی هم ، دیدم. چون نمیدونم کدومشون اول طراحیش کردند ، بخاطر حمایت هموطنمون ، اون سایت داخلی رو مرجع قرار میدم.

من این مدار رو بستم ، بخوبی کار میکنه. فقط دوتا تغییر کوچولو تو متن برنامش اعمال کردم که کارش بهتر شد. برای کامل تر شدن طرح باید دوتا قسمت اساسی بهش اضافه بشه.
1- کلید روشن و خاموش
2- اضافه کردن یه 7segment برای نشان دادن درصد هدایت موج
طرز کار این برنامه اینطوریه که بعد از هر بار استفاده از کلیدها ، مقدار جدید در eeprom ذخیره میشه و با قطع شدن برق نیاز به تنظیم مجدد نیست. میخوام با اضافه کردن یه کلید ، بدون اینکه نیاز به قطع برق کل مدار باشه ، فقط خروجی قطع بشه و با فشار مجدد اون کلید ، دوباره خروجی فعال بشه و همون مقدار قبل از خاموش شدن رو داشته باشه. یعنی با خاموش و روشن شدن ریست نشه.
برای نمایشگر هم ، حتما از 7segment استفاده کنیم تا از دور هم قابل خواندن باشه.
این برنامه توی 10 پله توان رو کنترل میکنه. اگه از یه 7segment یک رقمی استفاده بکنیم با حساب کردن عدد صفر ، میتونیم با همین یک رقم هم 10 حالت خروجی رو نشون بدیم. البته resolution با 10 پله خیلی بالا نیست ولی خوب کار رو انجام میده. من با تغییری که توی برنامه دادم ، با 100 پله توان رو کنترل میکنم ، که خیلی بهتر شده و تغییرات بصورت کاملا هموار انجام میشه. ولی در اینصورت باید با 7segment دورقمی میزان توان رو نشون بدیم. این دیگه بستگی به نظر دوستان داره.
لطفا شما فقط تغییرات رو بنویسید ، برنامه جدیدتون رو خودم عملا تستش میکنم و نتیجه رو اعلام میکنم.
با سپاس
طرح یه دیمر دیجیتال رو توی یه سایت خارجی پیدا کردم. البته دقیقا همین طرح رو ، بدون کوچکترین تغییری توی یه سایت داخلی هم ، دیدم. چون نمیدونم کدومشون اول طراحیش کردند ، بخاطر حمایت هموطنمون ، اون سایت داخلی رو مرجع قرار میدم.

کد:
$regfile = "m8def.dat" $crystal = 4000000 Config Pinb.1 = Output ' Gate Triac Config Pind.7 = Input ' Key Up Config Pinb.0 = Input ' Key Dn Config Int0 = Rising On Int0 Int0_int Enable Interrupts Enable Int0 Dim E As Eram Byte Dim B As Byte Dim D As Byte If E > 9 Then E = 9 B = E D = 0 Set Portb.1 Do If Pind.7 = 0 Then If B > 1 Then Decr B Waitms 10 E = B End If If Pinb.0 = 0 Then If B < 9 Then Incr B Waitms 10 E = B End If Loop End 'end program Int0_int: Set Portb.1 For D = 0 To B Waitus 200 Next D Reset Portb.1 Return
1- کلید روشن و خاموش
2- اضافه کردن یه 7segment برای نشان دادن درصد هدایت موج
طرز کار این برنامه اینطوریه که بعد از هر بار استفاده از کلیدها ، مقدار جدید در eeprom ذخیره میشه و با قطع شدن برق نیاز به تنظیم مجدد نیست. میخوام با اضافه کردن یه کلید ، بدون اینکه نیاز به قطع برق کل مدار باشه ، فقط خروجی قطع بشه و با فشار مجدد اون کلید ، دوباره خروجی فعال بشه و همون مقدار قبل از خاموش شدن رو داشته باشه. یعنی با خاموش و روشن شدن ریست نشه.
برای نمایشگر هم ، حتما از 7segment استفاده کنیم تا از دور هم قابل خواندن باشه.
این برنامه توی 10 پله توان رو کنترل میکنه. اگه از یه 7segment یک رقمی استفاده بکنیم با حساب کردن عدد صفر ، میتونیم با همین یک رقم هم 10 حالت خروجی رو نشون بدیم. البته resolution با 10 پله خیلی بالا نیست ولی خوب کار رو انجام میده. من با تغییری که توی برنامه دادم ، با 100 پله توان رو کنترل میکنم ، که خیلی بهتر شده و تغییرات بصورت کاملا هموار انجام میشه. ولی در اینصورت باید با 7segment دورقمی میزان توان رو نشون بدیم. این دیگه بستگی به نظر دوستان داره.
لطفا شما فقط تغییرات رو بنویسید ، برنامه جدیدتون رو خودم عملا تستش میکنم و نتیجه رو اعلام میکنم.
با سپاس
دیدگاه