LAP TRINH GIAO TIEP NUT NHAN DON VA LED Yêm cầu: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nói đến P1.0 và hiển thị ra led được nối tại chân P3.0 bí thứ
Trang 1
DAI HOC QUOC GIA THÀNH PHÓ HỎ CHÍ MINH
DAI HOC BACH KHOA THANH PHO HO CHI MINH
KHOA DIEN- DIEN TU
BAO CAO THI NGHIEM MON VIXU LY GVHD: NGUYEN PHAN HAI PHU
LỚP: LỊ ]
DANH SÁCH THÀNH VIÊN:
1 TRAN GIA TUẦN 2011073
2 VO HOANG YEN NHI 2012346
3 BACH DONG HUY
Trang 3
LAP TRINH GIAO TIEP NUT NHAN DON VA LED
MUC TIEU
> Nắm duge cach str dung kit thi nghiém, phan mém lap trinh
> Nắm được cách lập trình giao tiép IO port
> Nam duoc cach lập trình tạo thời gian trễ dùng các lệnh
CHUAN BI
> Doe va lam bai thi nghiém 0 tai nha
> Doc bai chuan bi thi nghiệm | tai nha
> Chuan bi cho thi nghiém 1: Viét chuong trinh va mé phong trén Proteus tat ca cac bai trong thí nghiệm 1 dựa trên bài chuẩn bị 1 và thí nghiệm 0
> Nộp tat ca các kết qua (bai thi nghiệm 0 và bài chuẩn bi thí nghiệm 1) cho GVHD trước khi vào lớp
Sinh viên không thục hiện hoặc nộp thiếu nếu không có lí do chính đáng sẽ không được tham gia thí nghiệm và bị đánh vắng buổi đó
Department of Electronics Page | 1
Trang 4LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Yêm cầu: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nói đến P1.0
và hiển thị ra led được nối tại chân P3.0 (bí thứ 0 của led thanh BL202)
MOV P3.0,C; Xuat gia tri tương ứng ra P3.0 SJMP LOOP; Lặp lại
END
> Sinh viên tiến hành nạp chương trình, chạy mô phỏng, thử nghiệm thay đổi trang thai nut nhân P1.0 và quan sát sự thay đổi LED ở chân P3.0 Sau đó quay video màn hình chạy thử nghiệm và chèn vào báo cáo sau
Department of Electronics Page | 2
Trang 5
| Vì 1 Led được nói với nút bám, 1 led được lập trình đẻ hiện thị trạng thái theo nút bẩm _|
> Tổng kết xem các bit nào của 2 port có thể được dùng trong thí nghiệm trên và giải thích tại sao?
P1.0 đến P1,7 và P3.0 đến P3.7
Vì Port 1 được nối trực tiếp với nút trên phần cứng và Port 3 có thẻ được lập trình đề hiển
thị trạng thái của nút bắm được nối với Port 1
Department of Electronics Page | 3 Microprocessor Laboratory
Trang 6LAP TRINH GIAO TIEP NUT NHAN DON VA LED
THI NGHIEM 2
Mục tiêu: Năm được cách viết chương trình con để tạo trễ
Yéu cau:
> Viét chyong trinh con Delay1s
> Dùng chương trình con đã viết để chớp/tắt LED đơn gắn vào P1.0 sau mỗi khoảng thời gian 1s,
> Thay đổi chương trình con để tần số chớp tat bây giờ là IKHz
LOOP: CPL P1.0; Dao trang thai P1.0
LCALL Delay1s; Goi ham Delay1s
SJMP LOOP; Lap lai
Department of Electronics Page | 4
Trang 7LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Department of Electronics Page | 5
Trang 8LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 9LAP TRINH GIAO TIEP NUT NHAN DON VA LED
THI NGHIEM 3
Mục tiêu: Năm được cách viết chương trình con để tạo trễ
Yêu cầu: Viết chương trình tạo 2 xung vuông 0.5Hz (chu kỳ nhiệm vụ 50%) và 1Hz (chu kỳ
nhiệm vụ là 30%) lần lượt trên chân P1.0 và PI.1
Kiém tra:
> Bién dich, thực thi và kiểm tra chương trình bằng cách sử dụng oscilloscope đề kiêm tra Báo cáo:
> Đoạn chương trình thực hiện yêu cầu thí nghiệm đã cho:
:Ý tưởng: Tạo chương trình Delay 0.1s Khi xung 1Hz xong 1 chu kì tương ứng
; xung 0.5Hz đi được 1⁄2 chu kì
LOOP3: MOV Ró, #3; Lặp lại 0.1s 3 lần được 0.3s
MOV R7, #7; Lap lai 0.1s 7 lần được 0.7s
LOOP: ACALL Delay0_1s
Trang 10LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 11LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 12LAP TRINH GIAO TIEP NUT NHAN DON VA LED
THI NGHIEM 4
Muc tiéu: Nam duoc cach hién thi bar LED va tao hiéu ứng
Yêu cầu: Viết chương trình tạo hiệu ứng quay LED: các LED đơn trên BARLEDI sáng lần lượt
từ trái sang phải sau thời gian 1s và lặp lại Sử dụng chương trình con Delay 1s đã viết ở trên Kiém tra:
> Bién dich, thực thi và kiểm tra chương trình bằng cách quan sát hiệu ứng trên bar led
> Đoạn chương trình thực hiện yêu cầu thí nghiệm đã cho:
Trang 13LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Department of Electronics Page | 11
Trang 14LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 15LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 16LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 17LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 18LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 19LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Reset RO về 0
Trang 20
LAP TRINH GIAO TIEP NUT NHAN DON VA LED
THI NGHIEM 7
Muc tiéu: Nam duge cach thire dùng chương trình con và giao tiếp LED 7 đoạn
Yêu cầu:
Viết chương trình con DisplayLED xuất giá trị chứa trong thanh ghi R0 lên LED 7 đoạn có số thứ tự chứa trong thanh ghi R1 Trong đó:
RO nam trong tầm từ 0-9 và R1 trong tầm từ 0-3
Sau đó dùng chương trình con này viết chương trình chính xuất giá trị 1 lên LED 7 đoạn số 3 Hướng dẫn:
Dé hién thị lên 1 LED 7 đoạn ta phái ghi ra ngoại vi ở vùng nhớ 0000H-IFFFH một byte, với 4 bít thấp chứa giả trị cua gia tri cần hiển thị và 4 bit cao được dùng để chọn LED Trong 4 bit cao, bit nào bằng 0 thì LED 7 đoạn tương ứng sẽ được bật
Đoạn chương trình sau tính toán để xuất ra điều khiển LED dựa vào R0, R1
Trang 21LAP TRINH GIAO TIEP NUT NHAN DON VA LED
RL A DJNZ B, SHIFTLOOP ANL A,#0F0H PUSH ACC MOV A, RO ANL A, #0FH MOV RO,A POP ACC ORL A, RO
Trang 22LAP TRINH GIAO TIEP NUT NHAN DON VA LED
|
> Sinh viên tiến hành nạp chương trình, chạy mô phỏng, thử nghiệm Sau đó quay video
màn hình chạy thử nghiệm và chèn vào báo cáo sau
(Video quay màn hình mình chứng thí nghiệm đúng)
ĐẠI HỌC BÁCH KHOA TP.HỒ CHÍ MINH
Department of Electronics Page | 20
Trang 23LAP TRINH GIAO TIEP NUT NHAN DON VA LED
THI NGHIEM 8
Mục tiêu:
> Nắm được phương pháp quét LED 7 đoạn
A A
Yéu cau:
Viết chương trình hiển thị số 1 lên LED7 đoạn 0, sau đó 1s hiển thị số 2 lên LED 7 đoạn 1, sau
đó 1s hiển thị số 3 lên LED 7 đoạn 2, sau đó 1s hiển thị số 4 lên LED 7 đoạn 3 Quá trình này lặp
đi lặp lại Việc hiển thị này sử dụng chương trình con DisplayLED đã viết ở trên
Giảm thời gian trễ xuống còn 100 ms Quan sát hiện tượng
Tính toán thời gian trễ sao cho không còn thấy LED nhấp nháy và áp dụng vào chương trình Giảm thời gian trễ xuống bằng 0 (không sử dụng hàm delay) Quan sát hiện tượng
Department of Electronics Page | 21
Trang 24LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 25LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Trang 26LAP TRINH GIAO TIEP NUT NHAN DON VA LED
Xét sơ đổ sau ta thấy nếu tần số của 1 led sáng tắt(4T) lớn hơn 24 HZ thì mắt ta sẽ không còn nhận biết được sự nhấp nháy của Led
Trang 27LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
MỤC TIỂU
> Nam được cách sử dụng kít thí nghiệm, phần mềm lập trình
> Nắm được cách giao tiếp LCD và ADC
> Nam duoc cach lap trinh timer
CHUAN BI
> Doc bai chuan bi thi nghiém 2 tai nha
> Chuan bi cho thi nghiém 2: Viét chương trình và mô phỏng trên Proteus tất cả các bài trong thí nghiệm 2 dựa trên bài chuẩn bị 2 và thí nghiệm 0
> Nộp tất cả các kết quả (bài chuẩn bị thí nghiệm 2) cho GVHD trước khi vào lớp
Sinh viên không thực hiện hoặc nộp thiếu nếu không có li do chính đáng sẽ không được tham gia thí nghiệm và bị đánh vắng buổi đó
Department of Electronics Page | 1
Trang 28LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
> Biên dịch và chạy thử chương trình
> Sửa chương trình để hiển thị tên sinh viên lên hàng đầu
Department of Electronics Page | 2
Trang 29LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Department of Electronics Page | 3
Trang 30LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Department of Electronics Page | 4
Trang 31LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 32LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
WRITETEXT: Xuất ký tự ra LCD
WAIT LCD: Delay
INIT LCD: Các dòng lệnh cấu hình LCD ban dau
DISPLAYSTRING: Hàm con xuất chuỗi ký tự bằng cách tra bảng
Trang 33LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
THÍ NGHIỆM 9
Mục tiêu: Nắm được giao tiếp cơ bản của LCD
Yêu cầu:
> Viét thêm chương trình con CLRSCREEN để xóa màn hình LCD
> Viết thêm chương trình con GOTOXY để di chuyển con trỏ của LCD đến hàng x, cột y, với X chứa trong R0 và Y chứa trong R]
> Sửa chương trình ở thí nghiệm 1 để hiển thị thêm số nhóm ở hàng thứ 2
Trang 34LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Department of Electronics Page | 8
Trang 35LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 36LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
LOOP:
MOV DPTR, #TEN JNBF0,DP TEN ;DPTR = địa chỉ nhãn TEN (khi F0E0) hoặc NHOM (F0=l)
Trang 37LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
MOV A,#0COH
SJMP BACK
COUNT: ;Tính vị trí bắt đầu của TEN (Khi F0=0)
; và NHOM (F0=1) lưu vào trong R1
Department of Electronics Page | 11
Trang 38LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
> Cho biết mã lệnh dùng để xóa màn hình, dịch con trỏ đến vi tri thir 1 cua hang 1 va vị trí
thứ 1 cua hang 2 cua LCD?
Trang 39LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
COUNT: ;TINH VI TRI BAT DAU CUA TEN (Khi FO=0)
; va NHOM (FO=1) luu vao trong R1
Trang 40LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 41LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 42LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Department of Electronics Page | 16
Trang 43LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Department of Electronics Page | 17
Trang 44LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 45LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 46LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
> Gia tri nay co phai gia tri thực của điện áp đặt vào kênh 0 hay không?
Giá trị này không phải trị thực điện áp đặt vào kênh 0, Vì ADC sử dụng 8 bit từ 0 đến 255 để hiển thị giá trị từ 0 đến
5V,
»> Để hiển thị giả trị thực tế của mức điện áp đặt vào kênh 0 ta phải làm như thế nào?
Ta thực hiện phép toán (Giá trị hiển thi*5)/255= gia trị
điện áp
Department of Electronics Page | 20
Trang 47
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
>_ Viết chương trình con CALADC tính toán giá trị điện áp thực tế đặt vào kênh 0 ADC từ
giá trị đo được của ADC
> Chương trình có giá trị vào chứa trong R0 (là kết quả của chương trình con READADC)
> Gia tri tra về chứa trong R0 và R1, R0 chứa giá trị nguyên và R1 chứa giá trị thập phân
> Hiển thị giá trị đo được lên LCD theo cấu trúc: "Voltage: x.xx V" voi x.xx la gia tri dién
áp đo được, với hai số sau dấu chấm
Trang 48LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Department of Electronics Page | 22
Trang 49LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
MOVX A,@DPTR ;OE
MOV RO,A
Department of Electronics Page | 23
Trang 50LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Department of Electronics Page | 24
Trang 51LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 52LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Department of Electronics Page | 26
Trang 53LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 54LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
> Biên dịch, thực thi và kiểm tra chương trinh
> Đoạn chương trình thực hiện yêu cầu thí nghiệm đã cho:
Trang 55LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 56LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Có sai số do thời gian thực hiện các câu lệnh tốn nhiều chu
kỳ máy Để hạn chế sai số ta sủ dụng công thức tính các giá trị( cé tính cả thời gian thực hiện các câu lệnh) sau đó nạp cho Timer
Trang 57LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
THÍ NGHIỆM 13
Mục tiêu: Nắm được cách thức sử dung Timer mode 2
Yêu cầu:
> Viết chương trình tạo sóng vuông 1 Hz trên chân P1.0 sử dụng timer 0 ở chế độ 2 Kiém tra:
> Biên dịch, thực thi và kiểm tra chương trinh
> Đoạn chương trình thực hiện yêu cầu thí nghiệm đã cho:
Department of Electronics Page | 31
Trang 58LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Trang 59LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT
MỤC TIỂU
> Nam được cách sử dụng kít thí nghiệm, phần mềm lập trình
> Nắm được cách giao tiếp serial port
> Nam được cách lập trình ngat (interrupt)
CHUAN BI
> Doc bai chuan bi thi nghiém 3 tai nha
> Chuan bị cho thí nghiệm 3: Viết chương trình và mô phỏng trên Proteus tất cả các bài trong thí nghiệm 3 dựa trên bài chuẩn bị 3 và thí nghiệm 0
> Nộp tất cả các kết quả (bài chuẩn bị thí nghiệm 3) cho GVHD trước khi vào lớp
Sinh viên không thực hiện hoặc nộp thiếu nếu không có li do chính đáng sẽ không được tham gia thí nghiệm và bị đánh vắng buổi đó
Department of Electronics Page | 1
Trang 60LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT
THÍ NGHIỆM 1
Mục tiêu: Nắm được cách thức điều khiển serial port
Yéu cau:
> Viết chương trình phát chuỗi ky ty “Hello world!!!” lén may tinh thông qua
HyperTerminal voi tốc độ baud 19200 bps mỗi khi SW 310 (gắn vào P1.0) được nhắn
Department of Electronics Page | 2
Trang 61LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT
> Trong chương trình khởi tao serial port, ta cd thé str dung téc độ baud khác giá trị 19200bps được không? Tại sao?
Department of Electronics Page | 3
Trang 62LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT
Có vì có nhiều tốc độ baud khác nhau, nhưng ta phải chỉnh lại tốc
độ baud trên phần mềm Hẹrcules
Department of Electronics Page | 4
Trang 63LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT
> Bién dich va kiém tra hoat động của chương trinh
Department of Electronics Page | 5
Trang 64LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT
ACALL WRITECOM
MOV A, #06H ACALL WRITECOM RET
CLEAR:
MOV A, #01H ACALL WRITECOM RET
Trang 65LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT
ACALL WAIT_LCD RET
WRITETEXT:
MOV DPTR, #LCDADDR
SETB LCD_E SETB LCD RS
CLR LCD_E
ACALL WAIT_LCD RET
WAIT_LCD:
MOV R6,#10 DUI:
MOV R7, #250 DJNZ R7,$
DJNZ R6,DL1 RET END
Department of Electronics Page | 7