![]() |
giup e doan code hien thi LCD voi
void lcd_put_int(int16 num){
int16 temp; unsigned char i = 0, c[5];???? temp = num; if (temp != 0) { while(temp){ c[i++] = temp%10; ???? temp /= 10;?????? } while(i) lcd_putc(c[--i] + '0');?????? } else lcd_putc('0');?????? } va lam the nao de hien thi so thap phan 123,4??? ai co the giai thick tung cho em danh dau ???? dc ko a.em moi hoc len chua hieu ro cho nay lam |
Hì, code thì phải nhờ các cao thủ giải thích mới được!!!!!!!!.
còn hiển thị số thập phân thì tui hay: x=123.4; x1=x*10; y1=x1/100; y2=x1%100; lcd_gotoxy(1,1); lcd_putc(y1/10+0x30); lcd_gotoxy(2,1); lcd_putc(y1%10+0x30); lcd_gotoxy(3,1); lcd_putc(y2/10+0x30); lcd_gotoxy(4,1); lcd_putc("."); lcd_gotoxy(5,1); lcd_putc(y2%10+0x30); |
Mấy chỗ bạn cần như sau, mình có sửa 1 chút nhé:
void lcd_put_int(int16 num){ int16 temp; unsigned char i = 0, c[5];???? khai báo mảng 5 phần tử để chứa 5 chữ số của biến num temp = num; if (temp != 0) { while(temp){ c[i] = temp%10; ???? chia temp cho 10 lấy phần dư, suy ra được các chữ số lần lượt từ hàng đơn vị, hàng chục....c[0]: chữ số hàng đơn vị, c[1] hàng chục... temp /= 10;?????? sau đó chia temp cho 10 lấy phần nguyên để tính chữ số ở hàng tiếp theo. i++; } while(i) lcd_putc(c[--i] + '0');???? Hiển thị lần lượt từng chữ số lên LCD, phải cộng với '0' để đưa các chữ số hiển thị đúng mã ASCII } else lcd_putc('0');?????? Hiển thị số 0 } |
^^ cám ơn các anh nhiều nhé.em đang làm bài tập lớn hới khó hỉu chỗ đó .h thì ok rồi ^^
|
thế cho em hỏi chỗ này là while(i) lcd_putc(c[--i] + '0'); nếu em sửa lại while(i) lcd_putc(c[++i] + '0'); thí nó hiện lên rất linh tinh tai sao ko thể ++ i mà lại là --i
va i ++ khac ++i va i-- khác --i ở chỗ nào các anh??? e ko hiu tại sao ?? |
anh oi xem lai phan thap phan cho e sao em cho hien thi lai ra so 020.6, em thay hien thi chua dung .anh chinh lai cho e voi
|
Múi giờ GMT. Hiện tại là 10:19 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam