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

Thiết kế hệ thống đèn điều khiển trạm thu phí giao thông sử dụng vi điều khiển AT89C51

61 436 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 61
Dung lượng 3,7 MB

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

Nội dung

Chương I: CƠ SỞ LÝ THUYẾT HỌ VI ĐIỀU KHIỂNBộ vi xử lý là một hệ thống thao tác trên các bit 0 và 1, nhưng bản thân hệ thốngkhông giải quyết được vấn đề gì cả, mà bài toán chỉ được giải k

Trang 1

MỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

MỤC LỤC 3

LỜI NÓI ĐẦU 5

Chương I: CƠ SỞ LÝ THUYẾT HỌ VI ĐIỀU KHIỂN T89C51 6

1.1 Tổng quan về bộ vi điều khiển 8051 6

1.1.1 Định nghĩa : 6

1.1.2 Sự phát triển của bộ điều khiển 8051 6

1.1 3 Sơ đồ chức năng 8051 7

1.2 Sơ đồ, chức năng các chân của 8051 10

1.2.1 Chức năng các chân của 8051 11

1.2.2 Nhóm chân cổng vào ra 11

1.2.3 Nhóm chân nguồn dao động và điều khiển 12

1.2.4 Các thanh ghi đặc biệt: 13

1.2.5 Lệnh Reset 14

1.3 Hoạt động của bộ định thời (timer) 15

1.3.1 Giới thiệu 15

1.3.2 Thanh ghi điều khiển timer (TCON): 15

1.3.3 Thanh ghi chế độ timer (TMOD): 16

1.3.4 Các chế độ timer: 16

1.3.5 Nguồn tạo xung nhịp: 18

1.3.6 Bắt đầu dừng và điều khiển các timer 19

1.3.7 Khởi động và truy xuất các thanh ghi timer 20

1.4 Tập lệnh của 8051: 20

Chương II : ỨNG DỤNG ĐIỀU KHIỂN ĐÈN BÁO HIỆU TRẠM THU PHÍ GIAO THÔNG 26

2.1 Nguyên lý hoạt động của mạch 26

2.2 Sơ đồ khối của hệ thống 27

2.2.1 Khối VĐK 27

Trang 2

2.2.2 Khối Hiển Thị 28

2.2.3 Khối giao tiếp vi điều khiển với bàn phím 35

2.3 Một số linh kiện và công cụ khác 38

Chương III : CHƯƠNG TRÌNH MÔ PHỎNG ĐÈN BÁO HIỆU TRẠM THU PHÍ 39

3.1 Chương trình cho mạch điều khiển đèn hiệu trạm thu phí giao thông 39

3.2 Mã lệnh của chương trình 45

3.3 Chương trình mô phỏng 49

3.4 Mạch đèn thu phí giao thông demo 56

3.4.1 Các khối và linh kiện 56

3.4.2 Hoạt động của mạch 57

KẾT QUẢ 60

HƯỚNG PHÁT TRIỂN 61

TÀI LIỆU THAM KHẢO 62

Trang 3

LỜI NÓI ĐẦU

Kỹ thuật vi xử lý ngày nay rất phát triển, nó được ứng dụng rất nhiềutrong các lĩnh vực như sản xuất công nghiệp,tự động hóa và nhiều lĩnh vực khácnữa.So với kĩ thuật số thì kĩ thuật vi xử lí nhỏ gọn hơn nhất nhiều do nó đượctích hợp lại và được lập trình để điều khiển

Với tính ưu việt của vi xử lý thì trong phạm vi đồ án tốt nghiệp này em chỉtiến hành việc dùng vi xử lí, vi điều khiển trong điều khiển đền báo hiệu tại trạmthu phí giao thông , đây chỉ là một ứng dụng nhỏ của nó trong những ứng dụngcủa nó

Nhữn kiến thức được học cộng với sự hiểu biết từ các tài liệu tham khảotuy có thể hoàn thành đồ án này nhưng không thể tránh khỏi thiếu sót mong thầy

cô giáo khi xem bài báo cáo này có thể thông cảm cho em

Để hoàn thành bài báo cáo này em đã nhận được sự chỉ bảo tận tình của côgiáo hướng dẫn.Cuối cùng chúng em xin chân thành cảm ơn cô giáo bộ mônhướng dẫn Bùi Thị Mai Hoa và các thầy cô trong bộ môn kĩ thuật máy tính

Trang 4

Chương I: CƠ SỞ LÝ THUYẾT HỌ VI ĐIỀU KHIỂN

Bộ vi xử lý là một hệ thống thao tác trên các bit 0 và 1, nhưng bản thân hệ thốngkhông giải quyết được vấn đề gì cả, mà bài toán chỉ được giải khi bộ vi xử lýthực hiện tất cả các chương trình ứng dụng mà ngươi lập trình đưa vào

1.1.2 Sự phát triển của bộ điều khiển 8051

