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

Sử dụng chip vi xử lý AT89s52 đếm xe ra vào

22 712 5

Đ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 22
Dung lượng 2,56 MB
File đính kèm code C.rar (1 MB)

Nội dung

Với sự phát triển mạnh mẽ cả khoa học kỹ thuật và nền kinh tế ngày một đi lên, mức sống của người dân đang dần được cải thiện. Cùng với đó là sự tăng lên về dân số cũng như sơ sở hạ tầng, nhịp sống đô thị ngày càng tăng. Các công ty nhà máy, xí nghiệp, khu mua sắm được xây dựng ngày càng nhiều để đáp ứng nhu cầu của con người. Mỗi ngày luôn có hàng trăm người ra vào các công ty, hàng ngàn người ra vào các khu mua sắm nên việc đảm bảo an ninh là vấn đề vô cùng cần thiết. Trong đó kể đến vấn đề quản lý số lượng người ra vào mỗi ngày cũng như quản lý các phương tiện giao thông đề phòng mất cắp... Với một số lượng lớn xe ra vào mỗi ngày, việc năm được có bao nhiêu chiếc là hết sức quan trọng để tính được sức chứa còn lại của bãi đỗ, giám sát được số lượng xe một cách liên tụ c tránh hiện tượng mất mát xảy ra. Để giải quyết vấn đề đó thì việc đặt một hệ thống giám sát kiểm tra đếm số lượng xe ra vào bãi đỗ là cần thiết và quan trọng. b) Ý tưởng Sử dụng chip vi xử lý AT89s52 kết hợp các giao tiếp để thực hiện các công việc: Nhận tín hiệu có xe đi qua từ bộ cảm biến hồng ngoại đưa vào vi điều khiển. Hiển thị số lượng xe trong bãi đỗ trên LED 7 đoạn. Hiển thị đèn báo mức chứa xe trong bãi đỗ. Nếu có xe đi qua cổng vào thì bộ cảm biến hồng ngoại phát hiện và đưa tín hiệu điều khiển tới vi xử lý nâng số đếm trên LED 7 đoạn lên 1 đơn vị, nếu có xe đi qua cổng ra thì bộ cảm biến hồng ngoại phát hiện và đưa tín hiệu điều khiển tới vi xử lý hạ số đếm trên LED 7 đoạn lên 1 đơn vị. Khi số xe trong bãi dưới 50 thì đèn xanh sáng, trên 50 thì đèn vàng sáng, đèn xanh tắt, trên 90 thì đèn đỏ sáng, đèn vàng tắt. (Vì phạm vi đề tài chỉ thuộc dạng mô phỏng nên giả dụ với bãi đỗ xe chứa được 100 chiếc) 3 CHƯƠNG II: TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN II. Giới thiệu Bộ vi điều khiển viết tắt là Microcontroller, là mạch tích hợp trên một chip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống. Theo các tập lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xủa lý thông tin, đo thời gian và tiến hành đóng mở một cơ cấu nào đó. Trong các thiết bị điện dân dụng, các bộ vi điều khiển, điều khiển hoạt động của TV, máy giặt,... Trong hệ thông sản xuất tự động, bộ vi điều khiển được dùng trong robot, dây chuyền tự động. Các hệ thống càng “thông minh” thì vai trò của hệ vi điều khiển càng quan trọng. A .GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89S52 1. Tổng quan về 89S52 AT89S52 là họ IC vi điều khiển do hãng Atmel sản xuất. Các sản phẩm AT89S52 thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các toán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những lệnh số học 8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp những hổ trợ mở rộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt cho phép quảnlý và kiểm tra bit trực tiếp trong hệ thống điều khiển. AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường IO, 3TIMERCOUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ONCHIP.Các đặc điểm của chip AT89S52 được tóm tắt như sau: • 8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghixoá • Tần số hoạt động từ: 0Hz đến 24 MHz • 3 mức khóa bộ nhớ lập trình • 3 bộ Timercounter 16 Bit • 128 Byte RAM nội. • 4 Port xuất nhập IO 8 bit. • Giao tiếp nối tiếp. • 64 KB vùng nhớ mã ngoài • 64 KB vùng nhớ dữ liệu ngoại. • 4µs cho hoạt động nhân hoặc chia

Trang 1

Giáo viên hướng dẫn: ĐẶNG XUÂN VINH

Sinh viên thực hiện: HỒ ĐỨC NHẬT TRƯỜNG

Lớp : Điện tử - Viễn Thông - K35

1 / 12 / 2014

Trang 2

CHƯƠNG I: GIỚI THIỆU VỀ ĐỀ TÀI I.Cơ sở lựa chọn đề tài

Để giải quyết vấn đề đó thì việc đặt một hệ thống giám sát kiểm tra đếm số lượng xe ra vào bãi đỗ là cần thiết và quan trọng

b) Ý tưởng

Sử dụng chip vi xử lý AT89s52 kết hợp các giao tiếp để thực hiện các công việc:

- Nhận tín hiệu có xe đi qua từ bộ cảm biến hồng ngoại đưa vào vi điều khiển

- Hiển thị số lượng xe trong bãi đỗ trên LED 7 đoạn

- Hiển thị đèn báo mức chứa xe trong bãi đỗ

Nếu có xe đi qua cổng vào thì bộ cảm biến hồng ngoại phát hiện và đưa tín hiệu điều khiển tới vi xử lý nâng số đếm trên LED 7 đoạn lên 1 đơn vị, nếu có xe đi qua cổng ra thì bộ cảm biến hồng ngoại phát hiện và đưa tín hiệu điều khiển tới vi xử lý hạ số đếm trên LED 7 đoạn lên 1 đơn vị

Khi số xe trong bãi dưới 50 thì đèn xanh sáng, trên 50 thì đèn vàng sáng, đèn xanh tắt, trên

90 thì đèn đỏ sáng, đèn vàng tắt

(Vì phạm vi đề tài chỉ thuộc dạng mô phỏng nên giả dụ với bãi đỗ xe chứa được 100 chiếc)

Trang 3

3

CHƯƠNG II: TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN

II Giới thiệu

Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên một chip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống Theo các tập lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xủa lý thông tin, đo thời gian

và tiến hành đóng mở một cơ cấu nào đó

Trong các thiết bị điện dân dụng, các bộ vi điều khiển, điều khiển hoạt động của TV, máy giặt, Trong hệ thông sản xuất tự động, bộ vi điều khiển được dùng trong robot, dây chuyền tự động Các hệ thống càng “thông minh” thì vai trò của hệ vi điều khiển càng quan trọng

A GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89S52

1 Tổng quan về 89S52

AT89S52 là họ IC vi điều khiển do hãng Atmel sản xuất Các sản phẩm AT89S52 thích hợp cho những ứng dụng điều khiển Việc xử lý trên byte và các toán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội Tập lệnh cung cấp một bảng tiện dụng của những lệnh số học 8 bit gồm cả lệnh nhân và lệnh chia Nó cung cấp những hổ trợ mở rộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt cho phép quảnlý và kiểm tra bit trực tiếp trong hệ thống điều khiển AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP.Các đặc điểm của chip AT89S52 được tóm tắt như sau:

• 8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá

• Tần số hoạt động từ: 0Hz đến 24 MHz

• 3 mức khóa bộ nhớ lập trình

• 3 bộ Timer/counter 16 Bit

• 128 Byte RAM nội

• 4 Port xuất /nhập I/O 8 bit

• Giao tiếp nối tiếp

• 64 KB vùng nhớ mã ngoài

• 64 KB vùng nhớ dữ liệu ngoại

• 4µs cho hoạt động nhân hoặc chia

Trang 4

Sơ đồ khối của AT89S52

Trang 5

2.2 Chức năng của các chân 89S52

Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7) Port 0 có 2 chức năng: trong các thiế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 thiết kế lớn có

bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu

Port 1: từ chân 1 đến chân 9 (P1.0 _ P1.7) Port 1 là port IO dùng cho giao tiếp với thiết bị

bên ngoài nếu cần

Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7) Port 2 là một port có tác dụng kép 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

Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7) Port 3 là port có tác dụng kép.Các chân của

port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các đặc tính đặc biệt của 89S52 như ở bảng sau:

Trang 6

PSEN (Program store enable):

PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình mở rộng và thường được nối đến chân OE của Eprom cho phép đọc các byte mã lệnh

PSEN ở mức thấp trong thời gian 89S52 lấy lệnh Các mã lệnh của chương trình được đọc

từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong89S52 để giải mã lệnh Khi 89S52 thi hành chương trình trong ROM nội, PSEN ởmức cao

ALE (Address Latch Enable):

Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và 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ín hiệu ở 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

EA (External Access):

Tín hiệu vào EA (chân 31) thường được mắc lên mức 1 hoặc mức 0 Nếu ở mức 1, 89S52 thi hành chương trình từ ROM nội Nếu ở mức 0, 89S52 thi hành chương trình từ bộ nhớ mở rộng Chân EA được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 89S52

RST (Reset):

Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất

2 chu kỳ máy, các thanh ghi bên trong được nạp

những giá trị thích hợp để khởi động hệ thống

Khi cấp điện mạch phải tự động reset

Các giá trị tụ và điện trở được chọn là:

R1=10KΩ, C=10µF

Các ngõ vào bộ dao động X1, X2:

Bộ tạo dao động được tích hợp bên trong 89S52

Khi sử dụng 89S52, người ta chỉ cần nối thêm thạch

anh và các tụ Tần số thạch anh tùy thuộc vào mục đích

của người sử dụng, giá trị tụ thường được chọn là 33p

3 Tổ chức bộ nhớ bên trong 89S52

Bộ nhớ trong 89S52 bao gồm ROM và RAM

Trang 7

7

RAM trong 89S52 bao gồm nhiều thành phần:

+ phần lưu trữ đa dụng,

+ phần lưu trữ địa chỉ hóa từng bit,

+ các bank thanh ghi và các thanh ghi chức năng đặc biệt

AT89S52 có bộ nhớ được tổ chức theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu Chương trình và dữ liệu có thể chứa bên trong 89S52 nhưng 89S52 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu bên ngoài

Bản đồ bộ nhớ Data bên trong Chip 89S52 được tổ chức như sau:

- Các bank thanh ghi có địa chỉ từ 00H đến 1FH

- RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH

Trang 8

3.2 RAM có thể định địa chỉ bit

Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đa dụng (truy xuất mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh xử lý bit

3.3 Các bank thanh ghi

Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h – 07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh Các bank thanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7 Sau khi khởi động thì hệ thống bank 0 được chọn sử dụng

Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được truy xuất bởi các thanh ghi R0 đến R7 Viêc thay đổi bank thanh ghi được thực hiện thông qua thanh ghi từ trạng thái chương trình (PSW)

3.4 Các thanh ghi có chức năng đặc biệt

Các thanh ghi trong 89S52 được định dạng như một phần của RAM trên chip vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp) Cũng như R0 đến R7, 89S52 có 21 thanh ghi có chức năng đặc biệt (SFR: Special Function Register) ở vùng trên của RAM nội từ địa chỉ 80H đến 0FFH

Sau đây là một vài thanh ghi đặc biệt thường được sử dụng:

3.4.1 Thanh ghi trạng thái chương trình (PSW: Program Status Word)

Chức năng từng bit trạng thái chương trình

- Cờ Carry CY (Carry Flag):

Cờ nhớ thường nó được dùng cho các lệnh toán học: C =1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngược lại C = 0 nếu phép toán cộng không tràn và phép trừ không

có mượn

- Cờ Carry phụ AC (Auxiliary Carry Flag):

Khi cộng những giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC được set nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển 0AH - 0FH Ngược lại AC = 0

Trang 9

9

- Cờ 0 (Flag 0):

Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng

- Những bit chọn bank thanh ghi truy xuất:

RS1 và RS0 quyết định dãy thanh ghi tích cực Chúng được xóa sau khi reset hệ thống và được thay đổi bởi phần mềm khi cần thiết

3.4.2 Thanh ghi TIMER

Vi Điều Khiển 89S52 có 3 timer 16 bit, mỗi timer có bốn cách làm việc Người ta sử dụng các timer để:

- Định khoảng thời gian

- Đếm sự kiện

- Tạo tốc độ baud cho port nối tiếp trong 89S52

Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng đều đặn

và đặt cờ tràn timer Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõ ra Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví

dụ đo độ rộng xung)

Trang 10

3.4.3 Thanh ghi ngắt (INTERRUPT)

Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác.Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi

- Tổ chức ngắt của 89S52:

Có 5 nguồn ngắt ở 89S52: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được cho phép từng cái một bằng phần mềm Mức độ ưu tiên của các ngắt được lưu trong thanh ghi IP (Interrupt Priority) hay nói cách khác thanh ghi IP cho phép chọn mức ưu tiên cho các ngắt (giá trị thanh ghi IP khi reset là 00h)

- Các cờ ngắt:

Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên mức cao để xác nhận ngắt

Trang 12

CHƯƠNG III: THIẾT KẾ VÀ LẬP TRÌNH I.Thiết kế

IC LM358 thực hiện nhiệm vụ so sánh tín hiệu vào để đưa ra tín hiệu chuẩn, nguồn cấp cho

IC là : 3V-32V Mỗi khi có sự thay đổi về điện áp tại chân 3 tín hiệu đầu vào của LM358 thì

nó thực hiện so sánh điện áp với điện áp chuẩn chân 8 để tạo ra sự biến đổi tín hiệu đẩu ra tại chân 1

Trang 13

LED 7 thanh dù có nhiều biến thể nhưng tựu chung thì cũng chỉ vẫn có 2 loại đó là :

+ Chân Anode chung (chân + các led mắc chung lại với nhau )

+ Chân Catode chung (Chân - các led được mắc chung với nhau )

* Đối với loại Anode chung :

+ Chân 3 và 8 là 2 chân Vcc(nối ngắn mạch lại với nhau , sau đó nối chung với chân anode của 8 led đơn ), vậy muốn led nào đó sáng thì chỉ việc nối chân catot xuống mass

Điện áp giữa Vcc và mass phải lớn hơn 1.3 V mới cung cấp đủ led sáng, tuy nhiên không được cao quá 3V

e) LED

* LED thu phát hồng ngoại

LED thu LED phát

Trang 14

LED phát hồng ngoại sẽ phát ra sóng ánh sáng có bước sóng hồng ngoại, ở LED thu bình

thường thì có nội trở rất lớn (khoảng vài trăm kilo ôm ), khi LED thu bị tia hồng ngoại chiếu vào thì nội trở của nó giảm xuống ( khoảng vài chục ôm)

Trang 15

15

Bình thường Led thu luôn nhận được tia hồng ngoại từ led phát điện trở sủa Led thu sẽ nhỏ lúc đó dòng qua chân 6 của LM358N sẽ cao hơn chân 5 Tín hiệu ở chân 7 ở mức thấp C1815 đóng Tín hiệu ở chân P1_0 ở mức cao Mạch không đếm, LED chỉ thị số 0

Khi có xe đi qua làm che thi Led thu khiến điện trở Led thu tăng lên Luc đó dòng qua chân 6 của LM358N thấp hơn chân 5 Tín hiệu ở chân 7 ở mức cao C1815 mở Tín hiệu ở chân P1_0 ở mức thấp Mạch tăg lên một đơn vị, LED chỉ ti số 1 Cứ thế

Khi số đếm đạt 51 thì vi điều khiển đưa chân P2_6 về mức thấp làm LED vàng sáng, tương tự tới 91 đối với chân P2_7 làm LED đỏ sáng

Trang 16

SƠ ĐỒ NGUYÊN LÝ:

Trang 17

17

Sơ Đồ Mạch In

Trang 18

if(sodem > 50 && sodem <= 90)

{ P2_6=0;}

else { P2_6=1;}

if(sodem > 90)

{ P2_7=0;}

else { P2_7=1;}

if (sodem ==100)

{

Trang 19

19

sodem=99;

P2_7=0;

} while (phim_tang == 0)

Trang 20

if(phim_giam == 0)

{

sodem ;

if(sodem <= 50) { P2_5=0;}

else { P2_5=1;}

if(sodem > 50 && sodem <= 90) { P2_6=0;}

else

{ P2_6=1;}

if(sodem > 90) { P2_7=0;}

Ngày đăng: 22/11/2015, 22:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w