1. Trang chủ
  2. » Giáo án - Bài giảng

thi nghiem vi xử lý trong điều khiển

23 384 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 23
Dung lượng 1,58 MB

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

Nội dung

Các bước cơ bản vẽ một mạch điện tử bằng ISIS: Bước 1: Khởi động ISIS có giao diện như hình H1.1 Bước 2: Lấy linh kiện từ thư viện - Chọn biểu tượng P Pick from libraries: Hình H1.2 - G

Trang 1

HỌC VIỆN NÔNG NGHIỆP VIỆT NAM

KHOA CƠ ĐIỆN

BỘ MÔN TỰ ĐỘNG HÓA

*********o O o*********

TÀI LIỆU HƯỚNG DẪN THÍ NGHIỆM

VI XỬ LÝ TRONG ĐIỀU KHIỂN

HÀ NỘI – 2014

Trang 2

BÀI 1 THIẾT KẾ VÀ MÔ PHỎNG MẠCH ĐIỂN TỬ BẰNG PHẦN MỀM PROTEUS

- SỬ DỤNG PHẦN MỀM KEIL C LẬP TRÌNH VI ĐIỀU KHIỂN

I.Thiết kế và mô phỏng mạch điện tử bằng phần mềm Proteus

1 Giới thiệu chung:

Proteus là phần mềm của hãng Labcenter dùng để vẽ sơ đồ nguyên lý, mô phỏng và vẽ mạch điện Proteus gồm có hai phần:

- ISIS dùng để vẽ sơ đồ nguyên lý và mô phỏng

- ARES dùng để thiết kế mạch in

2 Thiết kế và mô phỏng mạch điện tử bằng ISIS:

Khởi động ISIS có giao diện màn hình chính như sau:

Hình 1.1 Giao diện ISIS của Proteus Phần phía trên và bên phải là công cụ dùng để vẽ mạch nguyên lý Phần màu xám ở giữa là nơi vẽ mạch

a Một số công cụ cơ bản:

Selection mode:chức năng này để chọn linh kiện

Component mode: Lấy linh kiện trong thư viện

Trang 3

Terminal: chứa Ground, Power,…

Wire Lable mode: đặt nhãn cho wire

Graph: dùng để vẽ đồ thị như dòng, áp,…

General Mode: chứa các nguồn điện, nguồn xung,nguồn dòng

Voltage Probe mode: dùng đo điện thế tại một điểm trên mạch, đây là thiết bị không có thực trong thực tế

Current Probe mode: dùng để đo dòng điện tại một điểm trên mạch, đây là thiết bị không

có thực trong thực tế

Virtual Instrument mode: chứa các dụng cụ đo dòng và áp được mô phỏng trong thực tế

b Các bước cơ bản vẽ một mạch điện tử bằng ISIS:

Bước 1: Khởi động ISIS có giao diện như hình H1.1

Bước 2: Lấy linh kiện từ thư viện

- Chọn biểu tượng P (Pick from libraries):

Hình H1.2

- Giao diện Pick Device hiện ra như hình H1.3:

Có thể chọn linh kiện bằng cách chọn trực tiếp từ Category hoặc gõ keyword của linh kiện cần sử dụng vào mục Keyword Linh kiện được chọn sẽ xuất hiện ở cửa sổ Result

và được bôi đen

- Click double chọn linh kiện trong của sổ Result Khi đó linh kiện được chọn xuất hiện

trong cửa sổ Device

- Sau khi chọn hết linh kiện cần sử dụng trong mạch đóng cửa sổ Pick device

Trang 4

Hình 1.3

Hình 1.4 Bước 3: Vẽ mạch điện:

Chọn linh kiện trong cửa sổ Device selector Di chuyển chuột đến vị trí cần đặt linh kiện trên cửa sổ thiết kế Click double linh kiện sẽ xuất hiện trong cửa sổ thiết kế (Hình 1.5)

Để nối dây giữa các chân ta click chuột vào chân cần nối dây 1 và di chuyển chuột đến chân cần nối dây 2 Click chuột tại chân 2, dây giữa hai chân sẽ được nối

Trang 5

- Thực hiện các thao tác quay, lấy đối xứng,….linh kiện

- Thay đổi thông số của linh kiện bằng cách click double vào

linh kiện cần hiệu chỉnh mở cửa sổ Edit component

- Đối với vi điều khiển cần đổ chương trình vào vi điều

khiển trước khi mô phỏng bằng cách chọn Program file

trong Edit component, mở link có file hex đã biên dịch từ

chương trình đã viết đổ vào vi điều khiển

Trang 6

II Sử dụng phần mềm Keil C lập trình vi điều khiển:

Bước 1: Khởi động phần mềm Keil C, giao diện như sau:

Hình 1.7 Bước 2: Mở một New project:

Hình 1.8 Đặt tên và lưu Project mới:

Trang 7

Bước 3: Lựa chọn vi điều khiển sử dụng:

Ví dụ chọn vi điều khiển AT89C51 của hãng Atmel

Trang 8

Bước 4: Mở New File

Save New file với đuôi c hoặc s/.scr/.a tùy vào ngôn ngữ sử dụng để lập trình là C hay Assembly

Trang 9

Add file vào project đang thực hiện:

Chọn loại file nguồn (đuôi c nếu viết bằng C và đuôi s/.src/.a nếu viết bằng Assembly) 

click vào file muốn Add  click button Add

Trang 10

Newfile sẽ xuất hiện trong project và có thể viết chương trình

Bước 5: Viết chương trình

Bước 6: Biên dịch sang File hex

Các File nguồn được viết bằng ngôn ngữ C hay Assembly đều phải biên dịch sang file có đuôi hex thì vi xử lý mới hiểu và thực thi được chương trình Quá trình đó thực hiện như sau:

- Chọn Option for Target

Trang 11

 cửa sổ Option for Target xuất hiện  chọn mục Output  click vào mục Create hex file như hinh  OK

 chọn Build target để biên dịch chương trình

Khi chương trình không có lỗi File hex được tạo và lưu tại thư mục chứa project đang thực hiện

Trong trường hợp chương trình có lỗi, trình biên dịch sẽ báo lỗi  Quay lại bước 5 để tìm và sửa lỗi  Biên dịch lại

Trang 12

III Yêu cầu:

Cho sơ đồ mô phỏng như hình:

- Có thể sử dụng các linh kiện tương đương khác thay thế

- Điện áp cung cấp cho vi điều khiển là 5V

- Sử dụng pin 9V để tạo nguồn 5V cấp cho mạch điều khiển

- Chọn nguồn phù hợp với loa chip

- Các chân của port 0 phải được treo lên mức cao trước khi sử dụng

Trang 13

BÀI 2 TẬP LỆNH CỦA AT89C51 VÀ PORT XUẤT NHẬP

I Tóm tắt lý thuyết

1 Các Port xuất nhập của AT89C51

AT89C51 có 4 Port xuất nhập tương ứng P0, P1, P2, P3 như hình H.2.1

Bảng 2.1 Chức năng của các chân trên Port 3

- Port 0 khi được dùng làm Port xuất nhập cần phải sử dụng điện trở kéo lên bên ngoài Port0 như hình H.2.2

H.2.1.Sơ đồ chân của AT89C51

ngoài: P0 làm bus địa chỉ và dữ liệu thấp (AD7 – AD0)

Port 2

Có 2 chức năng:

bên trong: P0 làm đýờng xuất nhập

ngoài: P0 làm bus địa chỉ và dữ liệu cao (AD15 – AD8)

Port 3

nhiều chức

năng

(Xem bảng 2.1)

Trang 14

Hình H.2.2 Điện trở kéo lên của Port 0

- Port P1, P2, P3 có thể cấu hình làm port xuất nhập mà không cần dùng điện trở kéo lên do bên trong đã tích hợp sẵn điện trở

- Port P0, P2, P3 ngoài chức năng làm Port xuất nhập còn có thêm các chức năng khác (Hình H.2.1 và Bảng 2.1)

2 Tập lệnh của AT89C51

Lệnh của AT89C51 có độ dài 8bit, tương ứng có 256 câu lệnh, được chia thành các nhóm

cơ bản như sau:

Chi tiết các lệnh tham khảo trong Phụ lục 1

II Nội dung thực hành:

Sử dụng file sodomophong đã có ở bài 1 Hãy thực hiện các công việc sau:

1 Cấu hình port P1 là Port đầu vào, port P0 là Port đầu ra Khi ấn Button (P1.0) thì gửi ra P0 giá trị bằng 45

Khi ấn Button 2 (P1.1) thì gửi ra một xung từ cao xuống thấp lên chân P0.0

2 Sử dụng lệnh nhảy và lặp viết chương trình để led ở chân P0.0 nhấp nháy

3 Viết chương trình để các Led trên Port 0 sáng xen kẽ nhau: led 1,3,5,7 sáng – 2,4,6,8 tắt

và ngược lại

Quá trình được lặp đi lặp lại

4 Viết chương trình để các led trên Port 0 lần lượt sáng từ 1-8 Quá trình trên lặp lại không ngừng

Trang 15

BÀI 3 GIAO TIẾP VI ĐIỀU KHIỂN VỚI LED7 THANH I.Tóm tắt lý thuyết

1 Giới thiệu về Led 7 thanh

Hình 3.1 Led 7 đoạn Led 7 thanh gồm 2 loại: loại có anot chung và loại có catot chung, thực chất là 7 đèn led được nối với nhau như sau:

a) Loại nối anot chung b) Loại nối catot chung

Hình 3.2 Phân loại Led 7 đoạn

Trang 16

Đối với loại có anot chung, chân COM phải được đưa lên mức logic 1 và muốn led nào

sáng phải đặt các chân tương ứng từ a-f xuống mức thấp

Ví dụ: Muốn hiển thị số 5 bằng Led 7 đoạn có anot chung, các led a – f – g – c – d phải sáng

Để thực hiện được điều này thì các chân a – f – g – c – d phải được đặt ở mức logic 0

Do đó ta có mã hiển thị số 5 như sau:

Số dp g f e d c b a Mã hex

5 1 0 0 1 0 0 1 0 92h

Tương tự như vậy đối với các số khác

Đối với Led7 thanh có catot chung ta làm ngược lại, chân COM được đặt ở mức 0 và

muốn một led nào đó sáng phải đặt chân tương ứng với Led đó lên mức cao

Ví dụ muốn hiển thị số 6 bằng led 7 thanh có catot chung, ta phải đặt các chân a – f – g – c – d-

e lên mức cao Tương ứng có mã hiển thị như sau:

Số dp g f e d c b a Mã hex

6 0 1 1 1 1 1 0 1 7Dh

Bảng 3.1 Bảng mã hiển thị của Led 7 thanh có anot chung:

Trang 17

Bảng 3.2 Bảng mã hiển thị của Led 7 thanh có catot chung:

2 Hiển thị nhiều Led 7 đoạn:

Trong các ứng dụng thực tế thường phải sử dụng nhiều Led 7 đoạn để hiển thị số liệu, nhưng mỗi Led 7 đoạn đòi hỏi phải có 8 đường dữ liệu, trong khi số port xuất nhập của vi xử

lý có hạn Để tiết kiệm đường truyền dữ liệu của vi xử lý người ta thường sử dụng một Port truyền dữ liệu chung cho tất cả các led (Hình 3.3, Hình 3.4) Điều này làm xuất hiện vấn đề là làm thế nào để gửi được chính xác dữ liệu cần hiển thị đến từng led Có hai phương pháp phổ biến hiện nay đang được sử dụng là phương pháp quét Led và phương pháp chốt led

a Phương pháp quét Led:

Phương pháp này dựa trên hiện tượng lưu ảnh trên võng mạc, tức là nếu một hình ảnh xuất hiện tối thiểu 24 lần/s sẽ tạo cho người quan sát cảm giác là một hình ảnh liên tục

Khi nhiều led cùng dùng chung một đường dữ liệu như Hình 3.3, dữ liệu từ vi xử lý sẽ đồng thời được gửi đến tất cả các Led, do đó ta không thể để các Led sáng cùng một lúc Tại mỗi thời điểm chỉ có duy nhất một led sáng, các led còn lại sẽ tắt Sau thời gian duy trì, Led đó

sẽ tắt và Led tiếp theo sẽ sáng Do hiện tượng lưu ảnh trên mắt nên người quan sát sẽ nhìn thấy các led sẽ hiển thị đồng thời với các số khác nhau Quá trình quét LED được hiển thị như sau:

Bật led sáng – Hiển thị dữ liệu  Trễ  Tắt Led xóa dữ liệu

Trang 18

Việc lựa chọn Led nào sáng/tắt được thực hiện bằng cách đóng mở các Tranzitor (xem Hình 3.3)

Thông thường chọn tần số sáng/tối cho một led là 25Hz (Tức là led hiển thị 25 lần/s)

Hình 3.3 Phương pháp quét Led

Do đó có thể tính được thời gian duy trì cho từng led sáng như sau:

Giả sử có n Led cần hiển thị

-Tần số cho một chu kỳ quét n led = 25hz X n

-Thời gian duy trì cho một lần sáng của từng led = 1/Tần số chu kỳ quét led

Phương pháp này tiện dụng ở phần cứng lẫn phần mềm, tuy nhiên nếu số lượng led quá nhiều thì thời gian sáng trung bình dành cho mỗi led giảm đi Điều này kéo theo các led sẽ suy giảm độ sáng Mặt khác phải tích hợp thêm IC giải mã, nhiều việc phát sinh cho thiết kế mạch lẫn lập trình Phương pháp này ứng dụng cho các hiển thị thông tin ít, khoảng 20 led bảy đoạn trở xuống nhưng thông tin nhiều như bảng tỉ giá ngoại tệ cần vài trăm led thì không được

b Phương pháp chốt Led:

Vẫn chia sẻ bus dữ liệu cho tất cả các led như phương pháp quét , đồng thời các led đều

có chân A (hoặc C) chung nối sẵn lên nguồn (hoặc đất) nghĩa là các Led lúc nào cũng sẵn sàng hiển thị Mỗi led bảy đoạn kết hợp với 1 IC chốt, vi xử lý điều khiển chốt dữ liệu cho chính xác Dữ liệu cho từng led sẽ lần lượt đưa lên Bus, ứng với dữ liệu của led nào thì IC chốt của led đó sẽ chốt dữ liệu lại, động tác này do vi xử lý thực hiện Sau một lượt dữ liệu sẽ xuất hiện đầy đủ trên tất cả các led bảy đoạn, kể từ đó vi xử lý không cần mất công hiển thị

Trang 19

nữa, các led sẽ sáng liên tục chứ không như phương pháp quét Như vậy hình ảnh của phương pháp chốt sáng hơn và không nhấp nháy

Hạn chế của phương pháp này là tốn nhiều IC chốt, mạch điều khiển chốt phức tạp (có thể dùng IC giải mã 74138, 74154 như phương pháp quét)

II Nội dung thí nghiệm

1 Hãy viết chương trình đếm số xung được đưa vào chân P1.0 và hiển thị lên Led 7 đoạn Khi đếm đến 9 thì reset về 0 Quá trình được lặp đi lặp lại

2 Vẽ sơ đồ mô phỏng hình 3.3 và thực hiện các công việc sau:

- Viết chương trình đếm từ 0-99

- Viết chương trình giảm từ 99-0

3 Vẽ sơ đồ mô phỏng hình 3.4 và thực hiện các công việc tương tự ở câu 2

Trang 20

BÀI 4 TIMER /COUNTER – NGẮT I.Tóm tắt lý thuyết

1 Timer/Counter:

a Thanh ghi định thời

- 8051 có hai bộ điều khiển định thời là Timer 0 và Timer 1

- Mỗi Timer có một thanh ghi định thời 16bit, và được chia thành hai thanh ghi 8bit: Timer high (TH) và Timer Low (TL)

Hình 4.1 Các thanh ghi định thời

b.Thanh ghi điều khiển TCON:

- TFx: Cờ tràn Timerx Được set và clear bởi phần cứng

Trang 21

c.Thanh ghi chế độ định thời TMOD:

Để thiết lập chế độ làm việc của các Timer ta sử dụng thanh ghi TMOD 8bit Cả Timer

0 và Timer 1 đều dùng chung thanh ghi TMOD để điều khiển, trong đó: 4bit thấp thiết lập chế

độ điều khiển cho Timer 0 và 4bit cao thiết lập chế độ điều khiển cho Timer 1

-Gate: Khi Gate =1 thì Timer/Counter chỉ làm việc khi cả TRx =1 và INTx=1

Khi Gate = 0 thì Timer/Counter làm việc được khi TRx=1

- C/T: Bit lựa chọn chế độ đếm (counter) hay định thời (Timer)

C/T = 0: chế độ Timer

C/T=1: chế độ định thời

- M0,M1: Lựa chọn chế độ định thời

Trang 22

2 Ngắt:

89C51 có 5 nguồn ngắt: 2 ngắt ngoài, 2 ngắt timer và ngắt nối tiếp

a Thanh ghi điều khiển ngắt IE:

- EA: =1 cho phép ngắt toàn cục

=0 không cho phép ngắt

- ES: cho phép ngắt nối tiếp

Trang 23

- ET1, ET0: cho phép ngắt Timer 1, Timer0

- EX1, EX0: cho phép ngắt ngoài 1, ngắt ngoài 0

Muốn cho phép một ngắt nào xảy ra phải set 2 bit: Bit cho phép ngắt toàn cục và bit cho phép từng ngắt riêng rẽ

Dưới đây là các vector ngắt và vị trí ngắt tương ứng:

II Nội dung thí nghiệm

1 Viết lại chương trình đếm từ 0-9 dùng Timer/counter

2 Viết lại chương trình tạo một xung vuông có tần số 4Khz trên chân P3.7 dùng ngắt Timer

3 Viết chương trình tạo đàn điện tử với các phím tạo ra âm thanh có tần số như sau:

Các phím tương ứng từ button 1  Button 8

Ngày đăng: 10/06/2016, 19:37

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Giao diện ISIS của Proteus  Phần phía trên  và  bên  phải là công  cụ  dùng  để  vẽ  mạch  nguyên lý - thi nghiem vi xử lý trong điều khiển
Hình 1.1. Giao diện ISIS của Proteus Phần phía trên và bên phải là công cụ dùng để vẽ mạch nguyên lý (Trang 2)
Hình 1.4  Bước 3: Vẽ mạch điện: - thi nghiem vi xử lý trong điều khiển
Hình 1.4 Bước 3: Vẽ mạch điện: (Trang 4)
Hình 1.6  Dừng mô phỏng chọn Debug   Stop. - thi nghiem vi xử lý trong điều khiển
Hình 1.6 Dừng mô phỏng chọn Debug  Stop (Trang 5)
Hình 1.8  Đặt tên và lưu Project mới: - thi nghiem vi xử lý trong điều khiển
Hình 1.8 Đặt tên và lưu Project mới: (Trang 6)
Hình 1.7  Bước 2: Mở một New project: - thi nghiem vi xử lý trong điều khiển
Hình 1.7 Bước 2: Mở một New project: (Trang 6)
Bảng 2.1. Chức năng của các chân trên Port 3 - thi nghiem vi xử lý trong điều khiển
Bảng 2.1. Chức năng của các chân trên Port 3 (Trang 13)
Hình H.2.2. Điện trở kéo lên của Port 0 - thi nghiem vi xử lý trong điều khiển
nh H.2.2. Điện trở kéo lên của Port 0 (Trang 14)
Hình 3.1. Led 7 đoạn  Led 7 thanh gồm 2 loại: loại có anot chung và loại có catot chung, thực chất là 7 đèn led  được nối với nhau như sau: - thi nghiem vi xử lý trong điều khiển
Hình 3.1. Led 7 đoạn Led 7 thanh gồm 2 loại: loại có anot chung và loại có catot chung, thực chất là 7 đèn led được nối với nhau như sau: (Trang 15)
Hình 3.2. Phân loại Led 7 đoạn - thi nghiem vi xử lý trong điều khiển
Hình 3.2. Phân loại Led 7 đoạn (Trang 15)
Bảng 3.2. Bảng mã hiển thị của Led 7 thanh có catot chung: - thi nghiem vi xử lý trong điều khiển
Bảng 3.2. Bảng mã hiển thị của Led 7 thanh có catot chung: (Trang 17)
Hình 3.3. Phương pháp quét Led - thi nghiem vi xử lý trong điều khiển
Hình 3.3. Phương pháp quét Led (Trang 18)
Hình 4.1. Các thanh ghi định thời - thi nghiem vi xử lý trong điều khiển
Hình 4.1. Các thanh ghi định thời (Trang 20)

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