Sự phát triển của kĩ thuật vi xử lý gán liền với sự phát triển của bộ vi điều khiển.Intel hãng sản xuất bộ vi sử lý đầu tiên và là hãng có bộ vi điều khiển lớn nhất vàphong phú nhất

Trong các họ vi điều khiển 8 bít hàng đầu thì 8051 có số lượng lớn nhất và cónhiều hãng cung cấp nhất Nhà cung cấp lầ nhà sản xuất bên cạnh nhà sáng chế

bộ vi điều khiển đối với 8051 thì nhà sáng chế là Intel Nhưng hiên nay có rấtnhiều hãng cung sản xuất Các hãng này gồm Intel , Atmel , Philips/

Signetics , AMD , Simens , Matra , Pallas

Năm 1981 hãng Intel cho ra mắt bộ vi điều khiển được gọi là 8051 Bộ vi điềukhiển này là một vi mạch tổng quát của họ MCS – 51 , bộ vi điều khiển

này có các thống số và các đặc trưng như sau

- 4KB ROM

- 128 byte RAM

- 4 port xuất nhập ( 4 cổng vào/ra) 8bít

- 2bộ định thời 16 bít

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

- Không gian nhớ chương trình ( mã) ngoài 64K

- Bộ xử lý bít

- 210 vị trí nhớ được định địa chỉ , mỗi vị trí 1 bít

Trang 5

- Nhân / chia trong 4μs

8051 đã trở nên rất phổ biến sau khi Intel cho phép các nhà sản xuất khác sảnxuất và bán bất kì biến dạng nào của 8051 nhưng với điều kiện họ phải mãchương trình tương thích với 8051 mặc dù do các hãng sản xuất khác nhau nêntốc độ và dung lượng nhớ của ROM trên chíp là khác nhau nhưng tất cả các lệnh

đó đều tương thích với 8051 ban đầu

Trang 6

Sơ đồ khối của 8051

Trang 7

+ Bộ nhớ trong bao gồm 2 thành phần ROM và RAM

ROM ( Read only memory ) : Là bộ nhớ cố định có đặc điểm thông tin chỉ có thểđọc thông tin ra và thông tin không bị mất khi mất điện Bộ nhớ ROM được dùng

để chứa chương trình chính hoặc chứa chương trình điều hành hay chương trìnhhướng dẫn

RAM ( ) là bộ nhớ động có đặc điểm là thông tin có thể ghi hoặc đọc ramột ra một cách tuỳ ý và thông tin đó sẽ bị mất đi khi mất điện

RAM được sử dụng để nạp phần còn lại của hệ điều hành từ đĩa khởi động hoặcnạp vào các chương trình ứng dụng từ bộ nhớ ngoài, lưu trữ số liệu và trạng thái

hệ thống trong quá trình làm việc

+ Bộ nhớ ngoài gồm băng từ, đĩa từ được sử dụng nhiều vì giá thành rất rẻ vàđược dùng để lưu trữ thông tin và dữ liệu

Trang 8

+ Bus dữ liệu: Là hệ thống đường truyền song song được dùng để trao đổi dữ liệugiữa CPU với các thành phần bên ngoài và giữa các thành phần với nhau

+ Bus điều khiển: Gồm các đường dây dùng để truyền tín hiệu điều khiển cầnthiếu giúp cho CPU điều khiển việc trao đổi dữ liệu, xử lý sự cố và đồng bộ toàn

hệ thống

1.2 Sơ đồ, chức năng các chân của 8051

Sơ đồ chân của 8051

Sơ đồ chân của 8051

Trang 9

1.2.1 Chức năng các chân của 8051

Chíp 8051 có 40 chân trong đó có 32 chân có công dụng xuất/ nhập tuy nhiên 24trong 32 chân này có 2 mục đích sử dụng Mỗi một chân này có thể hoạt độngxuất/nhập như một đường địa chỉ/dữ liệu của bus địa chỉ/dữ liệu đa hợp, 32 chânnày hình thành 4 port 8 bít 8 chân cho một bort và có thể sử dụng như một đơn

vị giao tiếp song song như máy in, bộ biến đổi DA

Các chân còn lại dành cho nguồn Vcc , đất GND, các chân dao động XTAL1

Cổng Port0 Có 8 chân (Chân từ 32 đến 39) bình thường đây là cổng ra, vào hoặc

ra nhưng nó có hai tác dụng trong các thiết kế tối thiểu thì Port 0 được sử fụnglàm nhiệm vụ xuất nhập còn trong các thiết bị lớn hơn thì Port trở thành

bus địa chỉ và bus dữ liệu đa hợp

b Cổng Port 1

Cổng Port 1 cũng có các chân ( Các chân từ 1 đến 8) các chân này chỉ có một tácdụng là dùng để giao tiếp với các thiết bị ngoại vi (làm đường xuất nhập hoặclàm các ngõ vào cho các mạch dịch thời thứ 3) Để chuyển cổng port 1 thành đầuvào cần lập trình bằng cách ghi 1 đến tất cả các bít của cổng

c Cổng port 2

