اطلاعات مطلب
  • بازديدها: 23113
  • نويسنده: saeid11132
  • تاريخ: 21 اردیبهشت 1391
21 اردیبهشت 1391

شمارنده ی دهدهی بر روی LCD

دسته بندی: نرم افزار » کامپایلرهای میکرو » ای.وی.ار (AVR)

دانلود این فایل :

 

az-7-lcd.zip [118.63 کیلوبایت] ( تعداد دانلود: 1279)

شما وارد سايت نشده ايد. جهت ارسال نظر در سايت وارد شويد
اگر تاکنون ثبت نام نکرده ايد اينجا کليک کنيد.
<
مارال

9/07/1391 - 15:07

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
ممنونم خیلی خوب بود.من تازه کارم هنوز خیلی راه نیافتادم.من این برنامه رو با یه atmega32 و یه lcd16*2 انجام دادم .یه جای برنامه نوشته lcd b،یعنی به دو تا lcd نیاز داریم؟
<
hp_mahmood

9/07/1391 - 22:22

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو: mhp@iseee.ir
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 14
  • تعداد نظرات: 172
مارال,

سلام

خیر . ما با میکرو نمی تونیم دو تا lcd رو هم زمان راه اندازی کنیم . مگر با کدهایی که خودمون نوشته باشیم نه با دستورات آماده .

lcd b یعنی عدد b رو نمایش بده . متغییر b که قبلا تعریف شده یک عدد می گیره و با دستور lcd b عدد داخل اون نمایش داده می شه .

یا علی
<
ناشناس

1/02/1392 - 13:26

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلام

یک ال سی دی دارم یک خط است فکر کنم 16*1 یا 2*8 باشه
میشه راهنمایی کنید خط خواندن ال سی دی را برام بنویسی

2- پایه های ال سی دی را میشه به چند پورت وصل کرد یا باید از یک پورت بگیریم

با تشکر
<
kiyanmajd

1/02/1392 - 19:47

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو:
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 31
  • تعداد نظرات: 65
ناشناس,

این جمله ی شما رو متوجه نشدم "میشه راهنمایی کنید خط خواندن ال سی دی را برام بنویسی"

2-بله میشه پایه های ال سی دی به پورت های مختلف وصل کرد.

--------------------

<
ناشناس

2/02/1392 - 20:15

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلام
برای ال سی دی 16*2 اینجوری نوشته میشه
Locate 1 , 1
Cursor Off : Lcd "shomarande *"

Locate 2 , 5 : Lcd B
حالا ال سی دی که من دارم یک ردیف 16 تایی است
خط اول را در 8تای اول ال سی دی مینویسه البته چند حرف کم میاره
شماره را در 8تای دوم
حا باید تو برنامه تو برنامه 16*1 بنویسم یا یه جور دیگه

ممنون
<
محمدرضا حسینی

3/02/1392 - 18:06

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلام

من این مدار را روی اتمگا 8 اجرا کردم و ال سی دی را به پورت بی وصل کردم

یک 7سگمنت هم دیتا به پورت سی ومشترک هم به پورت دی وصل کردم

اگه تو برنامه بنویسم Config Portd = Output ال سی دی خاموش میشه وهیچ کدوم کار نمی کنه

مگه پورت دی چه کار به پورت بی داره که از کار میفته

با تشکر
<
kiyanmajd

4/02/1392 - 21:15

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو:
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 31
  • تعداد نظرات: 65
ناشناس,

من بسکام نصب ندارم که برات تستش کنم.
ولی وقتی lcd شما یک سطری است دیگر نمی توانید از دستور Locate 2 , 5 استفاده کنید
به جای دستورات داخل for این رو امتحان کنید.

locat 1,1
lcd "num : "
locat 1,7
lcd B
wait 10ms

اگر نشد بگید تا بسکام رو نصب و براتون تستش کنم.

--------------------

<
hp_mahmood

5/02/1392 - 04:51

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو: mhp@iseee.ir
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 14
  • تعداد نظرات: 172
محمدرضا حسینی,

سلام

هیچ ربطی بین پورت d و b وجود نداره . مدارتون رو چک کنید ممکنه حالت اتصال کوتاه درست کرده باشید . ولی بازم اگر تصویری از مدار در دسترس باشه بهتر میشه راهنمایی کرد .

آیا بدون این که پورت رو خروجی تعریف کنید مدار به خوبی کار میکنه .؟

یا علی
<
محمدرضا حسینی

5/02/1392 - 19:15

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلام

من یک 7سگمنت به مدار وصل کردم دیتای 7سگمنت به پورت سی

و پایه مشترک به پورت دی 1 و2 پورت بی هم به ال سی دی

تو پروتیوس کار میکنه ولی تو مدار پایه مشترک 7سگمنت که وصل میکنم ال سی دی هم از کا میفته

اگه پورت دی را به عنوان خروجی تعریف نکنم کار میکنه اونم که 7سگمنت خاموشه

با تشکر
<
hp_mahmood

5/02/1392 - 23:25

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو: mhp@iseee.ir
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 14
  • تعداد نظرات: 172
محمدرضا حسینی,

سلام
دقت کنید ببینید در برنامه پروتیوس هیچ پایهای موقع ران کردن برنامه زرد رنگ نشه که به معنی اتصال کوتاه هست .
چیزی که شما می گید بیشتر به اتصال کوتاه میخوره و این که پورت وقتی خروجی میشه در واقع اتصال کوتاه اتفاق می افته . ممکنه هم افت ولتاژ اتفاق افتاده باشه و اون به علت کم توان بودن منبع تغذیه ممکنه به وجود بیاد . برای تست یک مقاومت 330 اهم بین پایه کام و پایه پورت d قرار بدید . اگر سون سگمنت روشن شد با نور کم یعنی مشکل ممکنه افت ولتاز باشه . ولی اگر مدار کار کرد ولی سون سگمنت روشن نشد ممکنه اتصال کوتاه باشه .

موفق باشید.
<
محمدرضا حسینی

6/02/1392 - 11:43

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلام

موارد بالا را اجرا کردم تو پروتیوس درسته عملی کار نمیکنه البته تو پروتیوس پایه pc6 کار نمیکنه

وقتی هم پورت دی راConfig Portd = Output ای سی دی اس خیلی داغ میشه

اینم برنامه با تشکر

$regfile = "m8def.dat"
$crystal = 8000000


Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , _
Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5
Cursor Off
Config Sda = Portb.6
Config Scl = Portb.7

Const Ds1307w = &HD0
Const Ds1307r = &HD1

Config Portd = Output
Config Portc = Output

Dim Seco As Byte , Mine As Byte , Hour As Byte , Hm As Byte

Do
Gosub Ds
Gosub Aa
Locate 1 , 1
Lcd Hour ; ":" ; Mine ; ":" ; Seco



Loop

Ds:
I2cstart
I2cwbyte Ds1307w
I2cwbyte 0
I2cstart
I2cwbyte Ds1307r
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Nack
I2cstop

Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)

Return
'--------------------------------------------------------------------------
-----
Aa:
Portd = &B1110 : Hm = Hour / 10 : Gosub 7seg
Portd = &B1101 : Hm = Hour Mod 10 : Gosub 7seg
Portd = &B1011 : Hm = Mine / 10 : Gosub 7seg
Portd = &B0111 : Hm = Mine Mod 10 : Gosub 7seg
Return

7seg:
Portc = Lookup(hm , Dat)
Waitms 1
Portc = 0
Return
'--------------------------------------------------------------------------
-----

Dat:
Data &B0111111 , &B0000110 , &B1011011 , &B1001111
Data &B1100110 , &B1101101 , &B1111101 , &B0000111
Data &B1111111 , &B1101111
<
hp_mahmood

6/02/1392 - 19:09

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو: mhp@iseee.ir
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 14
  • تعداد نظرات: 172
محمدرضا حسینی,

لطفا فایل پروتیوس رو هم ارسال کنید .

با یک میکرو دیگر هم آزمایش کنید ببینید همین مشکل رو دارید .


فایل پروتیوس رو به آدرس زیر میل کنید :
mhp@iseee.ir
لطفا تو ایمیل توضیح بدید که مربوط به این مشکل هست .

یا علی
<
محمدرضا حسینی

7/02/1392 - 13:58

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلام

شرمنده ایمیل ندارم

مشکلم حل شد ایراد از پورت سی بود که به دیتا وصل بود وپورت سی 6 که پایه ریست بود را

