1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO THÍ NGHIỆM VI XỬ LÝ

76 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập Trình Giao Tiếp Nút Nhấn Đơn Và LED
Tác giả Lại Nguyễn Duy, Nguyễn Xuân Hoàng Tuấn, Hoàng Tuấn Kiệt
Trường học Trường Đại học Bách Khoa Đại học Quốc gia TP Hồ Chí Minh
Chuyên ngành Vi xử lý
Thể loại Báo cáo thí nghiệm
Năm xuất bản 2022
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 76
Dung lượng 4,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED MỤC TIÊU ➢ Nắm được cách sử dụng kit thí nghiệm, phần mềm lập trình.. BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Trang 2

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

MỤC TIÊU

➢ Nắm được cách sử dụng kit thí nghiệm, phần mềm lập trình

➢ Nắm được cách lập trình giao tiếp IO port

➢ Nắm được cách lập trình tạo thời gian trễ dùng các lệnh

CHUẨN BỊ

➢ Đọc và làm bài thí nghiệm 0 tại nhà

➢ Đọc bài chuẩn bị thí nghiệm 1 tại nhà

➢ Chuẩn bị cho thí nghiệm 1: Viết chương trình và mô phỏng trên Proteus tất cả các bài trong thí nghiệm 1 dựa trên bài chuẩn bị 1 (Prelab_1) và thí nghiệm 0

