Bài tập lớn Ngoại vi ghép nối Sử dụng vi điều khiển AT89S52 thiết kế hệ thống đèn giao thông ngã tư

0
114
Bài tập lớn Ngoại vi ghép nối Sử dụng vi điều khiển AT89S52 thiết kế hệ thống đèn giao thông ngã tư

Bài tập lớn Ngoại vi ghép nối Sử dụng vi điều khiển AT89S52 thiết kế hệ thống đèn giao thông ngã tư

Mọi ý kiến đóng góp xin gửi vào hòm thư: hotroontap@gmail.com

Tổng hợp các đề cương đại học hiện có của Đại Học Hàng HảiĐề Cương VIMARU 

Kéo xuống để Tải ngay đề cương bản PDF đầy đủ: Sau “mục lục” và “bản xem trước”

(Nếu là đề cương nhiều công thức nên mọi người nên tải về để xem tránh mất công thức)

Đề cương liên quan:BÀI TẬP LỚN ĐIỆN TỬ CÔNG SUẤT 1


Tải ngay đề cương bản PDF tại đây: Bài tập lớn Ngoại vi ghép nối Sử dụng vi điều khiển AT89S52 thiết kế hệ thống đèn giao thông ngã tư

LỜI NÓI ĐẦU

Trong những năm gần đây trên thế giới cùng với sự phát triển mạnh mẽ của ngành công nghiệp chế tạo linh kiện bán dẫn và vi mạch tổng hợp, một hướng phát triển mới của các vi xử lý đã hình thành đó là các vi điều khiển. Với nhiều ưu điểm, vi điều khiển đã được sử dụng rộng rãi trên nhiều lĩnh vực khác nhau. Bằng cách áp dụng vi điều khiển vào trong quá trình sản xuất và xử lý, vi điều khiển đã thực sự thể hiện được ưu thế của mình so với các thiết bị điều khiển thông thường. Vì nhiều những lý do trên, trong trường Đại Học, Cao Đẳng, vi xử lý thực sự trở thành một môn học hết sức quan trọng, vi xử lý 8051 gần như là một môn học sử dụng để trang bị cho chúng ta những kiến thức cơ bản về vi xử lý, từ đó mở rộng ra các loại vi xử lý khác có cấu trúc phức tạp hơn như AVR, PIC, …

Qua đồ án này, đã giúp chúng em hình dung được thực tế vi xử lý áp dụng như thế nào trong cuộc sống hiện đại, cụ thể chính là hệ thống đèn giao thông dùng vi điều khiển AT89S52. Đồ án gồm 4 chương:

Chương I: Tổng quan về đèn giao thông, giới thiệu khái quát đề tài, các thành phần chính của hệ thống đèn giao thông, nguyên lý hoạt động, ngôn ngữ sử dụng và phần mềm mô phỏng.

Chương II: Khảo sát vi đều khiển AT89S52.

Chương III: Thiết kế phần cứng.

Chương IV: Thiết kế phần mềm.

Nhóm chúng em xin chân thành cảm ơn sự giúp đỡ, chỉ bảo tận tình của Lê Thị Minh Tân trong suốt thời gian chúng em thực hiện đồ án này.

Thái Nguyên, tháng 10 năm 2012

Nhóm sinh viên thực hiện:           Đinh Trí Lợi

                                                     Đặng Kim Thắng

                                                     Nguyễn Khắc Hậu

CHƯƠNG I : GIỚI THIỆU VỀ ĐỀ TÀI

I.1: Cơ sở lựa chọn đề tài.

a. Đặt Vấn Đề (ứng dụng):

Với mỗi một dân tộc, để kinh tế phát triển thì sự phát triển về khoa hoc, kỹ thuật là thật sự cần thiết và đặc biệt quan trọng. Với sự phát triển mạnh mẽ của kinh tế như hiện nay, giao thông đang là một bài toán khó đòi hỏi nhiều ngành, nhiều cấp phải quan tâm, và tìm ra các hưóng giải quyết. Để làm giảm bớt những khó khăn đó cũng như làm cho việc lưu thông trên các tuyến đường được thông thoáng và giảm thiểu tại nạn, thì việc đặt các cột đèn tại các ngã và thời gian quy định cho phép đi và cấm đi của các tuyến là đặc biệt quan trọng.

Đối với một ngã tư, tại mỗi thời điểm trong ngày thì sự lưu thông ở mỗi ngã tư la rất quan trọng. Vì thế, một chương trình điều khiển đèn giao thông để ngã tư được lưu thông một cách tốt nhất là cần thiết và hết sức quan trọng

Với những nhận định như thế, chúng em quyết định chọn đề tài “giao thông tại ngã tư” này.vì vậy Nhóm chúng em tiến hành thực hiện đề tài này

