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 1Giá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 2CHƯƠ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 33
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 4Sơ đồ khối của AT89S52
Trang 52.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 6PSEN (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 77
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 83.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 99
- 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 103.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 12CHƯƠ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 13LED 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 14LED 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 1515
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 16SƠ ĐỒ NGUYÊN LÝ:
Trang 1717
Sơ Đồ Mạch In
Trang 18if(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 1919
sodem=99;
P2_7=0;
} while (phim_tang == 0)
Trang 20if(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;}