امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
سوال در مورد چند خط برنامه
نویسنده پیام
kendab آفلاین
كاربر تک ستاره
*

ارسال‌ها: 44
موضوع‌ها: 17
تاریخ عضویت: خرداد ۱۳۸۷

تشکرها : 37
( 14 تشکر در 11 ارسال )
ارسال: #1
سوال در مورد چند خط برنامه
سلام
این قسمت از برنامه نمیفهم چطور عمل میکنه
امکان داره کمکم کنید
ممنون
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 ارسال )
ارسال: #2
RE: سوال در مورد چند خط برنامه
این چیه؟
ماله روشن کردن سون سگمنته؟

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۲۸-دى-۱۳۹۱, ۱۰:۲۷:۰۵
وب سایت ارسال‌ها
پاسخ
Pixar آفلاین
كاربر تک ستاره
*

ارسال‌ها: 34
موضوع‌ها: 0
تاریخ عضویت: اردیبهشت ۱۳۹۰

تشکرها : 305
( 112 تشکر در 31 ارسال )
ارسال: #3
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


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سوال در مورد اتصال حافظه eeprom جانبی به میکرو SBRE77 9 10,467 ۰۷-مهر-۱۳۹۵, ۲۳:۳۱:۲۹
آخرین ارسال: omidrn
  سوال در مورد ساخت ساعت با ال سي دي navayi 5 4,744 ۱۲-اسفند-۱۳۹۴, ۱۲:۱۷:۱۰
آخرین ارسال: 1نفر
  سوال در مورد دستور timeout$ mohebbat 3 2,932 ۲۹-بهمن-۱۳۹۴, ۱۲:۳۵:۱۹
آخرین ارسال: 1نفر
Exclamation کمک در مورد برنامه نویسی avr . saeedsniper2 5 3,585 ۱۵-اردیبهشت-۱۳۹۴, ۰۹:۲۰:۳۳
آخرین ارسال: kimiafars
  سوال در مورد حافظه جانبی برای میکرو pontiac132 4 4,705 ۰۵-اسفند-۱۳۹۳, ۲۳:۵۸:۵۹
آخرین ارسال: pontiac132
  سوال در مورد انتخاب سنسور و برنامه نویسی dj kaka 10 6,397 ۰۲-اسفند-۱۳۹۳, ۰۹:۱۱:۰۳
آخرین ارسال: dj kaka
  [سوال] سوال در مورد تغذیه میکرو biner 6 4,473 ۰۶-دى-۱۳۹۳, ۱۸:۴۴:۲۲
آخرین ارسال: a.mehran
  سوال در مورد فیوزبیت ها milad15m 20 8,619 ۳۱-شهریور-۱۳۹۳, ۱۹:۳۷:۱۷
آخرین ارسال: omid_phoenix
  [سوال] سوال در مورد ریجستر ها milad15m 1 2,118 ۳۱-شهریور-۱۳۹۳, ۱۸:۴۵:۰۵
آخرین ارسال: omid_phoenix
  [سوال] سوال درباره نوشتن برنامه AVR b.t.asadi 9 7,937 ۳۱-تير-۱۳۹۳, ۰۰:۴۰:۵۳
آخرین ارسال: behzady

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS