![]() |
hỏi cách hiển thị adc của 16F877A lên LCD 1602
Trích:
thank!! |
Bạn đọc tài liệu hướng dẫn của CCS C để biết printf() sẽ ghi ra đâu và trong trường hợp muốn ghi ra LCD thì phải làm thế nào.
Thân, |
thay đổi cách ghi lên LCD
Trích:
anh xem hộ em với ! thank anh nhìu !!! |
Với MikroC bạn chỉ mất 10 phút để làm việc với cái LCD ! :D
|
nếu nói vậy thì...pó tay.com
|
Viết như bạn đã sửa thì không ổn. Ví dụ, bạn đọc được giá trị 0x20 vào biến adc, sau đó bạn lại xuất trực tiếp giá trị của abc ra LCD, bộ điều khiển LCD sẽ hiểu là bạn muốn xuất 1 ký tự có mã hexadecimal là 0x20, nghĩa là ký tự khoảng trắng. Giả sử hàm ghi dữ liệu của bạn chạy tốt, bạn sẽ thấy có 1 khoảng trắng xuất hiện trên LCD (và thường là bạn không thấy gì, vì nó là khoảng trắng), dẫn đến bạn có thể kết luận là không xuất được gì ra LCD.
Đề nghị bạn làm như sau: - Chỉ xuất một ký tự gì đó, 'A' chẳng hạn, ra LCD, để khẳng định bạn có thể ghi dữ liệu ra LCD (điều này cũng có nghĩa là các thao tác ghi lệnh trước đó đã thành công). Nếu bạn không xuất ký tự ra LCD được, bạn thử thực hiện quá trình reset mềm (tôi có viết đâu đó trên diễn đàn này, và cả bên www.dientuvietnam.net về quy trình này, 3 lần ghi lệnh 0x33, sau mỗi lần đều có delay, rồi mới thiết lập chế độ, ...) - Đọc vào một giá trị ADC đã biết, và chuyển nó thành chuỗi ký tự tương ứng (tôi tin là CCS C có hàm chuyển đổi này, đó là itoa()), sau đó xuất ra LCD. - Khi đã khẳng định được việc đọc từ module ADC và xuất ký tự ra LCD chạy tốt, bạn có thể ghép chúng lại để thực hiện công việc của bạn. Thân, |
@anh_gioi:đúng như bác Nam nói,bạn đọc giá trị ở ADC sau đó ghi thẳng lên LCD là không ổn
bạn có thể làm thế này nhá: giả sử bạn có giả trị: adc = 1204 bạn lấy adc/1000 = 1----> 1+48 = 49 xuất giá trị 49 lên LCD bạn có số 1 lấy (adc/100)%10 =2----> 2+48=50 xuất giá trị 50 lên LCD ở vị trí tiếp theo bạn có số 2 ..... |
Trong ANSI C cũng như CCS C, printf là một hàm định dạng chuỗi rất mạnh. Với CCS C mặc định chuỗi được định dạng sẽ xuất ra UART. Nhưng bạn có thể sử dụng printf để đẩy dữ liệu ra rất nhiều loại IO khác.
VD: Code:
printf(io_putc, "format string", param....); Vậy để dùng printf của CCS bạn phải viết io_putc theo mẫu Code:
void io_putc(char c){ |
Pwm-adc
Trích:
tại sao ma code của em phần trên điều chỉnh pwm bằng ADC rất yếu so với ko điều chỉnh bằng ADC. em cho chạy trên mạch thật để điều chỉnh động cơ thì nó chạy yếu lắm so với lập trình cjay tư dộng(ko dùng ADC)???? |
Bạn nên kiểm tra tầm giá trị ADC mà bạn thực sự đọc về, rồi mới điều chỉnh code theo đó. Với cách viết của bạn, bạn đang giả thiết tầm giá trị ADC là từ 0 đến 255. Tuy nhiên, nếu thực tế bạn chỉ có được tầm giá trị từ 3 đến 100 chẳng hạn, thì bạn có thể hiểu vì sao điều chỉnh hết thang mà động cơ của bạn vẫn chạy như rùa.
Thân, |
Trích:
|
Trích:
Thân, |
Múi giờ GMT. Hiện tại là 01:37 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam