1. Trang chủ
  2. » Cao đẳng - Đại học

Ứng dụng họ vi điều khiển 8051 ghép nối với 04 LED 7 thanh để hiển thị số lần ấn phím và tác động của cảm biến hồng ngoại.

26 1,5K 13

Đ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 26
Dung lượng 841,5 KB

Nội dung

ĐỀ TÀI Ứng dụng họ vi điều khiển 8051 ghép nối với 04 LED 7 thanh để hiển thị số lần ấn phím và tác động của cảm biến hồng ngoại. + Một vi điều khiển họ 8051 + Ghép nối 4 LED 7 thanh + Ghép nối với 4 nút bấm + Ghép nối với 2 cảm biến hồng ngoại. Hoạt động: Nút bấm 1 2 3 4 dùng để đếm, cảm biến hồng ngoại 1 để đảo chiều đếm, cảm biến hồng ngoại 2 để reset đếm. Khi tác động vào các nút 1 2 3 4 thì số đếm tăng dần từ 0000 đến 9999. Đang đếm mà tác động cảm biến 1, khi tác động 4 nút ấn thì sẽ đếm lùi từ giá trị số đếm lúc trước khi tác động cảm biến về 0000. Nếu giá trị số đếm đang là 0000 thì không đếm lùi được. Cảm biến hồng ngoại 2 sẽ reset số đếm về 0000. Từ yêu cầu công nghệ trên ta suy ra mục đích và yêu cầu cầu đề tài trên: • Số đếm phải chính xác • Bộ phận hiển thị phải rõ ràng, dễ quan sát. • Mạch điện không quá phức tạp, bảo đảm được an toàn, dễ sử dụng. • Chi phí thực hiện hợp lý.

Trang 2

Lời Nói Đầu

Ngày nay, các vi điều khiển đã thâm nhập vào mọi lĩnh vực vủa đời sống

từ dân sự, quân sự đến an ninh quốc phòng, có mặt trong hầu hết các ứngdụng hàng ngày từ những thiết bị nhỏ như điện thoại di động, máy nhắn tin,trò chơi điện tử, các thiết bị gia dụng (máy giặt, điều hòa, tủ lạnh….) đếnnhững thiết bị lớn như ôtô, tàu thủy, xe lửa, máy bay, hệ thống mạng điệnthoại, các bộ điều khiển tự động trong nhà máy, các bộ điều chỉnh trong nhàmáy điện hạt nhân, trong các hệ thống điều khiển ánh sáng…

Với một loạt các ứng dụng thú vị trên, ở đây chúng em xin giới thiệumột ứng dụng nhỏ dùng vi điều khiển 8051 (cụ thể là vi điều khiển89C51RD2) để thiết kế đồng hồ điện tử hiển thị bằng led 7 đoạn điều khiểnbằng máy tinh

Được sự giúp đỡ và chỉ bảo tận tình của thầy giáo Đỗ Duy Phú và cácbạn trong lớp, nhóm chúng em đã hoàn thành đồ án môn học này Tuy nhiên

do thời gian và trình độ còn hạn chế, còn thiếu kinh nghiệm thực tế nênkhông tránh khỏi những sai sót Chúng em rất mong nhận được những ý kiến

và đóng góp của các thầy cô và các bạn để chúng em có thể hoàn thiện thiết

kế hơn nữa

Xin chân thành cảm ơn !

Trang 3

+ Ghép nối với 2 cảm biến hồng ngoại.

Hoạt động: Nút bấm 1 2 3 4 dùng để đếm, cảm biến hồng ngoại 1 để đảochiều đếm, cảm biến hồng ngoại 2 để reset đếm Khi tác động vào các nút 1 2

3 4 thì số đếm tăng dần từ 0000 đến 9999 Đang đếm mà tác động cảm biến

1, khi tác động 4 nút ấn thì sẽ đếm lùi từ giá trị số đếm lúc trước khi tác độngcảm biến về 0000 Nếu giá trị số đếm đang là 0000 thì không đếm lùi được.Cảm biến hồng ngoại 2 sẽ reset số đếm về 0000

Từ yêu cầu công nghệ trên ta suy ra mục đích và yêu cầu cầu đề tài trên:

dụng

Trang 4

CHƯƠNG I: GIỚI THIỆU CÁC LINH KIỆN ĐIỆN TỬ

1.1 TỔNG QUAN VỀ HỌ 8051

Họ vi điều khiển 8051 (còn gọi là C51) là một trong những họ vi điều

