PDA

View Full Version : مبتدی: کمک در مورد نمایش کلمه روی سون سگمنت سه تایی اند مشترک



amiri630
چهارشنبه 13 آبان 1394, 14:32 عصر
دوستان سلام خسته نباشید : میخواستم کلمه Hi روی سون سگمنت سه تایی اند مشترک به نمایش دربیاد و چشمک بزنه ولی درست عمل نمی کنه و همزمان دو تا H و بعدش دو تا i به نمایش در میاد! اشکال کارم را هر چه باهاش ور رفتم نمیدونم کجاست . لطفا کمک کنید ،اگر یک نفر سورس اصلاح شده را بگذاره ممنون میشم . با تشکر فراوان

#include <mega8.h>
#include <delay.h>
unsigned char Hi[2]={0x9,0x79};
unsigned char control[]={0b010001001,0b011111001};

void main(void)
{
DDRC.1=0X00;
PORTC.1=0XFF;
DDRD=0XFF;
PORTD=0xFF;
PORTB.0=0b010001001;
PORTB.1=0b011111001;
PORTB.2=0x00;
while(PORTC.1==1)
{
PORTB.0=control[0];
PORTD=Hi[0];
delay_ms(100);
PORTB.2=0x00;
PORTB.1=control[1];
PORTD=Hi[1];
delay_ms(100);
PORTB.2=0x00;
}

دانلود سورس + شماتیک
http://s6.picofile.com/file/8220875042/hh.rar.html

AliBahar
چهارشنبه 13 آبان 1394, 19:25 عصر
سلام. اولا این تاپیک مربوط به تالار AVR میشه بهتره سوالتونو اونجا مطرح کنین. دوم این که چون روی سیستمم پروتئوس ندارم نتونستم شماتیکو ببینم. بنابراین لطفا عکس شماتیکو همین جا پیست کنین. فعلا فقط یک نکته ای به ذهنم میرسه که شاید کمکتون کنه: نحوه پیکربندی پورتها اشتباهه. شما وقتی توی کدویژن مینویسین PORTC.1 یا DDRC.1 به پایه شماره یک پورت سی دسترسی پیدا میکنین بنابراین باید پایه موردنظر با بیت صفر یا یک پیکربندی بشه نه با 0x00 که یک بایته. خود PORTC رو میتونید با یک بایت پیکربندی کنین چون هر پورت هشت تا پایه داره. حالا این که جهت پورتها و مقادیرشونو درست تعریف کردین یا نه باید شماتیک گذاشته بشه.

amiri630
پنج شنبه 14 آبان 1394, 09:33 صبح
سلام. اولا این تاپیک مربوط به تالار AVR میشه بهتره سوالتونو اونجا مطرح کنین. دوم این که چون روی سیستمم پروتئوس ندارم نتونستم شماتیکو ببینم. بنابراین لطفا عکس شماتیکو همین جا پیست کنین. فعلا فقط یک نکته ای به ذهنم میرسه که شاید کمکتون کنه: نحوه پیکربندی پورتها اشتباهه. شما وقتی توی کدویژن مینویسین PORTC.1 یا DDRC.1 به پایه شماره یک پورت سی دسترسی پیدا میکنین بنابراین باید پایه موردنظر با بیت صفر یا یک پیکربندی بشه نه با 0x00 که یک بایته. خود PORTC رو میتونید با یک بایت پیکربندی کنین چون هر پورت هشت تا پایه داره. حالا این که جهت پورتها و مقادیرشونو درست تعریف کردین یا نه باید شماتیک گذاشته بشه.
سلام ممنونم . اره حق با شماست دوست عزیز .پست را ارسال کرده بودم بعدا متوجه شدم اینجا جای مطرح کردن این سوال نبوده .دیگه هم نشد حذفش کنم و از این بابت عذر خواهی میکنم. این هم تصویر شماتیک اگر بتونید اصلاح شده دستورات را بگذاری راحتر به اشتباهم پی می برم. با تشکر فراوان

AliBahar
پنج شنبه 14 آبان 1394, 10:05 صبح
روی پورت سی سوئیچ گذاشتین؟
یک سوال دیگه: وقتی این کد رو تو کدویژن build کردین خطا نداد؟

amiri630
پنج شنبه 14 آبان 1394, 11:25 صبح
روی پورت سی سوئیچ گذاشتین؟
یک سوال دیگه: وقتی این کد رو تو کدویژن build کردین خطا نداد؟
ممنون . اره پورت PORTC.1 سوئیچ میشه. نه خطایی نداد.متاسفانه اگر پرتئوس داشتی میتونستی ببینیش که خطا هم نداده و Build هم صورت گرفته . فقط به جای اینکه بصورت متوالی Hi چشمک بزنه HH چشمک میزنه بعدش ii چشمک میزنه
در کل هدفم اینه اگر ( یا از موقعی که ) PORTC.1=1 شد Hi چشمک بزنه. شاید با دستورات کمتر و بهتری بشه به هدف رسید و من زیادی دستورات را پیچوندم .با تشکر

AliBahar
پنج شنبه 14 آبان 1394, 12:50 عصر
توی سون سگمنتهای چندتایی پایه های مشابه به صورت داخلی به هم متصلند یعنی مثلا پایه مربوط به a در اولی و دومی و سومی به هم متصلند در مورد b و c و سایرین هم به هم متصلند. علت این که HH نشون میده اینه که شما در یک لحظه دوتا 7سگمنت رو با هم روشن میکنی که پایه های مشابهشون به هم وصلند. این لینکو نگاه کن:
http://wikirobot.ir/?p=268
تنها کاری که میتونی بکنی اینه که دو تا 7 سگمنت تکی جداگانه رو به دوتا پورت مختلف وصل کنی تو یک پورت H رو نمایش بدی تو اون یکی i رو. در ضمن نحوه پیکربندیتون رو هم اصلاح کنید پایه رو با یک بیت و کل پورت رو با یک بایت. باز اگه سوالی بود ما در خدمتیم

amiri630
پنج شنبه 14 آبان 1394, 13:51 عصر
توی سون سگمنتهای چندتایی پایه های مشابه به صورت داخلی به هم متصلند یعنی مثلا پایه مربوط به a در اولی و دومی و سومی به هم متصلند در مورد b و c و سایرین هم به هم متصلند. علت این که HH نشون میده اینه که شما در یک لحظه دوتا 7سگمنت رو با هم روشن میکنی که پایه های مشابهشون به هم وصلند. این لینکو نگاه کن:
http://wikirobot.ir/?p=268
تنها کاری که میتونی بکنی اینه که دو تا 7 سگمنت تکی جداگانه رو به دوتا پورت مختلف وصل کنی تو یک پورت H رو نمایش بدی تو اون یکی i رو. در ضمن نحوه پیکربندیتون رو هم اصلاح کنید پایه رو با یک بیت و کل پورت رو با یک بایت. باز اگه سوالی بود ما در خدمتیم
ممنون و مرسی دوست عزیز : ولی من میخوام با سون سگمنت سه تایی این دستور اجرا بشه و نه بصورت سگمنت تکی.منتظریم یکی از دوستان برنامه اصلاح شده را بگذاره . باسپاس