Các brother ơi,giúp em đoạn này với.
Em 1 hiển thị 1 biến( 1 số có 3 chữ số) ra LCD.Nói chung là ra đâu không quan trọng, nhưng vấn đề là thuật toán lấy ra chữ số hàng trăm, hàng chục, hàng đơn vị của em hình như không đúng, mà em chẳng thấy sai ở đâu cả,xin các brother giúp đỡ.
Chương trình cụ thế em viết như sau:
Hik,thế mà kêt quả hiện thị của em toàn là thế này ( mời các brother xem file đính kèm).
Sau vài lần thử thì em thấy nó tất cả đều hiện thị ra giá trị của hàm if thứ 2,k hiểu nổi luôn.
Em 1 hiển thị 1 biến( 1 số có 3 chữ số) ra LCD.Nói chung là ra đâu không quan trọng, nhưng vấn đề là thuật toán lấy ra chữ số hàng trăm, hàng chục, hàng đơn vị của em hình như không đúng, mà em chẳng thấy sai ở đâu cả,xin các brother giúp đỡ.
Chương trình cụ thế em viết như sau:
Code:
#include "D:\vd\lcd1.h" #include<lcd_lib_4bit.c> int8 tram,chuc,donvi; void httram(); void tinhtoan(); int8 x; void tinh_toan(x) {x=210;//số này em viết thử nghiệm thui tram = x/100 + 0x30; x==x-tram/100; chuc=x/10 + 0x30; donvi=x-chuc*10; } void httram() {if(tram=0) printf(lcd_putchar,"0");else{ if(tram=1) printf(lcd_putchar,"1");else{ if(tram=2) printf(lcd_putchar,"2");}} } void htchuc() { if(chuc=0) printf(lcd_putchar,"0");else{ if(chuc=1) printf(lcd_putchar,"1");else{ if(chuc=2) printf(lcd_putchar,"2");}}} void htdonvi() { if(donvi=0) printf(lcd_putchar,"0");else{ if(donvi=1) printf(lcd_putchar,"1");else{ if(donvi=2) printf(lcd_putchar,"2");}}} void main() { setup_adc_ports(NO_ANALOGS); setup_adc(ADC_OFF); setup_psp(PSP_DISABLED); setup_spi(FALSE); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); lcd_init(); delay_ms(200); printf(lcd_putchar,"hien thi nao"); lcd_putcmd(0xc0); tinh_toan(x); httram(); htchuc(); htdonvi(); }
Hik,thế mà kêt quả hiện thị của em toàn là thế này ( mời các brother xem file đính kèm).
Sau vài lần thử thì em thấy nó tất cả đều hiện thị ra giá trị của hàm if thứ 2,k hiểu nổi luôn.
Comment