Chào các bác !
Em muốn truyền dữ liệu giữa 2 con AVR dùng USART , em dùng Atmega16 , viết code = ASM , em có nghe nói là nếu truyền dữ liệu kiểu này thì các chân RXD và TXD phải nối chéo nhau , chân GND phải chung , tuy nhiên mạch không chạy được , code thì em viết theo datasheet , em kiểm tra thấy dúng , không hiểu nổi tại sao mạch không chạy , em đoán là phần khởi tạo USART có lỗi ( chỉ là đoán thui )...Bác nào làm về vấn đề này rùi mong các bác chỉ giúp em ! Cám ơn các bác nhiều !
Bên thu :
Sau khi nhận xong thì hiển thị lên màn hình , tuy nhiên không thấy hiện thị gì cả , túc là chưa nhận được .
Bên phát :
Em muốn truyền dữ liệu giữa 2 con AVR dùng USART , em dùng Atmega16 , viết code = ASM , em có nghe nói là nếu truyền dữ liệu kiểu này thì các chân RXD và TXD phải nối chéo nhau , chân GND phải chung , tuy nhiên mạch không chạy được , code thì em viết theo datasheet , em kiểm tra thấy dúng , không hiểu nổi tại sao mạch không chạy , em đoán là phần khởi tạo USART có lỗi ( chỉ là đoán thui )...Bác nào làm về vấn đề này rùi mong các bác chỉ giúp em ! Cám ơn các bác nhiều !
Bên thu :
Code:
; ************************************************************* ; ************************************************************* ; KHOI TAO USART RCALL KHOI_TAO_USART NOP ; ============================================================= RCALL NHAN_DU_LIEU_USART NOP NOP ; ============================================================= HERE : RJMP HERE ; KET THUC TAN BO CHUONG TRINH CHINH ; ************************************************************* ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ************************************************************* KHOI_TAO_USART : ; CAT THANH GHI PUSH R16 PUSH R17 ; THIET LAP TOC DO BAUD , 9600 BAUD , TAN SO 11,0592 MHZ LDI R17,0 LDI R16,71 OUT UBRRH,R17 OUT UBRRL,R16 ; UBRRH = USART BAUD RATE REGISTER HIGH ; UBRRL = USART BAUD RATE REGISTER LOW ; CHO PHEP THU VA PHAT DU LIEU LDI R16,0B00011000 OUT UCSRB,R16 ; UCSRB = USART CONTROL AND STATUS REGISTER B ; THIET LAP DINH DANG KHUNG ; 8 BIT DU LIEU , 1 BIT STOP LDI R16,0B10000110 OUT UCSRC,R16 ; PHUC HOI CAC THANH GHI POP R17 POP R16 ; KET THUC HAM KHOI_TAO_USART RET ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ************************************************************* NHAN_DU_LIEU_USART : ; DOI DU LIEU NHAN DUOC HOAN TOAN SBIS UCSRA,7 RJMP NHAN_DU_LIEU_USART ; NHAN VA KHOI PHUC DU LIEU TU BO DEM IN R16,UDR ; KET THUC HAM NHAN_DU_LIEU_USART RET ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bên phát :
Code:
LDI r16,high(RAMEND) ; Main program start OUT SPH,r16 ; Set Stack Pointer to top of RAM LDI r16,low(RAMEND) OUT SPL,r16 SEI ; Enable interrupts ; ************************************************************* ; ************************************************************* ; MO TA CHUC NANG CUA MACH ; BAM 1 PHIM O BEN PHAT ; PHIM NAY DUOC HIEN THI LEN MAN HINH LCD ; KY TU DUOC TRUYEN SANG BEN THU ; BANG PHUONG PHAP TRUYEN USART ; BEN THU NHAN KY TU VA HIEN THI LEN MAN HINH ; LCD ; SU DUNG PHUONG PHAP QUET ; KHOI TAO USART RCALL KHOI_TAO_USART NOP ; ============================================================= AGAIN : RCALL TRUYEN_DU_LIEU_USART NOP NOP ; ============================================================= RJMP AGAIN ; KET THUC TAN BO CHUONG TRINH CHINH ; ************************************************************* ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ************************************************************* KHOI_TAO_USART : ; CAT THANH GHI PUSH R16 PUSH R17 ; THIET LAP TOC DO BAUD , 9600 BAUD , TAN SO 11,0592 MHZ LDI R17,0 LDI R16,71 OUT UBRRH,R17 OUT UBRRL,R16 ; UBRRH = USART BAUD RATE REGISTER HIGH ; UBRRL = USART BAUD RATE REGISTER LOW ; CHO PHEP THU VA PHAT DU LIEU LDI R16,0B00011000 OUT UCSRB,R16 ; UCSRB = USART CONTROL AND STATUS REGISTER B ; THIET LAP DINH DANG KHUNG ; 8 BIT DU LIEU , 1 BIT STOP LDI R16,0B10000110 OUT UCSRC,R16 ; PHUC HOI CAC THANH GHI POP R17 POP R16 ; KET THUC HAM KHOI_TAO_USART RET ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ************************************************************* TRUYEN_DU_LIEU_USART : ; KIEM TRA XEM BO DEM TRUYEN CO TRONG KHONG ; NEU BO DEM TRONG THI CO THE TRUYEN DU LIEU ; SU DUNG PHUONG PHAP QUET SBIS UCSRA,5 ; UCSRA = USART CONTROL AND ; STATUS REGISTER A ; UDRE = USART DATA REGISTER ; EMPTY ; NEU BO DEM TRUYEN TRONG RONG THI ; CO THE TRUYEN RJMP TRUYEN_DU_LIEU_USART ; NEU KHONG THI LAP LAI ; DAT DU LIEU TRONG R16 VAO BO DEM VA GUI DU LIEU ; TRUYEN LIEN TUC CHU B LDI R16,'B' ; R16 = B OUT UDR,R16 ; UDR = USART DATA REGISTER ; KET THUC HAM TRUYEN_DU_LIEU_USART RET ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comment