analogového signálu na digitální problém (program)

D

Desmond

Guest
Zdravím všechny

I am using C dělat můj projekt ... moje rovnice Vout je 5 / (1 (z/4.7 ))....... proč nemůžu číst hodnoty na LCD??
Mohl by někdo mi může pomoci??

neplatné display_LCD_number (unsigned char číslo)
(
unsigned char x, y, i = 2;
int z;
z = (int) číslo;
z = z <<1;y = 5 / (1 (z/4.7));
gotoxy (2,0);
write_LCD_data (int2char [y]);gotoxy (2,1);
display_LCD_string (".");y = 5 / (1 (z/4.7));
gotoxy (2,2);
write_LCD_data (int2char [y]);y = 5 / (1 (z/4.7));
gotoxy (2,3);
write_LCD_data (int2char [y]);gotoxy (2,4);
display_LCD_string ("V");

)

 
Ahoj, měli byste inicializaci modulu ADC a číst hodnoty z registru výsledku ADC (to není přítomna ve vašem programu given).Také není uvedeno o mikrořadiče (pokud používáte ji) a kompilátor

 
Tady je můj plný program .......# Include <REGX51.H>
# Define TIMER0_COUNT 0xDC11
/ * LCD příkaz * /
# Define DISPLAY_ON 56
# Define CURSOR_OFF 12
# Define CURSOR_RIGHT 6
# Define CLEAR 1
# Define CURSOR_HOME 2
# Define GOTO_LINE_2 192
# Define GOTO_LINE_1 128
/ * LCD kontrolní linky * /
# Define ENABLE 1
# Define DISABLE 0
# Define Číst 1
# Define WRITE 0
# Define COMMAND 0
# Define DATA 1
# Define rs P3_5
# Define rw P3_4
# Define umožnit P3_3
# Define adc_in P0
# Define adc_rd P2_0
# Define adc_wr P2_1
statické nepodepsaných timer0_tick;
const char int2char [] = "0123456789";
neplatné delay_2ms (void) (
unsigned char i, j;
pro (i = 0; i <3; i )
pro (j = 0; j <255; j )
;
)
neplatné write_LCD_command (nepodepsaný příkaz)
(
rw = WRITE;
rs = příkaz;
enable = ENABLE;
P1 = příkaz;
enable = DISABLE;
rs = 1;
rw = 1;
delay_2ms ();
)
neplatné write_LCD_data (nepodepsané LCDdata)
(
rw = WRITE;
rs = data;
enable = ENABLE;
P1 = LCDdata;
enable = DISABLE;
rs = 0;
rw = 1;
delay_2ms ();
)
neplatné set_LCD (void)
(
write_LCD_command (DISPLAY_ON);
write_LCD_command (CURSOR_OFF);
write_LCD_command (CURSOR_RIGHT);
)
neplatné clear_LCD ()
(
write_LCD_command (CLEAR);
write_LCD_command (CURSOR_HOME);
)
display_LCD_string (char * p)
(
while (* p)
(
write_LCD_data (* p);
p ;
)
)
neplatné gotoxy (nepodepsané x, nesignováno y)
(
if (x == 1)
write_LCD_command (GOTO_LINE_1 y);
jiný
write_LCD_command (GOTO_LINE_2 y);
)
neplatné display_LCD_number (unsigned char číslo)
(
unsigned char x, y, i = 2;
int z;
z = (int) číslo;
z = z <<1;

x = z;
y = x;
gotoxy (2,0);
write_LCD_data (int2char [y]);gotoxy (2,1);
display_LCD_string (".");x = z;
y = x;
gotoxy (2,2);
write_LCD_data (int2char [y]);x = z;
y = x;
gotoxy (2,3);
write_LCD_data (int2char [y]);gotoxy (2,4);
display_LCD_string ("V");

)
static void timer0_isr (void) přerušení 1 pomocí 1
(
TR0 = 0;
TL0 = (TIMER0_COUNT & 0x00FF);
TH0 = (TIMER0_COUNT>>

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Chladný" border="0" />

;
TR0 = 1;
timer0_tick ;
if (timer0_tick == 200) (
adc_wr = 0;
timer0_tick = 0;
adc_wr = 1;
)
)
static void int0_isr (void) přerušit 0 0 použitím
(
unsigned char napětí;
adc_in = 0xFF;
adc_rd = 0;
napětí = adc_in;
napětí = napětí <<1;
adc_rd = 1;
gotoxy (2,0);
display_LCD_number (napětí);
)
static void timer0_initialize (void)
(
EA = 0;
timer0_tick = 0;
TR0 = 0;
TMOD & = 0xF0;
TMOD | = 0x01;
TL0 = (TIMER0_COUNT & 0x00FF);
TH0 = (TIMER0_COUNT>>

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Chladný" border="0" />

;
PT0 = 0;
ET0 = 1;
TR0 = 1;
EA = 1;
)
void main (void) (
set_LCD ();
clear_LCD ();
display_LCD_string ("výstupní napětí =");
timer0_initialize ();
IT0 = 1;
EX0 = 1;
while (1);
)

 

Welcome to EDABoard.com

Sponsor

Back
Top