1. Trang chủ
  2. » Thể loại khác

ĐỀ TÀI:HIỆN THỰC CÁC BÀI THỰC HÀNH VI ĐIỀU KHIỂNHỌ 8051 BẰNG HỢP NGỮ TRONG MÔI TRƯỜNGPROTEUS

34 38 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 34
Dung lượng 316,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

Phạm Tường HảiNội dung đề tài Sử dụng hợp ngữ 8051 và môi trường thiết kế và mô phỏng mạch-proteus để hiện thựccác bài tập thực hành về vi điều khiển 8051 nhằm mục đích hổ trợ cho những

Trang 1

ĐỒ ÁN MÔN HỌC TIN HỌC

ĐỀ TÀI:

HIỆN THỰC CÁC BÀI THỰC HÀNH VI ĐIỀU KHIỂN

HỌ 8051 BẰNG HỢP NGỮ TRONG MÔI TRƯỜNG

Trang 2

Mục lục nội dung

***

Nội dung đề tài 1

Tầm quan trọng 2

Nội dung 3

1 Nhóm 1: Làm quen với các port và các lệnh đơn giản của 8051 3

Bài 1: Mô phỏng hoạt động của công tắt đèn 3

Bài 2: Điều khiển hai đèn chớp nháy liên tục 4

Bài 3: Thực hiện cộng hai trừ hai số nhị phân 6

2 Nhóm 2: Làm quen với hoạt động ngắt ngoài và timer của 8051 8

Bài 4: Xuất xung có tầng số 100hz 8

Bài 5:Sử dụng ngắt điều khiển đèn 10

3 Nhóm 3: Làm quen với LCD và kỹ thuật quét led, quét phím 11

Bài 7: Nhận phím từ ma trận phím và hiển thị phím đó lên led 7 đoạn 13

Bài 8: Giao tiếp với LCD và xuất ra 1 dòng chữ 15

Bài 9: Mô phỏng việc cộng trừ 2 số 2 chữ số 17

4 Nhóm 4: Một vài bài toán ứng dụng vi điều khiển họ 8051 20

Bài 10: Sử dụng vi điều khiển 8051 làm đồng hồ thể thao 20

Bài 11: Mô phỏng hiệu ứng lighriver trên 8 led đơn 23

Bài 12: Sử dụng vi điều kiển 8051 để giao tiếp với LCD 27

Kết luận 30

Tài liệu tham khảo 31

Trang 3

Hình 1.1a: Mô phỏng hoạt động của công tắt đèn 3

Hình 1.1b: Sơ đồ khối 4

Hình 1.2a: Điều khiển hai đèn chớp nháy liên tục 5

Hình 1.2b: Sơ đồ khối 6

Hình 1.3a: Cộng trừ hai số nhị phân 7

Hình 1.3b: Sơ đồ khối 8

Hình 2.1a: Xuất xung với tần số 100hz 9

Hình 2.1b: Sơ đồ khối 9

Hình 2.2a: Mô phỏng hoạt động công tắt đèn 10

Hình 2.2b: Sơ đồ khối 11

Hình 3.1a: Kỹ thuật quét led 12

Hình 3.1b: Sơ đồ khối 13

Hình 3.2a: Nhận phím và hiển thị phím lên led 7 đoạn 14

Hình 3.2b: Sơ đồ khối 15

Hình 3.3a: Giao tiếp LCD 16

Hình 3.3b: Sơ đồ khối 17

Hình 3.4a: Mô phỏng việc cộng trừ hai số có hai chữ số 18

Hình 3.4b: Sơ đồ khối 19

Hình 4.1a: Đồng hồ thể thao 20

Hình 4.1b: Sơ đồ khối 22

Hình 4.2a: Mô phỏng hiệu ứng lighriver 24

Hình 4.2b: Sơ đồ khối 25

Hình 4.3a: Giao tiếp với LCD 27

Hình 4.3b: Sơ đồ khối 29

Trang 4

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Nội dung đề tài

Sử dụng hợp ngữ 8051 và môi trường thiết kế và mô phỏng mạch-proteus để hiện thựccác bài tập thực hành về vi điều khiển 8051 nhằm mục đích hổ trợ cho những người mớihọc dễ dàng tiếp xúc với vi điều khiển họ 8051 và hợp ngữ 8051

*****************************

Trang 5

Tầm quan trọng

Bên cạnh sự phát triển nhanh chóng của lĩnh vực công nghệ phần mềm thì hệ thốngnhúng đang là một lĩnh vực đầy tiềm năng cho tương lai Xu hướng này đang được sựđầu tư mạnh từ các công ty lớn cũng như các quốc gia, và được dự báo là sẽ phát triển rấtmạnh trong vài năm tới Vi điều khiển và phần dẻo (-firmware-phần mềm được nạp vàoROM của vi điều khiền) là hai phần chính của một hệ thống nhúng

Với sự phát triển nhanh chóng công nghệ điện tử ngày nay thì có rất nhiều loại vi điềukhiển của nhiều hãng khác nhau, tuy nhiên 8051 là họ vi điều khiển rất thông dụng và dễdùng hiện nay Hơn nữa 8051 có thể nói là họ vi điều khiển “tiền đề” cho những ngườimuốn học về vi điều khiển Sử dụng họ vi điều khiển 8051 thành thạo sẽ giúp bạn dễdàng tìm hiểu một họ vi điều khiển khác

Với những nội dung trên đề tài này được soạn thảo nhằm phục vụ cho những học viênphần cứng máy tính có thể làm quen được với họ vi điều khiển 8051 một cách nhanhchóng và dễ dàng trên môi trường thiết kế và mô phỏng mạch-proteus

*****************************

Trang 6

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Nội dung

Các bài thực hành dưới đây sẽ được thực hiện mô phỏng với vi điều khiển 89C51 Nội dung của đề tài được chia thành bốn nhóm bài thực hành như sau:

1. Nhóm 1: Làm quen với các port và các lệnh đơn giản của 8051

Bài 1: Sử dụng vi điều khiển họ 8051 thực hiện mô phỏng hoạt động của công tắt

đèn

Yêu cầu của bài thực hành: Sử dụng vi điều khiển họ 8051 thực hiện công

việc của một công tắt đèn

Mục đích bài thực hành này:

 Làm quen với các cổng của vi điều khiển

 Sử dụng các lệnh hợp ngữ đơn giản

 Biết được cấu trúc của một chương trình hợp ngữ đơn giản

 Làm quen vơi môi trường Proteus

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng:(xem hình 1.1a)

Hình 1.1a: Mô phỏng hoạt động của công tắt đèn

o P1.1 của vi điều khiển được nối với led

o P2.1 được nối với switch (xem hình 1.1a)

o Các cổng còn lại không dùng

Hiện thực phầm mềm:

o Sử dụng câu lệnh nhảy ở vị trí hiện tại để chờ sự thay đổi từ bít P2.1

o Mỗi lần thay đổi (P2.1 thay đổi từ mức 0 chuyển sang mức 1 hayngược lại) thì đảo bít P1.1 làm cho đèn này thay đổi trạng thái (tắthay sáng)

Trang 7

o Sơ đồ chương trình:

Hình 1.1b: Sơ đồ khối

Cách vận hành bài thực hành:

 Nối switch với với đất (GRN) thì đèn tắt

 Nối switch với nguồn (Vcc) thì đèn sáng

Bài 2: Điều khiển hai đèn chớp nháy liên tục

Yêu cầu: Sử dụng ví điều khiển 89C51 để điều khiển hai đèn luân phiên nhau

sáng

Mục đích bài thực hành:

 Làm quen với các cổng của vi điều khiển

 Làm quen với kỹ thuật delay bằng lệnh nhảy tại chổ

 Biết cách chọn lựa linh kiện và cách đặt nhãn trong Proteus

 Biết cách dịch và nạp một chương trình hợp ngữ 8051

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng: (xem hình 1.2a)

ĐúngSai

Sai

Trang 8

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Hình 1.2a: Điều khiển hai đèn chớp nháy liên tục

o P1.0 được nối với led 1

o P1.1 được nối với led 2

o Các chân còn lại được nối như hình 1.2a

Trang 9

Hình 1.2b: Sơ đồ khối

Cách vận hành bài thực hành:

 Hai đèn led 1 va led 2 sẽ luân phiên nhau sáng

Bài 3: Thực hiện cộng hai trừ hai số nhị phân

Yêu cầu:

 Sử dụng vi điều khiển 89C51 để thực hiện việc cộng trừ hai số nhị phân

 Dữ liệu nhập vào thông qua các cổng của vi điều khiển và được hiển thị raled

 Dữ liệu xuất ra cũng được hiển thị trên led

Mục đích bài thực hành:

 Sử dụng các cổng của vi điều khiển

 Thành thạo việc nạp và dịch một chương trình hợp ngữ

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng: (xem hình 1.3a)

Sai

Trang 10

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Hình 1.3a: Cộng trừ hai số nhị phân

o Cổng P1 được nối với 8 switch để nhập số thứ nhât

o Cổng P2 được nối với 8 switch để nhập số thứ hai

o Cổng P0 nối với 8 led để xuất kết quả

o P3.1 nối với switch 1: tín hiệu điều khiển việc thực hiện phép toán

o P3.2 nối với switch 2: tín hiệu điều khiển việc lựa chọn phép toán(cộng hay trừ)

Hiện thực phần mềm:

o Chương trình là một vòng lặp vô tận chờ nhận tín hiệu từ P3.1 vàP3.2 Nếu P3.1 bằng 1 thì thực hiện phép toán, và P3.2 bằng 1 thì viđiều khiển thực hiện phép cộng ngược lại thực hiện phép trừ

o Sơ đồ chương trình:

Switch 1

Switch 2

Trang 11

Hình 1.3b: Sơ đồ khối

Cách vận hành bài thực hành:

 Nhập hai số cần thực hiện phép toán thông qua các switch (switch nối vớiđất tương ứng với giá trị 0 ngược lại giá trị 1) Các thông số vừa nhập sẽđược hiển thị lên dãy led

 Nối switch 2 với đất nếu muốn thực hiện phép trừ và nối với nguồn nềumuốn thực hiện phép cộng

 Bật switch 1 lên nguồn để thực hiện phép toán

 Kết quả sẽ được xuất ra ở dãy led kết quả

2. Nhóm 2: Làm quen với hoạt động ngắt ngoài và timer của 8051

Bài 4: Xuất xung có tầng số 100hz (sử dụng timer)

Yêu cầu: Sử dụng bộ đếm của vi điều khiển để xuất xung với tần số 100hz

Mục đích bài thực hành:

 Biết cấu trúc hoàn chỉnh một chương trình hợp ngữ

 Làm quen với hoạt động ngắt timer 0 của vi điều khiển

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng: (xem hình 2.1a)

P3.1=

0

P3.2=

0Trừ

Cộng

Đúng

ĐúngSai

Sai

Trang 12

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Hình 2.1a: Xuất xung với tần số 100hz

o Nối P1.0 với led đơn (như hình vẽ 2.1a)

Hiện thực phần mềm:

o Sử dụng hàm ngắt int_timer0 (hàm ngắt timer0), ngắt định kỳ cứ 5miligiây thì ngăt một lân, mỗi lần ngắt thì đảo P1.0 để tạo xung100hz

TF0=0,TR0=1

CPL P1.0

Đúng

Chương trình ngắt int_timer0

Trang 13

Cách vận hành bài thực hành:

 Đèn led sẽ chớp nháy với tần số 100hz

Bài 5:Sử dụng ngắt điều khiển đèn.

Yêu cầu: Sử dụng ngắt của vi điều khiển để mô phỏng hoạt động công tắt đèn

Mục đích bài thực hành:

 Giới thiệu ngắt ngoài 0 của vi điều khiển

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng (xem hình 2.2a)

Hình 2.2a: Mô phỏng hoạt động công tắt đèn

o Bit P1.0 được nối với led

o Bít P3.2 được nối với nút nhấn (nơi nhận tín hiệu ngắt ngoài)

o Các chân còn lại được nối như hình vẽ 2.2a

Hiện thực phần mềm:

o Sử dụng hàm ngắt ngoài int_ext0 Chương trình chính là một lệnhnhảy tại chổ để chờ tín hiệu ngắt ngoài Cứ mỗi lần ngắt thì đảo P1.0

o Sơ đồ chương trình:

Trang 14

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Hình 2.2b: Sơ đồ khối

Cách vận hành bài thực hành:

 Ban đầu đèn tắt Nhấn nút nhấn thì đèn sáng, tiếp tục nhấn thì đèn tắt

3. Nhóm 3: Làm quen với LCD và kỹ thuật quét led, quét phím

Bài 6: Xuất các số từ 0 đến 7 trên 8 led 7 đoạn

Yêu cầu: Sử dụng vi điều khiển xuất 8 số(từ 0 đến 7) ra 8 led 7 đoạn cùng một

lúc

Mục đích bài thực hành:

 Giới thiệu kỹ thuật quét led

 Giới thiệu ngắt timer0 và ngắt timer1 của vi điều khiển

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng: (xem hình 3.1a)

Sjmp $

P3.1=

0CPL P1.0

Đúng

Chương trình ngắt ngoài int_ext0

Trang 15

Hình 3.1a: Kỹ thuật quét led

o Cổng P1 nối với các đường dữ liệu của 8 led 7 đoạn, để xuất dữ liệu

o Hàm quét led sử dụng int_timer1 như một hàm delay

o Thay đổi hàm int_timer1 bởi hàm int_timer0 để thấy được sự khácbiệt (khi sử dụng int_timer0 sẽ thấy các đèn led không sáng cùnglúc)

o Sơ đồ chương trình

Trang 16

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Hình 3.1b: Sơ đồ khối

Vận hành:

 Vi điều khiển sẽ xuất ra các số từ 0 đến 7 trên 8 led 7 đoạn

Bài 7: Nhận phím từ ma trận phím và hiển thị phím đó lên led 7 đoạn

Yêu cầu: Sử dụng vi điều khiển 89C51 để nhận phím từ ma trận phím và hiển

thị lên led 7 đoạn

Mục đích bài thực hành:

 Thành thạo hoạt động ngắt của vi điều khiển

 Giới thiệu kỹ thuật giải mã led 7 đoạn

 Giới thiệu kỹ thuật quét phím

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng: (xem hình 3.2a)

Trang 17

Hình 3.2a: Nhận phím và hiển thị phím lên led 7 đoạn

o Cổng P2 nối với các chân dữ liệu của led 7 đoạn, dùng để xuất dữliệu ra led 7

o Cổng P0 dùng để xuất số lần nhấn phím (có nối vào điện trở kéo xem hình 3.2a)

lên-o Cổng P1 được nối với ma trận phím, dùng để quét phím

o Các chân còn lại được nối như hình vẽ 3.2a

Trang 18

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Hình 3.2b: Sơ đồ khối

Vận hành:

 Nhấn một phím bất kỳ và phím đó sẽ được hiển thị lên led 7 đoạn

 Số lần nhấn phím sẽ được hiển thị trên 8 led đơn

Bài 8: Sử dụng vi điều khiển 8051 giao tiếp với LCD và xuất ra dòng chữ

Yêu cầu: Sử dụng vi điều khiển 89C51 giao tiếp với LCD, xuất ra dòng chữ

Mục đích bài thực hành:

 Giới thiệu về LCD (LCD-2x16)

 Giao tiếp giửa vi điều khiển và LCD

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng: (xem hình 3.3a)

TF0=0,TR0=1

Quét Phím

Xuất led

Hàm ngắt timer 0-int_timer0

Trang 19

Hình 3.3a: Giao tiếp LCD

o Nối cổng P1 với 8 chân dữ liệu của LCD (7 đến 14)

o Nối chân số 1 (chân nguồn) của LCD với nguồn

o Nối hai chân 2 (tương phản) và 3(chân đất) với đất

o Chân 4 (RS) nối với P3.0, chân 5 (RW) nối với P3.1, chân 6 (EN)nối với P3.2

Hiện thực phần mềm:

o Xây dựng các hàm:

 Init_LCD: khởi động LCD

 Write_cmd: viết lệnh điều khiển vào LCD

 Delay: tạo một khoảng thời gian delay (sử dụng ngắt timer0).Tạo một khoảng thời gian để LCD có thể thực hiện lệnh

 Write_data: Ghi dữ liệu cần hiển thị xuống LCD

 Clear1: xóa dòng trên của LCD

 Clear2:Xóa dòng thứ hai của LCD

 Write_LCD: ghi từng ký tự cụ thể vào LCD

 Set_cursor: thiết lập vị trí con trỏ của LCD

 LCD_clear: xóa LCD

o Hàm chính thực hiện việc gọi hàm Write_data liên tục

o Sơ đồ chương trình:

Trang 20

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Hình 3.3b: Sơ đồ khối

Cách vận hành bài thực hành

 LCD sẽ hiển thị dòng chữ chạy từ trái sang phải

Bài 9: Mô phỏng việc cộng trừ 2 số 2 chữ số

Yêu cầu:

 Sử dụng vi điều khiển mô phỏng việc cộng trừ hai số có hai chữ số

 Dữ liệu nhập vào qua hệ thống phím nhấn và được hiển thị trên 4 led 7đoạn

 Dữ liệu xuất được hiển thị trên 3 led 7 đoạn

Mục đích bài thực hành:

 Sử dụng thành thạo kỹ thuật quét led và kỹ thuật quét phím

 Kỹ thuật giải mã led 7 đoạn

R0  16

Đưa con trỏ về đàu hàngDPTR = #string

R0 = #0

A=R0

A,@A+DPTR

R0  32

Clear1 (xóa hàng 1)

Đưa con trỏ về đầu hàng 1

Clear2(xóa hàng 2)

Đưa con trỏ về đầu hàng 2Write_LCD