khiển thông dụng nhất Đây là các bộ vi điều khiển 8 bít được sản xuất theocông nghệ CMOS Một số loại vi điều khiển thuộc họ 8051 thông dụng nhất:AT89C2051, AT89C4051, AT89C51, AT89S52 89C51RD2…

VĐK 89C51RD2 tương thích với họ MCS51 có những đặc điểm sau :

- Bộ xử lý bit thao tác trên các bit riêng

- 4 μs cho hoạt động nhân hoặc chias cho hoạt động nhân hoặc chia

- 210 vị trí nhớ định địa chỉ, mỗi vị trí một bit

- Có các thanh ghi chức năng, cơ chế điều khiển ngắt

- Các bộ thời gian dung trong lĩnh vực chia tần số và tạp thời gian thực

Trang 5

Cấu trúc bên trong của 89C51

Trang 6

89C51 có tất cả 40 chân có chức năng như các đường xuất nhập Trong đó

có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường cóthể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thànhphần của các bus dữ liệu và bus địa chỉ

1 GND ( chân 20) : chân nối đất 0V

2 Port 0 là port có 2 chức năng ở các chân 32 – 39 của 8951 Trong cácthiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường

IO Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa busđịa chỉvà bus dữ liệu

3 Port 1 là port IO trên các chân 1-8 Các chân được ký hiệu P1.0, P1.1,P1.2, … có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần Port 1không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với cácthiết bị bên ngoài

4 Port 2 là 1 port có tác dụng kép trên các chân 21 - 28 được dùng như cácđường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộnhớ mở rộng

5 Port 3 là port có tác dụng kép trên các chân 10 - 17 Các chân của portnày có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tínhđặc biệt của 8951 như ở bảng sau:

Ngõ vào dữ liệu nối tiếpNgõ xuất dữ liệu nối tiếpNgõ vào ngắt cứng thứ 0Ngõ vào ngắt cứng thứ 1Ngõ vào của TIMER/COUNTER thứ 0Ngõ vào của TIMER/COUNTER thứ 1Tín hiệu ghi dữ liệu lên bộ nhớ ngoàiTín hiệu đọc bộ nhớ dữ liệu ngoài

Trang 7

6 PSEN ( Program store enable ): PSEN là tín hiệu ngõ ra ở chân 29 có tácdụng cho phép đọc bộ nhớ chương trình mở rộng thường được nói đến chân0E\ (output enable) của Eprom cho phép đọc các byte mã lệnh PSEN ở mứcthấp trong thời gian Microcontroller 8951 lấy lệnh Các mã lệnh của chươngtrình được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bêntrong 8951 đểgiải mã lệnh Khi 8951 thi hành chương trình trong ROM nộiPSEN sẽ ở mức logic 1.

7 ALE ( Address latch enable ) : Khi 8951 truy xuất bộ nhớ bên ngoài, port

0 có chức năng là bus địa chỉ và bus dữ liệu do đó phải tách các đường dữliệu và địa chỉ Tín hiệu ra ALE ởchân thứ 30 dùng làm tín hiệu điều khiển đểgiải đa hợp các đường địa chỉvà dữ liệu khi kết nối chúng với IC chốt Tínhiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò làđịa chỉ thấp nên chốt địa chỉ hoàn toàn tự động Các xung tín hiệu ALE cótốc độbằng 1/6 lần tần số dao động trên chip và có thể được dùng làm tín hiệuclock cho các phần khác của hệ thống Chân ALE được dùng làm ngõ vàoxung lập trình cho Eprom trong 8951

8 EA ( External access) : Tín hiệu vào EA\ ở chân 31 thường được mắc lênmức 1 hoặc mức 0 Nếu ở mức 1, 8951 thi hành chương trình từ ROM nộitrong khoảng địa chỉ thấp 8 Kbyte Nếu ở mức 0, 8951 sẽ thi hành chươngtrình từ bộ nhớ mở rộng Chân EA được lấy làm chân cấp nguồn 21V khi lậptrình cho Eprom trong 8951

9 RST ( Reset ) : Ngõ vào RST ở chân 9 là ngõ vào Reset của 8951 Khingõ vào tín hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bêntrong được nạp những giá trị thích hợp để khởi động hệ thống Khi cấp điệnmạch tự động Reset

10 X1, X2 : Bộ dao động được tích hợp bên trong 8951, khi sử dụng 8951người thiết kế chỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ

đồ Tần số thạch anh thường sử dụng cho 8951 là 12Mhz

11.Vcc : chân nguồn nối lên 5V

Trang 8

b Tổ chức bộ nhớ

Bộ nhớ bên trong chip bao gồm ROM, RAM và EPROM RAM trênchip bao gồm vùng RAM đa chức năng, vùng RAM với từng bit được địnhđịa chỉ, các dây thanh ghi (bank) và các thanh ghi chức năng đặc biệt

Vùng RAM đại chỉ:

Chip 8951 chứa 210 vị trí định địa chỉ đó có 128byte chứa trong các byte ởđịa chỉ 20H đến 2FH (16bytex8=128bits), phần còn lại chứa trong các thanhghi chức năng đặc biệt

- Công dụng:

+ Truy xuất các bit riêng rẽ thông qua các phần mềm

+ Các port có thể định địa chỉ từng bit, làm đơn giản việc giao tiếp băngphần mền với các thiết bị xuất nhập đơn bit

Các thanh ghi chức năng đặc biệt (SFR):

Không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chitcó

21 địa chỉ được định nghĩa

Trang 9

Các thanh ghi chức năng đặc biệt bao gồm:

+ Từ trạng thái chương trình PSW: có địa chỉ là D0H

+ Thanh ghi B: Có địa chỉ F0H được dùng chung với thanh chứa A trongcác phép toán nhân và chia

+ Con trỏ Stack (SP): là thanh ghi 8bit ở địa chỉ 81H, nó chứa địa chỉ của dữliệu hiện đang ở đỉnh của stack

bộ nhớ dữ liệu ngoài DPTR là thanh ghi 16bit có địa chỉ 82H (bytethấp) và83H (bytecao)

+ Các thanh ghi port :

Port 0 : đại chỉ 80H

Port 1 : địa chỉ 90H

Port 2: địa chỉ A0H

Port 3: địa chi B0H+ Các thanh ghi định thời: 89C51có 2 bộ định thời/đếm dùng để định khoảngthời gian hoặc đếm các sự kiện

- Bộ định thời 0: địa chỉ 8AH (TL0) và 8CH (TH0)

- Bộ định thời 1: địa chỉ 8bH (TL1) và 8DH (TH1)

Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thờiTMOD ở địa chỉ 89H và thanh ghi điều khiển bộ định thời TCON ở địa chỉ88H (chỉ cóTCON được định địa chỉ từng bit)

+ Các thanh ghi của port nối tiếp: 89C51 có 1 port nối tiếp để truyềnthông với các thiết bị như các thiết bị đầu cuối hoặc model

Trang 10

+ Các thanh nghi ngắt: có 1 cấu trúc ngắt với 2 mức ưu tiên và 5 nguyênnhân ngắt Các ngắt bị vô hiệu hóa sau khi reset hệ thống và được phép bằngcách vào thanh ghi IE ở địa chỉ A8H Mức ưu tiên ngắt được thiết lập bởithanh ghi IP ở địa chỉ B8H.

+Thanh ghi điều khiển nguồn: PCON có địa chỉ 87H

c Tập lệnh của 89C51

* Các kiểu định địa chỉ: Trong tập lệnh có 8 chế độ đánh địa chỉ

- Thanh ghi đại chỉ

- Địa chỉ trực tiếp

- Địa chỉ gián tiếp

- Địa chỉ tức thời

- Địa chỉ tuyệt đối

- Địa chỉ tương đối

Trang 11

1.2 CẤU TRÚC IC MAX 232

Bộ vi điều khiển AT89s52 có khả năng giao tiếp với thiết bị ngoài qua cổngnối tiếp Vấn đề trở ngại duy nhất khi giao tiếp với máy tính là mức logic ở

bộ vi điều khiển và ở cổng COM khác nhau cụ thể như sau:

Hình 1.4: Truyền thông qua cổng nối tiếp

Như vậy thực chất của việc truyền thông qua cổng nối tiếp thực chất làviệc truyền mã ASCII của ký tự.Để gửi cho máy tính các kí tự từ ‘0’ đến ‘9’

ta phải truyền mã ASCII của chúng lần lượt từ 0x30 đến 0x39

Trang 12

Để kiểm tra xem máy tính có nhận được các kí tự mà vi điều khiểntruyền tới chưa, ta phải cho máy tính thi hành Chương trình nhận số liệu quacổng nối tiếp chương trình này có thể viết bằng ngôn ngữ lập trình Basic,Pascal, C, C++ Trong Windows có cung cấp sẵn cho chúng ta một công cụtruyền tin qua cổng nối tiếp là Hyper Terminal

a Truyền thông nối tiếp với 8051

Truyền dữ liệu nối tiếp đồng bộ, không đồng bộ

Ø Đóng khung dữ liệu trong truyền thông không đồng bộ

Ø Chuẩn giao diện RS232

Ø Nối ghép 8051 với chuẩn RS232

Ø Các bước lập trình truyền thông nối tiếp cho 8051

· Cài đặt khung truyền

· Cài đặt tốc độ baud

Các cơ sở của truyền thông nối tiếp

Trong truyền thông nối tiếp, một đường dữ liệu duy nhất được dùngthay cho nhiều đường dữ liệu của truyền thông song song không chỉ giúpgiảm giá thành, giúp hệ thống đơn giản hơn nhiều mà nó còn mở ra khả năng

để hai máy tính ở cách xa nhau có truyền thông qua đường thoại

Truyền thông dữ liệu nối tiếp sử dụng hai phương pháp là đồng

bộ và không đồng bộ (dị bộ):

Ø Trong truyền đồng bộ: thì bộ truyền và bộ thu được đồng bộ hóa qua một đường tín hiệu đồng hồ bên ngoài Khái niệm “đồng bộ” để chỉ sự “báo

trước” trong quá trình truyền Lấy ví dụ: thiết bị 1 (tb1) kết nối với với thiết

bị 2 (tb2) bởi 2 đường, một đường dữ liệu và 1 đường xung nhịp Cứ mỗi lầntb1 muốn truyền 1 bit dữ liệu, tb1 điều khiển đường xung nhịp chuyển từ

Trang 13

mức thấp lên mức cao báo cho tb2 sẵn sàng nhận một bit Bằng cách “báotrước” này tất cả các bit dữ liệu có thể truyền/nhận dễ dàng với ít “rủi ro”trong quá trình truyền Tuy nhiên, cách truyền này đòi hỏi ít nhất 2 đườngtruyền (dữ liệu và clock) cho 1 quá trình truyền hoặc nhận.

Ø Khác với cách truyền đồng bộ, truyền thông không đồng bộ chỉ cần một

đường truyền cho một quá trình “Khung dữ liệu” đã được chuẩn hóa bởi cácthiết bị nên không cần đường xung nhịp báo trước dữ liệu đến Ví dụ: 2 thiết

bị đang giao tiếp với nhau theo phương pháp này, chúng đã được thỏa thuậnvới nhau rằng cứ 1ms thì sẽ có 1 bit dữ liệu truyền đến, như thế thiết bị nhậnchỉ cần kiểm tra và đọc đường truyền mỗi mili-giây để đọc các bit dữ liệu vàsau đó kết hợp chúng lại thành dữ liệu có ý nghĩa Truyền thông nối tiếpkhông đồng bộ vì thế hiệu quả hơn truyền thông đồng bộ (không cần nhiềuđường truyền) Tuy nhiên, để quá trình truyền thành công thì việc tuân thủcác tiêu chuẩn truyền là hết sức quan trọng

Trong 8051 có một bộ truyền dữ liệu không đồng bộ (UART

- Universal Asynchronous serial Reveiver and Transmitter) Trước tiên chúng

ta sẽ tìm hiểu các khái niệm quan trọng trong phương pháp truyền thông nối

tiếp không đồng bộ:

Baud rate (tốc độ Baud)

Để việc truyền và nhận không đồng bộ xảy ra thành công thì các thiết bị thamgia phải “thống nhất” với nhau về khoảng thời gian dành cho 1 bit truyền,hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước, tốc độ này

gọi là tốc độ Baud Theo định nghĩa, tốc độ baud là số bit truyền trong 1

giây Nếu tốc độ baud được đặt là 19200 thì thời gian dành cho 1 bit truyền là

1/19200 ~ 52.083us

Frame (khung truyền)

Dữ liệu đi vào ở đầu thu của đường dữ liệu trong truyền dữ liệu nốitiếp là một dãy các số 0 và 1, và rất khó để hiểu được ý nghĩa của các dữ liệu

Trang 14

ấy nếu bên phát và bên thu không cùng thống nhất về một tập các luật, mộtthủ tục, về cách dữ liệu được đóng gói, bao nhiêu bit tạo nên một ký tự và khi

nào dữ liệu bắt đầu và kết thúc Bên cạnh tốc độ baud, khung truyền là một

yếu tố quan trọng tạo nên sự thành công khi truyền và nhận

Khung truyền bao gồm các quy định về số bit trong mỗi lần truyền,

các bit “báo” như bit Start và bit Stop, các bit kiểm tra như Parity, ngoài ra

số lượng các bit trong một data cũng được quy định bởi khung truyền Hình

2 là một ví dụ của một khung truyền của UART (truyền thông nối tiếp không

đồng bộ): khung truyền này được bắt đầu bằng 01 start bit, tiếp theo là

08 bit data, sau đó là 01 bit parity dùng kiểm tra dữ liệu và cuối cùng là

02 bits stop Công việc này được gọi là đóng gói dữ liệu Chúng ta sẽ đi vào

tìm hiểu các thành phần có trong một khung truyền:

Ø Start bit

Start là bit đầu tiên được truyền trong một frame truyền, bit này có

chức năng báo cho thiết bị nhận biết rằng có một gói dữ liệu sắp được truyền

tới Start là bit bắt buộcphải có trong khung truyền, và nó là một bit thấp (0).

Ø Data (dữ liệu)

Data hay dữ liệu cần truyền là thông tin chính mà chúng ta cần gởi và nhận.

Data không nhất thiết phải là gói 8 bit, với 8051 ta có thể quy định số lượngbit của data là 08 hoặc 09 bit Trong truyền thông nối tiếp UART, bit có trọng

số nhỏ nhất (LSB - Least Significant Bit, bit bên phải) của data sẽ được truyền trước và cuối cùng là bit có trọng số lớn nhất (MSB - Most Significant

Bit, bit bên trái)

Ø Parity bit

Parity là bit dùng để kiểm tra dữ liệu truyền có đúng không (một cách

tương đối) Có 2 loại parity là parity chẵn (even parity) và parity lẻ (odd

Trang 15

parity) Parity chẵn nghĩa là số lượng số “1” trong dữ liệu bao gồm bit parity

luôn là số chẵn Ngược lại tổng số lượng các số “1” trong parity lẻ luôn là sốlẻ

Ví dụ: nếu dữ liệu của bạn là 10111011 nhị phân, có tất cả 6 số “1”

trong dữ liệu này, nếu quy định parity chẵn được dùng, bit parity sẽ mang giátrị 0 để đảm bảo tổng các số “1” là số chẵn (6 số 1) Nếu parity lẻ được yêucầu thì giá trị của parity bit là 1 Sau khi truyền chuỗi dữ liệu kèm theo cả bitparity trên, bên nhận thu được và kiểm tra lại tổng số số “1” (bao gồm cả bitparity), nếu vi phạm quy định parity đã đặt trước thì ta khẳng định là dữ liệunhận được là sai, còn nếu không vi phạm thì cũng không khẳng định được

điều gì (mang tính tương đối) Hình 2 mô tả một ví dụ với parity chẵn được

sử dụng

Parity bit không phải là bit bắt buộc và vì thế chúng ta có thể loại

bit này khỏi khung truyền

Ø Stop bits

Stop bits là 01 hoặc nhiều bit báo cho thiết bị nhận rằng một gói dữ

liệu đã được gởi xong Sau khi nhận được stop bits, thiết bị nhận sẽ tiến hành kiểm tra khung truyền để đảm bảo tính chính xác của dữ liệu Stop bits là

các bit bắt buộc xuất hiện trong khung truyền, trong 8051 có thể là 01 hoặc

02 bit, và chúng là các bit cao (1) Trong ví dụ ở hình 2: có 2 stop bits được

dùng cho khung truyền

Trang 16

Hình 2: Một khung truyền trong truyền thông nối tiếp không đồng bộ

b Các chân RxD và TxD trong 8051

Trong 8051 có hai chân được dùng cho truyền và nhận dữ liệu nối

tiếp Hai chân này được gọi là TxD và RxD, là một phần của cổng P3 (đó là P3.0-chân 10 và P3.1-chân 11) Các chân này hoạt động với mức logic

TTL (mức logic cao “1” được gán cho Vccvà mức logic thấp được gán

cho 0v).

Vì các máy tính được sử dụng rất rộng rãi để truyền thông với các hệthống vi điều khiển, do vậy ta chủ yếu tập trung vào truyền thông nối tiếp của

8051 với cổng COM – RS232 của PC

Chuẩn giao diện RS232

Để cho phép tương thích giữa các thiết bị truyền thông dữ liệu được sản xuất

bởi các hãng khác nhau thì một chuẩn giao diện được gọi là RS232 đã được thiết lập bởi hiệp hội công nghiệp điện tử EIA vào năm 19960 Năm 1963 nó

được sửa chỉnh và được gọi là RS232A và vào các năm 1965 và 1969 thìđược đổi thành RS232B và RS232C ở đây chúng ta đơn giản chỉ hiểu là

RS232 Ngày nay RS232 là chuẩn giao diện I/O vào - ra nối tiếp được sử

dụng rộng rãi nhất Chuẩn này được sử dụng trong máy tính PC và hàng loạtcác thiết bị khác nhau

Ngày đăng: 04/04/2016, 11:42

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w