BÁO CÁO
Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN 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
Trả lời: Lấy 2 nibble của PORTA bằng cách lần lượt che bit cao bit thấp
của PORTA bằng cách AND PINA với 0X0F để lấy 4 bit thấp, sau đó thực
hiện lệnh SWAP PINA rồi tiếp tục AND với 0X0F để lấy 4 bit cao.
b. Enable điện trở pullup như thế nào?
Trả lời: Enable điện trở kéo lên bằng cách gán PORTA = 0XFF.
c. Khi Switch ở trạng thái ON/OFF, giá trị chân Port bằng bao nhiêu?
Trả lời: Khi SW ở trạng thái ON, giá trị chân PORTA là 0. Nếu là OFF thì giá
trị chân PORTA bằng 1.
d. Khi chân port ở trạng thái 1, BAR LED sáng hay tắt?
Trả lời: Khi chân PORT ở trạng thái 1, tuỳ thuộc vào LED đang ở trạng thái
anot chung hay catot chung, catot chung thì mức 1 đèn sáng, anot chung thì
mức 1 đèn tắt.
e. Mã nguồn với chú thích
.ORG 0
START:
LDI R16,0x00; SET TAT CA CAC BIT R16 LA 0
LDI R17,0xFF; SET TAT CA CAC BIT R16 LA 11
OUT DDRA, R16; PORT A LA INPUT
OUT PORTA, R17; KICH HOAT DIEN TRO KEO LEN
OUT DDRB, R17; PORT B LA OUTPUT
OUT PORTB, R16; TAT LED
MAIN:
SBIS PINA,0; NEU SWITCH ON, NHAY QUA NHAN PRESSED
RJMP RELEASE
PRESSED:
CBI PORTB,0; BAT LED
JMP START_1; NHAY QUA START_1
RELEASE:
SBI PORTB,0; TAT LED
START_1:
SBIS PINA,1
RJMP RELEASE_1
BÁO CÁO
Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
PRESSED_1:
CBI PORTB,1
JMP START_2
RELEASE_1:
SBI PORTB,1
START_2:
SBIS PINA,2;
RJMP RELEASE_2
PRESSED_2:
CBI PORTB,2
JMP START_3
RELEASE_2:
SBI PORTB,2
START_3:
SBIS PINA,3
RJMP RELEASE_3
PRESSED_3:
CBI PORTB,3
JMP START_4
RELEASE_3:
SBI PORTB,3
START_4:
SBIS PINA,4
RJMP RELEASE_4
PRESSED_4:
CBI PORTB,4
JMP START_5
RELEASE_4:
SBI PORTB,4
START_5:
SBIS PINA,5
RJMP RELEASE_5
PRESSED_5:
CBI PORTB,5
JMP START_6
RELEASE_5:
SBI PORTB,5
START_6:
SBIS PINA,6
RJMP RELEASE_6
PRESSED_6:
CBI PORTB,6
JMP START_7
RELEASE_6:
SBI PORTB,6
BÁO CÁO
Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
START_7:
SBIS PINA,7
RJMP RELEASE_7
PRESSED_7:
CBI PORTB,7
RJMP MAIN
RELEASE_7:
SBI PORTB,7
RJMP MAIN; NHAY VE LABEL MAIN
Mô phỏng trên Proteus
Thực hành trên kit Atmega324P
BÀI 2
BÁO CÁO
Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
1. Trả lời các câu hỏi
Mã nguồn với chú thích
.ORG 0
LDI R16,0X00
OUT DDRA,R16; PORTA NHAP
LDI R16,0XFF
OUT PORTA,R16; DIEN TRO KEO LEN PORTA
OUT DDRB,R16; PORTB XUAT
LDI R16,0X00
OUT PORTB,R16; TAT LED
LOOP :
IN R16,PINA; DOC GIA TRI PINA VAO R16
COM R16; LAY BU 1 R16
LDI R17,5
ADD R16,R17; CONG R16 VOI 5
OUT PORTB,R16; XUAT R16 RA PORTB
RJMP LOOP
Mô phỏng trên Proteus
BÁO CÁO
Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
Thực hành trên kit Atmega324P
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
Trả lời: Lấy 2 nibble của PORTA bằng cách lần lượt che bit cao và bit thấp của
PORTA bằng cách AND PINA với 0X0F để lấy 4 bit thấp, sau đó thực hiện lệnh
SWAP PINA rồi tiếp tục AND với 0X0F để lấy 4 bit cao.
b. Mã nguồn với chú thích
.ORG 0
LDI R16,0X00
OUT DDRA,R16; PORTA NHAP
LDI R16,0XFF
OUT PORTA,R16; DIEN TRO KEO LEN PORTA
OUT DDRB,R16; PORTB XUAT
LDI R16,0X00
OUT PORTB,R16;LED TAT
LOOP :
IN R16,PINA; DOC GIA TRI PINA VAO R16
COM R16; LAY BU R16
MOV R18,R16; COPY R16 VAO R18
ANDI R18,0X0F; CHE BIT THAP, R18 = 4 BIT THAP
SWAP R16; HOAN DOI VI TRI NIBBLE R16
ANDI R16,0X0F; CHE BIT THAP, R16 = 4 BIT CAO
MUL R16,R18; NHAN R16 VA R18 LUU VAO R0
OUT PORTB,R0; XUAT R0 RA PORTB
RJMP LOOP
BÁO CÁO
Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
Mô phỏng trên Proteus
Thực hành trên kit Atmega324P
BÁO CÁO
Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN 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
LDI R16,0X00
OUT DDRA,R16; PORTA NHAP
LDI R16,0XFF
OUT PORTA,R16; DIEN TRO KEO LEN PORTA
OUT DDRB,R16; PORTB XUAT
LDI R16,0X00
OUT PORTB,R16;LED TAT
LOOP:
IN R16, PINA;
MOV R17, R16;
ANDI R16, 0X0F; CHE BIT THAP, R16 = 4 BIT THAP
SWAP R17; HOAN DOI VI TRI NIBBLE R17
ANDI R17, 0X0F; CHE BIT THAP, R17 = 4 BIT CAO
SBRC R16, 3; KIEM TRA 4 BIT THAP CO AM KHONG
NEG R16; PHU DINH 4 BIT THAP NEU AM
SBRC R17, 3; KIEM TRA 4 BIT CAO CO AM KHONG
NEG R17; PHU DINH 4 BIT CAO NEU AM
MUL R16, R17; NHAN R16 VA R17 LUU VAO R0
MOV R18, R0;
SBRC R18, 7; KIEM TRA KET QUA CO AM KHONG
SUBI R18, 0XFF; PHU DINH KET QUA NEU AM
OUT PORTB, R18;
RJMP LOOP;
Thực hành trên kit Atmega324P
BÀI 5
1. Trả lời các câu hỏi
BÁO CÁO
Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
a. Khi Switch ở trạng thái nhấn/nhả, giá trị chân Port bằng bao nhiêu?
Trả lời: Khi SW nhấn PA0 = 0, PA1 = 1. Khi SW nhả, PA0 = 1, PA1 = 0.
b. Để LED sáng, chân port xuất ra mức logic gì?
Trả lời: Để LED sáng, chân port xuất mức logic 1.
c. Mã nguồn với chú thích
.ORG 0
LDI R16,HIGH(RAMEND); DUA STACK LEN VUNG DIA CHI CAO
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
CBI DDRA,0;
SBI PORTA,0;
SBI DDRA,1;
CBI PORTA,1;
LOOP: PINA,0SBIC ; BO QUA LENH KE NEU PA0 = 0
RJMP LOOP; SW KHONG NHAN PA0 = 1 VONG LAI
RCALL DELAY_10MS; DELAY 10MS
SBIC PINA,0; DOC LAI TRANG THAI SW
RJMP LOOP; LAP VONG NEU CON MUC 1
SBI PORTA,1; NGO RA BANG 1, LED SANG
LOOP2: PINA,0SBIS ; BO QUA LENH KE NEU PA0 = 1
RJMP LOOP2; SW KHONG NHA PA0 = 0 VONG LAI
RCALL DELAY_10MS; DELAY 10MS
SBIS PINA,0; DOC LAI TRANG THAI SW
RJMP LOOP2;
CBI PORTA,1;
RJMP LOOP
DELAY_10MS:
LDI R21,80
L1: R20,250LDI
L2: R20DEC
NOP
BRNE L2
DEC R21
BRNE L1
RET
BÁO CÁO
Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
Mô phỏng trên Proteus
Thực hành trên kit Atmega324P (click đúp để xem)