Cổng Port 2 có 8 chân( từ chân 24 đến chân 28) có thể được sử dụng làm đầu vàohoặc đầu ra Cổng này có hai chức năng là chuyển địac hỉ và dữ liệu, byte địa chỉcao của bus địa chỉ 16 bít cho các thiết kế có bộ nhớ chương

trình ngoài

d Cổng Port 3

Cổng Port có 8 chân từ chân 10 đến chân 17 Cổng này có thể được sử dụng làmđầu vào hoặc đầu ra Khi không làm nhiệm vụ xuất nhập thì nó sẽ có các chứcnăng riêng liên quan đến các đặc trung cụ thể của 8051 , tuy nhiên cổng Port3còn có một chấc năng quan trọng khác là cung cấp một số tín hiệu đặc biệt chẳnghạn như ngắt

Bảng chức năng của cổng Port3

Bít Tên Địa chỉ bít Chức năng

Trang 10

P3.0 RXD B0H Chân nhận dữ liệu của Port nối tiếp

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

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

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

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

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

P3.6 WR B6H Điều khiển ghi bộ nhớ dữ liệu ngoài

P3.7 RD B7H Điều khiển đọc bộ nhớ dữ liệu ngoài

1.2.3 Nhóm chân nguồn dao động và điều khiển

a Nhóm chân nguồn

+ Chân Vcc: Chân 40 cung cấp điện áp nguồn +5V cho chíp

+ Chân GND: Chân số 20 là cung cấp nguồn âm (là chân mát)

b Nhóm chân dao động

Nhóm chân XTAL1 và XTAL2 là các chân 18 và 19 của chíp 8051

hiện tại đã có môt bộ dao động đồng hồ ở bên ngoài dùng để kích hoạt và hai hânnày cần được nối với bộ dao động thạch anh ở ngoài va khi đó được mắc với các

tụ ổn định tần số dao động cho thạch anh

Tần số danh định của thạch anh là 12 MHz cho tất cả họ vi điều khiển 8051 Bộdao động tạo xung đồng hồ không nhất thiết là bộ dao động dùng thạch anh màcũng có thể dùng bộ dao động TTL khi đó dao động được nối tới chân XTAL1còn chân XTAL2 để hở

c Nhóm chân điều khiển

+ Chân RESET ( chân số 9 ) là chân khởi động lại trạng thái ban đầu của hệthống Khi có xung cao đặt tới chân này thì bộ vi điều khiển 8051 sẽ kết thúcmọi hoại động hiện tại và tiến hành khởi động lại Quá trình này xảy ra hoàntoàn tương tự như khi bật nguồn và khi đó mọi giá trị trên thanh ghi đều bị xoáhết

Chân EA ( Chân số 31 ) Là chân truy xuất ngoài có thể được nối với +5V khi cómức logic1 và nối đất khi có mức logic 0

Nếu có mức logic 1 thì nó sẽ thực thi chương trình trong ROM

Nếu có mức logic 0 và chân PSEN cũng ở mức 0 thì chương trình cần thực thichứa ở bộ nhớ ngoài vì trong chíp không có bộ nhớ chương trình

+ Chân PSEN (chân 29 )

Trang 11

Là chân ra có chức năng cho phép cất chương trình 1 và cho phép bộ nhớ chươngtrình cung cấp cho ta 4 tín hiệu điều khiển bus và là tín hiệu xuất trên chân này

và đây cũng là tín hiệu cho phép truy xuất bộ nhớ chương trình ngoài và được nốivới OE

Tín hiệu PSEN ở mức logic 0 khi thực hiện thời gian tìm nạp lệnh

Tín hiệu PSEN ở mức logic 1 khi thực hiện 1 chương trình chứa ở ROM

+ Chân chốt địa chỉ ALE ( Chân 30 )

Là chân có mức tích cực cao và là chân xuất tín hiệu cho phép xuất địa chỉ ALE Khi pỏt được chọn làm bus địa chỉ / dữ liệu thi chân ALE xuất tín hiệu để chốtđịa chỉ và sau khi chốt các chân của port sẽ xuất / nhập dữ liệu hợp lệ trong suốt1/2 thứ 2 của chu kì bộ nhớ

Chân ALE còn được sử dụng để phân kênh địa chỉ và dữ liệu bằng cách nối tớichân G của chíp 74LS373

Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động , chân ALE còn dùnglàm chân nhận xung ngõ vào lập trình cho EDROM

1.2.4 Các thanh ghi đặc biệt:

a.Các thanh ghi port xuất nhập:

Các port của 8051 bao gồm port 0 ở địa chỉ 80H, port 1 ở địa chỉ 90H,port 2 ởđịa chỉ A0H, port 3 ở địa chỉ B0H.Tất cả các port đều được địa chỉ hóa từngbit.Điều đó cung cấp một khả năng giao tiếp thuận lợi

b.Các thanh ghi timer:

8051 chứa 2 bộ định thời đếm 16 bit được dùng trong việc định thời hoặc đém

sự kiện.Time 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao).Time 1 ởđịa chỉ 8BH (TL1: byte thấp) và 8DH (TH1: byte cao).Việc vận hành timer đượcset bởi thanh ghi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiểntimer(TCON) ở địa chỉ 88H.Chỉ có TCON được địa chỉ hóa từng bit

c Các thanh ghi port nối tiếp:

8051 chứa một port trên chip dành cho việc trao đổi thông tin với các thiết bịnhư máy tính ,modem hoặc cho việc giao tiếp với các IC khác có giao tiếp nốitiếp (có bộ chuyển đổi A/D, các thanh ghi dịch…)

Trang 12

d Các thanh ghi ngắt:

8051 có cấu trúc 5 nguồn ngắt và 2 mức ưu tiên.Các ngắt bị cấm sau khi reset hệthống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt(IE) ở địa chỉ8AH.Cả 2 thanh ghi đều được địa chỉ hóa từng bit

e Các thanh ghi điều khiển công suất:

thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa nhiều bit điều khiển

1.2.5 Lệnh Reset.

8051 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kì máy

và trả nó về mức thấp.RST có thể được kích khi cấp điện đùng một mạch R-C

Mạch reset hệ thống Trạng thái của tất cả các thanh ghi 8051sau khi reset hệ thống được tóm tắttrong bảng sau:

Trang 13

Quan trọng nhất trong các thanh ghi trên là thanh ghi đém chương trình , nóđược đặt lại 0000H Khi RST trở lại mức thấp, việc thi hành chương trình luônbắt đầu ở địa chỉ đầu tiên trong bộ nhớ chương trình : địa chỉ 0000H.Nội dungRAM trên chip không bị thay đổi khi sử dụng lệnh reset.

1.3 Hoạt động của bộ định thời (timer)

1.3.1 Giới thiệu

Một định nghĩa đơn giản của timer là chuỗi các flip-flop chia đôi tàn số nối tiếpvới nhau, chúng nhận tín hiệu và làm nguồn xung nhịp.Ngõ ra của tần số cuốilàm nguồn xung nhịp cho flip-flop báo tràn của timer(flip-flop cờ).Giá trị nhịphân trong các flip-flop của timer có thể xem như số đếm số xung nhịp (hoặc các

sự kiện ) từ khi khởi động timer ví dụ timer 16 bit sẽ đếm lên từ 0000H đénFFFFH

8051 có 2 timer 16 bit, mỗi timer có 4 cách làm việc

Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở mộtkhoảng đều đặn va đạ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 cửa ngõ vào hoặc gửicác sự kiện ra các ngõ ra Các ứng dụng khác có thể sử dụng để 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 độ xung) Đếm sự kiện dùng để xác định số lần xảy ra của một sự kiện.Một sự kiện là bất

cứ tác động ngoài nào có thể cung cấp một chuyển trạng thái trên chân của 80

1.3.2 Thanh ghi điều khiển timer (TCON):

Thanh ghi TCON chứa các bit trang thái và các bit điều khiển cho timer 0 và timer 1

Bảng tóm tắt thanh ghi TCON

1.3.3 Thanh ghi chế độ timer (TMOD):

Trang 14

Thanh ghi TMOD chứa 2 nhóm 4 bit dùng để đặt chế độ làm việc cho timer 0 vàtimer 1.

khi INT1 ở mức cao

1=bộ đếm sự kiện0=bộ định khoảng thời gian

00: chế độ 0:timer 13 bit01: chế dộ 1: timer 16 bit10: chế độ 2: tự động nạp lại 8255Abit

hoạt động như timer 16 bit đầy đủ

Cờ báo tràn là bit TFx trong TCON có thể đọc hoặc ghi bằng phần mềm

Trang 15

MSB của các giá trị trong các thanh ghi timer là bit của THx và LBS là bit 0của TLx Các thanh ghi timer(TLx/THx) có thể được đọc hoặc ghi bất cứ lúc nàobằng phần mềm.

Chế độ 0 , chế độ tự động nạp lại 8 bit.

TLx hoạt động như 1 timer 8 bit, trong khi đó THx vẫn giữ nguyên giá trị dượcnạp Khi số đếm bị tràn từ FFH đến 00H, không những cờ timer được set mà giátrị trong THx cũng đồng thời được nạp vào trong TLx việc đếm được tiếp tục từgiá trị này lên đến FFH xuống 00H và được nạp lại…chế độ này rất thông dụng

vì sự tràn timer xảy ra trong những khoảng thời gian nhất định và tuần hoàn 1 khi

đã khởi động TMOD và THx

Trang 16

Khi timer 0 ở chế độ 3 ,có thể cho timer 1 chạy và ngưng bằng cách chuyển nó

ra ngoài và vào chế độ 3

Trang 17

1.3.5 Nguồn tạo xung nhịp:

Có 2 nguồn xung nhịp có thể được chọn bằng cách ghi vao bit C/T(counter/timer) trong TMOD khi khởi động timer Một nguồn xung nhịp dùngcho định khoảng thời gian , cái khác cho đếm sự kiện

Trang 18

-Định khoảng thời gian(interval timing)

Nếu C/T=0 hoạt động timer liên tục được chọn và timer được dùng cho việcđịnh khoảng thời gian.Lúc đó, timer lấy xung nhịp từ bộ dao động trên chip.Bộchia 12 được thêm vào để giảm tần số xung nhịp đến giá trị thích hợp cho phầnlớn các ứng dụng.Như vậy thạch anh 12 MHZ sẽ cho tốc độ xung nhịp timer 1MHZ Báo tràn timer xảy ra sau một số (cố định) xung nhịp phụ thuộc vào giá trịban đầu dược nạp vào các thanh ghi timer(TLx/THx)

-Đếm sự kiện(Event Counting)

-Nếu C/T=1, timer lấy xung nhịp từ nguồn bên ngoài.Trong hầu hết các ứng dụngnguồn bên ngoài này cung cấp cho timer 1 xung khi xảy ra 1 “sự kiện” ,timer dùnđém sự kiện được xác định bằng phần mềm bằng cách đọc các thanh ghiTLx/THx vì giá trị 16 bit trong các thanh ghi này tăng thêm 1 cho mỗi sự kiện Nguồn xung nhịp bên ngoài có thể làm thay đổi chức năng của các chân port3.Bit 4 của port 3 (P3.4) dùng làm ngõ vào tạo xung nhịp bên trong timer 0 vàđược gọi là “T0” và P3.5 hay “T1” là ngõ vào tạo xung nhịp cho timer 1

1.3.6 Bắt đầu dừng và điều khiển các timer

Phương pháp mới đơn giản nhất để bắt đầu và dừng các timer là sử dụng các bitdiều khiển chạy:TRx trong TCON,TRx bị xóa sau khi reset hệ thống Như vậy làcác timer theo mặc nhiên là bị cấm.TRx dược đặt lên bằng 1 để cho các timerchạy

Trang 19

Vì TRx ở trong thanh ghi TCON có địa chỉ bit nên dễ dang trong việc điều khiểncác timer trong chương trình.Ví dụ: cho timer chạy bằng lệnh: SETB TR0 vàdừng bằn lệnh: CLR TR0

Trình biên dịch sẽ thực hiện việc chuyển đổi kí hiệu cần thiết “TR0” sang địa chỉbit đúng SET TR0 chính xác giống như SETB 8CH

1.3.7 Khởi động và truy xuất các thanh ghi timer.

Thông thường các thanh ghi dược khởi động một lần ở đầu chương trình để đặtchế độ làm việc cho đúng Sau đó trong thân chương trinh các timer được chochạy,dừng các bít cờ được kiểm tra và xóa , các thanh ghi timer được đọc và cậpnhật …theo đòi hỏi của các ứng dụng

TMOD là thanh ghi thứ nhất được khởi động vì nó đặt chế độ hoat động

Trang 20

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

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

Data : 8 bit địa chỉ vung dữ liệu bên trong Nó có thể là vùng Ram hoặccác thanh ghi chức năng đặc biệt

@Ri : 8 bit vung RAM dữ liệu trong được đánh giá giá địa chỉ gián tiếpqua thanh ghi R0 hoặc R1

#data : Hằng 8 bit chứa 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à ẠJMP.Rel : Byte offset 8 bit có dấu được dùng trong lệnh SJMP và nhữnglệ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 đặc biệt

a.Nhóm lệnh xử lý 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 khaibáo trong Ri vào thanh ghi A

ADD 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ớ

Trang 21

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

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à 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 trực tiếp dữ liệu 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 dung 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

b Nhóm lệnh Logic :

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 RAM

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

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

ANL data,#data (3,2) : AND một dữ liệu trực tiếp với 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 C,/bit (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,data (2,1) : OR thanh ghi A với một dữ liệu trực tiếp

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

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

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

Trang 22

ORL data,#data (3,1) :OR một dữ liệu trực tiếp với một dữ liệu tức thời

ORL C,bit (2,2) : OR cờ nhớ với một bit trực tiếp

ORL C,/bit (2,2) : OR cờ nhớ với bù của một bit trực tiếp

XRL A,Rn (1,1) : XOR thanh ghi A với thanh ghi Rn

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

XRL A,@Ri (1,1) : XOR thanh ghi A với một dữ liệu gián tiếp

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

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

XRL dara,#data (3,1) : XOR một dữ liệu trực tiếp với một dữ liệu tức thời SETB C (1,1) : Đặt cờ nhớ

SETB bit (2,1) : Đặt 1 bit trự tiếp

CLR A (1,1) : Xóa thanh ghi A

CLR C (1,1) : Xóa cờ nhớ

CPL A (1,1) : Bù nội dung thanh ghi A

CPL C (1,1) : Bù cờ nhớ

CPL bit (2,1) : Bù một bit trực tiếp

RL A (1,1) : Quay trái nội dung thanh ghi A

RLC A (1,1) : Quay trái nội dung thanh ghi A qua cờ nhớ

