Baocao LAB 1 L04 nhom06 - bài tập lớn vi xử lý
Thí nghiệm vật lý 1 (Trường Đại học Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh)
Scan to open on Studeersnel
Studocu is not sponsored or endorsed by any college or university
Baocao LAB 1 L04 nhom06 - bài tập lớn vi xử lý
Thí nghiệm vật lý 1 (Trường Đại học Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh)
Scan to open on Studeersnel
Studocu is not sponsored or endorsed by any college or university
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
1
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA


BÁO CÁO THÍ NGHIỆM
VI XỬ LÝ
Nhóm thí nghiệm: Nhóm 06 – Lớp L04
GVHD: Nguyễn Phan Hải Phú
STT Họ tên MSSV
1 Tô Trần Hữu Luân 2113985
2 Võ Phước Luân 2113990
3 Nguyễn Quang Minh 2152768
TP. Hồ Chí Minh, ngày 03 tháng 04 năm 2023
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
1
MC TIÊU:
Thực hiện các giao tiếp I/O Port, các lệnh tính toán
THAM KHO:
Tài liệu hướng dẫn thí nghiệm, chương 1, 2
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)
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
2
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.
.CSEG
.ORG 0x00
CLR R16
OUT DDRA,R16
LDI R16,0xFF
OUT PORTA,R16
LDI R16,0xFF
OUT DDRB,R16
CLR R16
OUT PORTB,R16
LP: IN R16,PINA
COM R16
OUT PORTB,R16
RJMP LP
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
3
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
Để lấy 4byte thấp:
IN R18, PINA
MOV R19, R18
ANDI R18, $0F
Để lấy 4byte cao:
ANDI R19, $F0
SWAP R19
b. Enable điện trở pullup như thế nào?
PORTA là port nhập nên để xét điện trở kéo lên cho nó ta chỉ cần out giá trị
$FF ra thanh ghi PORTA.
c. Khi Switch ở trạng thái ON/OFF, giá trị chân Port bằng bao nhiêu?
Switch ON: chân PORTA có giá trị 0, chân PORTB có giá trị 1
Switch OFF: chân PORTA có giá trị 1, chân PORTB có giá trị 0
d. Khi chân port ở trạng thái 1, BAR LED sáng hay tắt?
Port ở trạng thái 1 thì BAR LED sáng.
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.
.CSEG
.ORG 0x00
CLR R16
OUT DDRA,R16
LDI R16,0xFF
OUT PORTA,R16
LDI R16,0xFF
OUT DDRB,R16
CLR R16
OUT PORTB,R16
LP: IN R16,PINA
LDI R17,5
ADD R16,R17
COM R16
OUT PORTB,R16
RJMP LP
b) Thay đổi trạng thái của Dip Switch và quan sát trạng thái Bar LED
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
4
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.
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
5
.CSEG
.ORG 0x00
CLR R16
OUT DDRA,R16
LDI R16,0xFF
OUT PORTA,R16
LDI R16,0xFF
OUT DDRB,R16
CLR R16
OUT PORTB,R16
LP: IN R16,PINA
MOV R17,R16
ANDI R16,0b00001111
ANDI R17,0b11110000
SWAP R17
MUL R16,R17
COM R0
OUT PORTB,R0
RJMP LP
b) Thay đổi trạng thái của Dip Switch và quan sát trạng thái Bar LED
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
6
Trả lời các câu hỏi
Làm thế nào lấy giá trị từ 2 nibble của PORT A
Để lấy 4byte thấp:
IN R18, PINA
MOV R19, R18
ANDI R18, $0F
Để lấy 4byte cao:
ANDI R19, $F0
SWAP R19
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
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
7
VD: PORTA = 0b0111_1111, thì PORTB = 3* (-1).
.CSEG
.ORG 0x00
CLR R16
OUT DDRA,R16
LDI R16,0xFF
OUT PORTA,R16
LDI R16,0xFF
OUT DDRB,R16
CLR R16
OUT PORTB,R16
LP: IN R16,PINA
MOV R17,R16
ANDI R16,0b00001111
LDI R18,0x08
AND R18,R16
BRNE SOAM1
RJMP TT1
SOAM1: ORI R16,0b11110000
TT1: ANDI R17,0b11110000
SWAP R17
LDI R18,0x08
AND R18,R16
BRNE SOAM2
RJMP TT2
SOAM2: ORI R17,0b11110000
TT2: MULS R16,R17
COM R0
OUT PORTB,R0
RJMP LP
b) Thay đổi trạng thái của Dip Switch và quan sát trạng thái Bar LED
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
8
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
9
c)
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ả.
.cseg
.org 0x00
start: CBI DDRA,0
SBI PORTA,0
SBI DDRA,1
CBI PORTA,1
MAIN: SBIS PINA,0
RJMP RELEASE
PRESSED: CBI PORTA,1
RJMP MAIN
RELEASE: SBI PORTA,1
RJMP MAIN
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
10
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 = 0
Nhả: PORTA0 = 1
b. Để LED sáng, chân port xuất ra mức logic gì?
LED sáng chân PORTA1 xuất mức 1
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
11
MC TIÊU:
Thực hiện các lệnh tạo trễ dùng câu lệnh
Thực hiện giao tiếp với thanh ghi dịch
THAM KHO:
Tài liệu hướng dẫn thí nghiệm, chương 1, 2
BÀI 1
Cho chương trình như sau:
.include "m324PAdef.inc"
.org 00
ldi r16,0x01
out DDRA, r16
start:
sbi PORTA,PINA0
cbi PORTA, PINA0
rjmp start
Kết nối PA0 vào một kênh đo trên khối TEST STATION và đo dạng xung trên
oscilloscope
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
12
BÀI 2
a) Viết chương trình con Delay1ms và dùng nó để viết chương trình tạo xung vuông tần số
1Khz trên PA0.
DELAY_1MS: LDI R21,80 ;1MC
L1: LDI R20,25 ;1MC
L2: DEC R20 ;1MC
NOP ;1MC
BRNE L2 ;2/1MC
DEC R21 ;1MC
BRNE L1 ;2/1MC
RET ;4MC
Chương trình tạo xung vuông tần số 1Khz trên PA0.
.cseg
.org 0x00
START:
SBI DDRA, 0
MAIN:
CBI PORTA,0
CALL DELAY_05MS
SBI PORTA,0
CALL DELAY_05MS
JMP MAIN
DELAY_05MS:
LDI R21,40 ;1MC
L1: LDI R20,25 ;1MC
L2: DEC R20 ;1MC
NOP ;1MC
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
13
BRNE L2 ;2/1MC
DEC R21 ;1MC
BRNE L1 ;2/1MC
RET ;4MC
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
14
b) Dùng chương trình con này viết các chương trình con Delay10ms, Delay100ms, Delay1s.
DELAY_10MS: LDI R21,80 ;1MC
L1: LDI R20,250 ;1MC
L2: DEC R20 ;1MC
NOP ;1MC
BRNE L2 ;2/1MC
DEC R21 ;1MC
BRNE L1 ;2/1MC
RET ;4MC
DL100ms: LDI R22, 80
LP3: LDI R21, 10
LP2: LDI R20, 250
LP1: NOP
DEC R20
BRNE LP1
DEC R21
BRNE LP2
DEC R22
BRNE LP3
RET
DL1s: LDI R22, 80
LP3: LDI R21, 100
LP2: LDI R20, 250
LP1: NOP
DEC R20
BRNE LP1
DEC R21
BRNE LP2
DEC R22
BRNE LP3
RET
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
15
Trả lời các câu hỏi
a. Cách tính số chu kỳ máy để thực hiện chương trình con Delay1ms. Trình bày
hình ảnh mô phỏng
Tần số của Atmega324 là 8MHz tương ứng với 1MC = 1uS.
Delay 1ms sẽ tương ứng với 1000MC.
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
16
Áp dụng công thức T
DL
= 4 x m x n = 1000.
Ta chọn được m = 250, n= 1.
Ta có thể thấy chu kì máy gần 1000.
b. Hình ảnh xung 1Khz trên PA0
c) Dùng chương trình con Delay1s viết chương trình chớp/tắt 1 LED gắn vào PA0.
.cseg
.org 0x00
START: SBI DDRA, 0
MAIN: CBI PORTA,0
CALL DL1s
SBI PORTA,0
CALL DL1s
JMP MAIN
DL1s: LDI R22, 80
LP3: LDI R21, 100
LP2: LDI R20, 250
LP1: NOP
DEC R20
BRNE LP1
DEC R21
BRNE LP2
DEC R22
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
17
BRNE LP3
RET
BÀI 3
1. Trả lời các câu hỏi
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059
18
a. Mô tả kết nối trên kit thí nghiệm
Downloaded by Tu? ?? (tuedocao111@gmail.com)
lOMoARcPSD|47452059

