các bác cho em hỏi, em ghép AT16 với ADC0809 và hiển thị lên LCD theo sơ đồ sau mà ko hiểu sao không thấy chuyển đổi, chính xác là nó có chạy nhưng chạy như điên, bật nguồn phát là nó hiện lên LCD "ket qua chuyen doi la : 108" em đã xoay biến trở mỏi tay mà ko thấy nó suy chuyển kết quả, mà cũng ko hiểu nó lấy cái số 108 này ở đâu ra nữa. Trước đó em dùng bộ Adc trong tích hợp của nó thì chạy rất ngon, rất nhạy, xoay nửa vòng biến trở nó cũng phát hiện ra.
phần cứng và phần mềm của em thế này, em dùng codevisionAVR để viết ct
Em đã mất 1 tuần với cái mạch này mà chưa sửa đc, ko biết lỗi phần cứng hay phần mềm thế nào các bác thử xem hộ em.
em dùng con bộ đếm 74393 để chia tần số thạch anh 4M của vdk (đã set fuse bit) cho 8 lấy ra 500Khz cấp cho clock ADC
mạch của em đây
chương trình của em đây
có ai biết không giúp mình với
phần cứng và phần mềm của em thế này, em dùng codevisionAVR để viết ct
Em đã mất 1 tuần với cái mạch này mà chưa sửa đc, ko biết lỗi phần cứng hay phần mềm thế nào các bác thử xem hộ em.
em dùng con bộ đếm 74393 để chia tần số thạch anh 4M của vdk (đã set fuse bit) cho 8 lấy ra 500Khz cấp cho clock ADC
mạch của em đây
chương trình của em đây
Code:
#include <mega16.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x1B ;PORTA #endasm #include <lcd.h> #include <delay.h> //*********************************************** unsigned char doc_adc(void) //chuong trinh con doc adc { unsigned char i; PORTA.3=0; //ko cho phep dau ra PORTD.4=0; //xung thap len cao ale,start PORTD.4=1; PORTD.4=0; delay_us(250); //doi chuyen doi xong PORTA.3=1; //cho phep dau ra oe i=PINC; return i; } //******************************************************* void lcd_hienthi(float so, unsigned char x, unsigned char y ) //ctc hien thi lcd { unsigned char a,b,c; a=so/100; //chu so hang tram b=(so-a*100)/10; //chu so hang chuc c=(so-a*100-b*10)/1; //chu so hang don vi lcd_gotoxy(x,y); //ghi vao vi tri dinh truoc tren lcd lcd_putchar(a+48); // đẩy mã Ascii tương ứng ra lcd lcd_putchar(b+48); lcd_putchar(c+48); } //******************************************* // chuong trinh chinh void main(void) { while (1) {lcd_gotoxy(0,0); lcd_putsf("ket qua chuyen doi la:"); lcd_hienthi(doc_adc,8,1); delay_ms(1000); // 1 giay lay mau 1 lan }; }
Comment