Inc R0

Trang 21

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng: (xem hình 3.4a)

Hình 3.4a: Mô phỏng việc cộng trừ hai số có hai chữ số

o Cổng P0 nối với ma trận phím để quét phím

o Cổng P1 nối với các chân dữ liệu của led 7 đoạn dùng để xuất dữliệu ra led 7 đoạn (sử dụng trong quét led)

o Cổng P2 nối với các chân nguồn của led 7 đoạn thông qua BJT dùng

để chọn led 7 đoạn (sử dụng trong quét led)

o Các chân còn lại được nối như hình vẽ 3.4a

Hiện thực phần mềm:

o Xây dựng các hàm con:

 Int_timer0: hàm ngắt timer0 cứ 1 miligiây thì ngắt một lần Hàmnày thực hiện việc gọi hàm quét phím, hàm xử lý và hàm quétphím

 Int_timer1: hàm ngắt timer1 cứ 1 miligiây thì quét 1 lần

 Quet_led: để xuất dữ liệu ra led 7 đoạn

Trang 22

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

Hình 3.4b: Sơ đồ khối

Cách vận hành bài thực hành:

 Ma trận phím được đánh số 0 đến 15 từ trái qua phải trên xuống dưới

 Nhấn các phím từ 0 đến 9 để nhập hai thông số cần tính toán (hai số này

sẽ được hiển thị trên 4 led 7 đoạn, từ led 0 đến 3)

Nút thứ 10: (change)để thay đổi số nhập (ví dụ đạng nhập số thứ 2 nhấn

nút này sẽ chuyển sang nhập số thứ nhất)

Nút 11: (reset) xóa hai số vừa nhập (đưa hai số đó về 0).

Nút 12: (add) thực hiện phép cộng hai số vừa nhập (kết quả hiển thị trên 3

led 4,5,6)

Nút 13: (sub) thực hiện phép trừ hai số vừa nhập (kết quả hiển thị trên 3

led 4,5,6)

Nút 14: (inc) tăng số đang nhập lên 1 đơn vị(ví dụ đang nhập số thứ nhất

thì nếu nhấn nút này số thứ nhất sẽ được cộng thêm 1 đơn vị)

Trang 23

Nút 15: (dec) giảm số đang nhập xuống 1 đơn vị(ví dụ đang nhập số thứ

nhất thì nếu nhấn nút này số thứ nhất sẽ được cộng trừ đi 1 đơn vị)

4. Nhóm 4: Một vài bài toán ứng dụng vi điều khiển họ 8051

Bài 10: Sử dụng vi điều khiển 8051 làm đồng hồ thể thao

Yêu cầu:

 Sử dụng vi điều khiển làm đồng hồ tính giờ Đếm đúng giờ và hiển thị giờphút giây trên led 7 đoạn

 Thiết bị phải cho phép chỉnh sửa giờ

 Thiết bị cho phép tính giờ thể thao (bấm giờ) Đơn vị tính là sao

Mục đích bài thực hành:

 Sử dụng ngắt timer của vi điều khiển

 Sử dụng kỹ thuật quét led và quét phím, giải mã led 7 đoạn

 Tổng hợp các kỹ năng có được từ các bài thực hành trước để thực hiệnmột công việc cụ thể

 Cho thấy một ứng dụng cụ thể của vi điều khiển

Phương án giải quyết yêu cầu bài thực hành:

Kết nối phần cứng:(xem hình 4.1a)

Hình 4.1a: Đồng hồ thể thao

o Cổng P0 nối vào ma trận phím: dùng để quét phím (kiểm tra phímnhấn)

Trang 24

Các bài thực hành vi điều khiển 8051 GVHD:TS Phạm Tường Hải

o Cổng P2 nối vào các chân nguồn của các led 7 đoạn: dùng để chọnled 7 (sử dụng trong quét led)

o Các chân khác được nối như hình vẽ 4.1a

Hiện thực phần mềm:

o Xây dựng các hàm

 Init_port: hàm khởi động các cổng cho vi điều khiển

 Init_other: hàm khởi động các thông số còn lại cho vi điều khiển

 Int_timer0: hàm ngắt timer 0 (cứ 1 miligiây thì ngắt một lần) đểthực hiện việc tính toán giờ

 Quet_led: hàm quét led

 Xuat: hàm bổ trợ cho việc xuất led Đổi kết quả giờ phút giây ởdạng thập lục phân ra thành số BCD và đưa vào các thanh ghitạm đê thuận tiện cho việc xuất ra led

Ngày đăng: 31/03/2021, 23:05

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