RR A (1,1): Quay phải nội dung thanh ghi A

RRC A (1,1) : Quay phải nội dung thanh ghi A qua cờ nhớ

SWAP (1,1) : Quay trái nội dung thanh ghi A 1 nibble (1/2byte)

c Nhóm lệnh chuyển dữ liệu:

MOV A,Rn (1,1):Chuyển nội dung thanh ghi Rn vào thanh ghi A MOV A,data (2,1): Chuyển dữ liệu trực tiếp vào thanh ghi A

MOV A,@Ri (1,1): Chuyển dữ liệu gián tiếp vào thanh ghi A

MOV A,#data (2,1): Chuyển dữ liệu tức thời vào thanh ghi A

MOV Rn,data (2,2): Chuyển dữ liệu trực tiếp vào thanh ghi Rn

MOV Rn,#data (2,1): Chuyển dữ liệu tức thời vào thanh ghi Rn

Trang 23

MOV data,A (2,1): Chuyển nội dung thanh ghi A vào một dữ liệu trực tiếp MOV data,Rn (2,2): Chuyển nội dung thanh ghi Rn vào một dữ liẹu trực tiếp MOV data,data (3,2): Chuyển một dữ liệu trực tiếp vào một dữ liệu trực tiếp MOV data,@Ri (2,2): Chuyển một dữ liệu gián tiếp vào một dữ liệu gián tiếp MOV data,#data (3,2): Chuyển một dữ liệu tức thời vào một dữ liệu trực tiếp MOV @Ri,A (1,1): Chuyển nội dung thanh ghi A vào một dữ liệu gián tiếp MOV @Ri,data (2,2): Chuyển một dữ liệu trực tiếp vào một dữ liệu gián tiếp MOV @Ri,#data (2,1): Chuyển dữ liệu tức thời vào dữ liệu gián tiếp.

MOV DPTR,#data16 (3,2): Chuyển một hằng số 16 bit vào thanh ghi con trỏ dữliệu

MOV C,bit (2,1): Chuyển một bit trực tiếp vào cờ nhớ

MOV bit,C (2,2): Chuyển trực tiếp một bit vào cờ nhớ

