Trích:
Nguyên văn bởi picpen
có ai biết thì giúp mình giải quyết vấn đề : Hiển thị giá trị số thực lên LCD và led 7 thanh với *********** thank ***********
|
Bạn có thể sử dụng như sau cho LCD, dùng thư viện lcd.c của CCS luôn, nếu cần xuất cho led 7 thanh hay cái gì đó thì bạn viết lại 1 hàm giống như hàm lcd_putc() của thư viện này cũng được.
PHP Code:
float fvar = 1.2345;
printf(lcd_putc, "Float: %f", fvar);
Nếu muốn in ra LED 7 thanh thì bạn có thể viết 1 hàm chuyển đổi ascii sang mã 7 thanh lưu trong 1 vùng RAM, tham số truyền vào là kí tự ascii, chương trình của bạn sẽ hiển thị vùng RAM đó ra LED 7 thanh, hàm này viết cấu trúc giống như lcd_putc là ok
Hàm lcd_putc như thế này
PHP Code:
void lcd_putc( char c) {
switch (c) {
case '\f' : lcd_send_byte(0,1);
delay_ms(2);
break;
case '\n' : lcd_gotoxy(1,2); break;
case '\b' : lcd_send_byte(0,0x10); break;
default : lcd_send_byte(1,c); break;
}
}
có thể sửa lại giống thế này
PHP Code:
unsigned char ptr = 0;
unsigned char buffer[10]; //vùng RAM chứa mã LED 7 đoạn để xuất ra, ở đây là 10 LED
void led7seg( char c) {
unsigned num;
num = c - 0x30;
buffer[ptr] = table_led7doan[num];
ptr++;
if(ptr>=10) ptr = 0;
}
//với table_led7doan[] là bảng const chứa mã 7 đoạn từ 0-9
//Bạn muốn in từ vị trí nào thì cho ptr bằng giá trị đó
//Bạn sử dụng hàm printf như sau
printf(led7seg, "Float: %f",fvar);
//đảm bảo chạy 100%