Preview text:

BÁO CÁO Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN 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
Trả lời: Lấy 2 nibble của PORTA bằng cách lần lượt che bit cao và bit thấp
của PORTA bằng cách AND PINA với 0X0F để lấy 4 bit thấp, sau đó thực
hiện lệnh SWAP PINA rồi tiếp tục AND với 0X0F để lấy 4 bit cao.
b. Enable điện trở pullup như thế nào?
Trả lời: Enable điện trở kéo lên bằng cách gán PORTA = 0XFF.
c. Khi Switch ở trạng thái ON/OFF, giá trị chân Port bằng bao nhiêu?
Trả lời: Khi SW ở trạng thái ON, giá trị chân PORTA là 0. Nếu là OFF thì giá trị chân PORTA bằng 1.
d. Khi chân port ở trạng thái 1, BAR LED sáng hay tắt?
Trả lời: Khi chân PORT ở trạng thái 1, tuỳ thuộc vào LED đang ở trạng thái
anot chung hay catot chung, catot chung thì mức 1 đèn sáng, anot chung thì mức 1 đèn tắt.
e. Mã nguồn với chú thích .ORG 0 START:
LDI R16,0x00; SET TAT CA CAC BIT R16 LA 0
LDI R17,0xFF; SET TAT CA CAC BIT R16 LA 11
OUT DDRA, R16; PORT A LA INPUT
OUT PORTA, R17; KICH HOAT DIEN TRO KEO LEN
OUT DDRB, R17; PORT B LA OUTPUT OUT PORTB, R16; TAT LED MAIN:
SBIS PINA,0; NEU SWITCH ON, NHAY QUA NHAN PRESSED RJMP RELEASE PRESSED: CBI PORTB,0; BAT LED JMP START_1; NHAY QUA START_1 RELEASE: SBI PORTB,0; TAT LED START_1: SBIS PINA,1 RJMP RELEASE_1 BÁO CÁO Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
PRESSED_1: CBI PORTB,1 JMP START_2 RELEASE_1: SBI PORTB,1 START_2: SBIS PINA,2; RJMP RELEASE_2 PRESSED_2: CBI PORTB,2 JMP START_3 RELEASE_2: SBI PORTB,2 START_3: SBIS PINA,3 RJMP RELEASE_3 PRESSED_3: CBI PORTB,3 JMP START_4 RELEASE_3: SBI PORTB,3 START_4: SBIS PINA,4 RJMP RELEASE_4 PRESSED_4: CBI PORTB,4 JMP START_5 RELEASE_4: SBI PORTB,4 START_5: SBIS PINA,5 RJMP RELEASE_5 PRESSED_5: CBI PORTB,5 JMP START_6 RELEASE_5: SBI PORTB,5 START_6: SBIS PINA,6 RJMP RELEASE_6 PRESSED_6: CBI PORTB,6 JMP START_7 RELEASE_6: SBI PORTB,6 BÁO CÁO Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
START_7: SBIS PINA,7 RJMP RELEASE_7 PRESSED_7: CBI PORTB,7 RJMP MAIN RELEASE_7: SBI PORTB,7 RJMP MAIN; NHAY VE LABEL MAIN Mô phỏng trên Proteus
Thực hành trên kit Atmega324P BÀI 2 BÁO CÁO Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
1. Trả lời các câu hỏi Mã nguồn với chú thích .ORG 0 LDI R16,0X00 OUT DDRA,R16; PORTA NHAP LDI R16,0XFF
OUT PORTA,R16; DIEN TRO KEO LEN PORTA OUT DDRB,R16; PORTB XUAT LDI R16,0X00 OUT PORTB,R16; TAT LED LOOP :
IN R16,PINA; DOC GIA TRI PINA VAO R16 COM R16; LAY BU 1 R16 LDI R17,5 ADD R16,R17; CONG R16 VOI 5
OUT PORTB,R16; XUAT R16 RA PORTB RJMP LOOP Mô phỏng trên Proteus BÁO CÁO Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý

Thực hành trên kit Atmega324P 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
Trả lời: Lấy 2 nibble của PORTA bằng cách lần lượt che bit cao và bit thấp của
PORTA bằng cách AND PINA với 0X0F để lấy 4 bit thấp, sau đó thực hiện lệnh
SWAP PINA rồi tiếp tục AND với 0X0F để lấy 4 bit cao.
b. Mã nguồn với chú thích .ORG 0 LDI R16,0X00 OUT DDRA,R16; PORTA NHAP LDI R16,0XFF
OUT PORTA,R16; DIEN TRO KEO LEN PORTA OUT DDRB,R16; PORTB XUAT LDI R16,0X00 OUT PORTB,R16;LED TAT LOOP :
IN R16,PINA; DOC GIA TRI PINA VAO R16 COM R16; LAY BU R16 MOV R18,R16; COPY R16 VAO R18
ANDI R18,0X0F; CHE BIT THAP, R18 = 4 BIT THAP
SWAP R16; HOAN DOI VI TRI NIBBLE R16
ANDI R16,0X0F; CHE BIT THAP, R16 = 4 BIT CAO
MUL R16,R18; NHAN R16 VA R18 LUU VAO R0 OUT PORTB,R0; XUAT R0 RA PORTB RJMP LOOP BÁO CÁO Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
Mô phỏng trên Proteus
Thực hành trên kit Atmega324P BÁO CÁO Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN 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 LDI R16,0X00 OUT DDRA,R16; PORTA NHAP LDI R16,0XFF
OUT PORTA,R16; DIEN TRO KEO LEN PORTA OUT DDRB,R16; PORTB XUAT LDI R16,0X00 OUT PORTB,R16;LED TAT LOOP: IN R16, PINA; MOV R17, R16;
ANDI R16, 0X0F; CHE BIT THAP, R16 = 4 BIT THAP
SWAP R17; HOAN DOI VI TRI NIBBLE R17
ANDI R17, 0X0F; CHE BIT THAP, R17 = 4 BIT CAO
SBRC R16, 3; KIEM TRA 4 BIT THAP CO AM KHONG
NEG R16; PHU DINH 4 BIT THAP NEU AM
SBRC R17, 3; KIEM TRA 4 BIT CAO CO AM KHONG
NEG R17; PHU DINH 4 BIT CAO NEU AM
MUL R16, R17; NHAN R16 VA R17 LUU VAO R0 MOV R18, R0;
SBRC R18, 7; KIEM TRA KET QUA CO AM KHONG
SUBI R18, 0XFF; PHU DINH KET QUA NEU AM OUT PORTB, R18; RJMP LOOP;
Thực hành trên kit Atmega324P BÀI 5 1. Trả lời các câu hỏi BÁO CÁO Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý

a. Khi Switch ở trạng thái nhấn/nhả, giá trị chân Port bằng bao nhiêu?
Trả lời: Khi SW nhấn PA0 = 0, PA1 = 1. Khi SW nhả, PA0 = 1, PA1 = 0.
b. Để LED sáng, chân port xuất ra mức logic gì?
Trả lời: Để LED sáng, chân port xuất mức logic 1.
c. Mã nguồn với chú thích .ORG 0
LDI R16,HIGH(RAMEND); DUA STACK LEN VUNG DIA CHI CAO OUT SPH,R16 LDI R16,LOW(RAMEND) OUT SPL,R16 CBI DDRA,0; SBI PORTA,0; SBI DDRA,1; CBI PORTA,1;
LOOP: SBIC PINA,0; BO QUA LENH KE NEU PA0 = 0
RJMP LOOP; SW KHONG NHAN PA0 = 1 VONG LAI RCALL DELAY_10MS; DELAY 10MS
SBIC PINA,0; DOC LAI TRANG THAI SW
RJMP LOOP; LAP VONG NEU CON MUC 1
SBI PORTA,1; NGO RA BANG 1, LED SANG
LOOP2: SBIS PINA,0; BO QUA LENH KE NEU PA0 = 1
RJMP LOOP2; SW KHONG NHA PA0 = 0 VONG LAI RCALL DELAY_10MS; DELAY 10MS
SBIS PINA,0; DOC LAI TRANG THAI SW RJMP LOOP2; CBI PORTA,1; RJMP LOOP DELAY_10MS: LDI R21,80 L1: LDI R20,250 L2: R20 DEC NOP BRNE L2 DEC R21 BRNE L1 RET BÁO CÁO Nhóm: 04
Nhóm môn học: L16 Môn thí nghiệm: TN Vi xử lý
Mô phỏng trên Proteus
Thực hành trên kit Atmega324P (click đúp để xem)