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

MẠCH ĐÈN GIAO THÔNG DÙNG HỌ 8051

37 1,2K 7

Đ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 37
Dung lượng 501 KB

Nội dung

Ngoài ra P0 và P2 còn được xử dụng để truy cập bộ nhớ ngoài với các chương trình ứng dụng này cổng P0 sẽ đưa ra địa chỉ Byte thấp và P2 đưa ra địa chỉ cao + Cổng port 3 có hai công dụng

Trang 1

MỤC LỤC

Trang

LỜI NÓI ĐẦU……… 02

A - PHƯƠNG ÁN THIẾT KẾ……… 04

I - SƠ ĐỒ KHỐI HỆ THỐNG MẠCH ĐÈN GIAO THÔNG……

II - PHƯƠNG ÁN THIẾT KẾ………

B - THIẾT KẾ ……… 07

I - GIỚI THIỆU VỀ VĐK 8051……… 07

1 Cấu trúc của VĐK 8051……… 07

2 Các nhóm lệnh của VĐK 8051……… 16

II - THIẾT KẾ PHẦN CỨNG……… 23

1 Khối Giải mã……… 23

2 Khối xử lý ……… 25

3 Khối hiển thị ……… … 27

4 Sơ đồ nguyên lý hệ thống……… 29

5 Sơ đồ mạch in của hệ thống……… 30

III - THIẾT KẾ PHẦN MỀM……… 31

CHƯƠNG TRÌNH ĐIỀU KHIỂN HỆ THỐNG

C - NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG … 35

Trang 2

LỜI NÓI ĐẦU

Trong thời đại ngày nay khi nhân loại đang trải qua những bước tiến vượt bậc

về khoa học công nghệ, thì ngành điện tử cũng có những bước tiến quan trọngđặc biệt là trong lĩnh vực vi điều khiển Các bộ vi xử lý ngày càng phát triển vàhoàn thiện hơn,được sử dụng trong hầu hết các hệ thống điều khiển tự động trongcông nghiệp,khoa học kĩ thuật,cũng như trongcác thiết bị dân dụng Chính nhờ vaitrò,chức năng của vi xử lý đã đem lại nhiều ưu điểm, nhiều tính năng đặc biệt chocác hệ thống điều khiển thay thế con người trong các công việc đòi hỏi sự phức tạp vàyêu cầu kỹ thuật cao

Để áp dụng tính năng đặc biệt đó của vi xử lý vào thực tiễn,nhóm sinh viênchúng em gồm các thành viên:

1- Nguyễn Phùng Thịnh

2- Lê Tiến Phong

3- Nguyễn Huy Yên

Dưới sự hướng dẫn nhiệt tình và chu đáo của thầy giáo Nguyễn Đình Thư, nhóm chúng em đã tiến hành nghiên cứu và hoàn thành đồ án với đề tài: THIẾT KẾ

MẠCH ĐÈN GIAO THÔNG SỬ DỤNG HỌ 8051

Trong hệ thống này nhóm em đã sử dụng IC AT89S52 là IC điều khiển chính.Ngoài việc sử dụng IC 89S52 còn sử dụng một số linh kiện phụ trợ khác

Trang 3

Mặc dù đã cố gắng nhiều nhưng vì kinh nghiệm chưa có nhiều và sự khác biệt giữa lýthuyết – thực hành nên trong quá trình thực hiện còn nhiều thiếu sót Mong được sựgóp ý chân tình từ thầy cô và các bạn!

Chúng em chân thành cám ơn các thầy,các cô giáo dã nhiệt tình giúp đỡ nhóm

em trong thời gian hoàn thành đồ án.Cám ơn các anh chị sinh viên đi trước và các bạnsinh viên đã cùng đóng góp ý kiến, thảo luận và giúp đỡ

Đặc biệt chúng em xin chân thành cám ơn Thầy giáo hướng dẫn Nguyễn Đình

Thư,cô giáo Trần Thị Thương đã nhiệt tình hướng dẫn và giúp đỡ chúng em hoàn

thành đồ án này

Chúng em xin chân thành cám ơn!

Vinh,ngày 05 tháng 09 năm 2010

Trang 4

Phương án này có đặc điểm là mạch gọn nhẹ, không quá phức tạp, cách thức bố trílinh kiện dễ dàng, lập trình đơn giản, dễ chỉnh sửa.

Do đề tài yêu cầu:

“ Thiết kế mạch đèn giao thông sử dụng họ VĐK 8051”

Nên chúng ta sẽ chọn :

Trang 5

+ VĐK AT89S52 ( Họ VĐK 8051) làm khối điều khiển chính của hệ thốngmạch đèn giao thông.

+ Để điều khiển hệ thống , ta sử dụng khối giải mã bao gồm IC SN

74LS247N

+ Để hiển thị thời gian ta sử dụng các Led 7 thanh

+ Ngoài ra , ta còn sử dụng 1 số điện trở, tụ diện transistor và 1 số linh kiệnphụ trợ khác

Trang 6

Điều khiển ngắt Các thanh ghi khác 128 byte RAM ROM

4k - 8051

Timer1 Timer0

Port nối tiếp Các Port xuất/nhập

Điều khiển Bus Mạch dao động

CPU

Timer1 Timer2 Port nối tiếp

INT1 INT0

P0 P2 P1 P3 TXD RXD

EA RST

ALE PSEN

Địa chỉ/dữ liệu

T1 T0

B - THIẾT KẾ

I - GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 8051

1 - CẤU TRÚC CỦA VĐK 8051

1.1 - Sơ đồ khối và sơ đồ chõn của VĐK 8051

Hỡnh 2: Sơ đồ chõn của VĐK 8051

Trang 7

Hình 3: Sơ đồ chân của VĐK 8051

18 XTAL1

XTAL2

PSEN ALE

RST EA

40 VCC

INT0 INT1 TXD RXD

T0 T1 WR RD

20 VSS

29 30 31 9

17 16 15 14 13 12 11 10

32 33 34 35 36 37 38 39

8 7 6 5 4 3 2 1

28 27 26 25 24 23 22 21

P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0

P2.3 P2.1 P2.0 P2.2

P2.6 P2.5 P2.4 P2.7

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6

P0.7 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0

A15 A14 A13 A12 A11 A10 A9 A8 8051

Trang 8

+ 1 cổng ra nối tiếp (Seral port)

+ 4 cổng xuất nhập P0 - P3 (I/O port)8 bit

+ Mạch giao tiếp nối tiếp

+ Không gian nhớ chương trình ngoàI 64K

+ 210 vị trí nhớ được định địa chỉ , mỗi vị trí 1 bit

+ Bộ xử lý bit (thao tác trên các bit riêng lẻ )

+ Một bộ điều khiển ngắt:Interruptcontrol

+ Một mạch dao động bên trong và một bộ điều khiển Bus

+ Các cổng P0-P3 là các cổng vào ra hai chiều Ngoài ra P0 và P2 còn được xử

dụng để truy cập bộ nhớ ngoài với các chương trình ứng dụng này cổng P0

sẽ đưa ra địa chỉ Byte thấp và P2 đưa ra địa chỉ cao

+ Cổng port 3 có hai công dụng :

Khi hoạt động ở chế độ xuất nhập mỗi một cổng của P3 có một chứcnăng riêng

+ RxD : chân nhập dữ liệu cổng nối tiếp

+ TxD : phát dữ liệu cổng nối tiếp

+ INT : ngắt ngoài

+ INT1 : Ngõ ngoài của bộ định thời không và ngõ vào của bộ định thời 1 + OE : ( outront enable) cho phép đọc các byte lệnh trong thời gian lấy lệnh + Trong thời gian lấy lệnh tín hiệu PSEN=0

Trong thời gian thực hiện lệnh PSEN=1

+ ALE (address lacht Enable): là tín hiệu để chốt địa chỉ

+ EA : truy xuất bên ngoài

+ 8051 thực hiện chương trình trong Rom nội Ngoài ra EA được dùngchân nhận điện áp 21V cho việc lập trình Eprom

+ RST : (reset) là chân dùng thiết lập trạng thái ban đầu cho hệ thống

