Bài báo cáo Lab 1: Vi xử lí - Cấu trúc máy tính và vi xử lí | Đại học Bách Khoa, Đại học Đà Nẵng

Bài báo cáo Lab 1: Vi xử lí - Cấu trúc máy tính và vi xử lí | Đại học Bách Khoa, Đại học Đà Nẵng giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học

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)
| 1/9

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)