امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
اين سوالات براي كانتر 1 رقمي 7 سگمنت براي من ايجاد شده؟
نویسنده پیام
complexcoding آفلاین
تازه وارد

ارسال‌ها: 7
موضوع‌ها: 3
تاریخ عضویت: دى ۱۳۹۱

تشکرها : 7
( 0 تشکر در 0 ارسال )
ارسال: #1
اين سوالات براي كانتر 1 رقمي 7 سگمنت براي من ايجاد شده؟
دوستان سلام
من در اين كد كانتر يك رقمي 7سگمنت اين سوالات براي من ايجاد شده لطفا راهنمايي كنيد ممنون.
كد:
#include <mega16.h>
#define xtal 4000000
flash char digits[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
unsigned char p_state;
unsigned char key;
unsigned char i;
void main(void)
{
DDRD = 0xFF;
PORTD = digits[0];
DDRC = 0x00;
PORTC = 0xFF;
while(1)
{
key = PINC & 0b00000001;

delay_ms(10);
if(key==0)
{
if(key!=p_state)
{
if(i==15)
{
i=0;
PORTD=digits[i];
}
else
i++;
PORTD = digits[i];
p_state=0;
};
}
else
p_state=1;
}
}
-----------------------------------------------------
مشكلات من:
1- خط سبز اولي: 0x3f به باينري 6 تا 1 ميشه پس اگر به يك پورت كه 8 تا پين داره بديم 2 تا پين ديگه چي مي شه؟
2- خط سبز دومي: P_state چيه؟
3- خط سبز سومي: اگر i از نوع كاركتري هست پس چرا با 15 كه عدد صحيح هست مقايسه شده؟
فعلا سوالام همينه اگر كمكي كنيد ممنون مي شم.
با تشكر از كمكتون
(آخرین ویرایش در این ارسال: ۱۲-دى-۱۳۹۱, ۱۳:۱۰:۲۹، توسط complexcoding.)
۱۲-دى-۱۳۹۱, ۱۳:۰۳:۲۴
ارسال‌ها
پاسخ
student-p آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 24
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 18
( 125 تشکر در 76 ارسال )
ارسال: #2
RE: اين سوالات براي كانتر 1 رقمي 7 سگمنت براي من ايجاد شده؟
(۱۲-دى-۱۳۹۱, ۱۳:۰۳:۲۴)complexcoding نوشته است: مشكلات من:
1- خط سبز اولي: 0x3f به باينري 6 تا 1 ميشه پس اگر به يك پورت كه 8 تا پين داره بديم 2 تا پين ديگه چي مي شه؟
2- خط سبز دومي: P_state چيه؟
3- خط سبز سومي: اگر i از نوع كاركتري هست پس چرا با 15 كه عدد صحيح هست مقايسه شده؟
فعلا سوالام همينه اگر كمكي كنيد ممنون مي شم.
با تشكر از كمكتون

1-دو پین دیگه واسه سگمنت های دیگه استفاده شده؛مثلا برای نمایش عدد صفر از شش سگمنت،عدد 1،دو سگمنت و... استفاده میشه1
2-P_state ذاتا ی متغیر هست ولی حالا چرا با مقدار key مقایسه شده؟!
3-کلا ایراد داره

کل ماجرا از این قراره که میخواسته با ی سوئیچ مقدار 0 تا 15 رو (البته فکر کنم)که احتمالا معادل کد هگز هست رو بریزه رو پورت D؛حالا چرا اینقدر برنامه رو کش داده خدا میدونه!Amaze

موفقيت توانايي رفتن از شكستي به شكست ديگر بدون از دست دادن شور و حرارت است. (وينستون چرچيل)

بهترین لینک دنیا اینجا رو کلیک کن(هر چی بخوای هست)

۱۲-دى-۱۳۹۱, ۱۳:۱۹:۱۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : omid_phoenix, complexcoding
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,219
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13641
( 14739 تشکر در 4686 ارسال )
ارسال: #3
RE: اين سوالات براي كانتر 1 رقمي 7 سگمنت براي من ايجاد شده؟
سلام
فکر کنم سازنده نمی خواسته کسی بفهمه چکار کرده
دوست گرامی من برنامشه ساده و قابل فهم دارم اگر می خواهی بگو تا برات بذارمWink

۱۲-دى-۱۳۹۱, ۱۴:۰۰:۵۷
ارسال‌ها
پاسخ
complexcoding آفلاین
تازه وارد

ارسال‌ها: 7
موضوع‌ها: 3
تاریخ عضویت: دى ۱۳۹۱

تشکرها : 7
( 0 تشکر در 0 ارسال )
ارسال: #4
RE: اين سوالات براي كانتر 1 رقمي 7 سگمنت براي من ايجاد شده؟
اگه بذاريد ممنون مي شم خيلي احتياج براي يادگيري هست!!
۱۳-دى-۱۳۹۱, ۰۰:۲۹:۲۲
ارسال‌ها
پاسخ
complexcoding آفلاین
تازه وارد

ارسال‌ها: 7
موضوع‌ها: 3
تاریخ عضویت: دى ۱۳۹۱

تشکرها : 7
( 0 تشکر در 0 ارسال )
ارسال: #5
RE: اين سوالات براي كانتر 1 رقمي 7 سگمنت براي من ايجاد شده؟
با تشكر
و ديگه اينكه Xtal = 4000000 فركانس نوسان سازي كريستال هست؟ كه ميشه 4 گيگاهرتز
و در اين قسمتkey = PINC & 0b00000001;
در واقع همان آگاهي ما از فشرده شدن كليد هست؟ چون كاملا پورت سي به صورت ورودي مقدار دهي شده؟
من يك پروژه دارم كه كنترل دور موتور DC با PWM هست كه دور موتورش رو بايد با ولوم تغيير بدم و سرعتش رو از 0 تا 9 روي يك سون سگمنت نمايش بده ...
تازه 2 يا 3 روزه نشستم سر ميكرو؟ كلي سردرد گرفتم همش وسطاش سرم گيج مي ره؟ مثلا نمي دونم چرا پايه هاي سون سگمنت كاملا به پايه هاي پورت D وصل نشده؟ و يك پايه آزاده و در كدها در مرحله اول 0x3F, مقداردهي شده كه فقط 6 پايه مقدار مي گيره؟ يكي از دوستان گفت دو پايه اي كه مقداردهي نشده صفر هست؟ آيا درست گفت؟ اينم عكسه پايه هاي سون سگمنت وصل شده به ميكرو:
http://www.niloblog.com/files/images/ddb...t3wubh.png
(آخرین ویرایش در این ارسال: ۱۳-دى-۱۳۹۱, ۰۳:۰۲:۲۵، توسط complexcoding.)
۱۳-دى-۱۳۹۱, ۰۳:۰۱:۲۹
ارسال‌ها
پاسخ
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,219
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13641
( 14739 تشکر در 4686 ارسال )
ارسال: #6
RE: اين سوالات براي كانتر 1 رقمي 7 سگمنت براي من ايجاد شده؟
(۱۳-دى-۱۳۹۱, ۰۳:۰۱:۲۹)complexcoding نوشته است: با تشكر
و ديگه اينكه Xtal = 4000000 فركانس نوسان سازي كريستال هست؟ كه ميشه 4 گيگاهرتز
و در اين قسمتkey = PINC & 0b00000001;
در واقع همان آگاهي ما از فشرده شدن كليد هست؟ چون كاملا پورت سي به صورت ورودي مقدار دهي شده؟
من يك پروژه دارم كه كنترل دور موتور DC با PWM هست كه دور موتورش رو بايد با ولوم تغيير بدم و سرعتش رو از 0 تا 9 روي يك سون سگمنت نمايش بده ...
تازه 2 يا 3 روزه نشستم سر ميكرو؟ كلي سردرد گرفتم همش وسطاش سرم گيج مي ره؟ مثلا نمي دونم چرا پايه هاي سون سگمنت كاملا به پايه هاي پورت D وصل نشده؟ و يك پايه آزاده و در كدها در مرحله اول 0x3F, مقداردهي شده كه فقط 6 پايه مقدار مي گيره؟ يكي از دوستان گفت دو پايه اي كه مقداردهي نشده صفر هست؟ آيا درست گفت؟ اينم عكسه پايه هاي سون سگمنت وصل شده به ميكرو:
http://www.niloblog.com/files/images/ddb...t3wubh.png
اینا نشونه ی یادگیریه خیلی خوبهClap
هر سگمنت 7 تا لامپ داره در سگمنت کاتد مشترک پایه های مثبت تمام لامپ ها رو به هم وصل می کنن و باید مستقیم وصل کنیم به منفی و 7 تا پایه مثبت وصل می کنم به میکرو و با میکرو این پایه ها رو کنترل می کنیم تو عکسی که شما گذاشتین پایه مشترک به منفی وصل کردن و 6 تا پایه رو با میکرو کنترل کردن
با این کد 0x3F 6 تا پایه ای رو که به سگمنت وصل کرده اول بار یک کرده یعنی عدد 8 رو نمایش داده
کد:
#include <mega8.h>
#include <delay.h>
void main(void)
{
char seg[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
int a,f;
PORTB=0x00;
DDRB=0xFF;
while (1)
{
if((PINC.0==1)&& (f==0)){
f=1;
a++;}
if((PINC.0==0)&&(f==1)){
f=0;}
if (a>9){a=0;}
PORTB=seg[a];
};
}
خط اول تعریف میکرو
خط دوم کتابخانه تاخیر فعال کردم
خط 3 و 4 برنامه رو شروع کردم
خط 5 کد های مربوط به سگمنت آند مشترک
خط 6 2 تا متغیر تعریف کردم
خط 7 و 8 پورت b رو خروجی تعریف کردم
خط 9 شروع حلقه ی اصلی
خطوط 11 و 12 و 13 و 14 و 15 شرط مربوط به کلید
توضیحات کلید
در حالت عادی متغیر f=0 است و پایه d.0 هم صفر است پس هیچکدام از شرط ها برقرار نیستند و در لحظه ای که کلید یک شود در یک بار اجرای برنامه متغییر a یک واحد زیاد می شود و f=1 می شود و دوباره هیچکدام از شرط ها برقرار نمی شوند و زمانی که کلید رها شود پایه صفر می شود و شرط دوم برقرار می شود و f=0می شود که در این صورت هیچکدام از شرط ها بر قرار نمی شوند.در صورت استفاده از شرط ساده در هر بار که کلید فشار داده شود تا لحظه ای که پایه یک باشد متغیر زیاد می شود ولی با این روش در هر بار فشار دادن هر قدر هم که کلید را فشار دهیم فقط یک واحد متغیر اضافه می شود
خط 16 اگر a از 9 بیشتر شد صفر میشه
با آرایه ها متغیر a روی سگمنت نمایش می دیم
برنامه ی کامل پیوست کردم
موفق باشیدWink


فایل‌(های) پیوست شده
.rar   7seg1.rar (اندازه: 23.92 KB / تعداد دفعات دریافت: 39)

۱۳-دى-۱۳۹۱, ۱۲:۱۰:۰۶
ارسال‌ها
پاسخ
تشکر شده توسط : omid_phoenix


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  تبدیل اعداد نشون داده شده روی سون سگمنت به عدد saeedsmk 2 1,761 ۰۶-اردیبهشت-۱۳۹۷, ۲۱:۵۹:۳۵
آخرین ارسال: 1نفر
  كدهاي ريموت كنترل سيستمهاي صوتي و تصويري براي AVR ghafari 64 54,234 ۲۷-آذر-۱۳۹۵, ۱۴:۱۴:۳۳
آخرین ارسال: safeland
  سوالات مربوط به بخش برنامه های بدون شرح omid_phoenix 64 40,813 ۲۵-خرداد-۱۳۹۵, ۱۸:۴۷:۴۸
آخرین ارسال: Ambassador
Sad [سوال] شمارنده ی دورقمی با سون سگمنت cloner006 4 3,847 ۳۰-دى-۱۳۹۴, ۰۴:۲۴:۱۰
آخرین ارسال: omid_phoenix
  [سوال] شمارش معکوس سه رقمی سون سگمنت مالتی پلکس amiri630 0 2,853 ۱۷-آبان-۱۳۹۴, ۱۵:۳۶:۰۶
آخرین ارسال: amiri630
  کمک در مورد نمایش کلمه روی سون سگمنت سه تایی اند مشترک amiri630 1 2,751 ۱۶-آبان-۱۳۹۴, ۱۰:۱۲:۲۴
آخرین ارسال: hadikh73
  درخواست كمك براي رفع اشكال برنامه بيسيك يك دما سنج shoghal 16 7,341 ۰۵-مرداد-۱۳۹۴, ۱۵:۰۱:۲۶
آخرین ارسال: shoghal
  شمارنده دو رقمی با سون سگمنت زبان C و AVR hosseinip 12 15,488 ۲۳-اردیبهشت-۱۳۹۴, ۱۱:۰۹:۲۶
آخرین ارسال: hosseinip
Shy ولت سنج 5 ولت با سون سگمنت kamran0080 37 24,567 ۲۵-بهمن-۱۳۹۳, ۰۰:۵۶:۴۶
آخرین ارسال: omid_phoenix
  کمک براي مدار کنترل ولتاژ با تغییر نور sarbaz021 19 12,447 ۰۲-بهمن-۱۳۹۳, ۲۰:۴۲:۱۲
آخرین ارسال: milad15m

پرش به انجمن:


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

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