Professional Documents
Culture Documents
MỤC TIÊU:
➢ Thực hiện các giao tiếp I/O Port, các lệnh tính toán
THAM KHẢO:
BÀI 1
a) Kết nối 1 port của AVR (VD PORT A) vào dip switch. Kết nối 1 port khác vào bar LED
(Ví dụ PORT B)
b) Viết chương trình đọc liên tục trạng thái của DIP Switch và gửi ra LED. Nếu Swich ở
trạng thái OFF, LED tương ứng sẽ tắt.
BÀI 2
a) Viết chương trình đọc giá trị của Port đang nối với Dip Switch, cộng thêm 5 và gửi ra
Port đang nối với Bar LED.
b) Thay đổi trạng thái của Dip Switch và quan sát trạng thái Bar LED
https://doe.dee.hcmut.edu.vn/
LAB 1-1
GIAO TIẾP I/O VÀ CÁC LỆNH TÍNH TOÁN
BÀI 3
a) Kết nối và thực hiện chương trình tính tích của 2 nibble cao và thấp của PORTAvà gửi ra
PORT B. Coi như 2 nibble này là 2 số không dấu
VD: PORTA = 0b0111_1111, thì PORTB = 3*15.
b) Thay đổi trạng thái của Dip Switch và quan sát trạng thái Bar LED
https://doe.dee.hcmut.edu.vn/
LAB 1-1
GIAO TIẾP I/O VÀ CÁC LỆNH TÍNH TOÁN
BÀI 4
a) Kết nối và thực hiện chương trình tính tích của 2 nibble cao và thấp của PORTAvà gửi ra
PORT B. Coi như 2 nibble này là 2 số có dấu
VD: PORTA = 0b0111_1111, thì PORTB = 3* (-1).
b) Thay đổi trạng thái của Dip Switch và quan sát trạng thái Bar LED
https://doe.dee.hcmut.edu.vn/
LAB 1-1
GIAO TIẾP I/O VÀ CÁC LỆNH TÍNH TOÁN
BÀI 5
a) Kết nối PA0 vào 1 Switch đơn và PA1 vào 1 LED đơn trên khối LED (lưu ý là cùng 1
Port)
b) Viết chương trình bật LED nếu SW nhấn, tắt LED nếu SW nhả.
https://doe.dee.hcmut.edu.vn/
LAB 1-1
GIAO TIẾP I/O VÀ CÁC LỆNH TÍNH TOÁN
https://doe.dee.hcmut.edu.vn/
BÁO CÁO
Nhóm: 06
Nhóm môn học: L04 Môn thí nghiệm: Vi xử lý
BÀI 1
1. Trả lời các câu hỏi
a. Lấy giá trị từ 2 nibble của PORTA như thế nào
IN R16,PORTA
LDI R17,$0F
AND R17,R16
LDI R18,$F0
AND R18,R16
SWAP R1
b. Enable điện trở pullup như thế nào?
LDI R16,$FF
OUT PORTA,R16
c. Khi Switch ở trạng thái ON/OFF, giá trị chân Port bằng bao nhiêu?
https://doe.dee.hcmut.edu.vn/
BÁO CÁO
Nhóm: 06
Nhóm môn học: L04 Môn thí nghiệm: Vi xử lý
.ORG 0
RJMP MAIN
.ORG 0X40
START:
BÀI 2
1. Trả lời các câu hỏi
a. Mã nguồn với chú thích
.ORG 0
RJMP MAIN
//--------------------------------------------------------
.ORG 0X40
MAIN:
LDI R16, 0x00
OUT DDRA, R16 //PORTA -INPUT -- DIP SW
LDI R16, 0xFF
OUT PORTA, R16 //DIEN TRO KEO LEN
OUT DDRB, R16 //PORTB -OUTPUT -- BAR LED
OUT PORTB, R16
LOOP:
IN R17, PINA //R17 <-- PINA(DIPSW)
https://doe.dee.hcmut.edu.vn/
BÁO CÁO
Nhóm: 06
Nhóm môn học: L04 Môn thí nghiệm: Vi xử lý
BÀI 3
1. Trả lời các câu hỏi
a. Làm thế nào lấy giá trị từ 2 nibble của PORT A
IN R16,PORTA
LDI R17,$0F
AND R17,R16
LDI R18,$F0
AND R18,R16
SWAP R18
b. Mã nguồn với chú thích
.ORG 0
RJMP MAIN
//--------------------------------------------------------
.ORG 0X40
MAIN:
LDI R16, 0x00
OUT DDRA, R16 //PORTA -INPUT -- DIP SW
LDI R16, 0xFF
OUT PORTA, R16 //DIEN TRO KEO LEN
OUT DDRB, R16 //PORTB -OUTPUT -- BAR LED
OUT PORTB, R16
LOOP: IN R17, PINA //R17 <-- PINA(DIPSW)
LDI R16, 0x0F //R16 <-- 00001111
AND R16, R17 //R16 <-- NIBBLE THAP
LDI R18, 0xF0 //R16 <-- 11110000
AND R18, R17 //R18 <-- NIBBLE CAO(BYTE CAO)
SWAP R18 //CHUYEN VE BYTE THAP
MUL R18, R16 // R1:R0 <-- NIBBLE CAO x NIBBLE THAP (KO DAU)
OUT PORTB, R0 //PB(BARLED) <-- R0 (BYTE THAP)
RJMP LOOP
TREN O DUOI 1 ( TUY BAI )
https://doe.dee.hcmut.edu.vn/
BÁO CÁO
Nhóm: 06
Nhóm môn học: L04 Môn thí nghiệm: Vi xử lý
BÀI 4
1. Trả lời các câu hỏi
a. Mã nguồn với chú thích
.ORG 0
RJMP MAIN
//--------------------------------------------------------
.ORG 0X40
MAIN:
LDI R16, 0x00
OUT DDRA, R16 //PORTA -INPUT -- DIP SW
LDI R16, 0xFF
OUT PORTA, R16 //DIEN TRO KEO LEN
OUT DDRB, R16 //PORTB -OUTPUT -- BAR LED
OUT PORTB, R16
LOOP:
IN R17, PINA //R17 <-- PINA(DIPSW)
LDI R16, 0x0F //R16 <-- 00001111
AND R16, R17 //R16 <-- NIBBLE THAP
SBRC R16, 3 //MO RONG BIT NEU LA SO AM
ORI R16, 0xF0
LDI R18, 0xF0 //R16 <-- 11110000
AND R18, R17 //R18 <-- NIBBLE CAO(BYTE CAO)
SWAP R18 //CHUYEN VE BYTE THAP
SBRC R18, 3 //MO RONG BIT NEU LA SO AM
ORI R18, 0xF0
MULS R18, R16 // R1:R0 <-- NIBBLE CAO x NIBBLE THAP (CO DAU)
OUT PORTB, R0 //PB(BARLED) <-- R0 (BYTE THAP)
RJMP LOOP
VD: -5X3
BÀI 5
1. Trả lời các câu hỏi
a. Khi Switch ở trạng thái nhấn/nhả, giá trị chân Port bằng bao nhiêu?
Nhấn: PORTA0 có giá trị bằng 0.
Nhả: PORTA0 có giá trị bằng 1.
b. Để LED sáng, chân port xuất ra mức logic gì?
Để LED sáng thì chân PORTA1 cần ở mức 1
.ORG 0
CBI DDRA,0; PA0 is input
SBI DDRA,1; PA1 is output
https://doe.dee.hcmut.edu.vn/
BÁO CÁO
Nhóm: 06
Nhóm môn học: L04 Môn thí nghiệm: Vi xử lý
MAIN: IN R17,PINA
CPI R17,$00
BREQ PRESSED
CBI PORTA,1
RJMP MAIN
PRESSED: SBI PORTA,1
RJMP MAIN
https://doe.dee.hcmut.edu.vn/