1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thí nghiệm vi xử lý bài 4

13 3 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 13
Dung lượng 165,5 KB

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

Nội dung

Kiểm traBiên dịch, thực thi và kiểm tra chương trình... Vì sai số gây ra là bởi thời gian thực hiện các câu lệnh phần mềm, tức là tốn thêm xx chu kỳ máy, nên ta không sử dụng công thức t

Trang 1

THÍ NGHIỆM 1

Yêu cầu

Viết chương trình tạo sóng vuông 1 Hhz trên chân P1.0 sử dụng timer 0 ở chế độ 1 ORG 2000H

MOV TMOD,#01H

LOOP1:

MOV R7,#7

LOOP2:

MOV TL0,#LOW(-65535)

MOV TH0,#HIGH(-65535)

SETB TR0

JNB TF0, $

CLR TF0

DJNZ R7, LOOP2

CPL P1.0

SJMP LOOP1

END

Trang 2

Kiểm tra

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

Để tạo sóng 1 Hz, ta có thể sử dụng timer ở chế độ 2 được không?

- Ta có thể sử dụng Timer ở mode 2 được, nhung2 khi đó sẽ phải lặp bằng phần mềm 1807 lần:

ORG 2000H

MOV TMOD,#02H

LOOP1:

MOV R7,#7

LOOP3:

MOV R6,#255

LOOP2:

MOV TL0,#LOW(-255)

;MOV TH0,#HIGH(-65535)

Trang 3

SETB TR0

JNB TF0, $

CLR TF0

DJNZ R6, LOOP2

DJNZ R7,LOOP3

CPL P1.0

SJMP LOOP1

END

Dạng sóng 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 đã bị sai số Vì sai số gây ra là bởi thời gian thực hiện các câu lệnh phần mềm, tức là tốn thêm xx chu kỳ máy, nên ta không sử dụng công thức tính giá trị nạp cho timer được

Trang 4

THÍ NGHIỆM 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

ORG 2000H

MOV TMOD,#02H

LOOP1:

MOV R7,#7

LOOP3:

MOV R6,#255

LOOP2:

MOV TL0,#LOW(-255)

SETB TR0

JNB TF0, $

CLR TF0

DJNZ R6, LOOP2

DJNZ R7,LOOP3

CPL P1.0

SJMP LOOP1

END

Kiểm tra

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

Trang 5

Câu hỏi

Ở chế độ 2, độ trễ gây ra do các câu lệnh đảo giá trị bit có gây sai số cho dạng sóng ngõ ra không? Vì sao?

- Có sai số vì phải sử dụng thêm các câu lệnh lặp, tốn thêm nhiều chu kỳ máy

THÍ NGHIỆM 3

Yêu cầu

Viết chương trình phát chuỗi ký tự “Hello, world” lên máy tính thông qua HyperTerminal với tốc độ baud 19200 bps mỗi khi SW 310 (gắn vào P1.0) được nhấn

ORG 2000H

MOV DPTR,#TABLE

MOV R1,#0

MOV SCON,#01000010B

MOV TMOD,#20H

MOV TH1,#(-3)

SETB TR1

LAP:

CLR TI

MOV A,R1

MOVC A,@A+DPTR

MOV SBUF,A

LA: JNB TI, LA

L: JNB P1.0,NEXT

SJMP L

NEXT:

MOV R5,#4

AY:MOV R7,#255

AX:MOV R6,#255

Trang 6

DJNZ R6,$

DJNZ R7,AX

DJNZ R5,AY

INC R1

CJNE R1,#11,LAP

SJMP $

TABLE: DB "HELLO WORLD"

END

Kiểm tra

Biên dịch và kiểm tra hoạt động của chương trình

Trang 7

THÍ NGHIỆM 4

Yêu cầu

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 tại vị trí cột 0 hàng 0, đồng thời phát trở lại lên serial port

LCD_E BIT P3.4

LCD_RS BIT P3.5

LCDADDR EQU 6000H

ORG 2000H

MAIN:

MOV DPTR, #LCDADDR

ACALL INIT_LCD

MOV SCON,#01010000B

MOV TMOD,#20H

MOV TH1,#(-3)

SETB TR1

L:JNB RI,L

CLR RI

MOV A,SBUF

ACALL WRITETEXT

SJMP L

INIT_LCD:

ACALL WRITECOM

ACALL WRITECOM

Trang 8

MOV A, #06H

ACALL WRITECOM RET

CLEAR:

ACALL WRITECOM RET

WRITECOM:

MOV DPTR, #LCDADDR

MOVX @DPTR, A

ACALL WAIT_LCD RET

WRITETEXT:

MOV DPTR, #LCDADDR

MOVX @DPTR, A

ACALL WAIT_LCD RET

WAIT_LCD:

DL1:

MOV R7, #250 DJNZ R7, $

RET END

Trang 9

Kiểm tra

Biên dịch và kiểm tra hoạt động của chương trình

Trang 10

THÍ NGHIỆM 5

Yêu cầu

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 như sau:

Nếu ký tự là chữ thì hiển thị lên LCD; Enter thì xuống hàng; ESC thì xóa màn hình LCD; Backspace thì xóa ký tự bên trái dấu nháy

LCD_E BIT P3.4

LCD_RS BIT P3.5

LCDADDR EQU 6000H

ORG 2000H

MAIN:

MOV DPTR, #LCDADDR

ACALL INIT_LCD

MOV SCON,#01010000B

MOV TMOD,#20H

MOV TH1,#(-3)

SETB TR1

L:JNB RI,L

CLR RI

MOV A,SBUF

CJNE A,#1BH,EX

ACALL CLEAR

SJMP L

EX:

CJNE A,#13,EX2

Trang 11

MOV A,#0C0H

ACALL WRITECOM

SJMP L

EX2:

CJNE A,#8,EX3

MOV A,#10H

ACALL WRITECOM

MOV A,#20H

ACALL WRITETEXT

MOV A,#10H

ACALL WRITECOM

SJMP L

EX3:

ACALL WRITETEXT

SJMP L

INIT_LCD:

ACALL WRITECOM

ACALL WRITECOM

ACALL WRITECOM RET

CLEAR:

ACALL WRITECOM RET

WRITECOM:

MOV DPTR, #LCDADDR

MOVX @DPTR, A

Trang 12

CLR LCD_E

ACALLWAIT_LCD

RET WRITETEXT:

MOV DPTR, #LCDADDR

MOVX @DPTR, A

ACALL WAIT_LCD RET

WAIT_LCD:

DL1:

MOV R7, #250 DJNZ R7, $

RET END

Trang 13

Kiểm tra

Biên dịch và kiểm tra hoạt động của chương trình

Ngày đăng: 18/08/2022, 16:13

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

w