1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

THÍ NGHIỆM VI XỬ LÝ VỚI EMEMC8

40 187 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

Định dạng
Số trang 40
Dung lượng 429,18 KB

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 1: THÍ NGHIỆM VỚI NÚT NHẤN VÀ LED ĐƠN THÍ NGHIỆM 1: Viét chương trình liên tục đọ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 P1.1 ( bit thứ nhất của Led thanh BL202)BÀI 1: THÍ NGHIỆM VỚI NÚT NHẤN VÀ LED ĐƠN THÍ NGHIỆM 1: Viét chương trình liên tục đọ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 P1.1 ( bit thứ nhất của Led thanh BL202)

Trang 1

THÍ NGHIỆM VI XỬ LÝ VỚI EME-MC8

BÀI 1: THÍ NGHIỆM VỚI NÚT NHẤN VÀ LED ĐƠN

THÍ NGHIỆM 1: Viét chương trình liên tục đọ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 P1.1 ( bit thứ nhất của Led thanh BL202)

ORG 2000H MAIN: MOV C,P1.0

MOV R5,#10 LAP1: MOV R6,#100 LAP: MOV R7,#250

DJNZ R7,$

DJNZ R6,LAP DJNZ R5,LAP1 SJMP MAIN

Thay đổi tần số xung vuông thành 0.5Hz với chu kỳ nhiệm vụ là 30%

ORG 2000H MAIN: SETB P1.0

MOV R5,#30 LAP1: MOV R6,#100 LAP: MOV R7,#100

DJNZ R7,$

DJNZ R6,LAP DJNZ R5,LAP1

Trang 2

LOOP1: MOV R6,#100 LOOP: MOV R7,#100

DJNZ R7,$

DJNZ R6,LOOP DJNZ R5,LOOP1

THÍ NGHIỆM 3: Viết chương trình tạo xung vuông 1Hz dùng Timer0 ( không dung ngắt)

ORG 2000H MOV TMOD,#01H LOOP: MOV R7,#10

MOV TL0,#LOW(-50000) SETB TR0

JNB TF0,$

CLR TF0 DJNZ R7,LAP CPL P1.0 SJMP LOOP

Trang 3

THÍ NGHIỆM 4: Viết chương trình làm cho led nối đến chân P1.0 chớp tắt với tần số có thể

tăng ( hoặc giảm) bằng cách nhấn nút nối đến chân P1.1 ( hoặc P1.2 ) Chu kỳ chớp tắt trung bình được chọn là 1s

ORG 2000H MOV 31H,#100;TAO XUNG 0.1Hz MOV 32H,#20 ;TAO XUNG 0.5Hz MOV 33H,#10 ;TAO XUNG 1Hz MOV 34H,#5 ;TAO XUNG 2Hz MOV 35H,#4 ;TAO XUNG 2.5Hz MOV 36H,#2 ;TAO XUNG 5Hz MOV TMOD,#01H

MOV R0,#33H LOOP:

JNB P1.1,LOOP1 ;TANG TAN SO JNB P1.2,LOOP2 ;GIAM TAN SO CALL DELAY

CPL P1.0 SJMP LOOP LOOP1:

JNB P1.1,$

INC R0 CJNE R0,#37H,TANG MOV R0,#33H

LOOP2:

JNB P1.2,$

DEC R0 CJNE R0,#30H,GIAM MOV R0,#33H

DELAY:

MOV A,@R0 LAP: MOV TH0,#HIGH(-50000)

MOV TL0,#LOW(-50000)

Trang 4

SETB TR0 JNB TF0,$

CLR TF0 CLR TR0 DJNZ ACC,LAP RET

BÀI TẬP THÊM : 1) Viết chương trình thực hiện cổng logic XOR 2 ngõ vào

ORG 2000H MOV C,P1.1 JNB P1.0,KO_DOI CPL C

KO_DOI: MOV P1.5,C

SJMP $ END

2) Viết chương trình thực hiện mạch sau:

ORG 2000H MOV C,P1.1 JNB P1.0,KO_DOI CPL C

KO_DOI: ANL C,P1.2

MOV P1.5,C SJMP $ END 3) Viết chương trình thực hiện mạch đèn chạy ở Port1:

Trang 5

STTTTTTT  SSTTTTTT  SSSTTTTT  …SSSSSSSS  TTTTTTTT

Biết hoàn thành 1 chu kỳ mất 4.5s ORG 2000H

MOV R0,#01111111B LAP: MOV A,#01111111B LOOP: MOV P1,A

ACALL DELAY_500MS CJNE A,#00H,SANG MOV P1,#0FFH ACALL DELAY_500MS SJMP LAP

ANL A,R0 SJMP LOOP DELAY_500MS:

MOV R7,#5 DL1: MOV R6,#200 DL: MOV R5,#250

DJNZ R5,$

DJNZ R6,DL DJNZ R7,DL1 RET

END

Trang 6

BÀI 2: THÍ NGHIỆM HIỂN THỊ DÙNG LED 7 ĐOẠN

THÍ NGHIỆM 1: Viết chương trình thực hiện bộ đếm từ 0 đến 9 và hiển thị lên led 7 đoạn, mỗi

lần cách nhau 2s

ORG 2000H

MOV DPTR,#TABLE MOVC A,@A+DPTR MOV DPTR,#0000H MOVX @DPTR,A MOV A,R7

INC A ACALL DELAY_2S CJNE A,#10,LAP SJMP LOOP TABLE: DB 0E0H,0E1H,0E2H,0E3H,0E4H,0E5H,0E6H,0E7H,0E8H,0E9H

DELAY_2S: MOV TMOD,#01H

MOV R7,#40 LAP1: MOV TH0,#HIGH(-50000)

MOV TL0,#LOW(-50000) SETB TR0

JNB TF0,$

CLR TR0 CLR TF0 DJNZ R7,LAP1 RET

END

THÍ NGHIỆM 2: Viết chương trình hiển thị giá trị 1234 lên 4 led 7 đoạn

ORG 2000H

LAP: MOV R7,A

MOV DPTR,#TABLE MOVC A,@A+DPTR MOV DPTR,#0000H MOVX @DPTR,A MOV A,R7

INC A ACALL DELAY_3MS CJNE A,#4,LAP

Trang 7

SJMP LOOP TABLE: DB 071H,0B2H,0D3H,0E4H

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

JNB TF0,$

CLR TR0 CLR TF0 RET END

THÍ NGHIỆM 3: Viết chương trình hiển thị giá trị nhị phân trong thanh ghi R7 lên led 7 đoạn

ORG 2000H MOV R7,#255 LOOP: MOV B,#10

MOV A,R7 DIV AB MOV R4,B MOV B,#10 DIV AB ORL A,#0B0H MOV DPTR,#0H MOVX @DPTR,A ACALL DELAY_3MS MOV A,B

ORL A,#0D0H MOVX @DPTR,A ACALL DELAY_3MS MOV A,R4

ORL A,#0E0H MOVX @DPTR,A ACALL DELAY_3MS SJMP LOOP

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

JNB TF0,$

CLR TR0 CLR TF0 RET END

Trang 8

BÀI TẬP THÊM: 1) Đếm số lần nhấn phìm P1.0 kết quả xuất ra led 7 đoạn hàng chục & đơn

vị ( giả sử số lần nhấn nút nhỏ hơn 100 )

ORG 2000H SETB P1.0 MOV R7,#0 MOV R3,#30 MOV R4,#100 MOV R5,#100 ; khởi động giá trị của R3,R4,R5tạo delay để chống rung phím

MOV A,#0 MOV DPTR,#0000H SJMP LOOP

LAP: INC A

MOV R7,A LOOP: MOV B,#10

DIV AB MOV R6,B MOV B,#10 DIV AB ORL A,#0B0H MOVX @DPTR,A ACALL DELAY_3MS MOV A,B