Hệ thống điều khiển đèn tín hiệu giao thông tại ngã tư đường được thiết kế trên cơ sở sử dụng on-chip 89S52.Vi điều khiển được lập trình để điều khiển 2 công việc chính :

1-Chuyển mức của các đèn tín hiệu trên làn đường

Việc chuyển mức này được thực hiện bằng 4 bit truyền tín hiệu :

P2.0 : đèn đỏ

P2.1 : đèn xanh đi thẳng

P2.2 : đèn xanh rẽ trái

P2.3 : đèn vàng

Các đèn hiển thị là các LED đơn nối chung nhau anot .Đèn sáng sẽ tương ứng với mức logic thấp .Chuyển mức giữa các đèn sẽ xen kẽ những bộ đếm kết thúc mỗi sẽ tương ứng thiết lập lại các bit để hiển thị các trạng thái đèn tiếp theo.

Cụ thể thời gian hiển thị như sau :

Đèn đỏ : 30 s

Đèn xanh đi thẳng : 50s

Đèn xanh rẽ trái : 40s ( hai đèn xanh kết thúc cùng lúc )

Đèn vàng : 5s

2-Hiển thị bộ đếm tương ứng với mỗi trạng thái đèn :

Sử dụng số có 2 chữ số để đếm vì thế dùng 2 đèn LED :

LED 1 để hiển thi chữ số hàng chục sẽ được nối trực tiếp với 8 bit của cổng P1

LED 2 để hiển thị chữ số hàng đơn vị sẽ được nối trực tiếp với 8 bit của cổng P0.

 

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

II.1: 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ử 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, điện và điện tử 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, đầu đọc laser, điện thọai, lò vi-ba … Trong hệ thống sản xuất tự động, bộ vi điều khiển được sử 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.

II.2: Lịch sử phát triển của các loại  vì điều khiển.

Bộ vi điều khiển thực ra, là một loại vi xử lí trong tập hợp các bộ vi xử lý nói chung. Bộ vi điều khiển được phát triển từ bộ vi xử lí, từ những năm 70 do sự phát triển và hoàn thiện về công nghệ vi điện tử dựa trên kỹ thuật MOS (Metal-Oxide-Semiconductor) , mức độ tích hợp của các linh kiện bán dẫn trong một chip ngày càng cao.

Năm 1971 xuất hiện bộ vi xử lí 4 bit loại TMS1000 do công ty texas Instruments vừa là nơi phát minh vừa là nhà sản xuất. Nhìn tổng thể thì bộ vi xử lí chỉ có chứa trên một chip những chức năng cần thiết để xử lí chương trình theo một trình tự, còn tất cả bộ phận phụ trợ khác cần thiết như : bộ  nhớ dữ liệu , bộ nhớ chương trình , bộ chuển đổi AID, khối điều khiển, khối hiển thị, điều khiển máy in, hối đồng hồ và lịch là những linh kiện nằm ở bên ngoài được nối vào bộ vi xử lí.

Mãi đến năm 1976 công ty INTEL (Interlligen-Elictronics). Mới cho ra đời bộ vi điều khiển đơn chip đầu tiên trên thế giới với tên gọi 8048. Bên cạnh bộ xử lí trung tâm 8048 còn chứa bộ nhớ dữ liệu, bộ nhớ chương trình, bộ đếm và phát thời gian các cổng vào và ra Digital trên một chip.

Các công ty khác cũng lần lược cho ra đời các bộ vi điều khiển 8bit tương tự như 8048 và hình thành họ vi điều khiển MCS-48 (Microcontroller-sustem-48).

Đến năm 1980 công ty INTEL cho ra đời thế hệ thứ hai của bộ vi điều khiển đơn chip với tên gọi 8051. Và sau đó hàng loạt các vi điều khiển cùng loại với 8051  ra đời và hình thành họ vi điều khiển MCS-51 .

Đến nay họ vi điều khiển 8 bit MCS51 đã có đến 250 thành viên và hầu hết các công ty hàng dẫn hàng đầu thế giới chế tạo. Đứng đầu là công ty INTEL và rất nhiều công ty khác như : AMD, SIEMENS, PHILIPS, DALLAS, OKI …

Ngoài ra còn có các công ty khác cũng có những họ vi điều khiển riêng như:

Họ     68HCOS              của công ty Motorola

Họ     ST62                    của   công ty SGS-THOMSON

Họ     H8                        của   công ty Hitachi

Họ pic cuả công ty Microchip

II.3: Khảo sát bộ vi điều khiển AT89S52 từ  ATMEL CORPOCATION

Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự như nhau. Ở đây giới thiệu IC 8951 là một họ IC vi điều khiển do hãng Intel của Mỹ sản xuất. Chúng có các đặc điểm chung như sau:

Các đặc điểm của 89S52 được tóm tắt như sau:

4 KB ROM

4 KB EPROM bên trong.

128 Byte RAM nội.

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

2 bộ định thời 16 bit

Mạch 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

Xử lý Boolean (hoạt động trên bit đơn).

210 vị trí nhớ có thể định vị bit.

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

II.3.1.Cấu trúc bên trong của AT89S52.

Phần chính của vi điều khiển 8051 / 8031 là bộ xử lí trung tâm (CPU: central processing unit ) bao gồm :

– Thanh ghi tích lũy A

– Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia

– Đơn vị logic học (ALU : Arithmetic Logical Unit )

– Từ trạng thái chương trình (PSW : Prorgam  Status Word)

– Bốn băng thanh ghi

– Con trỏ ngăn xếp

Ngoài ra  còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời gian và logic.

II.3.2:Tóm tắt phần cứng:

AT89S52 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 là một chân có hai 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ành phần của các bus dữ liệu và  bus địa chỉ.

+ Các cổng vào ra

– Port 0 (Chân 32-39):là cổng hai chiều dùng 8 bit để mở, như là cổng ra, Port 0 có những cấu hình công đường dẫn địa chỉ, dữ liệu để truy xuất tới chương trình goài và bộ nhớ dữ liệu. yêu cầu bên ngoài dừng lại trong lúc kiểm tra chương trình.

– Port 1 (Chân 1-8): có cổng hai chiều 8bit, trong phép cộng P1.0 và P1.1 có thể thực hiện để đi tới bộ định thời/bộ đếm bên trong đếm ngõ vào(P1.0/T2) và hai bộ định thời/bộ đếm truy xuất ngõ vào(P1.1/T2EX).

– Port 2 (Chân 21-28): có cổng hai chiều 8bit, phát ra những địa chỉ byte cao khác trong lúc tìm về từ bộ nhớ chương trình bên ngoài và truy xuất từ bộ nhớ dữ liệu bên ngoài việc đó sử dụng 8bit địa chỉ. Port 2 phát ra những nội dung của thanh ghi có chức năng đặc biệt P2

– Port 3 (Chân 10-17):

P3.0 RxD Chân phát dữ liệu của Port nối tiếp

P3.1 TxD Chân thu dữ liệu của Port nối tiếp

P3.2 INT0 Ngõ vào ngắt ngoài 0

P3.3 INT1 Ngõ vào ngắt ngoài 1

P3.4 T0 Ngõ vào bộ định thời đếm 0

P3.5 T1 Ngõ vào bộ định thời đếm 1

P3.6 WR Điều khiển ghi dữ liệu vào RAM ngoài

P3.7 RD Điều khiển đọc dữ liệu từ RAM ngoài

+ Reset (Chân 9):

Chân reset có tác dụng reset cho chíp, mức tích cực của chân này là mức 1 , để reset ta phải đưa mức 1 (5v) đến chân này với thời gian tối thiểu 2 chu kỳ máy ( tương đương 2µs – tương đương với thạch anh 12Mhz ).

Sau đây là mạch reset.

– RxD :nhận tín hiệu kiểu nối tiếp.

– TxD :truyền tín hiệu kiểu nối tiếp.

– /INT0: ngắt ngoài 0.

– /INT1: ngắt ngoài 1.

– T0: chân vào 0 của bộ timer/counter 0.

– T1: chân vào 0 của bộ timer/counter 1.

–  /WR: ghi giữ liệu vào bộ nhớ ngoài.

– /Rd: đọc giữ liệu từ bộ nhớ ngoài.

– XTAL1: chân vào mạch khuếch đại dao động.

– XTAL2: chân ra từ  mạch khuếch đại dao động.

– /PSEN: chân cho phép đọc chương trình ngoài (Rom ngoài).

reset bằng tay        reset khi cấp nguồn

– Nút ấn:

– Trạng thái của các thanh ghi khi reset, khi reset thì trạng thái của RAM nội không bị thay đổi

+ Chân cho phép chốt địa chỉ (ALE/PROG)

Chân ALE có xung ở ngõ ra để chốt địa chỉ Byet thấp trong thời gian truy xuất bộ nhớ ngoài. Chân này có chương trình xung ở ngõ vào trong khi tín hiệu điện đang chạy.

Trong điều khiển bình thường, chân ALE được xuất ra với một giá trị bằng 1/6 tần số của mạch dao động và có thể được sử dụng cho việc quy định thời gian bên ngoài hoặc mục đích đếm thời gian. Ghi nhớ, một xung ALE được ngắt quãng trong khi mỗi truy xuất từ dữ liệu bộ nhớ ngoài.
Nếu ra lệnh, bình thường ALE có thể bị hủy bởi việc cài dặt bit 0 của SFR được định vị trí 8EH

+ Chân cho phép bộ nhớ chương trình (PSEN:Program store Enable)
PSEN được đọc xung nhọn tới bộ nhớ chương trình ngoài.
Khi AT89S52RC đang thực hiện mã từ bộ nhớ chương trình ngoài, PSEN được thực hiện với chu kỳ máy tăng gấp đôi, trừ phi hai hoạt động PSEN đó được ngắt quãng trong thời gian truy xuất tới bộ nhớ dữ liệu bên ngoài.
+ Chân truy xuất ngoài (EA/VPP)

Kích hoạt truy xuất ngoài, chân EA phải được nối với GND khi sử dụng các thiết bị từ mã truy cập từ bộ nhớ chương trình ngoài được định vị trí từ 0000H tới FFFFH.

+ Chân tinh thể thạch anh XTAL

XTAL1: ngõ vào tới mạch dao động khuếch đại ngược và tới mạch điện khóa diều khiển bên trong.

XTAL2: ngõ ra từ mạch  dao động khuếch đại ngược.

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

Một ánh xạ trên bề mặt diện tích của bộ nhớ chip được gọi là thanh ghi các chức năng đặc biệt.

Ghi chú, đó không phải là tất cả các địa chỉ đã được sử dụng, và những địa chỉ không được sử dụng có thể không được bổ sung vào chip. Đọc truy xuất tới các địa chỉ đó sẽ được tổng hợp đầy đủ vào dữ liệu ngẫu nhiên, và truy xuất được ghi sẽ có hiệu ứng lờ mờ.

+ Thanh ghi bộ định thời 2:

điều khiển và trạng thái các bit được chứa đựng vào thanh ghi T2CON và T2MOD.
Thanh ghi ngắt:

khởi động những bit ngắt riêng biệt được thực hiện bởi thanh ghi IE.
TF2: Dấu hiệu cờ tràn 2 bộ định thời đặt bởi 2 bộ dịnh thời cờ tràn và phải được xóa bởi phần mềm. TF2 sẽ không được dặt khi RCLK = 1 hoặc TCLK = 1
EXF2: 2 Bộ định thời dấu hiệu ngoài khi một cái được giữ lại hoặc chạy lại bởi một từ chối chuyển tiếp trên T2EX và EXEN2 = 1. khi 2 bộ định thời trong được kích hoạt, EXF2 = 1 sẽ là nguyên nhân để CPU tới vector tới thủ tục 2 bộ định thời trong. EXEN2 phải được xóa bởi phần mềm. EXF2 không phải nguyên nhân gây ngắt trong bộ đếm lên/xuống (DCEN = 1).
RCLK Kích hoạt xung nhận, khi điều chỉnh, nguyên nhân cổng nối tiếp được sử dụng 2 bộ định thời cờ tràn tạo xung cho xung nhận trong cổng nối tiếp cho dạng 1 và 3. RCLK = 0 là nguyên nhân cờ tràn một bộ định thời được sử dụng cho việc nhận xung

TCLK Kích hoạt truyền xung, khi điều chỉnh, nguyên nhân cồng nối tiếp được dùng cờ tràn xung bộ định thời 2 cho việc phát xung trong cổng nối tiếp cho dạng 1 và 3. TCLK = 0 nguyên nhân cờ tràn bộ dịnh thời 1 dã được dùng để phát xung.

-EXEN2 Kích hoạt bộ định thời ngoài 2, một cái được giữ lại hoặc chạy lại để xuất như là một kết quả của một từ chối chuyển tiếp trên T2EX neu1 bộ định thời 2 không được sừ dụng để tạo xung cho cổng nối tiếp. EXEN2 = 0 là nguyên nhân bộ định thời 2 lờ đi khả năng có thể xảy ra của T2EX
TR2 Điều khiển bắt đầu/dừng lại cho bộ định thời 2. TR2 = 1 bộ định thời bắt đầu.

C/T2 Bộ định thời hoặc bộ đếm cho bộ định thời 2. C/T2 = 0 cho chức năng bộ định thời. C/T2 = 1 cho máy đếm sự kiện ngoài.
CP/RL2 Chọn giữ/chạy lại. CP/RL2 = 1 lý do giữ lại cho xuất hiện trên từ chối chuyển tiếp vào T2EX nếu EXEN2 = 1. CP/RL2 = 0 nguyên nhân tự động chạy lại để xuất hiện khi cờ tràn bộ định thời 2 hoặc xuất hiện từ chối chuyển tiếp vào T2EX khi EXEN2 = 1. khi RCLK hoặc TCLK = 1, bit này được lờ đi và bộ định thời bị ép tự động chạy lại trên cờ tràn bộ định thời 2.
+ Con trỏ ghi hai dữ liệu:

Để thuận tiện truy xuất cà hai bộ nhớ dữ liệu bên trong và bên ngoài, 2 bờ của 16bit con trỏ ghi dữ liệu được cung cấp: DP0 của địa chỉ thanh ghi các chức năng đặc biệt định vị trí 82H-83H và DP1 ở 84H-85H. bit DPS = 0 trong các thanh ghi phụ các chức năng đặc biệt chon5DP0 và DP1 = 1 chọn DP1. người sử dụng nên khởi động bit DPS để tích hợp giá trị trước khi truy xuất tương ứng với con trỏ ghi dữ liệu.

Cờ tắt nguồn(POF): được định 4bit (PCON.4) vào PCON SFR. POF được điều chỉnh tới “1” trong khi bật nguồn. nó có thể bị điều chỉnh và và đứng yên dưới phần mềm điều khiển và không được giả tạo bởi quá trình khởi động lại

Thiết bị MCS_51 có một khoảng địa chỉ riêng cho chương trình và bộ nhớ dữ liệu.

+ Bộ nhớ chương trình:

–     Nếu chân EA được nối với GND tất cả chương trình đi về có hướng về tới bộ nhớ ngoài.

–     Trong AT89S52RC, nếu chân EA được nối với Vcc thì chương trình về tới khoảng địa chỉ 0000H-7FFFH đi tới bộ nhớ chương trình bên trong và đi về tới địa chỉ 8000H-FFFFH đi tới bộ nhớ chuong trình bên ngoài.
Bộ nhớ dữ liệu:

–      AT89S52RC có bộ nhớ dữ liệu bên trong với 4 phần riêng:
+ Thấp hơn 128 byte của RAM (có địa chỉ từ 00H-7FH) được gán giá trị ngay lập tức hoặc gián tiếp

+       Cao hơn 128 byte RAM ( có địa chỉ 80H-FFH) chỉ gán địa chỉ bằng cách gián tiếp

+ Các thanh ghi có chức năng đặc biệt (có địa chỉ từ 80H-FFH) chỉ được gán địa chỉ bằng cách trực tiếp

+  256 byte RAM mở rộng (00H-FFH) được truy cuất gián tiếp bởi lệnh MOVX, và với bit EXTRAM được xóa.

+ Phần cứng bộ định thời giám sát:

Được dự định như là phương pháp khôi phục trong vị trí nơi mà CPU có thể bị xáo trộn bởi chủ đề phần mềm, nó phù hợp với bộ đếm 13bit.
Cách sử dụng bộ định thời giám sát: để cho phép nó, người sử dụng phải viết 01EH và 0E1H trong dãy để tới thanh ghi WDTRST. Khi nó được cho phép, người sử dụng cần tới dịch vụ của nó bởi 01EH và 0E1H tới WDTRST để phá hủy cờ tràn của nó. Bộ đếm cờ tràn 13bit khi nó đạt tới 8191(1FFFH), và thiết lập lại các thiết bị. khi nó được cho phép, nó sẽ gia tăng chu kỳ máy trong khi mạch dao động đang chạy. để chạy lại nó người dùng phải viết  01EH và 0E1H tới WDTRST. WDTRST là thanh ghi chỉ viết. bộ đếm WDT không thể bị đọc hay viết.

Bộ định thời 0 và 1:

Bộ định thời 0 và 1 trong AT89S52RC hoạt động giống như là bộ định thời 0 và 1 trong AT89S52 và AT89C52.

Bộ định thời 2:

Bộ định thời 2 là bộ định thời/bộ đếm 16bit nó có thể hoạt động như các bộ định thời khác hoặc một biến cố đếm. bộ định thời 2 gồm 2 thanh ghi 8bit,TH2 và TL2.

Xung nhịp ra có thể lập trình được:

Chu kỳ hoạt động là 50% có thể được lập lại chương trình để đi ra bằng chân P1.0. nó có thể là chương trình để vào xung bên ngoài cho bộ định thời/bộ đếm 2 hoặc cho ngõ ra với 50% chế độ làm việc biên độ xung từ 61Hz tới 4MHz với một tần số hoạt động 16MHz.Cấu hình của bộ định thời/bộ đếm 2 như là một hàm sin, bit C/T2 (T2CON.1) phải được xóa và bit T2OE (T2MOD.1) phải được điều chỉnh. Bit TR2 (T2CON.2) bắt đầu và dừng bộ định thời.

Tần số xung ra phụ thuộc vào tần số dao động và giá trị nạp lại của thanh ghi bộ định thời 2 (RCAP2H,RCAP2L). ta có Tần số xung ra   = ( tần số dao động)  /(4*[65536-(RCAP2H,RACP2L)])

Trong chế độ xung ra, bàn quay bộ định thời 2 sẽ không được phát động ngắt.
Chế độ ngắt:

AT89S52RC có tổng cộng 6 vector ngắt: 2 ngắt ngoài (INT0 và INT1), 3 bộ định thời ngắt (bộ định thời 0,1 và 2) và cổng ngắt nối tiếp.
Mỗi nguồn ngắt có thể cho phép riêng lẻ hoặc ngăn chặn bởi quá trình cài đặt hoặc xóa bỏ 1 bit trong thanh ghi các chức năng đặc biệt (SFR) IE.
Bộ định thời ngắt 2 được khởi động bởi toán tử logic OR của các bit TF2 và EXF2 trong thanh ghi T2CON. Những cái cờ đó không những được xóa bởi phần cứng khi thủ tục của dịch vụ được hướng tới. thực ra, thủ tục dịch vụ có thể được định rõ là TF2 hay EXF2 dể khởi động ngắt, và bit đó sẽ được xóa trong phần mềm.

Cờ bộ định thời 0 và 1, TF0 và TF1, được điều chỉnh ở S5P2 của chu kỳ trong bộ định thời cờ tràn.

Đặc điểm dao động:

XTAL1 và XTAL2 là ngõ ra và ngõ vào, theo thứ tự được định sẵn, để điều khiển thiết bị từ một nguồn xung ngoài. XTAL2 sẽ không được lien kết bên trái trong khi XTAL1 được điều khiển

Chế độ nghỉ:

Trong chế độ nghỉ, CPU nghỉ trong khi tất cả các chip ngoại vi đều hoạt động. chế độ này được gọi ra bằng phần mềm. Dung lượng trên chip RAM và tất cả SFR được thay đổi, chế độ nghỉ có thể ở bên trong cho phép ngắt hoặc chế độ lặp lại của phần cứng.

Chú ý khi chế độ nghỉ được kết thúc bởi chế độ lặp lại của phần cứng, các thiết bị thong thường được chạy lai chương trình từ phần tắt bên trái.

 

II.3.3:  Mạch cơ bản để 89S52 làm việc:

Hình II.3 : Mạch cơ bản của IC 89S52

 

CHƯƠNG III: THIẾT KẾ VÀ LẬP TRÌNH

III.1: Kết cấu của chương trình

Chương trình gồm hai chương trình con

– Chương trình 1 chương trình  ban ngày

– Chương trình 2 chương trình ban đêm từ 23h đến 5h sáng

+ Chương trình 1 là chương trình có thời gian đèn đỏ 25s, đèn xanh 30s

Đèn vàng 5s

+ Chương trình 2 là chương trình chỉ có đèn vàng nhấp nháy

– Để chọn chương trình ta phải thiết lập chương trình và reset hệ thống qua nút nhấn reset

III.2: Kết nối ngoại vi gồm có:

III.2.1.-Họ IC 78xx và IC 7805

Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử dụng IC ổn áp thường được người thiết kế sử dụng vì mạch điện khá đơn giản. Các loại ổn áp thường được sử dụng là IC 78xx, với xx là điện áp cần ổn áp. Ví dụ 7805 ổn áp 5V, 7812 ổn áp 12V. Việc dùng các loại IC ổn áp 78xx tương tự nhau.

* Những dạng seri của 78XX:

– LA7805 IC ổn áp 5V
– LA7806 IC ổn áp 6V
– LA7808 IC ổn áp 8V
Đây là dòng cho điện áp ra tương ứng với dòng là 1A.

Hình ảnh một IC 7805 có 3 chân:

 

                                            Sơ đồ khối của IC 7805.

   

 

 

 

 

 

 

 

 

III.2.2: IC 74245 – Bộ nhớ đệm cho đầu vào.

Chức năng:
– Đây là một loại IC số khá phổ biến, tên gọi chung là 74245, tùy thuộc vào tần số đáp ứng và công ty sản xuất sẽ có các tên họi khác nhau như 74HC245, 74HCT245… nhưng khi loại bỏ các kí tự ở giữa, vẫn chung là 74245.
– Bài toán: Khi ta cần kiểm soát một số lượng trạng thái, cảm biến tiếp điểm mà số đầu cần kiểm soát lên tới > 10 điểm, có khi tới 40 điểm, bạn không thể nối tất cả các cảm biến này với vi xử lý vì không thể đủ Port. Vì vậy, chúng ta phải sử dụng đọc dữ liệu theo kiểu BUS và dùng 74245 như là bộ nhớ đệm đầu vào cho vi xử lý.

Các thức hoạt động:

– Sơ đồ nguyên lý: Như sơ đồ trên, trong đó A ( đầu vào Vi xử lý), B ( đầu vào lấy tín hiệu từ sensor), Chân AB/BA nối Gnd và quan trọng nhất là chân CE (Chip enable).

– Với sơ đồ trên, tôi giới thiệu các bạn sử dụng 2 IC 74HCT235 để đọc dữ liệu trạng thái on/off từ 16 cảm biến sensor khác nhau

  • PORT A : Đầu ra của 74245 và được đấu vào đầu vào của vi xử lý, tất cả các PORT A của các IC 74245 được đấu chung để tạo thành đường dữ liệu BUS 8bit.
  • PORT B : Đầu vào của 74245 , được đấu vào các trang thái on/off của sensror, mối một PIN được đấu với một sensor khác nhau, và lưu ý, nếu sensor chưa có điện trở Pullup thì phải thêm một dãy diện trở Pullup vào PORT B để luôn đảm bảo trạng thái logic cho PORTB.
  • CE : Chân chọn chíp, trạng thái tích cực thấp, khi muốn PORT A = PORT B thì CE=0 (các IC 74245 khác bắt buộc CE=1 để ngăn không cho PORTA=PORTB, nếu quên điều này, dữ liệu sẽ lung tung, không kiểm soát được như ” Có một lối ra, chỉ vừa một người đi mà ta mở đến 4 cửa, 4 người chen chúc nhau đi

III.2.3: LED 7 đoạn

Hiển thị dùng led 7 đoạn loại anode chung ứng với IC giải mã 74245 có mức tích cực là mức 0 ( mức thấp).Ở loại anode chung ( anode của đèn được nối lên +5V, đoạn náo sáng ta nối đầu cathode ủa đoạn đó xuống mức thấp thông qua điện trở để hạn dòng.

Hiển thị dùng led 7 đoạn loại katot chung ứng với IC giải mã 7448 có mức tích cực là mức 1 ( mức cao).Ở loại katot chung ( katot của đèn được nối lên GND)

 III.2.4 : Điện trở treo

– Với các chân với chân 1 nối nguồn 5vdc  8 chân còn lại dùng để nối vào 8 chân ra của vi điềukhiển 89S52 có tác dụng làm tăng dòng điện làm cho dòng điện khỏe hơn. Ở mạch này chúng ta dùng điện trở 10k

 

 

 

 

III.3: Phần thi công mạch

III.3.1: Sơ đồ nguyên lý mạch điều khiển đèn giao thông

 

 

                                              

 

Mạch đèn giao thông ngã 4

Đề bài :Có 3 phím bấm

1: Run(Chạy ở chế độ bình thường)

2: Nháy(Chạy ở chế độ giờ thấp điểm)

3: Stop

Giản đồ thời gian như sau

Mạch Sơ đồ mạch như sau

Code

;=======================================================;           BAM PHIM TANG, GIAM, RESET VA HIEN THI;=======================================================ORG   0000H            LJMP  INIT            ORG   0003H             RETI            ORG   000BH                        RETI            ORG   0013H             RETI            ORG   0023H             RETI            ORG   002BH                        LJMP  INT_T2;=============================;KHAI BAO BIEN;=============================            NUM   EQU    50H            D0       EQU    51H            D1       EQU    52H            TIC      EQU    53H            SEC     EQU    54H            PRUN EQU    P1.0            PNN    EQU    P1.1            PSTOP            EQU    P1.2            MODE1F        EQU    00H            MODE2F        EQU    01H            RUNF EQU    02H            NNF    EQU    03H            STOP  EQU    04H;=============================;KET THUC KHAI BAO BIEN;=============================;************************************************;           NGAN CACH GIUA CAC CHUONG TRINH;************************************************;=============================;           KHOI TAO CHUONG TRINH;=============================            ORG   100INIT:            CLR    EA                               MOV   SP,#2FH                                 MOV   T2CON,#04H                                                             MOV   RCAP2H,#0B1H                    MOV   RCAP2L,#0E0H                    MOV   NUM,#50            MOV   TIC,#0            MOV   SEC,#0            MOV   MODE1F,#0            MOV   MODE2F,#0            MOV   RUNF,#1            MOV   P3,#0            MOV   R7,#0            SETB  IE.5            SETB  EAHERE:            SJMP   HERE;===============================;           KET THUC CHUONG TRINH;===============================;************************************************;           NGAN CACH GIUA CAC CHUONG TRINH;************************************************;===============================;SUBROUTINE TSEC;CHUONG TRINH TINH THOI GIAN;INPUT: NONE;OUTPUT: NONE;===============================TSEC:             JNB     RUNF,KHONG            SJMP   CHAYCHAY:            JB        STOP,KHONG            INC     TIC            MOV   A,TIC            CJNE  A,#50,KTSEC1            DEC    SEC            MOV   TIC,#0            MOV   A,SEC            CJNE  A,#0FFH,KTEC1            MOV   SEC,#29KHONG:            MOV   P0,#0C0H            SJMP   KTSEC1KTSEC1:            MOV   NUM,SEC            RET ;===============================;           KET THUC CHUONG TRINH;===============================;************************************************;           NGAN CACH GIUA CAC CHUONG TRINH;************************************************;===============================;SUBROUTINE SLMODE; CHUONG TRINH CHON MODE;INPUT: NONE;OUTPUT: NONE;===============================SLMODE:            MOV   P1,#00            SETB  RUNF            CLR    NNF            CLR    STOP            MOV   SEC,#0            SJMP   KTSLMODKTNN:            SETB  NNF            CLR    RUNF            CLR    STOP            MOV   TIC,#0            SJMP   KTSLMODKTSTOP:            JNB     PSTOP,KTSLMOD            CLR    RUNF            CLR    NNF            SETB  STOP            MOV   P3,#0KTSLMOD:            RET;===============================;           KET THUC CHUONG TRINH;===============================;************************************************;           NGAN CACH GIUA CAC CHUONG TRINH;************************************************;===============================;SUBROUTINE MODE1; CHUONG TRINH CHAY CHE DO 1;INPUT: NONE;OUTPUT: NONE;===============================MODE1:            JNB     RUNF,KTMODE1            MOV   A,SEC            CJNE  A,#29,SEC17            MOV   P3,#21HSEC17:            CJNE  A,#17,SEC14            MOV   P3,#22HSEC14:            CJNE  A,#14,SEC2            MOV   P3,#0CHSEC2:            CJNE  A,#2,KTMODE1            MOV   P3,#14HKTMODE1:            RET;=================================;           KET THUC CHUYEN TRINH CON;=================================;************************************************;           NGAN CACH GIUA CAC CHUONG TRINH;************************************************;===============================; SUBROUTINE MODE2; CHUONG TRINH CHAY CHE DO 2;INPUT: NONE;OUTPUT: NONE;===============================MODE2:            JNB     NNF,KTMODE2            JB        P1.0,LAM            CPL     MODE2F            MOV   A,MODE2F            CJNE  A,#1,LAM            MOV   P3,#0            SJMP   KTMODE2LAM:            MOV   A,TIC            CJNE  A,#0,V2            MOV   P3,#12HV2:            CJNE  A,#26,KTMODE2            MOV   P3,#0 KTMODE2:            RET;=================================;           KET THUC CHUYEN TRINH CON;=================================;************************************************;           NGAN CACH GIUA CAC CHUONG TRINH;************************************************;===============================;SUBROUTINE HEXTOBCD;           HEX TO BCD;INPUT: NUM;OUTPUT: D1,D0;===============================HEXTOBCD:            MOV   A,NUM                       MOV   B,#10              DIV     AB                  MOV   D0,B               MOV   D1,A               RET;=================================;           KET THUC CHUYEN TRINH CON;=================================;************************************************;           NGAN CACH GIUA CAC CHUONG TRINH;************************************************;==================================;INT    INT_T2; CHUONG TRINH HIEN THI SO LAN  AN PHIM VA HIEN THI;INPUT: NONE;OUTPUT: NONE;===================================INT_T2:            CLR    TF2                              LCALL           HEXTOBCD              LCALL           BCDTO7T                              LCALL           DISPLAY            LCALL           TSEC            LCALL           SLMODE            LCALL           MODE1            LCALL           MODE2KET:            RETI;===================================;           KET THUC CHUONG TRINH;===================================;************************************************;           NGAN CACH GIUA CAC CHUONG TRINH;************************************************;===================================;SUBROUTNI BCDTO7T;INPUT: NONE;OUTPUT: NONE;===================================BCDTO7T:            MOV   DPTR,#SEGMENT                MOV   A,D0                           MOVC            A,@A+DPTR             MOV   D0,A                           MOV   A,D1                           MOVC            A,@A+DPTR             MOV   D1,A                           RET;===================================;           KET THUC CHUONG TRINH;===================================;************************************************;           NGAN CACH GIUA CAC CHUONG TRINH;************************************************;===================================;SUBROUTINE DISPLAY; HIEN THI LEN LED 7 THANH;INPUT:;OUTPUT:;===================================DISPLAY:             CJNE  R7,#0,LED2            MOV   P2,#1B            MOV   P0,D0                        SJMP   XLR7LED2:             MOV   P2,#2            MOV   P0,D1XLR7:             INC     R7            CJNE  R7,#2,KT                    MOV   R7,#00HKT:            RET;===================================;KET THUC CHUONG TRINH;===================================;************************************************;NGAN CACH GIUA CAC CHUONG TRINH ;************************************************;===================================;           MA 7 THANH;===================================SEGMENT:                DB      0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;SO THAP PHAN      0    1     2    3   4   5   6   7    8  9;====================================;           KET THUC CHUONG TRINH;====================================

LEAVE A REPLY

Please enter your comment!
Please enter your name here