Preview text:

lOMoARcPSD|47452059
Baocao LAB 1 L04 nhom06 - bài tập lớn vi xử lý
Thí nghiệm vật lý 1 (Trường Đại học Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh) Scan to open on Studeersnel
Studocu is not sponsored or endorsed by any college or university
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA   
BÁO CÁO THÍ NGHIỆM VI XỬ LÝ
Nhóm thí nghiệm: Nhóm 06 – Lớp L04
GVHD: Nguyễn Phan Hải Phú STT Họ tên MSSV 1 Tô Trần Hữu Luân 2113985 2 Võ Phước Luân 2113990 3 Nguyễn Quang Minh 2152768
TP. Hồ Chí Minh, ngày 03 tháng 04 năm 2023 1
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 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:
 Tài liệu hướng dẫn thí nghiệm, chương 1, 2 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) 1
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059
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. .CSEG .ORG 0x00 CLR R16 OUT DDRA,R16 LDI R16,0xFF OUT PORTA,R16 LDI R16,0xFF OUT DDRB,R16 CLR R16 OUT PORTB,R16 LP: IN R16,PINA COM R16 OUT PORTB,R16 RJMP LP 2
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 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
Để lấy 4byte thấp: IN R18, PINA MOV R19, R18 ANDI R18, $0F Để lấy 4byte cao: ANDI R19, $F0 SWAP R19
b. Enable điện trở pullup như thế nào?
PORTA là port nhập nên để xét điện trở kéo lên cho nó ta chỉ cần out giá trị $FF ra thanh ghi PORTA.
c. Khi Switch ở trạng thái ON/OFF, giá trị chân Port bằng bao nhiêu?
Switch ON: chân PORTA có giá trị 0, chân PORTB có giá trị 1
Switch OFF: chân PORTA có giá trị 1, chân PORTB có giá trị 0
d. Khi chân port ở trạng thái 1, BAR LED sáng hay tắt?
Port ở trạng thái 1 thì BAR LED sáng. 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. .CSEG .ORG 0x00 CLR R16 OUT DDRA,R16 LDI R16,0xFF OUT PORTA,R16 LDI R16,0xFF OUT DDRB,R16 CLR R16 OUT PORTB,R16 LP: IN R16,PINA LDI R17,5 ADD R16,R17 COM R16 OUT PORTB,R16 RJMP LP
b) Thay đổi trạng thái của Dip Switch và quan sát trạng thái Bar LED 3
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 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. 4
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 .CSEG .ORG 0x00 CLR R16 OUT DDRA,R16 LDI R16,0xFF OUT PORTA,R16 LDI R16,0xFF OUT DDRB,R16 CLR R16 OUT PORTB,R16 LP: IN R16,PINA MOV R17,R16 ANDI R16,0b00001111 ANDI R17,0b11110000 SWAP R17 MUL R16,R17 COM R0 OUT PORTB,R0 RJMP LP
b) Thay đổi trạng thái của Dip Switch và quan sát trạng thái Bar LED 5
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 Trả lời các câu hỏi
Làm thế nào lấy giá trị từ 2 nibble của PORT A
Để lấy 4byte thấp: IN R18, PINA MOV R19, R18 ANDI R18, $0F Để lấy 4byte cao: ANDI R19, $F0 SWAP R19 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 6
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059
VD: PORTA = 0b0111_1111, thì PORTB = 3* (-1). .CSEG .ORG 0x00 CLR R16 OUT DDRA,R16 LDI R16,0xFF OUT PORTA,R16 LDI R16,0xFF OUT DDRB,R16 CLR R16 OUT PORTB,R16 LP: IN R16,PINA MOV R17,R16 ANDI R16,0b00001111 LDI R18,0x08 AND R18,R16 BRNE SOAM1 RJMP TT1 SOAM1: ORI R16,0b11110000 TT1: ANDI R17,0b11110000 SWAP R17 LDI R18,0x08 AND R18,R16 BRNE SOAM2 RJMP TT2 SOAM2: ORI R17,0b11110000 TT2: MULS R16,R17 COM R0 OUT PORTB,R0 RJMP LP
b) Thay đổi trạng thái của Dip Switch và quan sát trạng thái Bar LED 7
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 8
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 c) 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ả. .cseg .org 0x00 start: CBI DDRA,0 SBI PORTA,0 SBI DDRA,1 CBI PORTA,1 MAIN: SBIS PINA,0 RJMP RELEASE PRESSED: CBI PORTA,1 RJMP MAIN RELEASE: SBI PORTA,1 RJMP MAIN 9
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 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 = 0 Nhả: PORTA0 = 1
b. Để LED sáng, chân port xuất ra mức logic gì?
LED sáng chân PORTA1 xuất mức 1 10
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 MỤC TIÊU:
 Thực hiện các lệnh tạo trễ dùng câu lệnh
 Thực hiện giao tiếp với thanh ghi dịch THAM KHẢO:
 Tài liệu hướng dẫn thí nghiệm, chương 1, 2 BÀI 1 Cho chương trình như sau: .include "m324PAdef.inc" .org 00 ldi r16,0x01 out DDRA, r16 start: sbi PORTA,PINA0 cbi PORTA, PINA0 rjmp start