➢ Nộp tất cả các kết quả (bài thí nghiệm 0 và bài chuẩn bị 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 đó Mọi hình thức gian lận, sao chép sẽ bị xử lý chính đáng

Trang 3

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

THÍ NGHIỆM 1

Mục tiêu: Nắm được cách thức điều khiển trực tiếp ngoại vi thông qua các port I/O của 8051

Yêu 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 (bit thứ 0 của led thanh BL202)

Trang 4

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

Trang 5

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

Câu hỏi:

➢ Thử giải thích tại sao có đến 2 led cùng bị tác động khi nhấn hoặc thả nút?

Khi nhấn nút, led nối với chân P1.0 và led nối với chân P3.0 đều sáng; khi thả nút thì đều tắt Vì được tác động do lệnh: MOV C,P1.0; MOV P3.0,C

➢ 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?

Ta có thể sử dụng các bit từ P1.0 đến P1.7 và tương tự với Port 3 Nhưng không nên sử dụng Port

3 vì các chân Port 3 được sử dụng với các chức năng đặc biệt sau:

Trang 6

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

Delay1s:

MOV R5,#8 LP1: MOV R6,#250 LP2: MOV R7,#250

DJNZ R7,$

DJNZ R6,LP2 DJNZ R5,LP1 RET

ORG 2000H LOOP: CPL P1.0

ACALL Delay1s SJMP LOOP Delay1s:

MOV R5,#8 LP1: MOV R6,#250 LP2: MOV R7,#250

➢ Viết chương trình 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 tắt bây giờ là 1KHz

• Chương trình con:

• Chương trình chớp/tắt LED đơn gắn vào P1.0 sau mỗi khoảng thời gian 1s:

Trang 7

ORG 2000H LOOP: CPL P1.0

ACALL Delay1ms SJMP LOOP DELAY1ms:

LP: MOV R5, #2

MOV R6, #250 DJNZ R6, $ DJNZ R5, LP RET

END

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

DJNZ R5,LP1 RET

Trang 8

➢ Khi tần số chớp tắt là 1Khz, cho biết hiện tượng trên LED?

LED sẽ chớp tắt gần như liên tục (chu kì là 1Khz hay mỗi 500𝜇(𝑠))

➢ Sinh viên thay đổi chương trình con như thế nào để được tần số chớp tắt là 1KHz?

Với tần số chớp tắt là 1Khz => Chu kì sẽ là 1000 𝜇(𝑠)(500 𝜇(𝑠) tín hiệu ở mức cao và 500 𝜇(𝑠) ) tín hiệu ở mức thấp Do đó, thời gian trễ Time delay = 500 𝜇(𝑠) với công thức ở trên thì ta tính được giá trị cần nạp là 250

Trang 9

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

THÍ NGHIỆM 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à P1.1

ORG 2000H LOOP: CPL P1.0

CPL P1.1 ACALL DELAY300ms CPL P1.1

ACALL DELAY700ms SJMP LOOP

DELAY300ms:

MOV R5, #3 LP1: MOV R6, #200 LP2: MOV R7, #250

DJNZ R7, $ DJNZ R6, LP2 DJNZ R5, LP1 RET

DELAY700ms:

MOV R5, #7 LP3: MOV R6, #200 LP4: MOV R7, #250

Trang 10

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

Kiểm tra:

➢ Biên dịch, thực thi và kiểm tra chương trình bằng cách sử dụng oscilloscope để kiểm tra

chương trình tạo 2 xung vuông 0.5Hz và 1Hz.mp4

Câu hỏi:

➢ Vẽ giản đồ của 2 xung? Các chương trình con viết với thời gian trễ là bao nhiêu?

Các chương trình con viết với thời gian trễ lần lượt là 0.3s và 0.7s

➢ Tại mỗi thời gian tạo trễ, các chân P1.0 và P1.1 xuất tín hiệu như thế nào?

Tại 0.3s đầu, ta đảo bit chân P1.1, 0.7s sau ta tiếp tục đảo bị chân P1.1 vậy ta đã tạo được xung 1Hz với chu kì nhiệm vụ là 30% Sau đó đồng thời đảo bit chân P1.0, do đó ta có được xung 0.5Hz với chu kì nhiệm vụ là 50% tại chân P1.0

➢ Để tạo các xung thỏa yêu cầu bài toán, các vòng trễ được viết như thế nào?

Vòng trễ được viết như sau:

Trang 11

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

LOOP:

ACALL DELAY300ms CPL P1.1

ACALL DELAY700ms CPL P1.1

CPL P1.0 SJMP LOOP

Trang 12

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

THÍ NGHIỆM 4

Mục tiêu: Nắm được cách hiển thị bar LED và tạo 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 BARLED1 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 Delay1s đã viết ở trên

Kiểm tra:

➢ Biên dịch, 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

thí nghiệm 4.mp4

ORG 2000H LOOP: MOV A,#7FH

MOV R1,#8 PHASE:

MOV P1,A

RL A ACALL Delay1s DJNZ R1,PHASE SJMP LOOP Delay1s:

MOV R5,#8 LP1: MOV R6,#250 LP2: MOV R7,#250

DJNZ R7,$

DJNZ R6,LP2 DJNZ R5,LP1 RET

END

Trang 14

MOVX @DPTR,A RET

ORG 2000H MOV R0,#11101001B CALL DisplayLED LOOP:

SJMP LOOP DisplayLED:

MOV DPTR, #0000H MOV A,R0

MOVX @DPTR,A RET

END

Trang 15

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

Trang 16

Yêu cầu: Viết chương trình hiển thị lên LED 7 đoạn số 0 các con số từ 0 đến 9 sau các khoảng

thời gian 1s sử dụng 2 chương trình con ở Thí nghiệm 2 và Thí nghiệm 5

ORG 2000H START:

MOV R0,#0E0H LOOP:

ACALL DisplayLED ACALL DELAY1S INC R0

CJNE R0,#0EAH,LOOP AJMP START

DisplayLED:

MOV DPTR, #0000H MOV A,R0

MOVX @DPTR,A RET

DELAY1S:

MOV R5, #8 LP1: MOV R6, #250 LP2: MOV R7, #250

DJNZ R7, $ DJNZ R6, LP2 DJNZ R5, LP1 RET

END

Trang 18

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 đó:

Đ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

MOV B, R1 MOV A, #11110111B SHIFTLOOP:

RL A DJNZ B, SHIFTLOOP ANL A, #0F0H

PUSH ACC MOV A, R0 ANL A, #0FH MOV R0, A POP ACC ORL A, R0

Trang 19

MOV R0,#3 MOV R1,#3 ACALL DISPLAYLED SJMP LOOP

DISPLAYLED:

INC R1 MOV B,R1 MOV A,#11110111B SHIFTLOOP:

RL A DJNZ B,SHIFTLOOP ANL A,#0F0H

ADD A,R0 MOV DPTR,#0000H MOVX @DPTR,A RET

END

Trang 20

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

➢ Biên dịch, thực thi và kiểm tra chương trình

Trang 21

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

LOOP:

ORG 2000H MOV R0,#3 MOV R1,#2 MOV DPTR,#BANG MOV A,R1

MOVC A,@A+DPTR ADD A,R0

MOV DPTR,#0000H MOVX @DPTR,A SJMP LOOP BANG: DB 0E0H,0D0H,0B0H,70H

END

Câu hỏi:

➢ Viết lại chương trình trên bằng phương pháp sử dụng bảng tra (Lookup table)

Trang 22

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

Kiểm tra:

➢ Biên dịch, thực thi và kiểm tra chương trình

ORG 2000H RESET: MOV R0,#1

MOV R1,#0 LOOP:

ACALL DISPLAYLED ACALL DELAY100MS INC R0

INC R1 CJNE R0,#5,LOOP SJMP RESET DISPLAYLED:

INC R1 MOV B,R1 DEC R1

Trang 23

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

MOV A,#11110111B SHIFTLOOP:

RL A DJNZ B,SHIFTLOOP ANL A,#0F0H

ADD A,R0 MOV DPTR,#0000H MOVX @DPTR,A RET

DELAY100MS:

MOV R6,#200 LP1: MOV R7,#250

DJNZ R7,$

DJNZ R6,LP1 RET

Trang 24

BÀI THÍ NGHIỆM 1

LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

Để không thấy LED nhấp nháy => Độ trễ = 0s Tuy nhiên vẫn có khoảng thời gian trễ để thực hiện giữa 2 câu lệnh ACALL DISPLAYLED và CJNE R0,#5,LOOP Đó là khoảng thời gian để thực hiện các câu lệnh: INC R1; MOV B,R1; DEC R1 ; MOV A,#11110111B… INC R0; INC R1 Tức 19 Machine Cycle, với mỗi 1 MC là 1𝜇(𝑠) Vậy thời gian trễ thực tế là 19 ∗ 1𝜇(𝑠) = 19𝜇(𝑠)

➢ Khi giảm rất nhỏ thời gian trễ, hiện tượng xảy ra là gì? Giải thích

Độ trễ quá nhỏ nên khoảng thời gian thực hiện giữa các câu lệnh rất ngắn và LED sẽ hiển thị liên tục các giá trị 1, 2, 3 và 4 với tần số rất lớn bằng mắt thường ta không thể quan sát độ trễ nhỏ như thế Vậy nên, ta nhìn thấy các giá trị 1, 2, 3 và 4 gần như cố định

Trang 25

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

MỤC TIÊU

➢ Nắm được cách sử dụng kit thí nghiệm, phần mềm lập trình

➢ Nắm được cách giao tiếp LCD và ADC

➢ Nắm được cách lập trình timer

CHUẨN BỊ

➢ Đọc bài chuẩn bị thí nghiệm 2 tại nhà

➢ Chuẩn bị cho thí 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ó lí do chính đáng sẽ không được tham gia thí nghiệm và bị đánh vắng buổi đó

Trang 26

➢ 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

LCD_E BIT P3.4 LCD_RS BIT P3.5 LCDADDR EQU 6000H ORG 0000H

MAIN:

MOV @R0, 30H MOV DPTR, #LCDADDR ACALL CLEAR

ACALL INIT_LCD ACALL DISPLAYSTRING SJMP $

INIT_LCD:

MOV A, #38H ACALL WRITECOM MOV A, #0EH ACALL WRITECOM MOV A, #06H ACALL WRITECOM RET

CLEAR:

MOV A, #01H

Trang 27

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

ACALL WRITECOM RET

WRITECOM:

MOV DPTR, #LCDADDR SETB LCD_E

CLR LCD_RS MOVX @DPTR, A CLR LCD_E ACALL WAIT_LCD RET

WRITETEXT:

MOV DPTR, #LCDADDR SETB LCD_E

SETB LCD_RS MOVX @DPTR, A CLR LCD_E ACALL WAIT_LCD RET

DISPLAYSTRING:

MOV A,#0 LOOP:

MOV DPTR, #MESSAGE MOV R0,A

MOVC A,@A+DPTR

Trang 28

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

EXIT:

RET WAIT_LCD:

MOV R6,#10 DL1:

MOV R7, #250 DJNZ R7, $ DJNZ R6,DL1 RET

Trang 29

- WRITETEXT: GHI DỮ LIỆU (KÍ TỰ) RA MÀ HÌNH LCD

- EXIT: THOÁT KHỎI CHƯƠNG TRÌNH

- MESSAGE: BẢNG ĐỊNH NGHĨA ĐỊA CHỈ KÍ TỰ

- WAIT_LCD: TẠO TRỄ CHO LCD

➢ Trình bày lưu đồ giải thuật giao tiếp LCD

Trang 30

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

Trang 31

➢ 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 R1

➢ Sửa chương trình ở thí nghiệm 1 để hiển thị thêm số nhóm ở hàng thứ 2

LCD_E BIT P3.3 LCD_RS BIT P3.5 LCDADDR EQU 6000H ORG 2000H

MAIN:

MOV @R0, 30H MOV DPTR, #LCDADDR ACALL CLEAR

ACALL INIT_LCD CLR F0

ACALL DISPLAYSTRING SETB F0

ACALL DISPLAYSTRING SJMP $

INIT_LCD:

MOV A, #38H

Trang 32

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

RET CLEAR:

MOV A, #01H ACALL WRITECOM RET

WRITECOM:

MOV DPTR, #LCDADDR SETB LCD_E

CLR LCD_RS MOVX @DPTR, A CLR LCD_E ACALL WAIT_LCD RET

WRITETEXT:

MOV DPTR, #LCDADDR SETB LCD_E

SETB LCD_RS MOVX @DPTR, A CLR LCD_E ACALL WAIT_LCD RET

WAIT_LCD:

MOV R6,#20 DL1:

MOV R7, #250 DJNZ R7, $ DJNZ R6,DL1 RET

DISPLAYSTRING:

ACALL COUNT

Trang 33

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

ACALL GOTOXY MOV A,#0

LOOP:

JB F0,CONT1 MOV DPTR,#TEN JMP OUTPUT1 CONT1:

MOV DPTR,#NHOM OUTPUT1:

MOV R0,A MOVC A,@A+DPTR

JZ EXIT ACALL WRITETEXT MOV A,R0

INC A SJMP LOOP EXIT:

RET GOTOXY:

MOV A,#80H

JB F0,CONT2 ADD A,#0 JMP OUTPUT2 CONT2:

ADD A,#40H

Trang 34

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

MOV R1,#0

JB F0,CONT3 MOV DPTR,#TEN JMP OUTPUT3 CONT3:

MOV DPTR,#NHOM OUTPUT3:

MOV A,#0 LOOP1:

MOV R0,A MOVC A,@A+DPTR

JZ EXIT1 INC R1 MOV A,R0 INC A JMP LOOP1 EXIT1:

MOV A,#16 MOV B,#2 SUBB A,R1 DIV AB MOV R1,A RET TEN: DB ‘LAI NGUYEN DUY’,0 NHOM: DB 'NHOM DT03',0 END

Trang 36

➢ Viết chương trình con READADC thực hiện đọc giá trị của kênh 0 và trả về giá trị trong R0

➢ Viết chương trình hiển thị giá trị của kênh 0 của ADC lên LCD dùng chương trình con

Trang 41

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

Câu hỏi:

➢ Giá trị này có phải giá trị thực của điện áp đặt vào kênh 0 hay không?

- Giá trị này không phải là giá trị thực của điện áp đặt vào kênh 0

➢ Để 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 có công thức tính Vin = (5*A)/256, với A là giá trị hiện thị trên LCD của thí nghiệm trên

Trang 42

➢ 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)

