Не подскажите еще как преобразовать число с регистра ADCW в число, а потом это число в символ ... ну или как его значение вывести на дисплей, делал так не получается, подскажите, что не так:
| Код | #include <90s8535.h> #include <delay.h>
#define ADC_VREF_TYPE 0x00
#define RS PC0 #define EN PC2 #define TIME 100
void pause(unsigned int a) { unsigned int cn; for( cn = a; cn > 0; cn-- ); }
void lcd_com(unsigned char p) { PORTC &= ~(1<<0); PORTD = p; PORTC |= 1<<2; pause(TIME); PORTC &= ~(1<<2); pause(5*TIME); }
void lcd_dat(unsigned char p) { PORTC |= 1<<0; PORTD = p; PORTC |= 1<<2; pause(TIME); PORTC &= ~(1<<2); pause(5*TIME); }
void lcd_init() { lcd_com(0x30); lcd_com(0x30); pause(100*TIME); lcd_com(0x30); pause(20*TIME); lcd_com(0x38); lcd_com(0x01); pause(100*TIME); lcd_com(0x06); lcd_com(0x0D); }
interrupt [ADC_INT] void adc_isr(void){
PORTB=(unsigned char) ~ADCW; PORTB = 0x00;
delay_ms(20);
ADCSR|=0x40;
}
////////////////////////////////////////
void main(void) { DDRD = 0xFF; PORTC = 0xF8; DDRC = 0x07;
PORTB=0xFF; DDRB=0xFF;
lcd_init(); lcd_dat((unsigned char)ADCW); //lcd_dat('H'); lcd_dat('e'); lcd_dat('l'); lcd_dat('l'); lcd_dat('o'); ADCSR=0x8E; #asm("sei")
ADMUX=0;
ADCSR|=0x40;
while (1){};
}
|
|