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
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Bài hát mới, nhạc Phật: Về Giữa Chiêm Bao, sáng tác: Hoàng Đình Thường.
[Verse 1] Nhân gian bao thay đổi
ĐỜI là giấc CHIÊM BAO
Người mê lầm tranh đấu
KHỔ ĐAU mãi LUÂN HỒI.
VÔ THƯỜNG nào ai thấu
...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 19:01 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi davidcopyBạn muốn hỏi nguyên lý làm việc của mạch nào...
-
Channel: Hỗ trợ học tập
Hôm qua, 22:50 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi N_Tu_Hoc_HoiBạn cần sơ đồ mạch ổn áp bao nhiêu Volt, Nếu giống anh bạn guiwr có khả năng ổn áp dùng iC họ 78XX, 79XX. Những mạch này bạn tim kiếm trên google sẽ thấy!!
-
Channel: Hỗ trợ học tập
23-03-2026, 02:32 -
-
bởi chinhnguyen9
Điến âp vào 24V;Điên áp ra 30V;Dòng điện ra 10A
Trên nền tảng mạch Boost thay đổi như sau: cự âm tụ lọc C không nối mas mà nối vào Vc +24V
Mach phản hồi tao điê áp trên tụ lọc này ổn đinh ở 6V
Kết quả:
· Điện áp ra =24V+ 6V=30V
· Công...-
Channel: Hướng dẫn sử dụng diễn đàn
21-03-2026, 19:33 -
-
bởi chinhnguyen92. Các yếu tố để dòng điện đầu ra không bị "thiếu"
Dòng điện đầu ra bị "thiếu" có thể hiểu là không đủ 10A theo yêu cầu hoặc bị sụt áp khi tải thay đổi. Để đảm bảo điều này, bạn cần xem xét các yếu tố sau:
a. Khả năng chịu dòng của cuộn cảm- Dòng bão hòa (I_sat): Như
-
Channel: Hướng dẫn sử dụng diễn đàn
21-03-2026, 19:06 -
bởi chinhnguyen9
1. Tính toán cuộn cảm (Inductor)
Để tính giá trị cuộn cảm, chúng ta cần thực hiện các bước sau:
a. Xác định chu kỳ nhiệm vụ (Duty Cycle - D)
Với mạch tăng áp lý tưởng, chu kỳ nhiệm vụ được tính theo công thức :
D=1-VinVout=1-24V30V=0.2
Vậy D = 0.2 (20%)
b....-
Channel: Hướng dẫn sử dụng diễn đàn
21-03-2026, 19:03 -
-
bởi chinhnguyen9Công thức
Gain (dB) = 20 × log₁₀(A)
Thí dụ 1; 60dB
log₁₀(A)=60/20=3
⇒ A=V_out / V_in = 10³ = 1.000
Thí dụ 2; 100dB
log₁₀(A)=100/20=5
⇒ A=V_out / V_in = 105 = 100.000
Tí dụ 3; LM 358
Large Signal Open Loop Voltage Gain AVOL V/mV RL = 2.0...-
Channel: Hướng dẫn sử dụng diễn đàn
19-03-2026, 08:44 -
-
Trả lời cho Mạch 3s bị giảm điện áp đầu rabởi minhtri0405chả biết bạn xử lý được chưa , kích sạc hoặc điện áp > điện áp khối pin vào 2 chân P - P+ , nhiều mạch phải yêu cầu có kích lần đầu sau đó mới chạy...
-
Channel: Điện tử dành cho người mới bắt đầu
18-03-2026, 10:01 -
-
bởi minhtri0405đây có phải là 1 cách để test mosfet xịn hay dỏm khi mua đồ tàu không nhỉ , vì ko thể đập ra để coi lõi rồi trả hàng được....
-
Channel: Tâm tình dân kỹ thuật
18-03-2026, 09:57 -

Comment