Trang 9

+ WR : tín hiệu đIều khiển ghi nhớ ngoài

+ RD : tín hiệu đIều khiển đọc bộ nhớ ngoài

+ PSEN : (Program store Enable) là tín hiệu điều khiển cho phép truy xuất bộnhớ ngoài , tín hiệu này được nối với OE

1.2 - Chức năng các chân của VĐK 8051

Vcc : chân cấp điện

Vss : Chân nối đất (0 V)

32 chân trong số 40 chân của 8051 có công dụng xuất/nhập, tuy nhiên 24 trong

32 đường này có 2 mục đích (công dụng) Mỗi một đường có thể hoạt động xuất/nhậphoặc hoạt động như một đường địa chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp

32 chân nêu trên hình thành 4 port 8-bit Với thiết kế yêu cầu một mức tốithiểu bộ nhớ ngoài hoặc các thành phần bên ngoài khác, ta có thể sử dụng các portnày làm nhiệm vụ xuất/nhập 8 đường cho mỗi port có thể được xử lý như một đơn vịgiao tiếp với các thiết bị song song như máy in, bộ biến đổi D-A v.v hoặc mỗi đường

có thể hoạt động độc lập giao tiếp với một thiết bị đơn bit như chuyển mạch, LED,BJT, FET, cuộn dây, động cơ, loa,

Port 0 : Port 0 ( các chân từ 32 đến 39 trên 8051 ) có hai công dụng Trong các thiết

kế có tối thiểu thành phần, port 0 được sử dụng làm nhiệm vụ xuất/nhập Trong cácthiết kế lớn hơn có bộ nhớ ngoài, port 0 trở thành bus địa chỉ và bus dữ liệu đa hợp( byte thấp của bus địa chỉ)

Port 1 : Port1 chỉ có một công dụng là xuất/nhập ( các chân từ 1 đến 8 trên 8051 )

Trang 10

Các chân của port 1 được ký hiệu là P1.0, P1.1, , P1.7 và được dùng để giao tiếpvới thiết bị bên ngoài khi có yêu cầu Không có chức năng nào nữa gán cho các châncủa port 1, nghĩa là chúng chỉ được sử dụng để giao tiếp với các thiết bị ngoại vi.

Port 2 : Port 2 ( các chân từ 21 đến 28 trên 8051 ) có 2 công dụng, hoặc làm nhiệm vụ

xuất/nhập hoặc là byte địa chỉ cao của bus địa chỉ 16 bit cho các thiết kế có bộ nhớchương trình ngoài hoặc các thiết kế có nhiều hơn 256 bytes bộ nhớ dữ liệu ngoài

Port 3 : Port 3 ( các chân từ 10 đến 17 trên 8051 ) có 2 công dụng Khi không hoạt

động xuất/nhập, các chân của port 3 có nhiều chức năng riêng ( mỗi chân có chứcnăng riêng liên quan đến các đặc trưng cụ thể của 8051 )

Bảng sau đây cho ta chức năng của các chân của port 3 :

Bit Tên Địa chỉ bit Chức năng

ngoài

Trang 11

Chân cho phép bộ nhớ chương trình PSEN :

8051 cung cấp cho ta 4 tín hiệu điều khiển bus Tín hiệu cho phép bộ nhớ chương trình PSEN ( program store enable) là tín hiệu xuất trên chân 29 Đây là tínhiệu điều khiển cho phép ta truy xuất bộ nhớ chương trình ngoài Chân này thườngnối với chân cho phép xuất OE ( output enable ) của EPROM ( hoặc ROM ) để chophép đọc các file lệnh

Tín hiệu PSEN ở logic 0 trong suốt thời gian tìm nạp lệnh Các mã nhị phâncủa chương trinh hay opcode ( mã thao tác ) được đọc từ EPROM, qua bus dữ liệu vàchốt vào thanh ghi lệnh IR của 8051 để được giải mã

Khi thực thi một chương trình chứa trong ROM nội , PSEN được duy trì ởlogic không tích cực ( logic 1 )

Chân cho phép chốt địa chỉ ALE :

8051 sử dụng chân 30, chân xuất tín hiệu cho phép chốt địa chỉ ALE( address latch enable ) để giải đa hợp ( demultiplexing ) bus dữ liệu và bus địa chỉ.Khi port 0 được sử dụng làm bus địa chỉ/dữ liệu đa hợp, chân ALE xuất tín hiệu đểchốt địa chỉ ( byte thấp của địa chỉ 16 bit) vào một thanh ghi ngoài trong suốt nửa đầucủa chu kỳ bộ nhớ ( memory cycle ) Sau khi điều này đã được thực hiên, các châncủa port 0 sẽ xuất/nhập dữ liệu hợp lệ trong suốt nửa thứ hai của chu kỳ bộ nhớ

Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động bên trong chip viđiều khiển và có thể dùng làm xung clock cho phần còn lại của hệ thống Nừu mạchdao động có tần số 12 MHz, tín hiệu ALE có tần số 2 MHz Ngoại lệ duy nhất làtrong thời gian thực thi lệnh MOVX, một xung ALE sẽ bị bỏ qua Chân ALE cònđược dùng để nhận xung ngõ vào lập trình cho EPROM trên chip đối với các phiênbản có EPROM này

Chân truy xuất ngoài EA

Trang 12

Ngõ vào này ( chân 31 ) có thể được nối với 5 V ( logic 1 ) hoặc với GND

( logic 0 ) Nếu chân này nối lên 5 V, 8051 thực thi chương trình trong ROM nội

( chương trình nhỏ hơn 4K ) Nếu chân này nối với GND ( và chân PSEN cũng ở

logic 0 ), chương trình cần thực thi chứa ở bộ nhớ ngoài Nếu chân EA ở logic 0 ,

ROM nội bên trong chip được vô hiệu hoá và chương trình cần thực thi chứa ở

EPROM bên ngoài

Chân RESET ( RST )

Ngõ vào RST ( chân 9 ) là ngõ vào xoá chính ( master reset ) của 8051 dùng để

thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống Khi ngõ vào

này được treo ở logic 1 tối thiểu 2 chu kỳ máy, các thanh ghi bên trong của 8051 được

nạp các giá trị thích hợp cho việc khởi động lại hệ thống

Các chân XTAL1 và XTAL2

Mạch dao động bên trong chip 8051 được ghép với thạch anh bên ngoài ở hai

chân XTAL1 và XTAL2 ( chân 18 và 19 ) Tần số danh định của thạch anh là 12 MHz

cho hầu hết các chip của họ MCS-51

XTAL1 : Ngõ vào đến mạch khuếch đại đảo của mạch dao động

XTAL2 : Ngõ ra từ mạch khuếch đại đảo của mạch dao động

1.3- Bộ nhớ trên chip

* RAM trong:

 Bộ vi điều khiển 8051 có 128 byte RAM trong bao gồm 32 byte đầu tiên (00H đến 1FH) dành cho các thanh ghi, 16 byte tiếp theo (20H đến 2FH) là vùng RAM định địa chỉ theo bit, sau đó là 80byte RAM nháp

 Vùng thanh ghi có 32 byte, chia thành 4 khối (bank 0 đến bank 3),mỗi khối có 8 thanh ghi (từ R0 đến R7)

Trang 13

 Ở vùng RAM định địa chỉ theo bit, các bit được dánh địa chỉ từ 00H đến 7FH.

Các thanh ghi chuyên dụng (SFRs – Special Function Registers):

 Các thanh ghi này có địa chỉ từ 80H đến FFH Chúng chứa nội

dung của các thanh ghi điều khiển

 Sau đây là một số thanh ghi chuyên dụng:

CHỐT CỔNG Port0 P0 80H

CHỐT CỔNG Port1 P1 90H

CHỐT CỔNG Port2 P2 AOH CHỐT CỔNG Port3 P3 BOH

Điền khiển chế độ bộ định thời/bộ đếm TMOD 89H

Bộ vi điều khiển AT89S52 có 4KB FLASH lập trình được

ROM luôn chiếm vùng địa chỉ thấp nhất trong bộ nhớ chương trình

1.4-Các Bộ định thời/Bộ đếm:

Bộ vi điều khiển 8051 có 2 Bộ định thời/Bộ đếm là Bộ định thời/Bộ đếm 0 và

Trang 14

Bộ định thời/Bộ đếm 1.Chúng có thể hoạt động như là bộ định thời hoặc bộ đếm.Chế độ hoạt động của các Bộ định thời/Bộ đếm được cất trong thanh ghi TMODGATE1 C/T1 M1(1) M0(1) GATE0 C/T0 M1(0) M0(0)

Nếu bit GATE xóa, các Bộ định thời/Bộ đếm được phép hoạt đông khi bit TR# tương ứng trong thanh ghi TCON thiết lập Ngược lại, nếu GATE thiết lập thì các Bộ định thời/Bộ đếm chỉ hoạt động khi các chân INT# tương ứng tích cực (mức thấp)

Bit C/T# dùng để lựa chọn chế độ hoạt động bộ đếm hay bộ định thời Nếu được thiết lập thì nó hoạt đông theo chế độ đếm sự kiện,lúc này nguồn xung cho bộ đếm là xung ngoài đưa vào từ chân T# tương ứng (chân 14, 15) Nếu bị xóa,thì nó hoạt động theo chế độ định thời với nguồn xung là xung tạo ra từ bộ tạo dao đông trên

chip sau khi chia 12

Sự hoạt động của các Bộ định thời/Bộ đếm được điều khiển bởi thanh ghi TCON:

Trang 15

Các bit TR# cho phép Bộ định thời/Bộ đếm hoạt động (nếu được thiết lập) hoặckhông cho phép chúng hoạt động (nếu bị xóa).

 Các bit TF# là các cờ tràn tương ứng với các Bộ định thời/Bộ đếm Chúngđược thiết lập khi xảy ra tràn và được xóa bằng phần cứng nếu khi đó bộ xử lý rẽnhánh đến chương trình phục vụ ngắt tương ứng

 Các bit IT# là các bit ngắt Thiết lập IT# tạo ra chế độ ngắt cạnh,chân INT# nhận ramột ngắt khi nhận ra có một sườn âm (↓) của tín hiệu vào Xóa IT# tạo ra chế độ ngắtmức, tức là ngắt được tạo ra khi tín hiệu vào ở mức thấp (0) Ở chế độ ngắt mức, khitín hiệu vào còn ở mức thấp thì ngắt được tạo ra liên tục cho đến khi tín hiệu vàochuyển lên mức cao hoặc thiết lập IT#

Các bit IE# là các cờ ngắt cạnh, được thiết lập khi dò thấy ngắt cạnh

1.5-Điều khiển ngắt

Bộ vi điều khiển 8051 có 5 nguồn ngắt: TF0, TF1, INT0, INT1 và ngắt do cổng nốitiếp Sự điều khiển hoạt động ngắt được cất trong 2 thanh ghi là thanh ghi cho phépngắt IE (Interrupt Enable) và thanh ghi xác định thứ tự ưu tiên ngắt IP (InterruptPriority)

Các bit và chức năng của chúng trong thanh ghi IE như sau (thiết lập là cho phép,xóa là cấm):

Trang 16

4 ES Cho phép ngắt do cổng nối tiếp

Bảng 3: Các bit và chức năng của nó trong thanh ghi IE

Với thanh ghi IP:

Bảng 4: Các bit và chức năng của chúng trong thanh ghi IP

- Chuyển điều khiển

Các chi tiết thiết lập lệnh:

Rn :Thanh ghi R0 đến R7 của bank thanh ghi được chọn

Data : 8 bit địa chỉ vùng dữ liệu bên trong Nó có thể là vùng RAM dữ liệu

trong (0-127) hoặc các thanh ghi chức năng đặc biệt

Trang 17

@Ri : 8 bit vùng RAM dữ liệu trong (0-125) được đánh giá địa chỉ gián tiếp qua

thanh ghi R0 hoặc R1

#data : Hằng 8 bit chức trong câu lệnh

