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 ạ !
Các bác giúp em về nhận dữ liệu usart cho AVR
Collapse
X
-
Tags: None
-
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
-
-
-
-
Comment
-
Bài viết mới nhất
Collapse
-
bởi bqvietĐám UPS cửa cuốn đời cổ vẫn chạy 1 biến áp sắt từ vừa để hạ áp điện lưới nạp bình điện, vừa để kích áp bình điện thành sóng vuông đầu ra đấy thôi. Kiểu tiết kiệm này đã có từ mấy chục năm nay. Sơ đồ đại loại như link
https://www.homemade-circuits.com/si...rchargerchang/...-
Channel: Nguồn!
Hôm qua, 16:49 -
-
bởi dinhthuong92Không biết nó thiết kế kiểu gì mà dùng chung được cuộn cảm L cho cả mạch Buck hạ áp để sạc pin và Boost nâng áp cho Led. Muốn vẽ mạch để xem mà nhiều linh kiện quá, e không kham nổi!
Bác nào có sơ đồ xin up lên cho mọi người tham khảo nhé!...-
Channel: Nguồn!
04-09-2026, 11:09 -
-
-
Trả lời cho TCL - Tập hợp các vấn đề về màn hình màu TCLbởi dtvankhoeBác nào có file rom này cho em xin em cảm ơn ạ TCL L43S6500 – TPD.RT2841.PB772
-
Channel: Điện tử truyền hình
30-08-2026, 21:08 -

Comment