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

BÁO cáo THÍ NGHIỆM VI xử lý bài THÍ NGHIỆM 1 lập TRÌNH GIAO TIẾP nút NHẤN đơn và LED

76 24 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,61 MB

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

Nội dung

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

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA   

ĐẠI HỌC QUỐC GIA TP ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH HỒ CHÍ MINH   

Trang 2

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

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

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

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

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

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

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

➢    Nộp Nộp  tất cảtất cả các các kết quảkết quả (bài thí (bài thí nghiệmnghiệm 0 và bài 0 và bài chuẩnchuẩn   bị bị thí thí nghiệmnghiệm 1) cho GVHD 1) cho GVHD trướctrước khi vào 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   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 2

 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. 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.0và

và hiển thị rahiển thị ra ledled được nối tại chân P3.0được nối tại chân P3.0 (bit(bit thứ 0 củathứ 0 của led thanhBL202)

 Kiểm tra:  

➢    Biên dịch và thực thi chương trình để kiểm tra kết quả thựcBiên dịch và thực thi chương trình để kiểm tra kết quả thực  hiện.hiện.  

ORG 2000HLOOP: MOV

LOOP: MOV C,P1.0C,P1.0

MOV P3.0,CSJMP LOOPEND

Trang 4

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

Trang 5

BÀI THÍ NGHIỆM 1   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 4

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

được tác động do lệnh: MOV C,P1.0; MOV P3.0,C  

➢    Tổng kết xem cácTổng kết xem các bit bit nào của 2 portnào của 2 port cócó thể được dùng trong thí nghiệm trên và giải thích tạithể đượ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

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   

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

Trang 6

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

Page | 5

Delay1s:

MOV R5,#8LP1:

LP1: MOV MOV R6,#250R6,#250LP2:

LP2: MOV MOV R7,#250R7,#250

DJNZ R7,$

DJNZ R6,LP2DJNZ R5,LP1RET

ORG 2000HLOOP: CPL P1.0

ACALL Delay1sSJMP LOOPDelay1s:

MOV R5,#8LP1:

LP1: MOV MOV R6,#250R6,#250LP2:

➢    Viết chương trìnhViết chương trình con Delay1s.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ờigian 1s

➢    ThayThay đổi chương trình con để tần số chớp tắt bây giờđổi chương trình con để tần số chớp tắt bây giờ là 1KHz.là 1KHz

•    Chương trìnhChương trình con: con:

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

Trang 7

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 5

ORG 2000HLOOP: CPL P1.0

ACALL Delay1msSJMP LOOP

DELAY1ms:

LP: MOV MOV R5, R5, #2#2

MOV R6, #250DJNZ R6, $DJNZ R5, LPRET

END

DJNZ R5,LP1RET

Câu hỏi ::

➢    Thời gian 1s được tạo ra như thế nào? Tính toán chính xác dựa trên chương trình đã viết

1s = 2*MC*(Giá tr 1s = 2*MC*(Giá tr ịị n nạạ p), 1 MC là 1 p), 1 MC là 1 ((  )) => Giá=> Giá trị cần nạptrị cần nạp là 500000là 500000Giới hạn của 1 thanh ghi là 8 bit, chỉ lưu được giá trị tối đa là 255 nên ta phải chia nhỏ:

Giới hạn của 1 thanh ghi là 8 bit, chỉ lưu được giá trị tối đa là 255 nên ta phải chia nhỏ:  

500000=250*250*8 => Chọn500000=250*250*8 => Chọn R5=8; R6=250; R7=250.R5=8; R6=250; R7=250

➢    Sai số nhỏ nhất có thể đạt được so Sai số nhỏ nhất có thể đạt được so với yêu cầuvới yêu cầu là bao nhiêu?là bao nhiêu?

Công thức tính chính xác Time delay với 3 vòng lặp nhưCông thức tính chính xác Time delay với 3 vòng lặp như sau: sau:

Time delay = 2*k*m*n +(3*m+3)*k+3 (MC) với k, m, n lần lượt là 8, 250, 250Time delay = 2*k*m*n +(3*m+3)*k+3 (MC) với k, m, n lần lượt là 8, 250, 250  

→ Time delay = Time delay = 1.006027(s) Sai số xấp xỉ 0.006207(s).1.006027(s) Sai số xấp xỉ 0.006207(s).  

Trang 8

Page | 6

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

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

Trang 9

BÀI THÍ NGHIỆM 1   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 6

 Mục tiêu:   Nắm được cách viết chương trình con để tạo trễ 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 2Viết chương trình tạo 2 xungxung vuông 0.5Hz (chu kỳ nhiệm vụvuông 0.5Hz (chu kỳ nhiệm vụ 50%) và50%) và 1Hz (chu kỳ1Hz (chu kỳnhiệm vụ là 30%)30%) lần lượt trên chân P1.0lần lượt trên chân P1.0 và P1.1

ORG 2000HLOOP: CPL CPL P1.0P1.0

CPL P1.1ACALL DELAY300msCPL P1.1

ACALL DELAY700msSJMP LOOP

DELAY300ms:

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

DJNZ R7, $DJNZ R6, LP2DJNZ R5, LP1RET

DELAY700ms:

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

DJNZ R7, $DJNZ R6, LP4DJNZ R5, LP3RET

END

Trang 10

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

 Kiểm tra:  

➢    Biên dịch, thực thiBiên dịch, thực thi vàvà kiểm tra chương trình bằng cách sử dụng oscilloscope để kiểmkiểm tra chương trình bằng cách sử dụng oscilloscope để kiểm tra. 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ễ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?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

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.0Tại mỗi thời gian tạo trễ, các chân P1.0 vàvà P1.1 xuất tín hiệu như thếP1.1 xuất tín hiệu như thế nào? 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 xung1Hz 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.5Hzvới chu kì nhiệm vụ là 50% tại chân P1.0

với chu kì nhiệm vụ là 50% tại chân P1.0.  

➢    Để tạo cácĐể tạo các xungxung thỏa yêu cầu bài toán, các vòng trễ được viết như thế nào?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ưVòng trễ được viết như sau: sau:

Trang 11

BÀI THÍ NGHIỆM 1   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 8

LOOP:

ACALL DELAY300ms CPL P1.1

ACALL DELAY700ms CPL P1.1

CPL P1.0 SJMP LOOP

Trang 12

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

MOV R1,#8 PHASE:

MOV P1,A

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

MOV R5,#8 LP1:

LP1: MOV MOV R6,#25 R6,#2500 LP2:

LP2: MOV MOV R7,#25 R7,#2500

DJNZ R7,$

DJNZ R6,LP2 DJNZ R5,LP1 RET

END

Trang 13

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Trang 14

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

MOVX @DPTR,ARET

ORG 2000HMOV R0,#11101001BCALL DisplayLEDLOOP:

SJMP LOOPDisplayLED:

MOV DPTR, #0000HMOV A,R0

MOVX @DPTR,ARET

END

Trang 15

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 14

Trang 16

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

MOV R0,#0E0HLOOP:

ACALL DisplayLEDACALL DELAY1SINC R0

CJNE R0,#0EAH,LOOPAJMP START

DisplayLED:

MOV MOV DPTR, DPTR, #0000H#0000HMOV A,R0

MOVX @DPTR,ARET

DELAY1S:MOV R5, #8LP1:

LP1: MOV MOV R6, R6, #250#250LP2:

LP2: MOV MOV R7, R7, #250#250

DJNZ R7, $DJNZ R6, LP2DJNZ R5, LP1RET

END

Trang 17

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

con DisplayLed đã viết ở đã viết ở    phần phần  trước,trước,  tạotạo  trễtrễ 1s, 1s, tăngtăng R0 lên 1 và R0 lên 1 và lặp lạilặp lại quá trình. quá trình. Nếu Nếu  R0 lớnR0 lớn  hơnhơn

➢    Vẽ lưu đồ giải thuật của chươngVẽ lưu đồ giải thuật của chương trình. trình

Trang 18

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

 Mục tiêu:   Nắm được cách thức dùng chương trình con Nắm được cách thức dùng chương trình con vàvà giao tiếp LED 7 đoạn.giao tiếp LED 7 đoạn.  

Yêu cầu:  

ViếtViết  chươngchương trình con DisplayLED trình con DisplayLED xuất giáxuất giá  trịtrị  chứachứa trong  trong thanh ghi thanh ghi R0 lên LED R0 lên LED 77 đoạnđoạn có có sốsố  thứthứ

tự chứa trong thanh ghi R1 Trong

tự chứa trong thanh ghi R1 Trong  đó:đó:  

R0 nằm trong tầm từ 0R0 nằm trong tầm từ 0 9 và R1 trong tầm từ9 và R1 trong tầm từ 0-3.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.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:  

nào bằng 0 thì LED 7 đoạn tương ứng sẽ được   bật. 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Đ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, R1MOV A, #11110111BSHIFTLOOP:

RL ADJNZ B, SHIFTLOOPANL A, #0F0H

PUSH ACCMOV A, R0ANL A, #0FHMOV R0, APOP ACCORL A, R0  

Trang 19

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

DISPLAYLED:

INC R1MOV B,R1MOV A,#11110111BSHIFTLOOP:

RL ADJNZ B,SHIFTLOOPANL A,#0F0H

ADD A,R0MOV DPTR,#0000HMOVX @DPTR,ARET

END  

Trang 20

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

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

Trang 21

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

MOVC A,@A+DPTRADD A,R0

MOV DPTR,#0000HMOVX @DPTR,ASJMP LOOP

BANG: DB 0E0H,0D0H,0B0H,70H

ENDCâ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 (LookupViết lại chương trình trên bằng phương pháp sử dụng bảng tra (Lookup table). table)

Trang 22

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

1s hiển thị số 3 lên LED 7 đoạn 2, sau đó 1s hiển thị số 4 lênlên LED 7 đoạn 3 Quá trình này lặp điLED 7 đoạn 3 Quá trình này lặp đilặp lại Việc hiển thị này sử dụng chương trình con DisplayLED đã viết ở 

lặp lại Việc hiển thị này sử dụng chương trình con DisplayLED đã viết ở  trên. trên

Giảm thời gian trễ xuống còn 100 ms Quan sát hiện tượng

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ìnhGiả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 thiBiên dịch, thực thi vàvà kiểm tra chươngkiểm tra chương trình trình

ORG 2000HRESET: MOV MOV R0,#1R0,#1

MOV R1,#0LOOP:

ACALL DISPLAYLEDACALL DELAY100MSINC R0

INC R1CJNE R0,#5,LOOPSJMP RESETDISPLAYLED:

INC R1MOV B,R1DEC R1

Trang 23

BÀI THÍ NGHIỆM 1   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 18

MOV A,#11110111BSHIFTLOOP:

RL A

DJNZ B,SHIFTLOOPANL A,#0F0H

ADD A,R0MOV DPTR,#0000HMOVX @DPTR,ARET

DELAY100MS:

MOV R6,#200LP1:

LP1: MOV MOV R7,#250R7,#250

DJNZ R7,$

DJNZ R6,LP1RET

END

thí nghiệm 8.mp4

  Câu hỏi:  

➢    Thời gian trễ để không còn thấy LED nhấp nháy là bao nhiêu theo lýlà bao nhiêu theo lý thuyết? Giải thích cáchthuyết? Giải thích cách  tính

Trang 24

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ựchiệ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; INCthự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, vCycle, vớ ớ i mi mỗỗi 1 MC là 1i 1 MC là 1(() V) Vậậy thy thờ ờ i gian tr i gian tr ễễ th thựực tc tếế là 19 là 19 ∗ 1(()) ==

19(())

➢    Khi giảm rất nhỏ thời gian trễ, hiện tượng xảy raKhi giảm rất nhỏ thời gian trễ, hiện tượng xảy ra làlà gì? Giảigì? Giải thích 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

Độ 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àvà LED sẽ hiển thị liênLED sẽ hiển thị liêntục các

tục các giágiá trị 1, 2, 3trị 1, 2, 3 vàvà 4 với tần số rất lớn bằng mắt thường4 với tần số rất lớn bằng mắt thường tata không thể quan sát độ trễ nhỏkhông thể quan sát độ trễ nhỏnhư thế Vậy nên,

như thế Vậy nên, ta nhìnta nhìn thấy các giá trị 1, 2, 3thấy các giá trị 1, 2, 3 vàvà 4 gần như cố4 gần như cố  định.định.  

Trang 25

BÀI THÍ NGHIỆM 2   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 1

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

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

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

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

➢    ChuẩnChuẩn   bị bị cho thí cho thí nghiệmnghiệm 2: 2: ViếtViết  chươngchương trình và mô trình và mô phỏn phỏngg trên Proteus trên Proteus tấttất  cả các bài trong thínghiệm 2dựadựa trên bài trên bài chuẩn bịchuẩn bị 2 và thí 2 và thí nghiệmnghiệm 0. 0

➢    Nộp Nộp  tấttất  cảcả các các kếtkết  quảquả (bài (bài chuẩnchuẩn   bị bị thí thí nghiệmnghiệm 2) cho GVHD 2) cho GVHD trướctrước khi vào khi vào lớp.lớp.  

Sinh viên không thực hiện hoặc nộp thiếu nếukhô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

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

nghiệm của sinh viên. viên

➢    Biên dịch và chạy thử chươngBiên dịch và chạy thử chương trình. trình

➢    Sửa chương trình để hiển thị tên sinh viênSửa chương trình để hiển thị tên sinh viên lên hànglên hàng đầuđầu  

LCDADDR LCDADDR EQU EQU 6000H6000H

ORG 0000HMAIN:

MOV MOV @R0, @R0, 30H30HMOV

MOV DPTR, DPTR, #LCDADDR#LCDADDRACALL CLEAR

ACALL INIT_LCDACALL DISPLAYSTRINGSJMP $

INIT_LCD:

MOV MOV A, A, #38H#38HACALL WRITECOMMOV

MOV A, A, #0EH#0EHACALL WRITECOMMOV

MOV A, A, #06H#06HACALL WRITECOMRET

CLEAR:

MOV MOV A, A, #01H#01H

Trang 27

BÀI THÍ NGHIỆM 2   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 3

ACALL WRITECOMRET

WRITETEXT:

MOV MOV DPTR, DPTR, #LCDADDR#LCDADDRSETB LCD_E

SETB LCD_RSMOVX @DPTR, ACLR LCD_E

ACALL WAIT_LCDRET

DISPLAYSTRING:

MOV A,#0LOOP:

MOV MOV DPTR, DPTR, #MESSAGE#MESSAGEMOV R0,A

MOVC A,@A+DPTR

JZ EXITACALL WRITETEXTMOV A,R0

INC ADJNZ DJNZ B, B, LOOPLOOP

Trang 28

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

EXIT:

RETWAIT_LCD:

MOV R6,#10DL1:

MOV MOV R7, R7, #250#250DJNZ

DJNZ R7, R7, $$

DJNZ R6,DL1RET

Trang 29

BÀI THÍ NGHIỆM 2   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

   WRITECOM: GHI LỆNH RAWRITECOM: GHI LỆNH RA MÀN HÌNH LCDMÀN HÌNH LCD

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

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

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

-   WAIT_LCD: TẠO TRỄWAIT_LCD: TẠO TRỄ CHO LCDCHO LCD

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

Trang 30

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

Trang 31

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

➢    Viết thêm chương trình con CLRSCREEN để xóaViết thêm chương trình con CLRSCREEN để xóa màn hình LCD.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àngViết thêm chương trình con GOTOXY để di chuyển con trỏ của LCD đến hàng x,x, cộtcột y,y, với Xvới Xchứa trong R0

chứa trong R0 vàvà Y chứa trongY chứa trong R1. R1

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

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

MAIN:

MOV MOV @R0, @R0, 30H30HMOV

MOV DPTR, DPTR, #LCDADDR#LCDADDRACALL CLEAR

ACALL INIT_LCDCLR F0

ACALL DISPLAYSTRINGSETB F0

ACALL DISPLAYSTRINGSJMP $

INIT_LCD:

MOV A, #38HACALL WRITECOMMOV A, #0DH

ACALL WRITECOMMOV A, #06H

ACALL WRITECOM

Trang 32

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

RETCLEAR:

MOV A, #01HACALL WRITECOMRET

WRITECOM:

MOV DPTR, #LCDADDRSETB LCD_E

CLR LCD_RSMOVX @DPTR, ACLR LCD_E

ACALL WAIT_LCDRET

WRITETEXT:

MOV DPTR, #LCDADDRSETB LCD_E

SETB LCD_RSMOVX @DPTR, ACLR LCD_E

ACALL WAIT_LCDRET

WAIT_LCD:

MOV R6,#20DL1:

MOV R7, #250DJNZ R7, $DJNZ R6,DL1RET

DISPLAYSTRING:

ACALL COUNT

Trang 33

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page |

ACALL GOTOXYMOV A,#0

LOOP:

JB F0,CONT1MOV DPTR,#TENJMP OUTPUT1CONT1:

MOV DPTR,#NHOMOUTPUT1:

MOV R0,AMOVC A,@A+DPTR

JZ EXITACALL WRITETEXTMOV A,R0

INC ASJMP LOOPEXIT:

RETGOTOXY:

MOV A,#80H

JB F0,CONT2ADD A,#0JMP OUTPUT2CONT2:

ADD A,#40HOUTPUT2:

ADD A,R1ACALL WRITECOMRET

COUNT:

Trang 34

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

MOV R1,#0

JB F0,CONT3MOV DPTR,#TENJMP OUTPUT3CONT3:

MOV DPTR,#NHOMOUTPUT3:

MOV A,#0LOOP1:

MOV R0,AMOVC A,@A+DPTR

JZ EXIT1INC R1MOV A,R0INC AJMP LOOP1EXIT1:

MOV A,#16MOV B,#2SUBB A,R1DIV ABMOV R1,ARET

TEN: DBTEN: DB ‘‘LAI NGUYEN DUYLAI NGUYEN DUY’’,0,0 NHOM: DB 'NHOM DT03',0END  

Trang 35

BÀI THÍ NGHIỆM 2   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

➢    Thực hiện canh giữa hànThực hiện canh giữa hàng 2 của LCD Cho biếtg 2 của LCD Cho biết cách làm?cách làm?

-   TaTa lấylấy (16(16 –  –   độ dài chuỗi kí tự)/2 lấy phầnđộ dài chuỗi kí tự)/2 lấy phần nguyên nguyênĐưa con trỏ vào vị trí 1 của dòng 2 bằng cách gán A = 0C0H sau đó lấy A cộng với giá trị đã tính phần nguyên ở trên,

 phần nguyên ở trên, tata được một chuỗi ký tự có vị trí ở giữađược một chuỗi ký tự có vị trí ở giữa màn hình LCD.màn hình LCD.  

Trang 36

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

 Mục tiêu:   Nắm được cách thức giao tiếp Nắm được cách thức giao tiếp ADC.ADC

Yêu cầu:  

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

➢    Viết chương trình hiển thị giá trị của kênh 0 của ADCViết chương trình hiển thị giá trị của kênh 0 của ADC lênlên LCD dùng chương trình conLCD dùng chương trình conREADADC đã viết

READADC đã viết.  

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

ADCADDR EQU 4000HORG 0

MAIN:

CALL READADCPUSH 0

MOV DPTR, #LCDADDRCALL CLEAR

CALL INIT_LCDCALL DISPLAYSTRINGXUONGDONG:

MOV A,#0C0HCALL WRITECOMPOP ACC

CALL CONVERTTOBCD

Trang 37

BÀI THÍ NGHIỆM 2   

Department of Electronics

 Microprocessor  Microprocessor Laboratory Laboratory

Page | 17

MOV A,R3CALL WRITETEXT

MOV A,R2CALL WRITETEXTMOV A,R1

CALL WRITETEXTSJMP $

READADC:

MOV DPTR,#ADCADDRMOV A,#0

MOVX @DPTR,ACALL WAIT_LCDMOVX A,@DPTRMOV R0,A

MOV P1,A

RETINIT_LCD:

MOV A, #38HACALL WRITECOMMOV A, #0DH

ACALL WRITECOMMOV A, #06H

ACALL WRITECOM

Trang 38

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

RETCLEAR:

MOV A, #01HACALL WRITECOMRET

WRITECOM:

MOV DPTR, #LCDADDRSETB LCD_E

CLR LCD_RSMOVX @DPTR, ACLR LCD_E

ACALL WAIT_LCDRET

WRITETEXT:

MOV DPTR, #LCDADDR

SETB LCD_ESETB LCD_RSMOVX @DPTR, ACLR LCD_E

ACALL WAIT_LCDRET

WAIT_LCD:

MOV R6,#20

Ngày đăng: 02/12/2022, 23:01

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 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ý bài THÍ NGHIỆM 1 lập TRÌNH GIAO TIẾP nút NHẤN đơn và LED
i ết lại chương trình trên bằng phương pháp sử dụng bảng tra (Lookup 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 21)
➢   Viết thêm chương trình con CLRSCREEN để xóa 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ý bài THÍ NGHIỆM 1 lập TRÌNH GIAO TIẾP nút NHẤN đơn và LED
i ết thêm chương trình con CLRSCREEN để xóa Viết thêm chương trình con CLRSCREEN để xóa màn hình LCD (Trang 31)
➢   Cho Cho biết  biết mã mã lệnh dùng để xóa lệnh dùng để xóa màn màn hình, dịch con trỏ đến vị hình, dịch con trỏ đến vị trí trí thứ 1 của hàng 1 và vị thứ 1 của hàng 1 và vị trí trí thứ 1 thứ 1 của - BÁO cáo THÍ NGHIỆM VI xử lý bài THÍ NGHIỆM 1 lập TRÌNH GIAO TIẾP nút NHẤN đơn và LED
ho Cho biết  biết mã mã lệnh dùng để xóa lệnh dùng để xóa màn màn hình, dịch con trỏ đến vị hình, dịch con trỏ đến vị trí trí thứ 1 của hàng 1 và vị thứ 1 của hàng 1 và vị trí trí thứ 1 thứ 1 của (Trang 35)
-   ESC thì xóa màn hình LCD. ESC thì xóa màn hình LCD. - BÁO cáo THÍ NGHIỆM VI xử lý bài THÍ NGHIỆM 1 lập TRÌNH GIAO TIẾP nút NHẤN đơn và LED
th ì xóa màn hình LCD. ESC thì xóa màn hình LCD (Trang 57)
-    Nhận 1 byte từ  Nhận 1 byte từ máy tính và máy tính và xuất ngược lại (echo) lên xuất ngược lại (echo) lên màn hình Hercules - BÁO cáo THÍ NGHIỆM VI xử lý bài THÍ NGHIỆM 1 lập TRÌNH GIAO TIẾP nút NHẤN đơn và LED
h ận 1 byte từ  Nhận 1 byte từ máy tính và máy tính và xuất ngược lại (echo) lên xuất ngược lại (echo) lên màn hình Hercules (Trang 62)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w