#data 16: Hằng 16 bit chứa trong câu lệnh

Addr16 : 16 bit địa chỉ đích được dùng trong lệnh LCALL và LJMP

Addr11: 11 bit địa chỉ đích được dùng trong lệnh LCALL và AJMP

Rel: Byte offset 8 bit có dấu được dùng trong lệnh SJMP và những lệnh nhảy có điều

kiện

Bit: Bit được định địa chỉ trực tiếp trong RAM dữ liệu nội hoặc các thanh

ghi chức năng đặc biệt

a – Nhóm lệnh số học

ADD A,Rn : cộng nội dung thanh ghi Rn vào thanh ghi A

ADD A,data (2,1): Cộng trực tiếp 1 byte vào thanh ghi A

ADD A,@Ri (1,1): Cộng gián tiếp nội dung RAM chứa tại địa chỉ

được khai báo trong Ri vào thanh ghi AADD A,#data (2,1):Cộng dữ liệu tức thời vào A

ADD A,Rn (1,1): Cộng thanh ghi và cờ nhớ vào A

ADD A,data (2,1): Cộng trực tiếp byte dữ liệu và cờ nhớ vào A

ADDC A,@Ri (1,1): Cộng gián tiếp nội dung RAM và cờ nhớ vào A

ADDC A,#data (2,1): Cộng dữ liệu tức thời và cờ nhớ vào A

SUBB A,Rn (1,1): Trừ nội dung thanh ghi A cho nội dung thanh ghi

Rn và cờ nhớ

SUBB A,data (2,1): Trừ trực tiếp A cho một số và cờ nhớ

SUBB A,@Ri (1,1): Trừ gián tiếp A cho một số và cờ nhớ

Trang 18

SUBB A,#data (2,1): Trừ nội dung A cho một số tức thời và cờ nhớ.

INC A (1,1): Tăng nội dung thanh ghi A lên 1

INC Rn (1,1): Tăng nội dung thanh ghi Rn lên 1

INC data (2,1): Tăng dữ liệu trực tiếp lên 1

INC @Ri (1,1): Tăng gián tiếp nội dung vùng RAM lên 1

DEC A (1,1): Giảm nội dung thanh ghi A xuống 1

DEC Rn (1,1): Giảm nội dung thanh ghi Rn xuống 1

DEC data (2,1): Giảm dữ liệu trực tiếp xuống 1

DEC @Ri (1,1): Giảm gián tiếp nội dung vùng RAM xuống 1

INC DPTR (1,2): Tăng nội dng con trỏ dữ liệu lên 1

MUL AB (1,4): Nhân nội dung thanh ghi A với nội dung thanh ghi B.DIV AB (1,4): Chia nội dung thanh ghi A cho nội dung thanh ghi B

DA A (1,1,): hiệu chỉnh thập phân thanh ghi A

ANL A,Rn (1,1): AND nội dung thanh ghi A với nội dung thanh ghi Rn.ANL A,data (2,1): AND nội dung thanh ghi A với dữ liệu trực tiếp.ANL A,@Ri (1,1): AND nội dung thanh ghi A với dữ liệu gián tiếp

trong RAMANL A,#data (2,1): AND nội dung thanh ghi với dữ liệu tức thời

ANL data,#data (2,1): AND một dữ liệu trực tiếp với A

ANL C,bit (3,2): AND một dữ liệu trực tiếp với A một dữ liệu tức thời.ANL C,/bit (2,2): AND cờ nhớ với 1 bit trực tiếp

ANL data,A (2,2): AND cờ nhớ với bù 1 bit trực tiếp

ORL A,Rn (1,1): OR thanh ghi A với thanh ghi Rn

ORL A,@Ri (2,1): OR thanh ghi A với một dữ liệu trực tiếp

ORL A,#data (1,1): OR thanh ghi A với một dữ liệu gián tiếp

ORL data,A (2,1): OR thanh ghi A với một dữ liệu tức thời

ORL data,#data (2,1): OR một dữ liệu trực tiếp với thanh ghi A

Ngày đăng: 03/07/2015, 09:48

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w