kendab
كاربر تک ستاره
ارسالها: 44
موضوعها: 17
تاریخ عضویت: خرداد ۱۳۸۷
تشکرها : 37
( 14 تشکر در 11 ارسال )
|
سوال در مورد چند خط برنامه
سلام
این قسمت از برنامه نمیفهم چطور عمل میکنه
امکان داره کمکم کنید
ممنون
Do
Incr I
Aa = A Mod 10
Select Case I
Case 1:
Portb = Lookup(aa , Annode_display)
Set S1 : Waitms T
Case 2:
Portb = Lookup(aa , Annode_display)
Set S2 : Waitms T
Case 3:
Portb = Lookup(aa , Annode_display)
Set S3 : Waitms T
End Select
Reset S1 : Reset S2 : Reset S3
A = A \ 10 : If A = 0 Then Exit Do
Loop
(آخرین ویرایش در این ارسال: ۲۸-دى-۱۳۹۱, ۰۸:۴۶:۲۳، توسط kendab.)
|
|
۲۸-دى-۱۳۹۱, ۰۸:۳۶:۱۰ |
|
تشکر شده توسط : |
|
aKaReZa75
حسین باقری
ارسالها: 1,483
موضوعها: 21
تاریخ عضویت: مرداد ۱۳۹۱
تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
|
RE: سوال در مورد چند خط برنامه
این چیه؟
ماله روشن کردن سون سگمنته؟
سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8 ، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSP ها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیبیابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
|
|
۲۸-دى-۱۳۹۱, ۱۰:۲۷:۰۵ |
|
تشکر شده توسط : |
|
Pixar
كاربر تک ستاره
ارسالها: 34
موضوعها: 0
تاریخ عضویت: اردیبهشت ۱۳۹۰
تشکرها : 305
( 112 تشکر در 31 ارسال )
|
RE: سوال در مورد چند خط برنامه
(۲۸-دى-۱۳۹۱, ۰۸:۳۶:۱۰)kendab نوشته است: سلام
این قسمت از برنامه نمیفهم چطور عمل میکنه
امکان داره کمکم کنید
ممنون
.
.
. سلام :
خط به خط براتون توضیح میدم ...
Do
شروع حلقهء برنامه
Incr I
یک واحد به متغیر I اضافه میشه
Aa = A Mod 10
محتوای متغیر A بر 10 تقسیم میشه و حاصل باقیماندهء این تقسیم ، در متغیر Aa ذخیره میشه
Select Case I
مقادیری که ممکنه متغیر I به خودش بگیره ، بررسی میشه و برای هر وضعیتی ، یک کار خاص تعریف میشه .
Case 1:
Portb = Lookup(aa , Annode_display)
اگه متغیر I برابر با 1 بود ، به جدول Annode_display میره و دادهء موجود در اون محلی از همین جدول که متغیر Aa بهش اشاره میکنه رو برمیداره و در پورت B میریزه و به خط بعدی میره. در غیر اینصورت ، به خط case 2 میره .
Set S1 : Waitms T
متغیر بیتی S1 رو یک میکنه و سپس به اندازهء عدد موجود در متغیر T ، تأخیر ایجاد میکنه ( بر حسب میلی ثانیه ) و سپس به خط End select میره .
Case 2:
Portb = Lookup(aa , Annode_display)
اگه متغیر I برابر با 2 بود ، به جدول Annode_display میره و دادهء موجود در اون محلی از همین جدول که متغیر Aa بهش اشاره میکنه رو برمیداره و در پورت B میریزه و به خط بعدی میره. در غیر اینصورت ، به خط case 3 میره .
Set S2 : Waitms T
متغیر بیتی S2 رو یک میکنه و سپس به اندازهء عدد موجود در متغیر T ، تأخیر ایجاد میکنه ( بر حسب میلی ثانیه ) و سپس به خط End select میره .
Case 3:
Portb = Lookup(aa , Annode_display)
اگه متغیر I برابر با 3 بود ، به جدول Annode_display میره و دادهء موجود در اون محلی از همین جدول که متغیر Aa بهش اشاره میکنه رو برمیداره و در پورت B میریزه و به خط بعدی میره . در غیر اینصورت ، به خط End select میره .
Set S3 : Waitms T
متغیر بیتی S3 رو یک میکنه و سپس به اندازهء عدد موجود در متغیر T ، تأخیر ایجاد میکنه ( بر حسب میلی ثانیه )و به خط بعدی میره .
End Select
در اینجا ، دیگه بررسی هر سه حالت تعریف شده به پایان میرسه و خط بعدی اجرا میشه ( اگه هیچکدوم از اون سه حالت هم وجود نداشته باشه ، برنامه از خط بعدی اجرا میشه )
Reset S1 : Reset S2 : Reset S3
هر سه متغیر بیتی S1 و S2 و S3 ، صفر میشن و به خط بعدی میره .
A = A \ 10 : If A = 0 Then Exit Do
متغیر A بر عدد 10 تقسیم میشه و خارج قسمت این تقسیم در متغیر A قرار میگیره . بعد اگه مقدار متغیر A برابر یا صفر بود ، برنامه از حلقهء بی انتهای Do خارج میشه
Loop
تمامی این مراحل بالا که توضیح داده شد بصورت مداوم تکرار میشه و هیچوقت این عملیات متوقف نمیشه ، مگر اینکه متغیر A عددی کوچکتر از 10 به خودش بگیره . چون فقط در این حالت هست که حاصل تقسیم A بر عدد 10 ، دارای خارج قسمت صفر میشه و بنابراین ، برنامه میتونه از حلقهء Do بیاد بیرون .
********************
امیدوارم به اندازهء کافی تونسته باشم بصورت ساده و روان و با گفتاری عامیانه توضیح بدم ...
(آخرین ویرایش در این ارسال: ۲۷-بهمن-۱۳۹۱, ۱۷:۰۶:۰۹، توسط Pixar.)
|
|
۲۷-بهمن-۱۳۹۱, ۱۷:۰۲:۲۲ |
|
تشکر شده توسط : |
aKaReZa75, kendab, Ambassador, milad15m |