Chào các bác em moi tìm hiểu về AVR nhờ các bác chỉ giáo cho em với a ! em muốn kích hoạt chế độ nhận cho atmega 16 qua max485 và khi nhận rồi thì xuất dữ liệu ra PORTC .nhờ các bác chỉ giáo ạ ! có thể thi cho e xin 1 doạn code đơn giản xuat dữ liệu ra cho nhấp nháy led chẳng hạn ! em dung codevision các bác nhá ! em cảm ơn ạ !
Thông báo
Collapse
No announcement yet.
Các bác giúp em về nhận dữ liệu usart cho AVR
Collapse
X
-
Bài 5 - Giao tiếp UARTNguyên văn bởi kieunamthanh Xem bài viếtChào các bác em moi tìm hiểu về AVR nhờ các bác chỉ giáo cho em với a ! em muốn kích hoạt chế độ nhận cho atmega 16 qua max485 và khi nhận rồi thì xuất dữ liệu ra PORTC .nhờ các bác chỉ giáo ạ ! có thể thi cho e xin 1 doạn code đơn giản xuat dữ liệu ra cho nhấp nháy led chẳng hạn ! em dung codevision các bác nhá ! em cảm ơn ạ !
-
Chào bạn kieunamthanh
Đây là code cho atmega8 chạy thanh anh 8MHZ nhé.
// USART Mode: Asynchronous
// USART Baud Rate: 9600
Khi nhận ký tự là a thì sẽ đảo trạng thái của cổng C.
Bạn xem code có chạy được không, thì mình hướng dẫn trên mạch thật cho bạn!
/************************************************** **
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
************************************************** ***/
#include <mega8.h>
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if(data=='a') // Nhận được ký tự là a
PORTC = ~PORTC; // đảo trạng trái trên cổng C
}
// Standard Input/Output functions
#include <stdio.h>
// Declare your global variables here
void main(void)
{
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0xFF;
PORTD=0x00;
DDRD=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: Off
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x90;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D;
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
}
}
Comment
-
Chào bạn kieunamthanh
Đây là code cho atmega8 chạy thanh anh 12MHZ nhé.
// USART Mode: Asynchronous
// USART Baud Rate: 9600
Khi nhận ký tự là a thì sẽ đảo trạng thái của cổng C.
Bạn xem code có chạy được không, thì mình hướng dẫn trên mạch thật cho bạn!
/************************************************** **
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
************************************************** ***/
#include <mega8.h>
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if(data=='a') // Nhận được ký tự là a
PORTC = ~PORTC; // đảo trạng trái trên cổng C
}
// Standard Input/Output functions
#include <stdio.h>
// Declare your global variables here
void main(void)
{
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0xFF;
PORTD=0x00;
DDRD=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: Off
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x90;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D;
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
}
}
Comment
-
cảm ơn anh thực ra la em đang đinh làm cái mạch nhập giá trị từ máy tính (ví du ta ấn số 1 trên bàn phím máy tính thì máy tinh sẽ gửi xuồng vkd avr và hiển thị ra led 7 đoạn la số 1 thông qua 1 con ghi dich ) nói thât với bác la e chua bít làm cái này chưa bit clk chốt như nào data truyen ra như thế nào để điều hiên thanh ghi dịche vẽ 1 cái mạch nhờ bác xem giúp và cho e xin đoạn code điều khiển nếu đcj e xin cảm ơn ! bác nhiu ! em k biết gửi file đính kem nên bác co thể cho em xin email dc ak ?
Comment
-
Mail minh nhe! Minh san long giup ban! alumen86@gmail.comNguyên văn bởi kieunamthanh Xem bài viếtcảm ơn anh thực ra la em đang đinh làm cái mạch nhập giá trị từ máy tính (ví du ta ấn số 1 trên bàn phím máy tính thì máy tinh sẽ gửi xuồng vkd avr và hiển thị ra led 7 đoạn la số 1 thông qua 1 con ghi dich ) nói thât với bác la e chua bít làm cái này chưa bit clk chốt như nào data truyen ra như thế nào để điều hiên thanh ghi dịche vẽ 1 cái mạch nhờ bác xem giúp và cho e xin đoạn code điều khiển nếu đcj e xin cảm ơn ! bác nhiu ! em k biết gửi file đính kem nên bác co thể cho em xin email dc ak ?
Comment
Bài viết mới nhất
Collapse
-
bởi afrendlyCảm ơn bạn. Mình hỏi để thợ có thể tham khảo thôi chứ không đủ kiển thức để sửa, mà cũng không có đồ nghề, mua đồ nghề quá tiền máy. Gọi nhiều lần mà thợ hẹn mãi chưa có tới ấy bạn. Mình muốn sửa được chứ bỏ thì uống, nhưng sợ là được mỗi người thợ mà lại không sửa nổi....
-
Channel: Điện tử gia dụng
Hôm qua, 00:34 -
-
bởi mèomướpDạ nó bị tắc ẩm hoặc rò thiếu gas hoặc lốc yếu hoặc van tiết lưu có vấn đề hoặc tất cả những nguyên nhân trên ạ. Chú ko chuyên về mảng này thì bán đi, giành thời gian trồng rau sạch đem ra chợ bán lấy tiền mua tủ mới ạ. Còn...
-
Channel: Điện tử gia dụng
10-05-2026, 17:01 -
-
bởi afrendlyXin chào mọi người. Mình lại có vấn đề về đồ điện cần nhờ mọi người hỗ trợ giúp. Mình có tủ lạnh Sharp dùng cũng lâu rồi. Trước có bị kém lạnh, không đông đá thì có thợ họ mang về, sục đường ga gì đó hết 900k và đã dùng...
-
Channel: Điện tử gia dụng
10-05-2026, 16:53 -
-
bởi dinhthuong92Đấy, cái tôi thắc mắc là chỗ màu hồng ấy bạn, để áp vào cao chứ không bị sụt gần bằng áp pin thì rất cần cuộc cảm để làm điều đó. Tuy nhiên, trong công thức bác thớt dẫn không thấy mặt L, và một vài mạch MPPT tôi đã kiểm...
-
Channel: Nguồn!
09-05-2026, 10:01 -
-
bởi mèomướpDạ mạch sạc là 1 cục nguồn, nó sẽ điều chỉnh công suất đầu ra để có tổng trở bằng nội trở của pin ạ. Và cái cách nó chỉnh công suất đầu ra sẽ là dạng buck, boot. Đều cần đến cuộn cảm ạ. Tất nhiên chú thích thì có thể dùng dạng tuyến tính transistor để bù trừ nhưng mà nó đốt năng lượng vô ích ạ...
-
Channel: Nguồn!
08-05-2026, 16:26 -
-
bởi dinhthuong92Tng trở R của tải (gồm pin và mạch sạc) trong công thức đó rõ ràng khống có L xuất hiện. Nếu tính các dây dẫn thì rất nhỏ, bỏ qua. Vì nội trở pin là rất nhỏ, có thể nói luôn lớn hơn nội trở solar, nên mạch MPPT sẽ hầu như luôn tính...
-
Channel: Nguồn!
08-05-2026, 11:00 -
-
bởi dinhthuong92Chào bác. Đã là công thức phải tổng quát chứ, nó phải thể hiện cả quá trình, rối thì quá độ hay xác lập tính sau vì tùy điều kiện. Cũng như công thức tính diện tích chả hạn, phải là tích phân....
-
Channel: Nguồn!
08-05-2026, 10:49 -

Comment