➢ Giá trị trả 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" với x.xx là giá trị điện áp đo được, với hai số sau dấu chấm

ORG 2000H

RS BIT P3.5

E BIT P3.3 LCD EQU 6000H ADC EQU 4000H MAIN:

CALL LCD_INT CALL READADC CALL CALADC MOV A, R1

ADD A, #30H CALL WR_CHR MOV A, #'.' CALL WR_CHR MOV A, R2 ADD A, #30H CALL WR_CHR MOV A, R3 ADD A, #30H CALL WR_CHR

Trang 43

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

CALL DL1 JMP MAIN CALADC:

MOV B, #5 MUL AB ;BA MOV R1, B MOV B, #10 MUL AB MOV R2, B MOV B, #10 MUL AB MOV R3, B RET

READADC:

MOV DPTR, #ADC MOV A, #0

MOVX @DPTR, A CALL WAIT_LCD MOVX A, @DPTR MOV R0, A

MOV P1, A RET

LCD_INT:

MOV A, #38H CALL WR_CMD

Trang 44

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

CALL WR_CMD RET

WR_CMD:

CALL WAIT_LCD MOV DPTR, #LCD CLR RS

MOVX @DPTR, A SETB E

CLR E RET WR_CHR:

CALL WAIT_LCD MOV DPTR, #LCD SETB RS