ORL A,#0D0H MOVX @DPTR,A ACALL DELAY_3MS MOV A,R6

ORL A,#0E0H MOVX @DPTR,A ACALL DELAY_3MS MOV A,R7

JB P1.0, LOOP ; kiểm tra có ấn nút hay chưa DJNZ R3,LOOP

MOV R3,#30 DJNZ R4,LOOP MOV R3,#30 MOV R4,#100 DJNZ R5,LOOP MOV R3,#30 MOV R4,#100 MOV R5,#100

Trang 9

JNB P1.0, LOOP ; kiểm tra đã thả nút ấn hay chưa SJMP LAP

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

JNB TF0,$

CLR TR0 CLR TF0 RET END 2) Viết chương trình thực hiện đồng hồ hẹn giờ với thời gian là 3 phút, từ

2 phút 59 giây  0 phút 00 giây

ORG 2000H MOV R0,#0B2H MOV R1,#59 MOV R5,#100 ;khởi động giá trị R5 để tạo trễ 100*(3ms+3ms+4ms)=1s

MOV DPTR,#0000H

MOVX @DPTR,A ACALL DELAY_4MS MOV B,#10

MOV A,R1 DIV AB ORL A,#0D0H MOVX @DPTR,A ACALL DELAY_3MS MOV A,B

ORL A,#0E0H MOVX @DPTR,A ACALL DELAY_3MS DJNZ R5,LOOP MOV R5,#100 DEC R1 CJNE R1,#0FFH,LOOP ; kiểm tra đã hết 1 phút hay chưa MOV R1,#59

DEC R0 CJNE R0,#0AFH,LOOP ; kiểm tra đã hết 3 phút hay chưa MOV R0,#0B2H

SJMP LOOP

Trang 10

DELAY_3MS: MOV TMOD,#01H

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

JNB TF0,$

CLR TR0 CLR TF0 RET

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

JNB TF0,$

CLR TR0 CLR TF0 RET END

Trang 11

BÀI 3: THÍ NGHIỆM HIỂN THỊ DÙNG LCD

THÍ NGHIỆM 1: Viết chương trình hiển thị chuỗi “ Hello” lên LCD

ACALL WRITE_CHAR MOV A,#'e'

ACALL WRITE_CHAR MOV A,#'l'

ACALL WRITE_CHAR MOV A,#'l'

ACALL WRITE_CHAR MOV A,#'o'

ACALL WRITE_CHAR SJMP $

LCD_INIT: MOV A,#38H

ACALL WRITE_CMD MOV A,#0EH

ACALL WRITE_CMD MOV A,#06H

ACALL WRITE_CMD RET

WAIT_LCD: MOV R7, #100

DL: MOV R6, #250

DJNZ R6, $ DJNZ R7, DL RET

WRITE_CHAR: ACALL WAIT_LCD

SETB RS MOVX @DPTR, A SETB EN

CLR EN RET

CLR RS

Trang 12

MOVX @DPTR, A SETB EN

CLR EN RET END

BÀI TẬP THÊM: Cho chạy chữ “ Hello” trên màn hình LCD

ACALL WRITE_CHAR MOV A,#'E'

ACALL WRITE_CHAR MOV A,#'L'

ACALL WRITE_CHAR MOV A,#'L'

ACALL WRITE_CHAR MOV A,#'O'

ACALL WRITE_CHAR

MOV A,#18H : khới động dịch trái

DJNZ R5,DL ; tạo thới gian delay sau mỗi lần dịch MOV R5,#2

DJNZ R1, LAP MOV R1,#11 MOV A,#1CH ; khới động dịch phải LAP2: ACALL WRITE_CMD

DJNZ R5,DL2 ; tạo thời gian delay sau mỗi lần dịch MOV R5,#2

DJNZ R1,LAP2 SJMP TT

ACALL WRITE_CMD MOV A, #0CH

ACALL WRITE_CMD MOV A, #06H

ACALL WRITE_CMD

Trang 13

