vida
Newbie level 3
here is all my information:
#include <mega16.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
// Declare your global variables here
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
// Declare your global variables here
int A;
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0xff;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0xff;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0xff;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0xff;
// LCD module initialization
lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
while (1)
{
A=PINC;
if(A<10){switch(A){
case 0ORTD=0b10000001;lcd_putsf("0");lcd_gotoxy(0,0);break;
case 1ORTD=0b11110011;lcd_putsf("1");lcd_gotoxy(0,0);break;
case 2ORTD=0b01001001;lcd_putsf("2");lcd_gotoxy(0,0);break;
case 3ORTD=0b01100001;lcd_putsf("3");lcd_gotoxy(0,0);break;
case 4ORTD=0b00110011;lcd_putsf("4");lcd_gotoxy(0,0);break;
case 5ORTD=0b00100101;lcd_putsf("5");lcd_gotoxy(0,0);break;
case 6ORTD=0b00000101;lcd_putsf("6");lcd_gotoxy(0,0);break;
case 7ORTD=0b11110001;lcd_putsf("7");lcd_gotoxy(0,0);break;
case 8ORTD=0b00000001;lcd_putsf("8");lcd_gotoxy(0,0);break;
case 9ORTD=0b00100001;lcd_putsf("9");lcd_gotoxy(0,0);break;
}
}
}
}
with this program,lcd &7segment show numbers between 0&3.it cann't show numbers between 4&9
my lcd is 2x16
and it is a character lcd
#include <mega16.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
// Declare your global variables here
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
// Declare your global variables here
int A;
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0xff;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0xff;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0xff;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0xff;
// LCD module initialization
lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
while (1)
{
A=PINC;
if(A<10){switch(A){
case 0ORTD=0b10000001;lcd_putsf("0");lcd_gotoxy(0,0);break;
case 1ORTD=0b11110011;lcd_putsf("1");lcd_gotoxy(0,0);break;
case 2ORTD=0b01001001;lcd_putsf("2");lcd_gotoxy(0,0);break;
case 3ORTD=0b01100001;lcd_putsf("3");lcd_gotoxy(0,0);break;
case 4ORTD=0b00110011;lcd_putsf("4");lcd_gotoxy(0,0);break;
case 5ORTD=0b00100101;lcd_putsf("5");lcd_gotoxy(0,0);break;
case 6ORTD=0b00000101;lcd_putsf("6");lcd_gotoxy(0,0);break;
case 7ORTD=0b11110001;lcd_putsf("7");lcd_gotoxy(0,0);break;
case 8ORTD=0b00000001;lcd_putsf("8");lcd_gotoxy(0,0);break;
case 9ORTD=0b00100001;lcd_putsf("9");lcd_gotoxy(0,0);break;
}
}
}
}
with this program,lcd &7segment show numbers between 0&3.it cann't show numbers between 4&9
my lcd is 2x16
and it is a character lcd