MOVX @DPTR, A SETB E

CLR E RET WAIT_LCD:

MOV R7, #4 DL1:

MOV R6, #250 DJNZ R6, $ DJNZ R7, DL1 RET

END

Kiểm tra:

➢ Biên dịch và kiểm tra hoạt động của chương trình, so sánh giá trị hiển thị với giá trị đo được dùng VOM

Trang 45

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

Trang 46

MOV R7, #10 LOOP:

MOV TH0, #HIGH(-50000) MOV TL0, #LOW(-50000) SETB TR0

JNB TF0, $ CLR TF0 CLR TR0 DJNZ R7, LOOP CPL P1.0

JMP AGAIN END

Trang 47

- Có thể sử dụng timer ở mode 2, nhưng phải lặp bằng phần mềm 1785 lần:

➢ Trong chương trình của sinh viên, khi sử dụng mode 1, sóng vuông 1 Hz có bị sai số không? Để hạn chế sai số ta phải nạp các giá trị vào timer như thế nào?

- Dạng sóng ở mode 1 bị sai số do phần mềm do phải tốn chu kì máy để thực thi, để hạn chế ta phải nạp vào timer ước lớn nhất mà timer có thể có của giá trị thời gian cần tạo trễ (50000)

Trang 49

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER

- Có sai số vì phải sử dụng thêm các câu lệnh lặp và do độ trễ gây ra do các câu lệnh đảo bit ở mode 2 tốn 1 chu kì máy