MOV A, #01H ACALL WRITE_CMD MOV A, #8BH

ACALL WRITE_CMD RET

WAIT_LCD: MOV R7,#100

DJNZ R6,$

DJNZ R7, LOOP RET

SETB RS MOVX @DPTR,A SETB EN

CLR EN RET

CLR RS MOVX @DPTR,A SETB EN

CLR EN RET END

Trang 14

BÀI 4: THÍ NGHIỆM GIAO TIẾP QUA CỔNG NỐI TIẾP

THÍ NGHIỆM 1: Viết chương trình phát chuỗi ký tự “Hello, world” lên máy tính thong qua

HyperTerminal với tốc độ 9600pbs

ORG 2000H MOV TMOD,#20H MOV TL1,#-3 MOV TH1,#-3 MOV SCON,#42H SETB TR1

MOV DPTR,#MSG

MOVC A,@A+DPTR

JZ KT ACALL SEND INC DPTR SJMP LAP

MSG: DB 'HellO, world',0 SEND: JNB TI,SEND

MOV SBUF,A CLR TI

RET END

THÍ NGHIỆM 2: Viết chương trình nhân các ký tự từ máy tính gửi đến EME-MC8 thông qua

HyperTerminal ( bằng cách gõ các ký tự trên bàn phím khi đang ở trong chương trình

HyperTerminal ) và hiển thị lên LCD

ORG 2000H

EN BIT P3.4

RS BIT P3.5 MOV TMOD,#20H MOV TL1,#-3 MOV TH1,#-3 MOV SCON,#52H SETB TR1

MOV DPTR,#8000H ACALL LCD_INIT LAP:

ACALL RECEIVE ACALL WRITE_CHAR SJMP LAP

Trang 15

LCD_INIT:

MOV A, #38H ACALL WRITE_CMD MOV A, #0EH

ACALL WRITE_CMD MOV A, #06H

ACALL WRITE_CMD MOV A,#01H

ACALL WRITE_CMD RET

WAIT_LCD: MOV R7,#100

DJNZ R6,$

DJNZ R7, LOOP RET

SETB RS MOVX @DPTR,A SETB EN

CLR EN RET

CLR RS MOVX @DPTR,A SETB EN

CLR EN RET RECEIVE: JNB RI,RECEIVE

MOV A, SBUF CLR RI

RET END

THÍ NGHIỆM 3: Viết chương trình nhận một ký tự từ cổng nối tiếp hiển thị lên LCD đồng thời

phát ra cổng nối tiếp Tốc độ tùy chọn

ORG 2000H

EN BIT P3.4

RS BIT P3.5 MOV TMOD,#20H

Trang 16

MOV TL1,#-3 MOV TH1,#-3 MOV SCON,#52H SETB TR1

MOV DPTR,#8000H ACALL LCD_INIT LAP:

ACALL RECEIVE ACALL WRITE_CHAR ACALL SEND

SJMP LAP

LCD_INIT:

MOV A, #38H ACALL WRITE_CMD MOV A, #0EH

ACALL WRITE_CMD MOV A, #06H

ACALL WRITE_CMD MOV A,#01H

ACALL WRITE_CMD RET

WAIT_LCD: MOV R7,#100

DJNZ R6,$

DJNZ R7, LOOP RET

SETB RS MOVX @DPTR,A SETB EN

CLR EN RET

CLR RS MOVX @DPTR,A SETB EN

CLR EN RET RECEIVE: JNB RI,RECEIVE

MOV A, SBUF

Trang 17

CLR RI RET SEND: JNB TI, SEND

MOV SBUF, A CLR TI

RET END

BÀI TẬP THÊM : Viết chương trình nhận ký tự từ cổng nối tiếp, đông thới phát ra cổng nối

tiếp, với điều kiện:

- Nếu ký tự nhân được là số thì xuất ra Led

- Nếu ký tự nhân được là chữ A-Z, a-z thì xuất ra LCD

- Nếu ký tự nhận được là Enter thì xuống hàng , là ESC thì xóa trong màn hình LCD

Mã ASCII của Enter là 13, ESC là 27

ORG 2000H

EN BIT P3.4

RS BIT P3.5 MOV TMOD,#20H MOV TL1,#-3 MOV TH1,#-3 MOV SCON,#52H SETB TR1

MOV R1,#0 MOV DPTR,#8000H ACALL LCD_INIT LAP:

ACALL RECEIVE CJNE A,#13,TT ; kiểm tra phím nhấn Enter MOV A,#0C0H

ACALL WRITE_CMD SJMP THOAT

TT: CJNE A,#27,TT1 ; kiểm tra phím nhấn ESC

MOV A,#01H ACALL WRITE_CMD SJMP THOAT

Trang 18

CJNE A,#61H,KHAC1 ; bắt đầu kiểm tra phím nhấn là chữ thường

INC R1 CJNE R1,#17,XUONG ; kiểm tra nếu hiển thị hết hàng đầu tiên thì xuông hàng trong màn hình LCD

PUSH ACC MOV A,#0C0H ACALL WRITE_CMD POP ACC

MOV R1,#0 XUATLCD: ACALL WRITE_CHAR

SJMP THOAT LED: MOV DPTR,#0000H

ANL A,#0FH ORL A,#0E0H MOVX @DPTR,A THOAT: MOV DPTR,#8000H

ACALL SEND SJMP LAP LCD_INIT:

MOV A, #38H ACALL WRITE_CMD MOV A, #0EH

ACALL WRITE_CMD MOV A, #06H

ACALL WRITE_CMD MOV A, #01H

ACALL WRITE_CMD RET

WAIT_LCD: MOV R7,#100

LOOP: MOV R6, #250 DJNZ R6,$

DJNZ R7, LOOP RET

Trang 19

WRITE_CHAR:

ACALL WAIT_LCD SETB RS

MOVX @DPTR,A SETB EN

CLR EN RET

WRITE_CMD:

ACALL WAIT_LCD CLR RS

MOVX @DPTR,A SETB EN

CLR EN RET RECEIVE: JNB RI,RECEIVE

MOV A, SBUF CLR RI

RET SEND: JNB TI,SEND

MOV SBUF,A CLR TI

RET END

Trang 20

BÀI 5: THÍ NGHIỆM ĐIỀU KHIỂN ADC

THÍ NGHIỆM 1: Viết chương trình đọc điện áp của biến trở trên kênh 0 và hiển thị ra led 7

đoạn

ORG 2000H LAP: MOV R1,#255

MOV DPTR,#4000H MOV A,#0

MOVX @DPTR,A ACALL DELAY_100US MOVX A,@DPTR LAP1: PUSH ACC

MOV DPTR,#0000H MOV B,#10

DIV AB MOV R7,B MOV B,#10 DIV AB ORL A,#0B0H MOVX @DPTR,A ACALL DELAY_1MS MOV A,B

ORL A,#0D0H MOVX @DPTR,A ACALL DELAY_1MS MOV A,R7

ORL A,#0E0H MOVX @DPTR,A ACALL DELAY_1MS POP ACC

DJNZ R1,LAP1 ; tạo thời gian delay SJMP LAP

END

THÍ NGHIỆM 2: Viết chương trình đọc điện áp của biến trở trên kênh 0 và hiển thị ra LCD

Trang 21

ORG 2000H

RS BIT P3.5

EN BIT P3.4 MOV DPTR,#8000H ACALL LCD_INIT LAP: MOV DPTR,#4000H

MOV A,#0 MOVX @DPTR,A ACALL DELAY_100US MOVX A,@DPTR MOV DPTR,#8000H PUSH ACC

MOV A, #80H ACALL WRITE_CMD POP ACC

MOV B,#10 DIV AB MOV R0,B MOV B,#10 DIV AB ORL A,#30H ACALL WRITE_CHAR MOV A,B

ORL A,#30H ACALL WRITE_CHAR MOV A,R0

ORL A,#30H ACALL WRITE_CHAR SJMP LAP

ACALL WRITE_CMD MOV A, #0CH

ACALL WRITE_CMD MOV A, #04H

ACALL WRITE_CMD MOV A, #01H

ACALL WRITE_CMD RET

WAIT_LCD: MOV R7,#100

LOOP: MOV R6, #250

DJNZ R6,$

DJNZ R7, LOOP RET

Trang 22

WRITE_CHAR: SETB RS

MOVX @DPTR,A SETB EN

CLR EN ACALL WAIT_LCD RET

MOVX @DPTR,A SETB EN

CLR EN ACALL WAIT_LCD RET

DELAY_100US: MOV R6,#200

DJNZ R6,$

RET END

BÀI TẬP THÊM : Viết chương trình đọc điện áp thực của kênh 0 và hiển thị lên LCD

ORG 2000H

RS BIT P3.5

EN BIT P3.4 MOV DPTR,#8000H ACALL LCD_INIT LAP: MOV DPTR,#4000H

MOV A,#0 MOVX @DPTR,A ACALL DELAY_100US MOVX A,@DPTR MOV DPTR,#8000H ACALL CHIA MOV A, #80H ACALL WRITE_CMD SJMP LAP

ACALL WRITE_CMD MOV A, #0CH

ACALL WRITE_CMD MOV A, #04H

ACALL WRITE_CMD MOV A, #01H

ACALL WRITE_CMD

Trang 23

RET WAIT_LCD: MOV R7,#100

DJNZ R6,$

DJNZ R7, LOOP RET

WRITE_CHAR: SETB RS

MOVX @DPTR,A SETB EN

CLR EN ACALL WAIT_LCD RET

MOVX @DPTR,A SETB EN

CLR EN ACALL WAIT_LCD RET

ACALL WRITE_CHAR MOV A,B

MOV B,#5 DIV AB ORL A,#30H ACALL WRITE_CHAR POP B

POP ACC RET END

Trang 24

BÀI 6: THÍ NGHIỆM HIỂN THỊ DÙNG LED MA TRẬN

THÍ NGHIỆM 1: Viết chương trình hiển thị ký tự chữ A lên led ma trận

ORG 2000H LOOP: MOV R1,#8

MOV A,#00000001B MOV DPTR,#CHARA

MOVC A,@A+DPTR ACALL HT_HANG

POP ACC

RL A DJNZ R1, LAP SJMP LOOP CHARA: DB 03H, 0EDH, 0EEH, 0EEH, 0EDH, 03H, 0FFH, 0FFH HT_COT: PUSH DPH

DJNZ R6,$

DJNZ R7,DL

Trang 25

RET

END

THÍ NGHIỆM 2: Viết chương trình con hiển thị nội dung 8 ô nhớ từ 30H đến 37H Dùng

chương trình con để hiển thị chữ A, B

HT_ONHO:

MOV R1,#8 MOV A,#00000001B MOV R0,#30H

MOV A,@R0 ACALL HT_HANG

POP ACC

RL A DJNZ R1, LAP RET

Trang 26

ORG 2000H MOV 30H,#03H MOV 31H,#0EDH MOV 32H,#0EEH MOV 33H,#0EEH MOV 34H,#0EDH MOV 35H,#03H MOV 36H,#0FFH MOV 37H,#0FFH

SJMP LOOP HT_ONHO:

MOV R1,#8 MOV A,#00000001B MOV R0,#30H

MOV A,@R0 ACALL HT_HANG

POP ACC

RL A DJNZ R1, LAP RET

Trang 27

ORG 2000H MOV 30H,#00H MOV 31H,#76H MOV 32H,#76H MOV 33H,#76H MOV 34H,#89H MOV 35H,#0FFH MOV 36H,#0FFH MOV 37H,#0FFH

SJMP LOOP HT_ONHO:

MOV R1,#8 MOV A,#00000001B MOV R0,#30H

MOV A,@R0 ACALL HT_HANG

POP ACC