قطع کردم درست شد

حالا اگه بخوام pc6 را خروجی بگیرم باید چکار کنم و بعداز اون میتونم دوباره ای سی را پروگرام کنم یا نه

یه سوال دیگه

ای سی um61512 را چه جوری تو پروتیوس بیارم چون هرچی میگردم پیدا نکردم

با تشکر از سایت بسیار خوبتون
<
hp_mahmood

8/02/1392 - 18:11

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو: mhp@iseee.ir
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 14
  • تعداد نظرات: 172
محمدرضا حسینی,

محمدرضا حسینی,

سلام . اگر از پورت c6 استفاده کنید دیگه نمیتونید پروگرم کنید ای سی رو .
یعنی به صورت سریال نمی تونید .

بهتره کلا از این پورت به عنوان ریست استفاده کنید .

این نوع رم در کتابخانه من هم موجود نبود . ممکنه بتونید از اینترنت کتابخانه مورد نظر رو پیدا کنید . ولی معمولا برای کارها بهتره بی خیال پروتیوس بشید و مدار عملی رو درست کنید . چون آخرش یه جایی پروتیوس کم میاره .
اگر sram جستجو کنی چند مورد مثل msp430f1121 هست ولی نمیدونم به دردت بخوره یا نه .

در کل با دقت کار کن و عملی به نظر من بهتره .

یا علی
<
محمدرضا حسینی

9/02/1392 - 12:05

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلام مهندس

یه سوال داشتم

وقتی برق بکاپ دی اس 1307 را قطع میکنم ساعت ثابت روی یک شماره می ایستد

وباید یک انگشت به پایه های میکرو و دی اس بکشم تا را بیفته علت چیست

کریستال دی اس خازن هم میخواد

با تشکر
<
hp_mahmood

10/02/1392 - 05:17

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو: mhp@iseee.ir
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 14
  • تعداد نظرات: 172
محمدرضا حسینی,

سلام .
کریستال خازن نیاز نداره . یعنی تو کاتالوگ ندیدم و استفاده هم نکردم .
وقتی در حال کار قطع میکنی این مشکل پیش میاد ؟

احتمالا به خاطر نویز هست .
تا حالا برا من این مشکل پیش نیومده . ولی ممکنه با قرار دادن خازن و روشهایی که کریستال رو به نوسان میندازه احتمالا بشه این مشکل رو حل کرد .
در حالت عادی اصولا نباید باتری بک آپ جدا بشه . بنا بر این به نظر من این یک مشکل نیست. در مداری که شما داری استفاده می کنی و نیاز به ساعت داری تمام شدن باتری یعنی این که باتری باید تعویض بشه و کار نکردن دستگاه در این حالت ( بدون باتری ) اصلا یک ایراد نیست .

یا علی
<
محمدرضا حسینی

10/02/1392 - 19:00

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلام

فکر کنم نتونستم منظورم را بگم

مشکل من اینه که مثلا اگه باطری تمام شد وباتری را عوض کردم ویک نو گذاشتم

بعد از اون ساعت روی صفر میمونه وکار نمیکنه حتی اگه برق اتمگا را قطع و وصل کنم

فقط باید یک دست روی ای سی بکشم تا را بیفته

2- یک پروگرامر usbasp دارم دو پایه rxd txd به سوکت کابل وصل میشه این دو پایه برای چیه

اگه ممکنه کمی برام توصیح بده ایا با این دو پایه میشه فیوزبیت اشتبا را برگردوند

بازم تشکر
<
hp_mahmood

11/02/1392 - 23:07

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو: mhp@iseee.ir
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 14
  • تعداد نظرات: 172
محمدرضا حسینی,

نمیدونم دقیقا مشکل کجاست و تا حالا برام پیش نیومده .
اگر درحالت هنگ شدن برنامه درست کار میکنه و اطلاعات رو از ds1307 میخونه بنا بر این ای سی هنگ نکرده و احتمالا مشکل از راه نیفتادن کیریستال هست . میتونی به عنوارن تست دو خازن با مقدارهای متفاوت مثلا 22 و 12 پیکو به پایه کیریستال و زمین وصل کنی . یعنی یکی از خازنا به زمین و پایه یک کیریستال و خازن دوم زمین و پایه دوم کیریستال . این عمل احتمالا باعث بشه کریستال به نوسان بیفته .