Trang 50

BÀI THÍ NGHIỆM 3

LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT

MỤC TIÊU

➢ Nắm được cách sử dụng kit thí nghiệm, phần mềm lập trình

➢ Nắm được cách giao tiếp serial port

➢ Nắm được cách lập trình ngắt (interrupt)

CHUẨN BỊ

➢ Đọc bài chuẩn bị thí nghiệm 3 tại nhà

➢ Chuẩn 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ó lí do chính đáng sẽ không được tham gia thí nghiệm và bị đánh vắng buổi đó

Trang 51

CLR A MOVC A, @A+DPTR CALL PHAT

INC DPTR CJNE A, #0, LOOP JMP $

PHAT:

JNB TI, $ CLR TI

Trang 52

➢ Trong chương trình khởi tạo serial port, ta có thể sử dụng tốc độ baud khác giá trị 19200bps

được không? Tại sao?

Không được Các giá trị khác làm cho hiển thị trên LCD sai, không ra đúng chữ “Hello world!!! ”

Ngày đăng: 29/11/2022, 23:17

HÌNH ẢNH LIÊN QUAN

➢ Viết lại chương trình trên bằng phương pháp sử dụng bảng tra (Lookup table). - BÁO CÁO THÍ NGHIỆM VI XỬ LÝ
i ết lại chương trình trên bằng phương pháp sử dụng bảng tra (Lookup table) (Trang 21)
BÀI THÍ NGHIỆM 1 - BÁO CÁO THÍ NGHIỆM VI XỬ LÝ
1 (Trang 21)
➢ Viết thêm chương trình con CLRSCREEN để xóa màn hình LCD. - BÁO CÁO THÍ NGHIỆM VI XỬ LÝ
i ết thêm chương trình con CLRSCREEN để xóa màn hình LCD (Trang 31)
➢ Cho biết mã lệnh dùng để xóa màn hình, dịch con trỏ đến vị trí thứ 1 của hàng 1 và vị trí thứ 1 của hàng 2 của LCD? - BÁO CÁO THÍ NGHIỆM VI XỬ LÝ
ho biết mã lệnh dùng để xóa màn hình, dịch con trỏ đến vị trí thứ 1 của hàng 1 và vị trí thứ 1 của hàng 2 của LCD? (Trang 35)
- Nhận 1 byte từ máy tính và xuất ngược lại (echo) lên màn hình Hercules. - BÁO CÁO THÍ NGHIỆM VI XỬ LÝ
h ận 1 byte từ máy tính và xuất ngược lại (echo) lên màn hình Hercules (Trang 62)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w