RL A DJNZ R1, LAP RET

Trang 28

POP ACC

RL A DJNZ R1, LAP

Trang 29

0FFH,0FFH,81H,7EH,7EH,7EH,0BDH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH

DJNZ R6,$

DJNZ R7,DL

END

Trang 30

BÀI 7: THÍ NGHIỆM VỚI ĐỘNG CƠ DC

THÍ NGHIỆM 1: Viết chương trình cho phép động cơ chạy theo chiều thuận trong vòng 2s ,

nghỉ 2s,chạy theo chiều ngược 2s, nghỉ 2s và lặp lại

Trang 31

THÍ NGHIỆM 2: Viết chương trình điều khiển động cơ với phương pháp PWM, trong đó thời

gian bật của xung là 50% chu kỳ

ORG 2000H

ORG 200BH LJMP ISR_T0 ORG 201BH LJMP ISR_T1 MAIN:

SETB TF0 MOV IE,#82H MOV DPTR,#0E000H LAP: MOVX @DPTR,A

MOV TL1,#LOW(-500) MOV TH1,#HIGH(-500)

THÍ NGHIỆM 3: Viết chương trình điều khiển động cơ với phương pháp PWM, trong đó thời

gian “bật” của xung lần lượt là 20%, 50%, và 80% chu kỳ Mỗi độ rộng xung cách nhau 5s Quy trình được lặp lại liên tục

Trang 33

SJMP EXIT KHAC80: MOV R5,#0

THÍ NGHIỆM 4: Viết chương trình thực hiện tăng hoặc giảm dần tốc độ động cơ nhờ 2 nút

nhấn P1.4 và P1.5 Khi không nhấn nút, tốc độ động cơ không đổi Khi nút P1.4 được nhấn và giữ thì tốc độ động cơ tăng dần Khi nút P1.5 được nhấn và giữ thì tốc độ động cơ giảm dần

ORG 2000H MAIN: MOV DPTR,#0E000H

Trang 35

THÍ NGHIỆM VI XỬ LÝ VỚI PIC 16F690

BÀI 1: THÍ NGHIỆM VỚI LED ĐƠN THÍ NGHIỆM 1: Viết chương trình chớp tắt led được nối đến chân RC2 của PIC 16F690 với

for( ; ; ) { output_toggle(pin_c2);

delay_ms(500); } }

THÍ NGHIỆM 2: Viết chương trình thực hiện mạch led chạy được nối đến 4 led Port C của PIC

16F690 như sau, biết thời gian giữa các trạng thái S (sáng) và T (tắt) là 0.5s:

Trang 36

THÍ NGHIỆM 3:Viết chương trình thực hiện mạch đếm lên bắt đầu từ 0 đến 15, kết quả xuất ra

4 led đơn được nối đến port C của PIC 16F690 Giá trị mạch đếm tăng lên 1 đơn vị cách nhau 1s

THÍ NGHIỆM 4: Viết chương trình thực hiện mạch đếm lên bắt đầu từ 0 đến 15, kết quả xuất

ra 4 led đơn được nối đến Port C của PIC 16F690 Mạch chỉ đếm khi SW1 được nhấn

THÍ NGHIỆM 5: Viết chương trình thực hiện mạch đếm lên bắt đầu từ 0 đến 15, kết quả xuất

ra 4 led đơn được nối đến Port C của PIC 16F690 Trong quá trình đếm nếu SW1 được nhấn thì

thực hiện đếm ngược từ giá trị đó về 0, sau đó lại đếm lên từ 0

Trang 38

BÀI 2: THÍ NGHIỆM VỚI LED 7 ĐOẠN

THÍ NGHIỆM 1: Viết chương trình thực hiện mạch đếm lên từ 0 đến F ( số Hex ), kết quả xuất

ra led 7 đoạn, giá trị bộ đếm tăng lên 1 đơn vị cách nhau mỗi 0.5s

Ngày đăng: 06/08/2018, 21:19

TỪ KHÓA LIÊN QUAN

w