اگر نشد بازم بگید یه نسخیه دیگه بپیچیم !!!!

در مورد پروگرامر معمولا پروگرامر ما به پورت سریال وصل میشه و این دو پایه که اشاره کردید پایه ارتبات spi نیستند . فقط در mega 128 به جای mosi و miso از پایه های txd و rxd استفاده می شه .
پروگرامر جیتگ خم که از پایه های دیگری استفاده می کنه . من دلیل اتصال این دو پایه به پروگرامر رو نمیفهمم .
کلا تمام فیوزبیتها با پروگرامر spi قابل تنظیم هست مگر اینکه فیوز بیت قفل میکرو فعال بشه که دیگه هیچ پروگرامری نمیتونه بازش کنه . و حتی با بوت لودر هم فقط میشه میکرو رو پروگرام کرد و تغییر فیوز بیت قفل ممکن نیست.

(البته تا جایی که من اطلاع دارم )

اگر فیوز بیت پروگرم شدن سریال رو از کار بندازین اون موقع فقط میشه با پروگرامر جی تگ این فیوز بیت رو فعال کرد . و تا فعال نشه دیگه پروگرمر spi نمی تونه میکرو رو بشناسه .

یا علی
<
محمدرضا حسيني

26/03/1392 - 14:23

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلام

يه سوالي داشتم اگه ممكنه راهنمايي كنيد

چه طور ميتونيم يك متغير را به دوتا پورت بديم مثلا پورت بي ودي

كه وقتي به جدول لوك اپ رفت بجاي &b11111111 كه از 8 تا خروجي استفاده ميشه بتونيم
از 16 تا يعني دو تا پورت استفاده كنيم b&1111111111111111

با تشكر
<
kiyanmajd

26/03/1392 - 21:20

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو:
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 31
  • تعداد نظرات: 65
محمدرضا حسيني,
دورد
از آنجایی که میکرو مورد استفاده ی شما 8 بیتی است لذا هیچ راهی جز جدا کردن متغیر به دو قسمت ندارید.

--------------------

<
محمدرضا حسيني

26/03/1392 - 23:38

اطلاعات نظر
  • گروه کاربری: ميهمان
  • ياهو:
  • تاريخ عضويت: --
  • وضعيت در سايت:
  • تعداد مطالب: 0
  • تعداد نظرات: 0
سلامي دوباره

ميشه كمي بيشتر توضيح بدي
مثلا متغير از صفر تا هفت پورت بي باشه و از 8 تا15 پورت دي

با تشكر
<
kiyanmajd

27/03/1392 - 13:17

اطلاعات نظر
  • گروه کاربری: مدير کل
  • ياهو:
  • تاريخ عضويت: 08 فروردین 1390
  • وضعيت در سايت: آفلاين
  • تعداد مطالب: 31
  • تعداد نظرات: 65
محمدرضا حسيني,
منظور بنده این بود که همچین کاری رو نمی توانید انجام بدهید.
شما باید به نحوی(مثلا با شیفت دادن) متغیرتون رو داخل دو متغیر 8 بیتی قرار داده و هر کدام رو به پورت مورد نظر بریزید.
وقتی گفته می شه میکرویی 8 بیتی است همینه دیگه،(یعنی سی پی یو هشت بینی محاسبات رو انجام می ده،داده های ورودی خروجی 8بیتیه،خلاصه همه چی 8 بیتیه).
درسته تو بهش 16 بیتی هم میدی ولی باز خود میکرو میاد اونو میشکنه به 8 بیتی و عملیات مورد نظر رو روش انجام میده و بعد نتیجه رو میچسبونه به هم و تحویل ما میده.

--------------------

ارسال نظر

نام:*
ايميل:
متن نظر:
پررنگ کج خط دار خط دار در وسط | سمت چپ وسط سمت راست | قرار دادن شکلک قراردادن لینکقرار دادن لینک حفاظت شده انتخاب رنگ | پنهان کردن متن قراردادن نقل قول تبدیل نوشته ها به زبان روسی قراردادن Spoiler
هر دو کد داده شده را وارد نمائيد: *
^