۰۴-اردیبهشت-۱۳۹۷, ۱۵:۲۱:۲۱
سلام
من این مدار پایین رو بستم که میخوام با فشار دادن هر کلید, عدد اون کلید روی اولین سون سگمنت نمایش بده.
تو پروتئوس درست کار میکنه ولی روی بردبورد که بستم, چه کلید رو فشار بدم چه ندم عدد 8 رو نشون میده.
لطفا راهنمایی کنید.
من این مدار پایین رو بستم که میخوام با فشار دادن هر کلید, عدد اون کلید روی اولین سون سگمنت نمایش بده.
تو پروتئوس درست کار میکنه ولی روی بردبورد که بستم, چه کلید رو فشار بدم چه ندم عدد 8 رو نشون میده.
لطفا راهنمایی کنید.
کد:
#include <mega32.h>
#include <delay.h>
unsigned char key=10;
void keypad(void){
PORTD.3=0;
delay_ms(2);
if(PIND.0==0) key=1;
if(PIND.1==0) key=2;
if(PIND.2==0) key=3;
PORTD.3=1;
PORTD.4=0;
delay_ms(2);
if(PIND.0==0) key=4;
if(PIND.1==0) key=5;
if(PIND.2==0) key=6;
PORTD.4=1;
PORTD.5=0;
delay_ms(2);
if(PIND.0==0) key=7;
if(PIND.1==0) key=8;
if(PIND.2==0) key=9;
PORTD.5=1;
PORTD.6=0;
delay_ms(2);
if(PIND.1==0) key=0;
PORTD.6=1;
}
void main(void)
{
unsigned char seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
DDRB.0=1;
PORTB.0=1;
DDRA=0xff;
DDRD=0x78;
while (1)
{
keypad();
PORTA=seg[key];
}
}