Kết nối PA0 vào một kênh đo trên khối TEST STATION và đo dạng xung trên oscilloscope 11
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 BÀI 2
a) Viết chương trình con Delay1ms và dùng nó để viết chương trình tạo xung vuông tần số 1Khz trên PA0. DELAY_1MS: LDI R21,80 ;1MC L1: LDI R20,25 ;1MC L2: DEC R20 ;1MC NOP ;1MC BRNE L2 ;2/1MC DEC R21 ;1MC BRNE L1 ;2/1MC RET ;4MC
Chương trình tạo xung vuông tần số 1Khz trên PA0. .cseg .org 0x00 START: SBI DDRA, 0 MAIN: CBI PORTA,0 CALL DELAY_05MS SBI PORTA,0 CALL DELAY_05MS JMP MAIN DELAY_05MS: LDI R21,40 ;1MC L1: LDI R20,25 ;1MC L2: DEC R20 ;1MC NOP ;1MC 12
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 BRNE L2 ;2/1MC DEC R21 ;1MC BRNE L1 ;2/1MC RET ;4MC 13
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059
b) Dùng chương trình con này viết các chương trình con Delay10ms, Delay100ms, Delay1s. DELAY_10MS: LDI R21,80 ;1MC L1: LDI R20,250 ;1MC L2: DEC R20 ;1MC NOP ;1MC BRNE L2 ;2/1MC DEC R21 ;1MC BRNE L1 ;2/1MC RET ;4MC DL100ms: LDI R22, 80 LP3: LDI R21, 10 LP2: LDI R20, 250 LP1: NOP DEC R20 BRNE LP1 DEC R21 BRNE LP2 DEC R22 BRNE LP3 RET DL1s: LDI R22, 80 LP3: LDI R21, 100 LP2: LDI R20, 250 LP1: NOP DEC R20 BRNE LP1 DEC R21 BRNE LP2 DEC R22 BRNE LP3 RET 14
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 Trả lời các câu hỏi
a. Cách tính số chu kỳ máy để thực hiện chương trình con Delay1ms. Trình bày hình ảnh mô phỏng
Tần số của Atmega324 là 8MHz tương ứng với 1MC = 1uS.
Delay 1ms sẽ tương ứng với 1000MC. 15
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059
Áp dụng công thức TDL = 4 x m x n = 1000.
Ta chọn được m = 250, n= 1.
Ta có thể thấy chu kì máy gần 1000.
b. Hình ảnh xung 1Khz trên PA0
c) Dùng chương trình con Delay1s viết chương trình chớp/tắt 1 LED gắn vào PA0. .cseg .org 0x00 START: SBI DDRA, 0 MAIN: CBI PORTA,0 CALL DL1s SBI PORTA,0 CALL DL1s JMP MAIN DL1s: LDI R22, 80 LP3: LDI R21, 100 LP2: LDI R20, 250 LP1: NOP DEC R20 BRNE LP1 DEC R21 BRNE LP2 DEC R22 16
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059 BRNE LP3 RET BÀI 3 1. Trả lời các câu hỏi 17
Downloaded by Tu? ?? (tuedocao111@gmail.com) lOMoARcPSD|47452059
a. Mô tả kết nối trên kit thí nghiệm 18
Downloaded by Tu? ?? (tuedocao111@gmail.com)