MOV A,@A+DPTR (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ là @A+DPRT vào thanh ghi A

MOVC A,@A+PC (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ là

@A+PC vaò thanh ghi A

MOV A,@Ri (1,2): Chuyển dữ liệu ngoài (8 bit địa chỉ) vào thanh ghi A

MOVX A,@DPTR (1,2): Chuyển dữ liệu ngoài (16 bit địa chỉ) vào thanh ghi A MOVX @Ri,A (1,2): Chuyển nội dung A ra dữ liệu ngoài (8 bit địa chỉ)

MOVX @DPTR,A (1,2): Chuyển nội dung A ra dữ liệu bên ngoài (16 bit địa chỉ)

PUSH data (2,2) : Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP

POP data (2,2) : Chuyển dữ liệu trực tiệp vào ngăn xếp và giảm SP

XCH A,Rn (1,1) : Trao đổi dữ liệu giữa thanh ghi Rn và thanh ghi A

XCH A,data (2,1) : Trao đổi giữa thanh ghi A và một dữ liệu trực tiếp

XCH A,@Ri (1,1) : Trao đổi giữa thanh ghi A và một dữ liệu gián tiếp

XCHD A,@R (1,1) : Trao đổi giữa nibble thấp (LSN) của thanh ghi A và LSN Của dữ liệu gián tiếp

Trang 24

d Nhóm lệnh rẽ nhánh:

ACALL addr11 (2,2): Gọi chương trình con dùng địa chỉ tuyệt đối

LCALL addr16 (3,2): Gọi chương trình con dùng địa chỉ dài

RET (1,2): Trở về từ lệnh gọi chương trình con

RET1 (1,2): Trờ về từ lệnh gọi ngắt

AJMP addr11 (2,2): Nhảy tuyệt đối

LJMP addr16 (3,2): Nhảy dài

SJMP rel (2,2): Nhảy ngắn

JMP @A+DPTR (1,2): Nhảy gián tiếp từ con trỏ dữ liệu

JZ rel (2,2): Nhảy nếu A=0

JNZ rel (2,2): Nhảy nếu A không bằng 0

JC rel (2,2): Nhảy nếu cờ nhớ được đặt

JNC rel (2,2): Nhảy nếu cờ nhớ không được đặt

JB bit,rel (3,2): Nhảy tương đói nếu bit trực tiếp được đặt

JNB bit,rel (3,2): Nhảy tương đói nếu bit trực tiếp không được đặt

JBC bit,rel (3,2): Nhảy tương đói nếu bit trực tiếp được đặt ,rồi xóa

CJNE A,data,rel (3,2): So sánh dữ liệu trực tiếp với A và nhảy nếu không bằng CJNE A,#data,rel (3,2): So sánh dữ liệu tức thời với A và nhảy nếu không bằng CJNE Rn,#data,rel (3,2): So sánh dữ liệu tức thời với nội dung thanh ghi Rn và nhảy nếu không bằng

CJNE @Ri,#data,rel (3,2): So sánh dữ liệu tức thời với dữ liệu gián tiếp và nhảy nếu không bằng

DJNZ Rn,rel (2,2): Giảm thanh ghi Rn và nhảy nếu không bằng

DJNZ data,rel (3,2): Giảm dữ liệu trực tiếp và nhảy nếu không bằng

Trang 25

Chương II : ỨNG DỤNG ĐIỀU KHIỂN ĐÈN BÁO HIỆU

TRẠM THU PHÍ GIAO THÔNG

2.1 Nguyên lý hoạt động của mạch

Thiết kế cụm đèn báo hiệu sáng theo chu trình

- Đèn đỏ sáng 15s, đèn vàng sáng nhấp nháy liên tục, đèn xanh sáng liên tục

- Trong khoảng thời gian các đèn sáng, 2 LED 7 thanh làm nhiệm vụ đếmngược thời gian đặt trước về 00 rồi tác động đèn màu tương ứng

- Chu trình được lặp lại vô tận

- Đèn xanh: Sáng báo hiệu cho xe tham ra giao thông vừa thu phí xongđược phép đi qua Thời gian sáng của đèn này có thể điều chỉnh được

- Đèn đỏ: Sáng mặc định 15s báo hiệu cho xe đi đầu tiên dừng lại để nộpphí và các xe tham ra giao thông khác sau cũng vậy

- Đèn vàng: Nháy sáng liên tục thông báo cho các phương tiện giao thôngbiết đường đi lúc đó lưu thông tự do trong những ngày lễ hay sự kiện quantrọng và ban đêm…

- Sử dụng các nút nhấn A,B,C,D … Để điểu khiển tăng giảm thời gian sángcác đèn hay nhấn trong trường hợp khẩn cấp

Trang 26

2.2 Sơ đồ khối của hệ thống

2.2.1 Khối VĐK.

a Vai trò, chức năng, nhiệm vụ của khối :

Khối này có nhiệm vụ xử lý tất cả các công việc mà mã lệnh chỉ ra(lập trình), xử lý xong đưa ra các khối để hoàn tất công việc, chuyển bị vàonhiệm vụ mới

Nếu ta không sử dụng VĐK mà sử dụng các IC logic…thì cũng có thểthực hiện được các công việc đề ra nhưng phần cứng sẽ cồng kềnh, phức tạp hơn

so với việc dùng VĐK

Ngày nay, người ta không cần thiết sử dụng VĐK AT89C51,mà ta có thể

sử dụng AVR, PLC, PIC…Vì sử dụng VĐK có nhược điểm là chỉ xử lý tối đađược 8 bit, dữ liệu lớn hơn 8 bit khó xử lý và tốc độ xử lý chậm

Khối VĐK đóng vai trò hết sức quan trọng trong hệ thống để điều khiển

hệ thống điều khiển Hay khối này đóng vai trò trung tâm của một hệ thống Vì

Khối Bàn Phím

Khối Bàn Phím

Khối VĐK

Khối VĐK Hiển Thị Hiển Thị

Đầu Vào

Đầu Vào

Trang 27

toàn bộ dữ liệu mà ta thiết kế để điều khiển hệ thống đèn báo trạm thu phí giaothông đều được chứa trong bộ nhớ của VĐK.

b Phương án thiết kế.

Lý do chúng em chọn chip vi điều khiển AT89C51 là vì AT89C51 có giáthành phù hợp và các chỉ tiêu kĩ thuật của nó thỏa mãn được yêu cầu của đề bàiđặt ra như : bộ nhớ, công suất nguôn tiêu thụ thấp…

Vi điều khiển AT89C51 là một vi điều khiển thuộc họ 8051,AT89C51 làmột hệ vi tính 8-bit đơn chip CMOS có hiệu suất cao,công suất nguồn tiêu thụthấp và có 4K byte bộ nhớ ROM Flash xóa được / lập trình được.Chip này đượcsản xuất dựa vào công nghệ bộ nhớ không mất nội dung có độ tích hợp cao củaAtmel

AT89C51 có các đặc trưng chuẩn sau : 4K byte Flash,128 byte RAM,32đường suất nhập (Port0-Port3),2 bộ định thời / đếm 16-bit, một cấu trúc ngắt 2mức ưu tiên và 5 nguyên nhân ngắt ,một port nối tiếp song công,mạch dao động

và tạo xung clock trên chip

Ngoài ra, AT89C51 được thiết kế với logic tĩnh cho hoạt động có tần

số giảm xuống 0 và hỗ trợ hai chế độ tiết kiệm năng lượng được lựa chọnbằng phần mềm

2.2.2 Khối Hiển Thị

a.Vai trò, nhiệm vụ, chức năng của khối :

Khối này hiển thị thời gian đếm lùi khi các đèn sáng, báo cho người tham gia giao thông biết được thời gian chờ đợi khi các đèn sáng

b Phương án thiết kế.

Ở đây ta sử dụng các led 7 thanh để hiển thị thời gian đếm lùi Có thể sửdụng các mạch điều khiển LED 7 thanh chuyên dụng (sn7447) để đảm bảo đưa rađược tín hiệu với công suất nhất định cần thiết cho hoạt động của LED, hoặc cóthể nối trực tiếp với các chân của VĐK thông qua mạch khuyếch đại công suất đểđảm bảo cho led hoạt động được…

Trang 28

Phương án 1 : sử dụng IC 74ls47.

Do khối hiển thị chỉ đơn thuần là hiển thị thời gian đếm ngược khi các đènsáng Do đó ta dùng các LED 7 thanh ( LED 7 thanh lọai Anode chung, Hình 3)

để tạo thành bộ hiển thị thời gian đếm lùi từ 0-99 & sử dụng IC 74ls47 để giải

mã cho LED 7 thanh

IC chốt 74LS47

Table of Contents

+ Chân 1, 2, 6, 7: Chân dữ liệu BCD vào dữ liệu này được lấy từ IC

+ Chân 9, 10, 11, 12, 13, 14, 15: Các chân ra tác động mức thấp (0) và được nối với LED 7 đoạn

Trang 29

+ Chân 8: GND.

+ Chân 16: Vcc = 5V

+ Chân 4: chân Vcc

+ Chân 5: Ngõ vào

+Chân 3: Chân này cũng thế cho nó lên Vcc = 5V

Bảng chân lý các giá trị IO của 74LS47

Sự hoạt động của mạch được thể hiện ở bảng chân lý, trong đó đối với các ngõ ra

H là tắt và L là sáng, nghĩa là nếu 74LS47 thúc đèn led 7 đoạn thì các đoạn a, b,

c, d, e, f, g của đèn sẽ sáng hay tắt tuỳ vào ngõ ra tương ứng của 74LS47 là L hay

H nên do đó ta phải dùng LED anot chung

Trang 30

Led 7 thanh

Dạng Led:

- Led Anode chung:

Đối với dạng Led anode chung, chân COM phải có mức logic 1 và muốn sángLed thì tương ứng các chân a – f, dp sẽ ở mức logic 0

Ngày đăng: 30/12/2015, 15:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Văn Thế Minh, Kỹ thuật Vi xử lý, NXB KHKT 2000 Khác
[2] Nguyễn Tăng Cường & Phan Quốc Thắng ,Cấu trúc và lập trình họ vi điều khiển 8051 – Nhà xuất bản KH-KT Hà Nội Khác
[3] Tống Văn On và Hoàng Đức Hải, Họ vi điều khiển 8051– Nhà xuất bản Lao Động Xã Hội Khác
[4] Thác sĩ Lưu Hồng Việt, Hệ thống điều khiển nhúng [5] Peter Marweder, Embedded Systems Design Khác
[6]Một số Video và Slide bài giảng của các thầy cô trong bộ môn KTMT về Vi Điều Khiển , Vi Xử Lý, Hệ Thống Nhúng ,Điện Tử và Điều khiển … Khác
[7] Các trang Web:- www.google.com.vn - www.ant7.vn Khác

HÌNH ẢNH LIÊN QUAN

1.1. 3. Sơ đồ chức năng 8051 . - Thiết kế hệ thống đèn điều khiển trạm thu phí giao thông sử dụng vi điều khiển AT89C51
1.1. 3. Sơ đồ chức năng 8051 (Trang 5)
1.2. Sơ đồ, chức năng các chân của 8051 - Thiết kế hệ thống đèn điều khiển trạm thu phí giao thông sử dụng vi điều khiển AT89C51
1.2. Sơ đồ, chức năng các chân của 8051 (Trang 8)
Bảng tóm tắt thanh ghi TMOD - Thiết kế hệ thống đèn điều khiển trạm thu phí giao thông sử dụng vi điều khiển AT89C51
Bảng t óm tắt thanh ghi TMOD (Trang 14)
Bảng mã cho Led Anode chung (a là LSB, dp là MSB): - Thiết kế hệ thống đèn điều khiển trạm thu phí giao thông sử dụng vi điều khiển AT89C51
Bảng m ã cho Led Anode chung (a là LSB, dp là MSB): (Trang 32)
Sơ đồ chân ULN2803  : - Thiết kế hệ thống đèn điều khiển trạm thu phí giao thông sử dụng vi điều khiển AT89C51
Sơ đồ ch ân ULN2803 : (Trang 33)
Sơ đồ chân. - Thiết kế hệ thống đèn điều khiển trạm thu phí giao thông sử dụng vi điều khiển AT89C51
Sơ đồ ch ân (Trang 34)
Sơ đồ thuật toán chương trình trễ 1s. - Thiết kế hệ thống đèn điều khiển trạm thu phí giao thông sử dụng vi điều khiển AT89C51
Sơ đồ thu ật toán chương trình trễ 1s (Trang 44)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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