Học Avr Từ Cơ Bản Đến Nâng Cao

add oi
dong code sai cho nao ma mjnh bien dich no loi (for (i=0;i<8;i++)
cho vong lap while(1)
#include <mega16.h>
#include <delay.h>
#define dich PORTC.0
#define data PORTC.1
#define chot PORTC.2
unsigned char b,i;
void laybit(unsigned char a)
{
for (i=0;i<8;i++)
{
b=a;
b=b&0x80;
if(b==0x80)
{
data=1;
}
else
{
data=0;
}
dich=0;
dich=1;
a=a<<1;
}
chot=0;
chot=1;
}
void main(void)
{
DDRC=0xff;
while (1)
{
b=0;
laybit(b);
delay_ms(100)
for (i=0;i<8;i++)
{
b=b<<1|0x01;
laybit(b);
delay_ms(100)
}

}
}

for (i=0;i<8;i++)
{
b=b<<1|0x01;
laybit(b);
delay_ms(100) <= thiếu dấu ; chỗ này
}
 

huong8aka

Học sinh phổ thông
anh em cho mình hỏi mình viết PORTC.B0=1 nó báo lỗi Error: C:\Users\Admin\Desktop\hoc cod\congtac.c(59): undefined symbol 'B0' là sao thế?? thanks..
 

mta_cdt

Super Moderator
Thành viên BQT
anh em cho mình hỏi mình viết PORTC.B0=1 nó báo lỗi Error: C:\Users\Admin\Desktop\hoc cod\congtac.c(59): undefined symbol 'B0' là sao thế?? thanks..
PORTC.0 nhé.
 
phần IO với lcd khá dễ chỉ cần khởi tạo xong là có thể sử dụng đươc.
1 số lệnh lcd:
lcd_gotoxy(tọa độ x,tọa độ y);// đến vị trí x y trên màn hình lcd
lcd_putsf("ký tự");// hiển thị chuỗi ký tự nên màn hình lcd
lcd_putchar(number+48);// lệnh này dùng để hiển thị 1 số nên lcd. cộng thêm 48 để đổi số sang mã ascii mới hiển thị được nên lcd.
Mình xin gửi tài liệu timer của avr (atmega8) về cơ bản thì những chip avr không khác nhau là mấy chỉ khác nhau về số lượng bộ timer và số chân băm xung còn hoạt động thì giống hệt nhau.
projec mẫu thì mình đã post projec timer bên trên rồi. 1 ứng dụng đơn giản để làm đồng hồ bằng timer
Cho mình hỏi các lệnh vi dụ như "lcd_gotoxy hay delay_ms" thì được soft quy định sẵn hay sao? bắt buộc phải ghi đúng tên như thế? còn làm sao để mình biết mà đính kèm #include lcd.h hay các file khác và làm sao để biết lôi ra cái mình cần trog file đó vậy. Còn Mấy câu void main gì đó là bắt buộc phai có khi code phải không? thanks.
 
Cho mình hỏi các lệnh vi dụ như "lcd_gotoxy hay delay_ms" thì được soft quy định sẵn hay sao? bắt buộc phải ghi đúng tên như thế? còn làm sao để mình biết mà đính kèm #include lcd.h hay các file khác và làm sao để biết lôi ra cái mình cần trog file đó vậy. Còn Mấy câu void main gì đó là bắt buộc phai có khi code phải không? thanks.
Việc bắt buộc phải ghi đúng tên như vậy là tất yếu nếu như bạn dùng thư viện có sẵn thì include thư viện của LCD đó rồi lôi hàm ra.Nếu thư viện có hàm LCD_gotoxy(x,y) thì bạn bắt buộc phải theo như thế, nhưng nếu bạn dùng hàm bạn viết thì có thể viết Toa_do(x,y) hoặc Vi_tri(x,y) đều được
Hàm delay_ms() hay delay_us() chỉ được sử dụng khi include delay.h
Hàm main() là hàm chạy chương trình chính và nếu không có nó thì các chương trình con bạn viết bên trên là vô nghĩa (^.^)
 
Bác Đảm cho mình hỏi thêm. Làm sao để mình biết trông file đính kèm có tên hàm như thế nào và chức năng nó là gì để mà gọi ra đc nhỉ? Giả sử như mình làm liên quan đến lcd thì làm sao để mình chọn và gọi ra đc đúng hàm chức năng mình cần vâỵ. Thấy bác mới dùng avr mà lập trình mấy cái clock xịn thiệt.
 

mta_cdt

Super Moderator
Thành viên BQT
Bác Đảm cho mình hỏi thêm. Làm sao để mình biết trông file đính kèm có tên hàm như thế nào và chức năng nó là gì để mà gọi ra đc nhỉ? Giả sử như mình làm liên quan đến lcd thì làm sao để mình chọn và gọi ra đc đúng hàm chức năng mình cần vâỵ. Thấy bác mới dùng avr mà lập trình mấy cái clock xịn thiệt.
Bạn mở file đó ra thì nó có mà vd lcd mở file lcd.h là nó có.
 
Bác Đảm cho mình hỏi thêm. Làm sao để mình biết trông file đính kèm có tên hàm như thế nào và chức năng nó là gì để mà gọi ra đc nhỉ? Giả sử như mình làm liên quan đến lcd thì làm sao để mình chọn và gọi ra đc đúng hàm chức năng mình cần vâỵ. Thấy bác mới dùng avr mà lập trình mấy cái clock xịn thiệt.
Mình hay làm theo cách include thư viện sau đó Build, lúc đó trong cột headers sẽ có .VD thư viện delay thì trong cột headers sẽ có delay.h, ta chỉ cần mở nó ra là xem đc trong đó có hàm gì
Hoặc bạn vào My computer rồi vào thư mục cài CVA mở thư mục INC lên bên trong sẽ có các file đuôi h bạn dùng thư viện nào thì mở file đó lên
Khi viết code chỉ cần gọi đúng tên hàm VD viết đến delay( thì trình biên dịch sẽ tự động gợi ý biến để truyền vào hàm đó
 
Mình hay làm theo cách include thư viện sau đó Build, lúc đó trong cột headers sẽ có .VD thư viện delay thì trong cột headers sẽ có delay.h, ta chỉ cần mở nó ra là xem đc trong đó có hàm gì
Hoặc bạn vào My computer rồi vào thư mục cài CVA mở thư mục INC lên bên trong sẽ có các file đuôi h bạn dùng thư viện nào thì mở file đó lên
Khi viết code chỉ cần gọi đúng tên hàm VD viết đến delay( thì trình biên dịch sẽ tự động gợi ý biến để truyền vào hàm đó
Sao trình biên dịch mình không thấy tự điền nhỉ. Có setting chổ nào không bác.
 

Quảng cáo Google