اتصال کلید به avr |
بستن
اطلاعات بیشتر
- ارسال ها: 7
- تشکرهای دریافت شده: 0
10 سال 3 ماه قبل #166
توسط goli
سلام من برنامه قبلی که با ADC بود را عوض کردم ولی نمیدونم چرا جواب نمیده
برنامم اینه با زدن هر کلید LED نظیر و روی 7seg عدد نظیر نمایش داده میشه و بیزر روشن بشه و با زدن کلید ریست همه به حالت اول برگرده و اگر چند تا کلید پشت هم زده بشه بعد از هر بار ریست کلید بعدی روشن بشه
برنامم اینه با زدن هر کلید LED نظیر و روی 7seg عدد نظیر نمایش داده میشه و بیزر روشن بشه و با زدن کلید ریست همه به حالت اول برگرده و اگر چند تا کلید پشت هم زده بشه بعد از هر بار ریست کلید بعدی روشن بشه
لطفاً ورود یا ايجاد حساب كاربری برای پیوستن به بحث.
بستن
اطلاعات بیشتر
- ارسال ها: 111
- امتياز: 26
- تشکرهای دریافت شده: 43
10 سال 3 ماه قبل #168
توسط atmega128
شما از برنامه زیر استفاده کردید:و ورودیهای مدارت وقتی کلید فشار داده میشه ---> زمین میشه
1-پس ورودیهات در حالت عادی هیچی نیستن و 2-وقتی کلید فشار داده میشه صفر میشن
> اینجا دو مشکل داریم اول باید ورودیهای مدارت در حالت عادی یک عدد باشن یعنی 1 باشن برای این کار درر ایندای برنامه باید پورت a رو به عنوان ورودی تعریف کنی و پول آپش کنی البته در میکروی avr که خاصیت پول آپ رو داره میشه با برنامه این کار رو کرد ولی در میگروهای قدیمی باید خودت مقاومت بزاری و ورودیها رو در حالت عادی 1 کنی که بهش میگن پول آپ کردن.
ورودی کردن پورت A:پول آپ کردن تمام پایه های A:حالا میتونی ورودی ها رو بخونی ولی بجای عبارتهای قبل در هر if باید به شکل زیر بنویسی:و همه رو باید تغییر بدی تا درست بشه
while (1)
{
a= PINA;
if (a==0x01){
PORTD= code [1];
PORTD.4=1;
PORTC=0x01;
if (PIND.5==1){
a=a&0xfe;
1-پس ورودیهات در حالت عادی هیچی نیستن و 2-وقتی کلید فشار داده میشه صفر میشن
> اینجا دو مشکل داریم اول باید ورودیهای مدارت در حالت عادی یک عدد باشن یعنی 1 باشن برای این کار درر ایندای برنامه باید پورت a رو به عنوان ورودی تعریف کنی و پول آپش کنی البته در میکروی avr که خاصیت پول آپ رو داره میشه با برنامه این کار رو کرد ولی در میگروهای قدیمی باید خودت مقاومت بزاری و ورودیها رو در حالت عادی 1 کنی که بهش میگن پول آپ کردن.
ورودی کردن پورت A:
DDRA=0x00;
PORTA=0xff;
if (PINA.0==0){
PORTD= code [1];
PORTD.4=1;
PORTC=0x01;
if (PIND.5==1){
a=a&0xfe;
}
}
if (PINA.1==0){
PORTD= code [2];
PORTD.4=1;
PORTC=0x02;
if (PIND.5==1){
a=a&0xfd;
}
}
لطفاً ورود یا ايجاد حساب كاربری برای پیوستن به بحث.