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

Ứng dụng vi điều khiển AT89C52 trong điều khiển đèn đường giao thông hà nội

55 151 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 55
Dung lượng 4,82 MB

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

Nội dung

Hầu hết các hệ thống đèn đư¬ờng giao thông của Việt Nam là sử dụng nguyên tắc thời gian đóng cắt trong khoảng thời gian nhất định, sử dụng hệ thống này đã không ít gây sự khó chịu cho các phương tiện tham gia giao thông, khi mà lượng xe trên một tuyến rất đông thì đèn xanh cũng chỉ có 30s và nếu ít xe thì cũng 30s. Hệ thống giao thông nói chung của ta chư¬a có sự giám sát và điều khiển tự động bằng hệ thống Camera để phân khoảng thời gian đèn xanh, đèn đỏ hợp lý

Trang 1

Lời nói đầu

Hiện nay hệ thống giao thông Việt Nam còn rất phức tạp, có nhiều nhứcnhối, bức xúc đã và đang xảy ra các vụ tai nạn chết người, gây thương vongđến thể xác vật chất và tinh thần, không những ảnh hưởng về kinh tế mà cònảnh hưởng đến cả người thân, gia đình họ hàng Ở đây có rất nhiều nguyênnhân chủ quan lẫn khách quan gây ra tai nạn giao thông Nguyên nhân chủyếu là ý thức của những người tham gia giao thông còn chưa cao, do khônghiểu biết về luật giao thông hay hiểu rõ mà không thực hiện đúng Bên cạnh

đó, do nền kinh tế nước ta đang phát triển, cơ sở vật chất hạn chế kéo theo

hệ thống đường giao thông lạc hậu chưa đáp ứng được nhu cầu của cuộcsống Việc xây dựng, sửa chữa chưa có quy hoạch, nhiều tỉnh thành phốtrong cả nước chưa có đèn giao thông Vì vậy, hệ thống đèn giao thông rấtquan trọng trong việc chỉ dẫn, điều khiển các phương tiện đi lại, tránh xảy ratrường hợp tắc nghẽn giao thông, gây ra tai nạn Từ yêu cầu thực tế như vậy,

ở đề tài này chúng em đã đưa ra một số phương pháp điều khiển đèn đườnggiao thông thông thường, hiện đại ở đất nước ta và thế giới đang sử dụng,nghiên cứu

“ Ứng dụng vi điều khiển AT89C52 trong điều khiển đèn đường giao thông ”.

Em xin chân thành cảm ơn!

Trang 2

CHƯƠNG I: VÀI NÉT CHUNG VỀ HỆ THỐNG ĐÈN ĐƯỜNG

GIAO THÔNG VIỆT NAM.

1 1.TỔNG QUAN CHUNG

Hầu hết các hệ thống đèn đường giao thông của Việt Nam là sử dụngnguyên tắc thời gian đóng cắt trong khoảng thời gian nhất định, sử dụng hệthống này đã không ít gây sự khó chịu cho các phương tiện tham gia giaothông, khi mà lượng xe trên một tuyến rất đông thì đèn xanh cũng chỉ có 30s

và nếu ít xe thì cũng 30s Hệ thống giao thông nói chung của ta chưa có sựgiám sát và điều khiển tự động bằng hệ thống Camera để phân khoảng thờigian đèn xanh, đèn đỏ hợp lý

Hiện nay ở nước ta cũng có một số nút giao thông được đánh giá là mới

và hiện đại nhất ở Việt Nam Trong đó phải kể đến nút giao thông ở ngã tưDaewoo đường Nguyễn Chí Thanh Hà Nội Nút giao thông này được phânluồng rất hợp lý cho nên đã không xảy ra ách tắc giao thông cũng như tainạn tại nút này Đây là nút giao thông lớn cần phân luồng hợp lý chính xáccho các phương tiện tham gia giao thông, đồng thời kết hợp cả hệ thốngđiều khiển giám sát bằng hệ thống Camera Cho nên nút giao thông tuy lớnlượng phương tiện tham gia nhiều vẫn không xảy ra ách tắc

Ở đề tài này chúng em cũng đưa ra một số phương pháp điều khiển dùng

vi điều khiển AT89C52 để điều khiển nút giao thông này

Ở nút này các luồng xe được phân thứ tự Ví dụ: như tuyến 1 khi có tínhiệu đèn xanh thì chỉ cho phép đi thẳng và rẽ phải chứ không được rẽ trái vàtất nhiên khi đó người đi bộ ở tuyến 2 được phép đi, đèn đỏ tuyến 2 đangsáng, khi hết tín hiệu đèn xanh thì chuyển sang tín hiệu đèn được rẽ tráituyến 1 còn các tuyến khác như đi thẳng tuyến 1 đi thẳng tuyến hai đèn đỏ

ở đây có sự phân luồng rõ rệt không có sự đan chéo của các tuyến lênkhông gây ra tai nạn giao thông

Tương tự như vậy với tuyến 2

Với nút giao thông có đường tàu đi qua ngã tư thì nguyên tắc hoạt độngcũng tương tự như nút giao thông trên với những lúc không có tàu đi qua Chỉkhác khi có tàu đi qua thì chương trình điều khiển sẽ được chuyển sang chươngtrình điều khiển 2 Giả sử nút giao thông này đang hoạt động bình thường thìkhông có gì phải bàn, sau một khoang thời gian nào đó có đoàn tàu chuẩn bịqua thì Sensor đo độ rung sẽ báo là có đoàn tàu chuẩn bị qua, khi đó chươngtrình điều khiển đèn sẽ chuyển sang chương trình 2, nghĩa là tuyến đường songsong với đoàn tàu vẫn tiếp tục đi thẳng đèn xanh, còn tuyến vuông góc vớiđoàn tàu thì đèn đỏ Khi nào đoàn tàu qua thì chương trình 2 chuyển về chươngtrình 1 và hoạt động bình thường

1.2 MỘT SỐ GIẢI PHÁP TỰ ĐỘNG HOÁ ĐO LƯỜNG CÁC THÔNG TIN GIAO THÔNG.

Trang 3

Trong bất kỳ hệ thống điều khiển nào điều quan trọng đầu tiên là làm sao

đo được các đại lượng cần thiết Trong điều hành và điều khiển các hệ thốnggiao thông vận tải cũng vậy Ở đây các thông tin chủ yếu cần thu thập là lưulượng, tốc độ dòng xe ( Dạng thông tin thứ nhất ) và vị trí, tốc độ của phươngtiện cụ thể ( Dạng thông tin thứ hai ) Dạng thông tin thứ nhất có tầm quantrọng đặc biệt cho các công tác quản lý, điều hành, tổ chức giao thông như phânluồng, phân tuyến, điều khiển đèn tín hiệu …Dạng thông tin thứ hai là khôngthể thiếu được trong bài toán quản lý điều hành phương tiện vận tải như taxi ,

xe buyt, … Do tầm quan trọng của chúng mà trên thế giới từ lâu vấn đề đo cácđại lượng cần thiết trên đã được quan tâm nghiên cứu giải quyết

Để đo lưu lượng , tốc độ dòng xe trên đường có nhiều hướng giải quyếtnhư sử dụng ra đa, sóng vi ba cực ngắn , thiết bị ống cảm ứng, cảm ứng vòngdây,… trong đó hiện đại nhất là công nghệ sử lý ảnh camera Tuy nhiên, tất cảcác phương án sẵn có trên đều không có tính khả thi ở việt nam do thực tếkhông phân làn đường ( trừ một số điểm đặc biệt như trạm thu phí …) và dòng

xe đa phương tiện của chúng ta Vì vậy trong nước có thể coi như chưa có thiết

bị giám sát dòng xe trên đường, các camera giám sát lắp đặt tại một số nút giaothông mới chỉ đơn thuần cung cấp cho người điều hành bức tranh về trạng tháigiao thông mà chưa thể cho biết thông tin về lưu lượng, tốc độ dòng xe Hậuquả là chưa thể đưa ra các biện pháp điều khiển đèn giao thông, kịp thời, chẳnghạn như việc đặt chu kỳ đèn tín hiệu là hoàn toàn cưỡng bức, không phù hợpvới trạng thái thực của hệ thống giao thông

Về giám sát hành trình xe về vị trí tốc độ, hiện nay trong nước mới ápdụng hai hình thức: dựa trên thông báo của lái xe trên bộ đàm như các hãng taxihoặc thông qua dạng hộp đen trên xe buýt như tổng công ty vận tải hà nội

Ở phương án thứ nhất không đảm bảo tính khách quan chính xác của thông tincòn ở phương án thứ hai thông tin chưa được cập nhật trực tuyến về trung tâm

và giá thành cơ sở còn cao

Một phương án mới tự động đo và truyền những thông tin giao thông nóitrên vừa mang tính hiện đại vừa có tính khả thi cao, đó là đánh giá dòng giaothông bằng camera và giám sát hành trình xe dựa trên công nghệ định vị toàn

cầu GPS (Gobal Positiau System )

Thiết bị giám sát dòng xe trên đường bằng CAMERA.

Giải pháp hợp lý đề ra ở đây là khai thác công nghệ sử lý ảnh camera đểchế tạo thiết bị giám sát xe Về mặt cấu trúc thiết bị gồm : camera công nghiệp

để thu hình và một máy tính nhúng tốc độ cao làm nhiệm vụ xử lý ảnh, truyềncác thông tin kết quả ( Lưu lượng từng loại xe, vận tốc dòng xe… ) về trungtầm qua hệ thống cáp quang Thiết bị được đặt trên đường, ở độ cao 10 – 15 m,vuông góc với mặt đường

Hạt nhân của hệ thống là phần mềm xử lý ảnh Nguyên tắc cơ bản sử nhậndạng thông qua việc phát hiện 1 khuôn hình chuyển động Phần mềm này chophép đếm và phân loại các xe ( Xe buyt, xe con, ôtô con, xe máy ), tính toán

Trang 4

vận tốc trung bình của dòng dù các xe chạy không theo làn cố định Ngoài ưuđiểm chính này, so với các phương thức đếm xe phổ biến khác như cảm ứngvòng từ, phương án sử dụng camera còn có một số ưu điểm khác như rẻ, ít bị

hư hỏng, dễ lắp đặt và bảo dưỡng…

Thiết bị giám sát hành trình xe trên cơ sở công nghệ GPS ( Gobal Positiau System )

Đây là thiết bị đặt trên xe nhằm mục đích thu thập các thông tin về vị trí

và tốc độ sử dụng hệ thống định vị toàn cầu GPS Những thông tin này chophép người quản lý giám sát được chính xác hành trình xe để có thể đưa cácbiện pháp quản lý, điều hành hợp lý Thiết bị bao gồm các phần chính là ăngten GPS ( Có thể đặt trong xe hoặc trên nóc xe ), các mạch điện tử và phầnmềm thu thập, xử lý truyền thông tin Nguồn điện cho thiết bị đặt trên xe đượclấy từ nguồn điện sẵn có trên xe thông qua phích cắm

Tuỳ theo phương thức truyền thông tin thiết bị được chế tạo dưới hai dạng:offine ( không trực tuyến ) và online ( trực tuyến )

Thiết bị giám sát hành trình offline ( kiểu hộp đen )

Thiết bị thu thập các thông tin nói trên với chu kỳ lấy mẫu mặc định là10s ( hoặc có thể lựa chọn từ 1 đến 300s ) và lưu trữ được 6144 lần ( hoặc cóthể mở rộng đến 12288 lần ) Sau khi kết thúc hành trình các thông tin nàyđược đổ ra máy tính qua cổng nối tiếp theo chuẩn RS232 hoặc thiết bị truyền

vô tuyến ( trong phạm vi 50 - 60 m ) nhờ phần mềm đi kèm Nhờ đó người sửdụng có thể dễ dàng ra lệnh đọc dữ liệu, phân tích các trạng thái hoạt động của

xe trong suốt hành trình, ghi lại những trạng thái vượt quá mức độ cho phép.Ngoài ra phần mềm này còn có một số chức năng khác tạo sự thân thiện vớingười sử dụng như cho phép đặt lại các định dạng thời gian lưu xoá các thôngtin không cần thiết ,…

Thiết bị giám sát hành trình online ( trực tuyến )

Thiết bị cho phép truyền các thông tin về vị trí và tốc độ xe trực tiếp về trungtâm điều hành thông qua mạng điện thoại di động, thiết bị có hai phần : trên xe

và trung tâm Thông tin được truyền dưới dạng tin nhắn SMS, CSD, hoặcchuyển mạch gói GPRS

CSD ( Curcuit Switch Data ) cho phép một moden điện thoại di động kếtnối với moden khác theo kênh được quy định ở mạng di động, sau khi kết nối

có thể trao đổi dữ liệu theo phương pháp điểm - điểm, GPRS là một chuẩntruyền dữ iệu thông qua mạng di động theo một phương pháp khác với CSD.Bản chất của phương pháp sử dụng chuẩn GPRS là thực hiện một kết nối vàointernet và dữ liệu truyền đi từ thuê bao di động là gói dữ liệu dạngUPD/TCP/IP Tốc độ truyền dữ liệu tối đa là 171,2 kpbs, tức là nhanh gấp 10lần so với phương pháp CSD

Chế độ truyền là liên tục với chu kỳ đặt trước hoặc theo chỉ thị từ trung tâm Tại trung tâm người quản lý có thể giám sát hành trình xe trực tiếp trên bản đồsố

Trang 5

Các thiết bị giám sát hành trình đã được nắp thử nghiệm trên xe buyt củaTổng cơng ty vận tải Hà Nội và được đánh giá là tốt, đạt yêu cầu đề ra Tồn bộ

dữ liệu cĩ thể hiển thị trên bản đồ số GIS tiện cho việc quản lý giám sát Thiếtlập kênh thơng tin trực tuyến giữa trung tâm và từng xe trên tuyến cho phépkiểm tra trực tiếp tốc độ, vị trí tại của xe Nhờ kênh thơng tin này cĩ thể thơngbáo hai chiều giữa lái xe và trung tâm trong những trường hợp cần thiết nhưthơng báo hỏng hĩc của xe, tắc đường trên tuyến

Kết Luận :

Trên đây trình bầy một số giải pháp đo lường các thơng tin cần thiết về hệthống giao thơng vận tải Những giải pháp này cĩ ưu điểm chính là đáp ứngđược yêu cầu đo các thơng tin cần thiết về trạng thái giao thơng cĩ tính đặc thùtrong nước phục vụ bài tốn quản lý , điều hành và điều khiển giao thơng

Ch¬ng II : Hä vi ®iỊu khiĨn 2.1 Vi ®iỊu khiĨn 89C52

2.1.1 VI ĐIỀU KHIỂN HỌ MCS-51

MCS-51TM là họ vi điều khiển

do hãng INTEL sản xuất vào

đầu những năm 80 và ngày nay

đã trở thành một chuẩn trong

công nghiệp Bắt đầu tõ IC tiêu

biểu là 8051 đã cho thấy khả

năng thích hợp với những ứng

dụng mang tính điều khiển Việc xử lí trên byte và cácphép toán số học ở cấu trúc dữ liệu nhỏ được thựchiện bằng nhiều chế độ truy xuất dữ liệu nhanh trênRAM nội Tập lệnh cung cấp một bản tiện dụng củanhững lệnh số học 8 bit gồm cả lệnh nhân và lệnhchia Nó cung cấp những hỗ trợ mở rộng on-chip dùngcho những biến 1 bit như là kiểu dữ liệu riêng chophép quản lí và kiểm tra bit trực tiếp trong điều khiểnvà những hệ thống logic đòi hỏi xử lý luận lý Sau

Trang 6

8952 8 KB Flash ROM 256 Bytes 3

2.1.2 VI ĐIỀU KHIỂN AT89C52

nên có rất nhiều hãng sản xuất ra nó, điển hình làATMEL Corporation Hãng này đã kết hợp rất nhiều tínhnăng dựa trên nền tảng kỹ thuật của mình để tạo ra

mẽ hơn

AT89C52 là một vi điều khiển 8 bit do ATMEL sản xuất,chế tạo theo công nghệ CMOS, có chất lượng cao, côngsuất thấp với 8 KB Flash (flash programmable and erasableread only memory) Thiết bị này được chế tạo bằngcách sử dụng kỹ thuật bộ nhớ không bốc hơi mậtđộ cao của ATMEL và tương thích với chuẩn công

on-chip cho phép bộ nhớ lập trình được lập trình trong hệthống bởi một lập trình viên bình thường Bằng cáchnối 1 CPU 8 bit với một Flash trên một chip đơn, AT89C52là một vi điều khiển mạnh (có công suất lớn), cungcấp một sự linh động cao và giải pháp về giá cảđối với nhiều ứng dụng vi điều khiển

Các đặc điểm chủ yếu của AT89C52 :

 Bộ nhớ chương trình 8K Byte thuộc loại Flash Memory

 Độ bền : 1000 lần ghi/xóa

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

 3 chế độ khóa bộ nhớ

 256 x 8-Bit RAM nội

 32 đường I/O lập trình được (4 port)

 3 timer/counter 16-bit

 8 nguồn ngắt

 Chế độ hạ nguồn và chế độ lười tiêu tốn côngsuất thấp

Trang 7

2.1.2.1 Cấu tạo chân

Tùy theo khả năng (về kinh tế, kỹ thuật, …) mà cácnhà sản xuất các sản phẩm ứng dụng có thể chọn

một trong 3 kiểu chân do ATMEL đưa ra

Trang 8

2.1.2.2 Sơ đồ khối

2.1.2.3 Mô tả chức năng của các chân

Vcc : ¸p nguồn.

GND : §ất.

Port 0 : Là một cỉng vµo ra I/O 8-bit hai chiều, cực

máng hở Khi xuất ra, mỗi chân cđa cỉng có thể ®a 8đầu vào TTL Nếu ghi các mức 1 ra các chân port thìcác chân này có thể dùng như các đầu vào trởkháng cao

Port 0 cũng có thể được cấu hình thành một busmultiplex giữa địa chỉ thấp và dữ liệu khi truy cậpchương trình hay dữ liệu từ bên ngoài Trong chế độnày, port 0 có điện trở kÐo ë bªn trong

Trang 9

Port 0 cũng nhận các byte mã chương trình khi lập trìnhFlash và xuất ra mã chương trình khi kiểm tra, khi đócần có điện trở kÐo bên ngoài

Port 1 : Là một

port I/O

8 - bit hai chiều có

pullup nội Đầu ra port 1

có thể l¸ùi 4 đầu vào

TTL Khi biết các mức 1 ra các chân port thì chúng đượckéo lên do có điện trở nội và có thể dùng làmđầu vào Khi vai trò là cổng nhập, những chân củaport 1 bị kéo xuống thấp sẽ đổ dòng vì có nội trởkéo lên

Hơn nữa, P1.0 và P1.1 có thể được dùng như là đầuvào bộ đếm timer/counter 2 bên ngoài (P1.0/T2) vàxung kích (P1.1/T2EX)

Port 1 cũng nhận những byte địa chỉ thấp trong khi lậptrình Flash và trong khi

kiểm tra Flash

Port 2 : Là một port I/O

8-bit hai chiều có pullup

nội, ®ầu ra port 2 có

thể lái 4 đầu vào TTL Khi biết các mức 1 ra cácchân port thì chúng được kéo lên do có điện trở nộivà có thể dùng làm đầu vào Khi vai trò là cổngnhập, những chân của port 2 bị kéo xuống thấp sẽđổ dòng vì có nội trở kéo lên

Port 2 phát byte địa chỉ cao trong khi nhận lệnh từbộ nhớ chương trình ngoài và trong lúc truy xuất đếnbộ nhớ dữ liệu ngoài mà có sử dụng địa chỉ 16 bit(MOVX A, @DPTR) Trong ứng dụng này nó dùng điệntrở nội kéo lên mạnh khi xuất 1ra cỉng Port 2 Khi truyxuất bộ nhớ dữ liệu ngoài dùng địa chỉ 8 bit, port 2sẽ phát nội dung của thanh ghi P2

Port 2 cũng nhận byte địa chỉ cao trong lúc lập trìnhFlash và trong lúc kiểm tra Flash

Port 3 : Là một port I/O 8-bit hai chiều có pullup nội,

®ầu ra port 3 có 4 đầu vào TTL Khi ®a các mức 1 racác chân port thì chúng được kéo lên do có điện trởnội và có thể dùng làm đầu vào Khi vai trò là

P1

1 T2EXcapture/reload(xung kíchcho

Timer/Counter 2 và điềukhiển trực tiếp

Cha

ân Chức năng thay thế

P1.0 T2 (đầu vào đếm cho

Timer/Counter 2)

Trang 10

cổng nhập, những chân của port 3 bị kéo xuống thấpsẽ đổ dòng vì có nội trở kéo lên.

Port 3 cũng có những chức năng của họ MSC-51 được liệt kê ở bảng sau:

BIT TÊN ĐỊA CHỈ

BIT CHỨC NĂNG THAY THẾ

P3.0 RXD B0H Nhận dừ liệu cho port nối

tiếp P3.1 TXD B1H Truyền dừ liệu cho port nối

tiếp P3.2 INT0 B2H Ngắt ngoài 0

P3.3 INT1 B3H Ngắt ngoài 1

P3.4 T0 B4H Ngõ vào từ bên ngoài cho

timer/counter 0 P3.5 T1 B5H Ngõ vào từ bên ngoài cho

timer/counter 1 P3.6 WR B6H Xung ghi bộ nhớ dữ liệu

ngoài P3.7 RD B7H Xung đọc bộ nhớ dữ liệu

ngoài

Port 3 cũng nhận vài tín hiệu điều khiển trong lúclập trình Flash và trong lúc kiểm tra Flash

RST : là ngõ vào Reset Khi ngõ này được đưa lên

cao (trong ít nhất hai chu kì máy), các thanh ghi bên trongAT89C52 được tải những giá trị thích hợp để khởiđộng hệ thống

ALE/PROG (Address Latch Enable) : ALE là xung

xuất cho phép chốt byte địa chỉ thấp khi truy cập bộnhớ ngoài, chân này còn là ngõ vào của xung lậptrình (PROG) khi lập trình Flash

Trong hoạt động bình thường, ALE được phát xungvới tần số 1/6 tần số dao động on-chip và có thểđược dùng như xung thời gian chuẩn bên ngoài Tuynhiên, cần chú ý là một xung ALE sẽ bị mất khi truycập bộ nhớ ngoài

Có thể hủy bỏ chức năng của ALE bằng cáchset bit 0 của thanh ghi ở vị trí 8EH Một khi bit này đượcset, ALE chỉ tích cực khi có lệnh MOVX hoặc MOVC Nếukhông có các lệnh này thì ALE ở mức cao Việc set bit

0 của thanh ghi ở vị trí 8EH không làm ảnh hưởng đến

vi điều khiển khi truy cập bộ nhớ ngoài

Trang 11

PSEN (Program Store Enable) : PSEN là xung strobe

báo hiệu việc đọc bộ nhớ chương trình ngoài, PSEN tíchcực hai lần (mức thấp) mỗi chu kì máy, ngoại trừ haixung PSEN bị mất khi truy xuất dữ liệu ngoài Khi thihành chương trình trong RAM nội, PSEN sẽ ở mức thụđộng (mức cao)

EA/VPP (External Access) : EA là ngõ vào để cho

phép truy xuất bộ nhớ chương trình từ bên ngoài khiđược nối với GND Khi EA được treo lên nguồn VCC,chương trình sẽ được thực thi trong ROM nội, chân nàycũng nhận điện áp 12v (VPP) trong khi lập trình Flash

XTAL1 : Đầu vào của bộ khuếch đại dao động

đảo và cũng là đầu vào đến mạch tạo xung clocknội

XTAL2 : Đầu ra của bộ khuếch đại dao động đảo 2.1.2.4 Các thanh ghi chức năng (SFR-Special Funtion Reisters)

AT89C52 có 26 thanh ghi chức năng được thiết kế nhưlà một thành phần của RAM on-chip Do đó mỗi thanhghi có một địa chỉ của nó, nằm trong vùng từ 80Hđến FFH Tuy nhiên, vùng này cũng là vùng bộ nhớnên việc truy cập các thanh ghi này thông qua cáclệnh dùng định vị trực tiếp khác với việc truy cậpvùng nhớ dùng định vị gián tiếp

Trang 12

Bảng vị trí các thanh ghi chức năng :

Chú ý : Là không phải tất cả các địa chỉ đềucó các thanh ghi, những địa chỉ không có thanh ghicó thể không có trên chip, ®ọc những địa chỉ nàysẽ có những giá trị ngẫu nhiên và ghi những giátriï này có những tác động không xác định trước

Phần mềm của người dùng không nên ghi

những giá trị 1 đến các vị trí trªn, bởi vì chúng

có thể được dùng trong tương lai Trong trường hợp

đó, giá trị của các bit luôn là 0 Ngoài những

thanh ghi tương tự 8051, AT89C52 có thêm :

TF2 Cờ tràn Timer 2, set khi Timer 2 tràn và phải được

clear bằng phần mềm TF2 sẽ không set khi RCLK =

Trang 13

1 hoặc TCLK = 1.

EXF2 Cờ ngoài của Timer 2, set khi xảy ra capture hoặc

reload do T2EX xuống thấp và EXEN2 = 1 Nếu ngắt Timer 2 được kích hoạt, EXF2 = 1 sẽ làm CPU trỏ đến ISR của Timer 2 EXF2 phải được xóa bằng phần mềm EXF2 không gây nên ngắt trong chế độ đếm lên/xuống (DCEN = 1).

RCLK Kích hoạt xung clock bộ thu Khi set, các xung tràn

Timer 2 sẽ là xung clock cho bộ thu port nối tiếp trong mode 1 và 3 RCLK = 0 thì bộ thu port nối tiếp sẽ dùng các xung tràn của Timer 1.

TCLK Kích hoạt xung clock bộ phát Khi set, các xung tràn

Timer 2 sẽ là xung clock cho bộ phát port nối tiếp trong mode 1 và 3 TCLK = 0 thì bộ phát port nối tiếp sẽ dùng các xung tràn của Timer 1.

EXEN2 Kích hoạt bên ngoài Khi set, cho phép capture hay

reload khi T2EX xuống thấp (nếu Timer 2 không sử dụng cho port nối tiếp) EXEN2 = 0 làm cho Timer 2 bỏ qua các sự kiện trên T2EX.

TR2 Khởi động/Dừng Timer 2 TR2 = 1 làm khởi động

Timer 2.

C/T2 Bit lựa chọn timer hay counter C/T2 = 0 : timer C/T2 = 1

: counter đếm sự kiện bên ngoài (kích cạnh xuống) CP/RL2 Lựa chọn capture hay reload CP/RL2 = 1: capture xảy

ra khi T2EX xuống thấp nếu EXEN2 = 1 CP/RL2 = 0 : reload xảy ra khi Timer 2 tràn hoặc khi T2EX xuống thấp nếu EXEN2 = 1 Nếu TCLK hay RCLK = 1, bit này

bị bỏ qua và timer bị ép vào chế độ reload khi Timer 2 tràn.

Các thanh ghi Timer 2 : Các bit điều khiển và trạng

thái chứa trong thanh ghi T2CON và T2MOD cho Timer 2.Cặp thanh ghi RCAP2H và RCAP2L là những thanh ghiCapture/Reload trong chế độ capture 16 bit hay chế độauto-reload 16 bit

Các thanh ghi ngắt : Tập các bit riêng lẻ cho phép

ngắt chứa trong thanh ghi IE Thiết lập hai mức ưu tiêncho 6 nguồn ngắt bằng cách set các bit thanh ghi IP

Trang 14

2.1.2.5 Bộ nhớ dữ liệu

AT89C52 có 256 byte bộ nhớ RAM on-chip Trong đó, 128 byte trên có cùng địa chỉ với vùng thanh ghi chức năng nhưng có cấu tạo vật lý riêng biệt

Khi một lệnh truy cập một vị trí nội có địa chỉtrên 7FH, chế độ địa chỉ nó sử dụng sẽ báo choCPU biết vùng địa chỉ nào nó cần truy cập : RAM haySFR Các lệnh dùng địa chỉ trực tiếp sẽ truy cậpvùng SFR Ví dụ như lệnh sau đây sẽ truy cập SFR ởđịa chỉ 0A0H (port 2)

Lệnh dùng địa chỉ gián tiếp sẽ truy cập 128 bytetrên của RAM Ví dụ như cũng truy cập địa chỉ 0A0Hnhưng gián tiếp thông qua R0

Chú ý rằng các tác vụ của stack vốn đã sử dụng địa chỉ gián tiếp nên vùng 128 byte cao của RAM rất tiện dụng để làm vùng stack.

II.1.2.6 Đặc tính bộ dao động

XTAL1 là đầu vào và

đầu ra tương ứng của bộ

khuếch đại đảo được dùng

làm bộ dao động nội

on-chip Có thể dùng thạch

anh hay bộ cộng hưởng

ceramic đều được

Để lái vi điều khiển từ

nguồn xung clock bên

ngoài, XTAL2 phải được để

trống trong khi XTAL1 nối

đến nguồn lái.Không có

Trang 15

yêu cầu gì về duty cycle nhưng phải chú ý đến thờigian tối đa và tối thiểu của mức điện áp cao cũngnhư mức điện áp thấp.

2.1.2.7 Chế độ kh«ng sư dơng.

Trong chế độ kh«ng sư dơng, CPU rơi vào trạng thái

“ngủ” trong khi tất cả thiết bị ngoại vi vẫn còn tíchcực Chế độ này được tạo ra bằng phần mềm Nộidung của RAM on-chip và giá trị của các SFR vẫnđược giữ nguyên Kết thúc chế độ kh«ng sư dơngbằng cách kích hoạt một ngắt hoặc reset phần cứng

Chú rằng khi kết thúc chế độ kh«ng sư dơngbằng cách reset phần cứng thì thông thường vi điềukhiển sẽ gọi lại chương trình mà nó vừa thoát, chođến hai chu kỳ máy trước khi thuật toán reset chiếmquyền điều khiển Phần cứng cấm truy cập RAM nộitrong trường hợp này nhưng không cấm truy cập đếncác chân port, do đó có thể xảy ra những trườnghợp không mong muốn Để loại bỏ trường hợp này,lệnh ngay sau lệnh gọi chế độ kh«ng sư dơng khôngnên là lệnh ghi port hay ghi bộ nhớ ngoài

2.1.2.8 Chế độ hạ nguồn.

Trong chế độ hạ nguồn, bộ dao động ngừng vàlệnh gọi hạ nguồn là lệnh cuối cùng được thực thi.RAM on-chip và SFR duy trì giá trị của nó cho đến khikết thúc chế độ hạ nguồn

Kết thúc chế độ hạ nguồn chỉ bằng một cáchduy nhất : Reset phần cứng Reset sẽ tạo lại giá trịcho SFR nhưng không thay đổi nội dung của RAM on-chip.Không nên reset trước khi Vcc phục hồi mức điện ápthông thường của nó và phải giữ đủ lâu để bộdao động phục hồi và ổn định

2.1.2.9 Trạng thái của một số chân trong chế độ kh«ng sư dơng và chế độ hạ nguồn

Trang 16

2.1.2.10 Các thông số kỹ thuật

Trang 21

Ch¬ng III: Ng«n ng÷ lËp tr×nh

Trang 22

3.1 vi điều khiển at89c52.

Chơng trình lập trình cho 89C52 đợc viết trên ngônngữ Assemble Phần mềm đợc sử dụng là 8051 IDE Đây làphần mềm đợc sử dụng để lập trình cho họ vi điều khiển

8051 và 8052 của hãng InTel

Bộ vi điều khiển AT 89C51 và AT89C52 là phiên bản của

8051 Phiên bản này rất thích hợp cho các ứng dụng nhanh và

do hãng Atmel Corporatoin sản xuất

 djnz thanh ghi , nhãn  , trong đó thanh ghi giảm đi một

đơn vị và nếu khác 0 thì lệnh nhảy đến địa chỉ đíchxác định bởi nhãn Trớc khi vòng lặp bắt đầu , số lần lặp sẽ

đợc nạp vào thanh ghi bộ đếm

* Lệnh nhảy có điều kiện :

+ Lệnh JZ ( Nhảy nếu A = 0 )

ở lệnh này nội dung của thanh ghi A đợc kiểm tra.Nếu A = 0 thì chơng trình nhảy đến địa chỉ đích

+ Lệnh JNC ( Nhảy nếu cờ nhớ CY = 0 )

ở lệnh này, bít cờ nhớ của thanh ghi cờ PSW đợc dùng

kiểm tra cờ nhớ xem có bật không ( CY = 1 ) Nếu không đợcbật thì CPU sẽ thực hiện lệch từ địa chỉ của nhãn Nếu cờ

CY = 1 thì chơng trình không thực hiện lệnh nhảy mà thựchiện lệnh kế tiếp sau lệnh JNC

Các lệnh nhảy đều là các lệnh nhảy ngắn có nghĩa là

địa chỉ của đích đều phải nằm trong khoảng – 127 đến +

127 Byte tức là đã chứa đủ trong bộ đếm chơng trình PC.Bảng lệnh nhảy có điều kiện

Trang 23

CJNZ re, # data Nhảy nếu byte  data

* Lệnh nhảy không có điều kiện.

Lệnh nhảy không điều kiện là lệnh nhảy trong đó

điều kiện đợc truyền không có điều kiện đến địa chỉ

đích Bộ vi điều khiển 89C52 có hai lệnh nhảy không điềukiện đó là : nhảy dài LJMP và nhảy ngắn SJMP

+ Lệnh nhảy dài LJMP ( Long Jump )

Lệnh nhảy dài là lệnh 3 byte, trong đó byte đầu tiên

là mã lệnh, hai byte còn lại là địa chỉ 16 bit của đích Địachỉ đích 2 byte cho phép lệnh có thể nhảy đến bất kỳ vịtrí nhớ nào trong không gian nhớ 0000H - FFFFH

+ Lệnh nhảy ngắn ( Short Jump )

Lệnh nhảy ngắn dài 2 byte, byte đầu tiên là mã lệnh,byte thứ hai là địa chỉ đích tơng đối Địa chỉ tơng đối cóphạm vi 00H - FFH , đợc chia thành địa chỉ nhảy tiến vànhảy lùi Dù lệnh nhảy tiến hay nhảy lùi thì đối với mọi lệnhnhảy ngắn bất kỳ, địa chỉ đích không đợc ngoài vùng –

127 đến +127

3.1.2 Lệnh gọi ( call )

Một lệnh chuyển điều khiển khác là lệnh CALL dùng

để gọi chơng trình con Chơng trình con thờng đợc sửdụng để thực thi các công việc đợc lặp lại thờng xuyên Nhờcách tổ chức chơng trình con mà chơng trình chính vừatiết kiệm không gian bộ nhớ vừa trở nên có cấu trúc

+ Lệnh gọi dài LCALL ( Long Call )

Đây là lệnh dài 3 byte Byte đầu tiên là mã lệnh, cònhai byte sau là địa chỉ của chơng trình đích Nh vậy,LCALL có thể dùng để gọi chơng trình con ở bất kỳ chỗ nàotrong không gian bộ nhớ Sau khi thực hiện xong chơng trìnhcon, để vi điều khiển biết đợc chỗ quay về thì địa chỉ

đứng ngay sau lệnh gọi LCALL sẽ tự động cất vào ngăn xếp.Khi chơng trình con đợc gọi, điều khiển đợc chuyển đếnchơng trình con, lúc này bộ xử lý cất bộ đếm chơng trình

Trang 24

PC vào ngăn xếp và bắt đầu nạp lệnh rồi thực hiện lệnh củachơng trình con Sau khi thực hiện xong, lệnh RET sẽ chuyển

về chơng trình vừa gọi nó Chơng trình con luôn kết thúcbằng lệnh RET

+ Lệnh gọi tuyệt đối ACALL ( Absolute call )

Lệnh ACALL là lệnh 2 byte, khác với lệnh LCALL dài 3byte Do ACALL chỉ có 2 byte nên địa chỉ đích của chơngtrình còn phải nằm trong khoảng 2 Kbyte địa chỉ và chỉ có

11 bit của 2 byte đợc dùng để xác định địa chỉ đích Dovậy, lệnh LCALL và lệnh ACALL khác nhau ở chỗ: lệnh LCALL

có thể nằm bất kỳ chỗ nào của bộ nhớ 64 Kbyte, còn lệnhACALL nằm trong khoảng 2 Kbyte

3.1.3 Lệnh xử lý BIT.

Các lệnh xử lý bit.

Setb bit Thiết lập bit ( bit = 1 )

CLR bit Xoá bit về 0 ( bit = 0 )

CPL bit Bù bit ( bit = NOT bit )

JB bit, đích Nhảy về đích nếu bit = 1

JNB bit , đích Nhảy về đích nếu bit = 0

JBC bit, đích Nhảy về đích nếu bit = 1và sau đó

xoá bit

Bộ điều khiển có bốn cổng I/O 8 bit là P0, P1, P2, P3.

Chúng ta có thể truy cập toàn bộ 8 bit hoặc bit bất kỳ màkhông làm thay đổi các bit còn lại Nếu muốn truy cập từngbit của cổng, có thể sử dụng lệnh  SETB X Y với X là số củacổng, Y là vị trí bit từ 0 đến 7

đến khi đạt tới giới hạn FFFFH Khi đó bộ định thời sẽ quay

Trang 25

vòng từ FFFFH về 0000H và bật cờ bộ định thời TF ( TimerFlag ) lên mức cao Cờ bộ định thời có thể kiểm tra đợc Khi

cờ bộ định thời đợc thiết lập, muốn dừng bộ định thời bằngphần mềm có thể sử dụng lệnh CLR TF0 cho Timer 0 Mỗi bộ

định thời đều có cờ nhớ TF riêng Bộ định thời sau khi đạtgiá trị giới hạn thì thực hiện quay vòng về 0 Để lặp lại quátrình đếm của bộ định thời, các thanh ghi TH và TL phải đ-

ợc nạp lại giá trị ban đầu và cờ TF cần đợc xoá về 0

Cách tạo giá trị cần nạp vào bộ định thời :

+ Tần số thạch anh chọn là : 12MHz  T = 1s

+ Chia thời gian trễ cho 1s

+ Tính 65536 - n, n là giá trị nhận đợc ở bớc trên

+ Chuyển kết quả sang dạng số Hexa có dạng yy xx ,

đây là giá trị Hexa ban đầu cần nạp vào thanh ghi bộ địnhthời

+ Đặt TL = xx , TH = yy

Chơng IV.Thiết kế phần cứng, viết chơng trình.

4.1 Thiết kế phần cứng.

Để đạt đợc yêu cầu thiết kế, ta xây dựng hai mô hình

+ Trạm giao thông ngã t có đờng tàu

+ Trạm giao thông kiểu mới và hiện nay đợc sử dụngnhiều

Khối mạch lực

Khối hiện thị thời gian thực

Khối

đèn tín hiệu

Trang 26

* KHỐI XỬ LÝ TRUNG TÂM

Hinh 4.1Đóng vai trò bộ điều khiển trung tâm, chịu tráchnhiệm về tất cả các hoạt động của mạch Boardmạch cung cấp một công cụ để có thể điều khiểntheo bất cứ phương pháp nào, miễn là có giải thuậtvà viết chương trình nạp cho AT89C52

Đứng ở trung tâm là vi điều khiển AT89C52 Sởõ dĩdùng AT89C52 mà không dùng các IC khác trong họ

hoạt động điều khiển như : Một timer cung cấp xungđể tạo baudrate cho truyền thông nối tiếp RS-232,một timer đếm thời gian thực, một timer tạo cáckhoảng thời gian trễ cho lập trình

 Chân EA được nối đến một switch và điện trở4.7KW cho phép tùy chọn nối lên +5V hay nối xuốngGND, điều này tương ứng với việc AT89C52 sẽ thực thichương trình bên trong bộ nhớ nội hay chương trình bênngoài RAM

 Bộ dao động gồm thạch anh X1 và 2 tụ C1, C2được nối đến chân XTAL1 và XTAL2 Xung clock cho cáchoạt động bên trong của AT89C52 sẽ có tần sốbằng tần số của thạch anh chia cho 12 Thông thường,người ta hay dùng thạch anh 12MHz để tần số xungclock là 1MHz, tương ứng với một chu kỳ máy lµ 1s

Trang 27

neõn raỏt deó taùo moọt timer thụứi gian thửùc chớnh xaực.Hoaùt ủoọng taùo baudrate coự theồ giaỷi thớch nhử sau : ủoỏivụựi hoù MCS-51TM, ngửụứi ta phaỷi duứng moọt timer(thửụứng laứ timer1) vaứ toỏc ủoọ traứn cuỷa noự seừ taùo rabaudrate Khi ủoự, ta coự coõng thửực:

BAUDRATE = TOÁC ẹOÄ TRAỉN TIMER1 á 12

Vớ duù, giaỷ sửỷ ta muoỏn coự toỏc ủoọ 1200 baud thỡtớnh nhử sau :

1200 = toỏc ủoọ traứn timer1 á 12

 toỏc ủoọ traứn timer1 = 1200x32 = 38,4KHzNeỏu thaùch anh coự taàn soỏ 12MHz thỡ timer1 ủửụùcclock vụựi taàn soỏ 1MHz hay 1000KHz ẹeồ coự toỏc ủoọtraứn laứ 38,4KHz thỡ timer1 phaỷi traứn sau moói 1000 á38,4 = 26,04 xung clock (laứm troứn laứ 26) Do timer ủeỏmleõn vaứ seừ traứn khi chuyeồn tửứ FFh sang 00h, caàn phaỷinaùp soỏ - 26 vaứo timer vaứ theỏ laứ baudrate ủửụùc taùo ra.Nhử ta ủaừ thaỏy, trong pheựp tớnh treõn coự laứm troứn,ủieàu naứy daón ủeỏn sai soỏ trong baudrate Tửứ ủoự tacaàn phaỷi tỡm thaùch anh coự taàn soỏ sao cho baudratekhoõng coự sai soỏ ủeồ vieọc truyeàn thoõng ủaỷm baỷochớnh xaực Qua caực pheựp tớnh thỡ thaùch anh 11,059MHzcho baudrate raỏt chớnh xaực Baỷng sau seừ cho thaỏy sửù sosaựnh sai soỏ khi duứng thaùch anh 12MHz vaứ thaùch anh11,059MHz trong moọt soỏ baudrate thoõng duùng :

(Neỏu SMOD = 1 thỡ baudrate = toỏc ủoọ traứn timer1 á

16)

 Maùch reset goàm C3, R2 cho taực dụngù Auto-reset(reset khi mụựi caỏp nguoàn) Ngoaứi ra coứn coự R1 vaứSW1 cho taực dụng manual - reset (reset baống tay khiaỏn phớm SW1 baỏt cửự khi naứo)

 Chaõn P3.2 vaứ P3.3 laứ ngoừ ra cuỷa Port3 cuừng ủoàngthụứi laứ ngoừ vaứo cuỷa ngaột ngoaứi Trong thieỏt keỏkhoõng duứng ủeỏn neõn boỷ troỏng

 Chân ở các cổng Port 1, Port 0 dùng làm đầu ra điềukhiển sự đóng mở của đèn

 Các chân ở cổng Port 2 dùng để hiển thị cho bộ đếm

* Khối hiển thị a

bcd

e

Led 1 Led 2

Ngày đăng: 09/04/2019, 20:58

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