![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 4 túi
Tham gia ngày: Oct 2008
Bài gửi: 71
: |
![]() Mình đang làm mạch giao tiếp giữa PIC877A với LCD 16x2,viết ở chế độ 4 bit.Đọc giá trị ADC từ kênh AN0 rồi hiển thị lên LCD.Mình đọc trên forum/net,và viết lại như sau:
Code:
while(1) { i++; value =(float) read_adc(); value = value*0.48828125; if (i==500) { convert_bcd((int16)value); i=0; } { lcd_gotoxy(1,1); printf(LCD_putc,"Nhiet do:"); LCD_putc(high); LCD_putc(low); LCD_putc("."); LCD_putc(digit); } delay_ms(3000); } // void convert_bcd(int16 x) { high=x/100; medium=x%100; low=medium/10; digit=medium%10; low = low + 0x30; high = high + 0x30; digit=digit+0x30; } Và nếu viết trực tiếp như cách dưới có được ko??? Code:
lcd_init(); read=read_adc(); read =read*0.48828125; printf(lcd_putc,"\rHien thi: %u",read); delay_us(20); Mình đã nạp thử ct nhưng chạy ko đúng! Thanks ! thay đổi nội dung bởi: tienchuan, 26-10-2009 lúc 11:14 AM. |
![]() |
![]() |
![]() |
#2 |
Đệ tử 3 túi
Tham gia ngày: Feb 2009
Bài gửi: 47
: |
- LCD chỉ hiển thị ký tự. Với các số đếm bạn muốn hiển thị lên LCD thì phải chuyến nó thành mã ASCII mà mã ASCII của một số đếm = chính số đó + 0x30 (=> mục đích của việc cộng thêm 0x30 là để chuyển số đó thành ký tự chứ ko phải là số đếm).
- VD: Muốn hiển thị số 0 thì cần 0 + 0x30 để thành ký tự "0". - Còn với Code:
read =read*0.48828125; printf(lcd_putc,"\rHien thi: %u",read); |
![]() |
![]() |
![]() |
#3 | |
Đệ tử 4 túi
Tham gia ngày: Oct 2008
Bài gửi: 71
: |
Trích:
Thanks all! |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|