70
GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến Chương I : GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MCS-51 (AT89C51) 1.1. Giới thiệu họ MCS -51: * MCS-51 là họ IC (integrated circuit) vì điều khiển (Microcontroller) do hãng Intel sản xuất. Các IC tiêu biểu cho họ MSC-51 là: 8051, 8031, 89C51, 892051, 8751,... Việc xử lý trên Byte và các toán số học ở cấu trúc dữ liệu được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những lệnh số học 8 Bit gồm cả lệnh cộng, trừ, nhân và lệnh chia. Nó cung cấp những hỗ trợ mở rộng trên Chip dùng cho những biến một Bit như là kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tr a Bit trực tiếp trong điều khiển. AT89C51 là một hệ vi tính 8 bit đơn chíp CMOS có hiệu suất cao, công suất nguồn tiêu thụ thấp và có 4Kbyte bộ nhớ ROM Flash xoá được lập trình được. Chip này được sả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ủa Atmel. Chip AT89C51 cũng tương thích với tập lệnh và các chân ra của chuẩn công nghiệp MCS-51. Flash trên chip này cho phép bộ nhớ chương trình được lập trình lại trên hệ thống hoặc bằng bộ lập trình bộ nhớ không mất nội dung qui ước. Bằng cách kết hợp một CPU linh hoạt 8 bit SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 1

Đồ án mạch chống trộm

Embed Size (px)

Citation preview

Page 1: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Chương I : GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MCS-51 (AT89C51)

1.1. Giới thiệu họ MCS -51:

* MCS-51 là họ IC (integrated circuit) vì điều khiển (Microcontroller) do hãng

Intel sản xuất. Các IC tiêu biểu cho họ MSC-51 là: 8051, 8031, 89C51, 892051,

8751,... Việc xử lý trên Byte và các toán số học ở cấu trúc dữ liệu được thực hiện

bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một

bảng tiện dụng của những lệnh số học 8 Bit gồm cả lệnh cộng, trừ, nhân và lệnh

chia. Nó cung cấp những hỗ trợ mở rộng trên Chip dùng cho những biến một Bit

như là kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tr a Bit trực tiếp trong điều

khiển.

AT89C51 là một hệ vi tính 8 bit đơn chíp CMOS có hiệu suất cao, công suất

nguồn tiêu thụ thấp và có 4Kbyte bộ nhớ ROM Flash xoá được lập trình được. Chip

này được sả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ủa Atmel.

Chip AT89C51 cũng tương thích với tập lệnh và các chân ra của chuẩn công

nghiệp MCS-51. Flash trên chip này cho phép bộ nhớ chương trình được lập trình

lại trên hệ thống hoặc bằng bộ lập trình bộ nhớ không mất nội dung qui ước. Bằng

cách kết hợp một CPU linh hoạt 8 bit với Flash trên một chip đơn thể, Atmel 89C51

là một hệ vi tính 8 bit đơn chip mạnh cho ta một giải pháp có hiệu quả về chi phí và

rất linh hoạt đối với các ứng dụng điều khiển.

AT89C51 có các đặc trưng sau: 4Kbyte Flash, 128 byte Ram, 32 đường xuất

nhập, hai bộ định thời / đếm 16 bit, một cấu trúc ngắt 2 mứ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 AT8951 đượ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ọn bằng phần mềm.

Chế độ nghĩ dừng CPU trong khi vẫn cho phép RAM, các bộ định thời /đếm,

port nối tiếp và hệ thống ngắt tiếp tục hoạt động.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 1

Page 2: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Chế độ nguồn giảm duy trì nội dung của RAM nhưng không cho mạch dao

động cung cấp xung clock nhằm vô hiệu hoá các hoạt động khác của chip cho đến

khi có reset cứng tiếp theo.

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

4 KB bộ nhớ có thể lập trình lại nhanh, có khả năng tới 1000 chu kỳ ghi xoá.

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

3 mức khóa bộ nhớ lập trình

2 bộ Timer/counter 16 Bit

128 Byte RAM nội.

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

Giao tiếp nối tiếp.

64 KB vùng nhớ mã ngoài

64 KB vùng nhớ dữ liệu ngoại.

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

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

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

SƠ ĐỒ KHỐI CỦA AT89C51:

Hình 1.1 Sơ đồ khối của AT89C51

1.2. KHẢO SÁT SƠ ĐỒ CHÂN, CHỨC NĂNG TỪNG CHÂN CỦA AT89C51:

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 2

Page 3: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

1.2.1 Sơ đồ chân:

Hình 1.2 Sơ đồ chân IC AT89C51

1.2.2 Chức năng các chân:

* AT89C51 có tất cả 40 chân có chức năng như các đường xuất nhập.

Trong đó có chân có tác dụng kép ( có nghĩa 1 chân có 2 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ỉ.

Trong đó:

-VCC: chân cung cấp điện.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 3

Page 4: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

- GND: chân nối đất.

a. Các Port:

- Port 0: gồm 8 chân 32-39 (P0.0…P0,7)

Port 0 là port có 2 chức năng. Trong các thiết kế cỡ nhỏ không dùng bộ nhớ

mở rộng nó có chức năng như các đường IO. Đối với các thiết kế cỡ lớn có bộ nhớ

mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu.

- Port1: chân 1-8 (P1.0…P1.7)

Port 1 là port IO. Có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần.

Port 1 không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các

thiết bị bên ngoài.

- Port 2: chân 21-28 (P2.0….P2.7).

Port 2 là port có tác dụng kép. Được dùng như các đường xuất nhập hoặc

byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng.

- Port 3: chân 10-17 (P3.0…P3.7)

Port 3 là port xuất nhập 8 bit 2 chiều có các điện trở kéo lên bên trong. Các

chân của port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các

đặc tính đặc biệt của 89C51.

Hình 1.3 Các chân port 3

b. Các ngõ tín hiệu điều khiển:

* Ngõ tín hiệu PSEN (Program store enable):

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 4

Page 5: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

• PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương

trình mở rộng thường được nói đến chân 0E\ (output enable) của EPROM cho phép

đọc các byte mã lệnh.

• PSEN ở mức thấp trong thời gian Microcontroller 89C51 lấy lệnh. Các mã

lệnh của chương trình được đọc từ EPROM qua bus dữ liệu và được chốt vào thanh

ghi lệnh bên trong 89C51 để giải mã lệnh. Khi 89C51 thi hành chương trình trong

ROM nội PSEN sẽ ở mức logic 1.

* Ngõ tín hiệu điều khiển ALE (Address Latch Enable):

• Khi 89C51 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ

và bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân

thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi

kết nói chúng với IC chốt.

• Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng

vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.

* Ngõ tín hiệu EA\ (External Acces):

Tín hiệu vào /EA ở chân 31 thường được mắc lên nguồn. Nếu ở mức 1, 89C51

thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8 Kbyte. Nếu ở mức

0, 89C51 sẽ thi hành chương trình từ bộ nhớ mở rộng. Chân /EA được lấy làm chân

cấp nguồn 12V khi lập trình cho EPROM trong 89C51.

* Ngõ tín hiệu RST (Reset): Ngõ vào RST ở chân 9 là ngõ vào Reser của

89C51. Khi ngõ vào tín hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi

bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi cấp điện

mạch tự động Restet.

- XTAL 1:

Ngõ vào đến mạch khuyếch đại đảo dao động và ngõ vào đến mạch tạo xung

clock bên trong chip.

- XTAL 2:

Ngõ ra từ mạch khuyết đại đảo của mạch dao động.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 5

Page 6: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

+ Khi sử dụng 89C51 người thiết kế chỉ cần kết nối thêm thạch anh và các tụ

như hình vẽ. Tần số thạch anh thường sử dụng cho 89C51 là 12 Mhz.

Hình 1.4 Mạch dao động

1.3 CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN :

1.3.1 Tổ chức bộ nhớ:

Hình 1.5 Sơ đồ bộ nhớ

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 6

Page 7: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Bản đồ bộ nhớ Data trên Chip như sau:

Hình 1.6 Bản đồ bộ nhớ Data

- Bộ nhớ trong 89C51 bao gồm ROM và RAM. RAM trong 89C51 bao gồm

nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank

thanh ghi và các thanh ghi chức năng đặc biệt.

- AT89C51 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt

cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong

AT89C51 nhưng AT89C51 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và

64K byte dữ liệu.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 7

Page 8: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Các đặc tính cần chú ý là:

Các thanh ghi và các port xuất nhập đã được định vị (xác định) trong bộ

nhớ và có thể truy xuất trực tiếp giống như ca cơ sở địa chỉ bộ nhớ khác.

Ngăn xếp bên trong Ram nội nhỏ hơn so với Ram ngoại.

RAM bên trong 89C51 được phân chia như sau:

+ Các bank thanh ghi có địa chỉ từ 00H đến 1FH.

+ RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.

+ RAM đa dụng từ 30H đến 7FH.

+ Các thanh ghi chức năng đặc biệt từ 80H đến FFH.

a. RAM đa dụng:

Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các địa chỉ từ 30H đến

7FH, 32 byte dưới từ 00H đến 1FH cũng có thể dùng với mục đích tương tự (mặc

dù các địa chỉ này đã có mục đích khác).

- Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất tự do dùng kiểu

địa chỉ trực tiếp hoặc gián tiếp.

b. RAM có thể truy xuất từng bit:

- 89C51 chứa 210 bit được địa chỉ hóa, trong đó có 128 bit có chứa các byte có

chứa các địa chỉ từ 20F đến 2FH và các bit còn lại chứa trong nhóm thanh ghi có

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

- Ý tưởng truy xuất từng bit bằng phần mềm là các đặc tính mạnh của

microcontroller xử lý chung. Các bit có thể được đặt, xóa, AND, OR, ..., với 1 lệnh

đơn. Đa số các microcontroller xử lý đòi hỏi một chuỗi lệnh đọc – sửa – ghi để đạt

được mục đích tương tự. Ngoài ra các port cũng có thể truy xuất được từng bit.

+ 128 bit truy xuất từng bit này cũng có thể truy xuất như các byte hoặc như

các bit phụ thuộc vào lệnh được dùng.

c. Các bank thanh ghi:

- 32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi. Bộ lệnh

89C51 hỗ trợ 8 thanh ghi có tên là R0 đến R7 và theo mặc định sau khi reset hệ

thống, các thanh ghi này có các địa chỉ từ 00H đến 07H.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 8

Page 9: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

- Các lệnh dùng các thanh ghi R0 đến R7 sẽ ngắn hơn và nhanh hơn so với các

lệnh có chức năng tương ứng dùng kiểu địa chỉ trực tiếp. Các dữ liệu được dùng

thường xuyên nên dùng một trong các thanh ghi này.

- Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi

được truy xuất bởi các thanh ghi R0 đến R7 để chuyển đổi việc truy xuất các bank

thanh ghi ta phải thay đổi các bit chọn bank trong thanh ghi trạng thái.

1.3.2. Các thanh ghi có chức năng đặc biệt:

- Các thanh ghi nội của 89C51 được truy xuất ngầm định bởi bộ lệnh.

- Các thanh ghi trong 89C51 được định dạng như một phần của RAM trên

chip vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương

trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp). Cũng

như R0 đến R7, 89C51 có 21 thanh ghi có chức năng đặc biệt (SFR: Special

Function Register) ở vùng trên của RAM nội từ địa chỉ 80H đến FFH.

* Chú ý: Tất cả 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có 21

thanh ghi có chức năng đặc biệt được định nghĩa sẵn các địa chỉ.

- Ngoại trừ thanh ghi A có thể được truy xuất ngầm như đã nói, đa số các

thanh ghi có chức năng đặc biệt SFR có thể địa chỉ hóa từng bit hoặc byte.

Thanh ghi trạng thái chương trình (PSW: Prorgam Status Word): ở địa chỉ

D0H

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 9

Page 10: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Chức năng từng bit trạng thái chương trình:

+ Cờ Carry CY: Cờ nhớ có tác dụng kép. Thông thường nó được dùng cho

các lệnh toán học: C = 1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và

ngược lại C = 0 nếu phép toán cộng không tràn và phép trừ không có mượn.

+ Cờ Carry phụ AC: Khi cộng những giá trị BCD (Binary Code Decimal),

cờ nhớ phụ AC được set nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển 0AH

÷ 0FH. Ngược lại AC = 0.

+ Cờ 0 (Flag 0): Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của

người dùng.

+ Những bit chọn bank thanh ghi truy xuất: RS1 và RS0 quyết định dãy

thanh ghi tích cực. Chúng được xóa sau khi reset hệ thống và được thay dodỏi bởi

phần mềm khi cần thiết.

Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng là

Bank 0, Bank 1, Bank 2, Bank 3.

+ Cờ tràn OV: Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự

tràn toán học. Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể

kiểm tra bit này để xác định xem kết quả có nằm trong tầm xác định không. Khi các

số không có dấu được cộng bit OV được bỏ qua. Các kết quả lớn hơn +127 hoặc

nhỏ hơn – 128 thì bit OV = 1.

+ Bit Party (P): Bit tự động được set hay Clear ở mỗi chu kỳ máy để lập

Parity chẵn với thanh ghi A. Sự đếm các bit 1 trong thanh ghi A cộng với bit Parity

luôn luôn chẵn. Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit 1 trong

A và P tạo thành số chẵn.

Bit Parity thường được dùng trong sự kết hợp với những thủ tục của Port nối

tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm tra bit Parity sau khi thu.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 10

Page 11: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

+ Thanh ghi B: Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi A

cho các phép toán nhân chia. Lệnh MUL AB ⇐ lấy A chia B, kết quả nguyên đặt

vào A, số dư đặt vào B. Thanh ghi B có thể được dùng như một thanh ghi đệm trung

gian đa mục đích. Nó là nhưng bit định vị thông qua những địa chỉ từ F0H ÷ F7H.

+ Con trỏ Ngăn xếp SP (Stack Pointer): Con trỏ ngăn xếp là một thanh ghi 8

bit ở địa chỉ 81H. Nó chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh ngăn xếp.

Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp (PUSH) và lấy

dữ liệu ra khỏi ngăn xếp (POP). Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước

khi ghi dữ liệu và lệnh lấy ra khỏi ngăn xếp sẽ làm giảm SP. Ngăn xếp của

8031/8051 được giữ trong RAM nội và giới hạn các địa chỉ có thể truy xuất bằng

địa chỉ gián tiếp, chúng là 128 byte đầu của 89C51.

- Để khởi động SP với ngăn xếp bắt đầu tại địa chỉ 60H, các lệnh sau đây được

dùng: MOV SP, # 5F.

- Với lệnh trên thì ngăn xếp của 89C51 chỉ có 32 byte vì địa chỉ cao nhất của

RAM trên chip là 7FH. Sở dĩ giá trị 5FH được nạp vào SP vì SP tăng lên 60H trước

khi cất byte dữ liệu.

- Khi Reset 89C51, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu tiên sẽ

được cất vào ô nhớ ngăn xếp có địa chỉ 08H. Nếu phần mềm ứng dụng không khởi

động SP một giá trị mới thì bank thanh ghi 1 có thể cả 2 và 3 sẽ không dùng được vì

vùng RAM này đã được dùng làm ngăn xếp. Ngăn xếp được truy xuất trực tiếp

bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu, hoặc truy xuất

ngầm bằng lệnh gọi chương trình con (ACALL, LCALL) và các lệnh trở về (RET,

RETI) để lưu trữ giá trị của bộ đếm chương trình khi bắt đầu thực hiện chương trình

con và lấy lại khi kết thúc chương trình con.

+ Con trỏ dữ liệu DPTR (Data Pointer): Con trỏ dữ liệu (DPTR) được dùng

để truy xuất bộ nhớ ngoài là một thanh ghi 16 bit ở địa chỉ 82H (DPL: byte thấp) và

83H (DPH: byte cao). Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H:

MOV A, # 55H

MOV DPTR, # 1000H

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 11

Page 12: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

MOV @ DPTR, A

Lệnh đầu tiên dùng để nạp 55H vào thanh ghi A. Lệnh thứ hai dùng để nạp địa

chỉ của ô nhớ cần lưu giá trị 55H vào con trỏ dữ liệu DPTR. Lệnh thứ ba sẽ di

chuyển nội dung thanh ghi A (là 55H) vào ô nhớ RAM bên ngoài có địa chỉ chứa

trong DPTR (là 1000H).

+ Các thanh ghi Port (Port Register): Các Port của 89C51 bao gồm Port 0 ở

địa chỉ 80H. Port 1 ở địa chỉ 90H, Port 2 ở địa chỉ A0H và Port 3 ở địa chỉ B0H. Tất

cả các Port này đều có thể truy xuất từng bit nên rất thuận tiện trong khả năng giao

tiếp.

+ Các thanh ghi Timer (Timer Register): 89C51 có chứa hai bộ định thời/ bộ

đếm 16 bit được dùng cho việc định thời được đếm sự kiện. Timer 0 ở địa chỉ 8AH

(TL0: byte thấp) và 8CH (TH0: byte cao). Timer 1 ở địa chri 8BH (TL1: byte thấp)

và 8DH (TH1: byte cao). Việc khởi động timer được SET bởi Timer Mode

(TMOD) ở địa chỉ 89H và thanh ghi điều khiển Timer (TCON) ở địa chỉ 88H. Chỉ

có TCON được địa chỉ hóa từng bit.

+ Các thanh ghi Port nối tiếp (Serial Port Register): 89C51 chứa một Port

nối tiếp cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính, modem

hoặc giao tiếp nối tiếp với các IC khác. Một thanh ghi đệm dữ liệu nối tiếp (SBUF)

ở địa chỉ 99H sẽ dữ cả hai dữ liệu truyền và dữ liệu nhập. Khi truyền dữ liệu ghi lên

SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận khác nhau được lập trình qua

thanh ghi điều khiển Port nối tiếp (SCON) được địa chỉ hóa từng bit ở địa chỉ 98H.

+ Các thanh ghi ngắt (Interrupt Register): 89C51 có cấu trúc 5 nguồn ngắt,

2 mức ưu tiên. Các ngắt bị cấm sau khi bị 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ỉ A8H. Cả hai được địa chỉ hóa từng

bit.

+ Thanh ghi điều khiển nguồn PCON (Power Control Register): Thanh ghi

PCON không có bit định vị. Nó ở địa chỉ 87H chứa nhiều bit điều khiển. Thanh ghi

PCON được tóm tắt như sau:

Bit 7 (SMOD): Bit có tốc độ Baud ở mode 1, 2, 3 ở Port nối tiếp khi set.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 12

Page 13: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Bit 6, 5, 4: Không có địa chỉ.

Bit 3 (GF1): Bit cờ đa năng 1.

Bit 2 (GF0): Bit cờ đa năng 2.

Bit 1 (PD): Set để khởi động mode Power Down và thoát để reset.

Bit 0 (IDL): Set để khởi động mode Idle và thoát khi ngắt mạch hoặc reset.

Các bit điều khiển Power Down và Idle có tác dụng chính trong tất cả các IC

họ MSC – 51 nhưng chỉ được thi hành trong sự biên dịch của CMOS.

1.3.3. Bộ nhớ ngoài (External memory):

89C51 có khả năng mở rộng bộ nhớ lên đến 64K byte bộ nhớ chương trình và

64K byte bộ nhớ dữ liệu ngoài. Do đó có thể dùng thêm RAM và ROM nếu cần.

Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được đọc hoặc ghi khi được cho

phép của tín hiệu RD\ và WR. Hai tín hiệu này nằm ở chân P3.7(RD) và P3.6(WR).

1.3.4. Hoạt động Reset:

AT89C51 có 2 cách thực hiện reset: reset bằng tay hoặc reset tự động.

• Reset tự động:

Reset tự động

- Mạch Autoreset thường được dùng để xác định trạng thái đầu tiên của

mạch ngay khi vừa cấp nguồn để mạch luôn luôn hoạt động đúng như yêu cầu thiết

kế.

Khi chưa cấp nguồn điện áp trên tụ bằng 0V, nên khi vừa cấp điện tụ nạp từ

0V Vcc, do đó khi cấp điện thì điện áp đưa vào chân Reset là Vcc, nên mạch tự

động hệ thống.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 13

Page 14: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

• Reset bằng tay:

Reset bằng tay

- Thường trong hệ thống rất cần động tác Reset khi mạch đang hoạt động, do

đó chỉ có mạch Reset khi vừa bật máy là chưa đủ. Việc thiết kế mạch Reset bằng

tay rất đơn giản chỉ việc thêm vào mạch Reset tự động một SW và điện trở như

hình. Nguyên lý mạch giống như mạch Reset tự động.

- Trang thái của tất cả các thanh ghi trong 89C51 sau khi reset hệ thống:

- Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được reset

tại địa chỉ 0000H. Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại

địa chỉ 0000H của bộ nhớ chương trình. Nội dung của RAM trên chip không bị thay

đổi bởi tác động của ngõ vào reset.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 14

Page 15: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

1.4. HOẠT ĐỘNG TIMER CỦA 89C51:

1.4.1. Khái niệm:

AT89C51 có 2 bộ timer:

- Timer 0: là một bộ đếm lên tuần tự 16 bit, giá trị đếm chứa trong 2 thanh

ghi TH0, TL0.

- Timer 1: là một bộ đếm tuần tự 16 bit chứa trong TH1 và TL1.

1.4.2. Các thanh ghi của bộ Timer:

- Thanh ghi TMOD gồm hai nhóm 4 bit là: 4 bit thấp đặt mode hoạt động cho

Timer 0 và 4 bit cao đặt mode hoạt động cho Timer 1.8 bit của thanh ghi TMOD

được tóm tắt như sau. .

Với hai bit M0 và M1 của TMOD để chọn mode cho Timer 0 hoặc Timer 1.

TMOD không có bit định vị, nó thường được LOAD một lần bởi phần mềm ở

đầu chương trình để khởi động mode Timer. Sau đó sự định giờ có thể dừng lại và

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 15

Page 16: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

được khởi động lại như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt của

Timer.

- Thanh ghi TCON (Timer control)

Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều khiển bởi

Timer 0 và Timer 1. Thanh ghi TCON có bit định vị. Hoạt động của từng bit được

tóm tắt như sau:

1.4.3. Các chế độ hoạt động của Timer:

* 89C51 có 2 Timer và Timer 0 và Timer 1. Ta dùng ký hiệu TLx và Thx để

chỉ 2 thanh ghi byte thấp và byte cao của Timer 0 hoặc Timer 1.

- Mode Timer 13 bit (MODE 0):

Sơ đồ mode 0

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 16

Page 17: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

+ Mode 0 là mode Timer 13 bit, trong đó byte cao của Timer (THx) được đặt

thấp và 5 bit trọng số thấp nhất của byte thấp Timer (TLx) đặt cao để hợp thành

Timer 13 bit. 3 bit cao của TLx không dùng.

- Mode Timer 16 bit (MODE 1):

Sơ đồ mode 1

+ Mode 1 là mode Timer 16 bit, tương tự như mode 0 ngoại trừ Timer nàyhoạt

động như một Timer đầy đủ 16 bit, xung clock được dùng với sự kết hợp các thanh

ghi cao và thấp (TLx, THx). Khi xung clock được nhận vào, bộ đếm Timer tăng

lên 0000H, 0001H, 0002H, ...., và một sự tràn sẽ xuất hiện khi có sự chuyển trên bộ

đếm Timer từ FFFH sang 0000H và sẽ set cờ tràn Timer, sau đó Timer đếm tiếp.

+ Cờ tràn là bit TFx trong thanh ghi TCON mà nó sẽ được đọc hoặc ghi bởi

phần mềm.

+ Bit có trọng số lớn nhất (MSB) của giá trị trong thanh ghi Timer là bit 7 của

THx và bit có trọng số thấp nhất (LSB) và bit 0 của TLx.

+ Các thanh ghi Time.

- Mode tự động nạp 8 bit (MODE 2):

Sơ đồ mode 2

- Mode 2 là mode tự động nạp 8 bit, byte thấp TLx của Timer hoạt động như

một Timer 8 bit trong khi byte cao THx của Timer giữ giá trị Reload. Khi bộ đếm

tràn từ FFH sang 00H, không chỉ cờ tràn được set mà giá trị trong THx cũng được

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 17

Page 18: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

nạp vào TLx: Bộ đếm được tiếp tục từ giá trị này lên đến sự chuyển trạng thái từ

FFH sang 00H kế tiếp và cứ thế tiếp tục. Mode này thì phù hợp bởi vì các sự tràn

xuất hiện cụ thể mà mỗi lúc nghỉ thanh ghi TMOD và THx được khởi động.

- Mode Timer tách ra (MODE 3):

Sơ đồ mode 3

+ Mode 3 là mode Timer tách ra và là sự khác biệt cho mỗi Timer.

+ Timer 0 ở mode 3 được chia là 2 timer 8 bit. TL0 và TH0 hoạt động như

những Timer riêng lẻ với sự tràn sẽ set các bit TL0 và TF1 tương ứng.

+ Timer 1 bị dừng lại ở mode 3, nhưng có thể được khởi động bởi việc ngắt

nó vào một trong các mode khác. Chỉ có nhược điểm là cờ tràn TF1 của Timer 1

không bị ảnh hưởng bởi các sự tràn của Timer 1 bởi vì TF1 được nối với TH0.

+ Khi timer 0 ở chế độ 3, timer 1 vẫn có thể sử dụng bởi port nối tiếp như tạo

tốc độ baud (vì nó không còn được nối với TF1).

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 18

Page 19: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Chương II : GIỚI THIỆU VỀ LCD VÀ GIAO TIẾP LCD VỚI 89C51

2.1. Giới thiệu về LCD:

Ở phần này ta sẽ mô tả các chế độ hoạt động của các LCD và sau đó mô tả

cách lập trình và phối ghép một LCD tới 8051.

2.1.1. Hoạt động của LCD :

Trong những năm gấn đây LCD đang ngày càng được sử dụng rộng rãi thay

thế dần cho các đèn LED (các đèn LED 7 đoạn hay nhiều đoạn ). Đó là vì các

nguyên nhân sau :

Các LCD có giá thành hạ.

Khả năng hiển thị các số , các ký tự và đồ họa tốt hơn nhiều so với các

đèn LED (vì các đèn LED chỉ hiển thị được các số và một số ký tự).

Nhờ kết hợp một bộ điều khiển làm tươi vào LCD làm giải phóng cho

CPU công việc làm tươi LCD. Trong khi đèn LED phải được làm tươi bằng

CPU(hoặc bằng cách nào đó) để duy trì việc hiển thị dữ liệu.

Dễ dàng lập trình cho các ký tự và đồ họa.

LCD sử dụng trong mạch: TC1602_01T

- Hình dạng, kích thước:

- Sơ đồ chân:

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 19

Page 20: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

2.1.2. Mô tả các chân của LCD :

LCD được nói trong mục này có 16 chân , chức năng của các chân được cho

trong bang 2.1. Vị trí của các chân được mô tả trên hình 2.1 cho nhiều LCD khác

nhau.

Chân Vcc, Vss và Vee : Các chân Vcc, Vss và Vee : Cấp dương nguồn -

5v và đất tương ứng thì Vee được dùng để điều khiển độ tương phản của LCD.

Chân chọn thanh ghi RS (Register Select).

Có 2 thanh ghi rất quan trọng trong LCD, chân RS được dùng để chọn các

thanh ghi này như sau: Nếu RS = 0 thì thanh ghi mã lệnh được chọn để cho phép

người dùnggửi 1 lệnh chẳng hạn như xóa màn hình, đưa con trỏ về đàu dòng v.v…

Nếu Rs = 1 thì thanh ghi dữ liệu được chọn cho phép người dùng gửi dữ liệu cần

hiển thị trên LCD.

Chân đọc ghi (R/W):

Đầu vào đọc ghi cho phép người dùng ghi thông tin nên LCD khi R/W =0

hoặc đọc thông tin từ nó khi R/W = 1.

Chân cho phép E (Enable):

Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiên hữu trên dữ

liệu của nó. Khi dữ liệu được cấp đến chân dữ liệu thì một xung mức cao xuống

thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân dữ liệu. Xung

này phải rộng tối thiểu là 450ns.

Chân D0 – D7 :

Đây là chân dữ liệu 8 bit, đươc dùng để gửi thông tin lên LCD hoặc đọc nội

dung của các thanh ghi trong LCD.

Để hiển thị các chữ cái và các con số, chúng ta gửi các mã ASCII của các chữ

cái từ A đến Z, a đến f và các con số từ 0 đến 9 đến các chân này khi bật RS =1.

Cũng có các mã lệnh mà có thể được gửi tới LCD để xóa màn hình hoặc đưa

con trỏ. Bảng 2.2 liệt kê các mã lệnh.

Chúng ta cũng sử dụng RS = 0 để kiểm tra bit cờ bận để xem LCD có sẵn sàn

nhận thông tin.Cờ bận là D7 và có thể được đọc khi R/W = 1 và RS= 0 như sau:

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 20

Page 21: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Nếu R/W = 1, RS = 0 khi D& = 1 (cờ bận 1) thì LCD bận bởi các công bên

trong và sẽ không nhận bất kì thông tin mới nào. Khi D7 = 0 thì LCD sẵn sàng nhận

thông tin mới. Lưu ý chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ dữ liệu nào

nên LCD.

Bảng 2.1: Mô tả các chân của LCD :

Chân Ký hiệu I/O Mô tả

1 VSS - §Êt

2 VCC - D¬ng nguån 5v

3 VEE - CÊp nguån ®iÒu khiÓn ph¶n

4 RS I RS = 0 chän thanh ghi lÖnh. RS = 1 chän

thanh d÷ liÖu

5 R/W I R/W = 1 ®äc d÷ liÖu. R/W = 0 ghi

6 E I/O Cho phÐp

7 DB0 I/O C¸c bÝt d÷ liÖu

8 DB1 I/O C¸c bÝt d÷ liÖu

9 DB2 I/O C¸c bÝt d÷ liÖu

10 DB3 I/O C¸c bÝt d÷ liÖu

11 DB4 I/O C¸c bÝt d÷ liÖu

12 DB5 I/O C¸c bÝt d÷ liÖu

13 DB6 I/O C¸c bÝt d÷ liÖu

14 DB7 I/O C¸c bÝt d÷ liÖu

15 A/Vee

16 K

Bảng 2.2 : Các mã lệnh LCD :

M· (Hex) LÖnh ®Õn thanh ghi cña LCD

1 Xo¸ mµn h×nh hiÓn thÞ

2 Trë vÒ ®Çu dßng

4 Gi¶ con trá (dÞch con trá sang tr¸i)

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 21

Page 22: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

6 T¨ng con trá (dÞch con trá sang ph¶i)

5 DÞch hiÓn thÞ sang ph¶i

7 DÞch hiÓn thÞ sang tr¸i

8 T¾t con trá, t¾t hiÓn thÞ

A T¾t hiÓn thÞ, bËt con trá

C BËt hiÓn thÞ, t¾t con trá

E BËt hiÓn thÞ, nhÊp nh¸y con trá

F T¾t con trá, nhÊp nh¸y con trá

10 DÞch vÞ trÝ con trá sang tr¸i

14 DÞch vÞ trÝ con trá sang ph¶i

18 DÞch toµn bé hiÓn thÞ sang tr¸i

1C DÞch toµn bé hiÓn thÞ sang ph¶i

80 Ðp con trá Vò ®Çu dßng thø nhÊt

C0 Ðp con trá Vò ®Çu dßng thø hai

38 Hai dßng vµ ma trËn 5 7

Hình 2.1: Các vị trí chân của các LCD khác nhau của Optrex :

Gửi các lệnh và dữ liệu đến LCD với một độ trễ.

Để gửi một lệnh bất kỳ từ bảng 2.2 đến LCD ta phải đưa chân RS vế 0. Đối

với dữ liệu thì bật RS = 1 sau đó gửi một sườn xung cao xuống thấp đến chân E để

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 22

Page 23: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

cho phép chốt dữ liệu trong LCD. Điều này được chỉ ra trong đoạn mã chương trình

dưới đây (xem hình 2.2) :

;gọi độ thời gian trễ trước khi gửi dữ liệu/ lệnh kế tiếp.

;chân P1.0 đến P1.7 được nối tới chân dữ liệu D0 – D7 của LCD.

;chân P2.0 được nối tới chân RS của LCD.

;chân P2.1 được nối tới chân R/W của LCD.

;chân P2.2 được nối tới chân E của LCD.

ORGMOV A, # 38H ; Khởi tạo LCD hai dòng với ma trận 5x 7

ACALL COMNWRT ; Gọi chương trình con lệnh ACALL DELAY ; Cho LCD một độ trễ

MOV A, # 0EH ; Hiển thị màn hình và con trỏ ACALL COMNWRT ; Gọi chương trình con lệnh ACALL DELAY ; Cấp một độ trễ cho LCD

MOV AM # 01 ; Xóa LCD ACALL COMNWRT ; Gọi chương trình con lệnhACALL DELAY ; T¹o ®é trÔ cho LCDMOV A, # 06H ; DÞch con trá sang ph¶iACALL COMNWRT ; Gäi ch¬ng tr×nh con lÖnhACALL DELAY ; T¹o ®é trÔ cho LCDMOV AM # 48H ; §a con trá vÒ dßng 1 cét 4ACALL COMNWRT ; Gäi ch¬ng tr×nh con lÖnhACALL DELAY ; T¹o ®é trÔ cho LCDMOV A, # “N” ; HiÓn thÞ ch÷ NACALL DATAWRT ; Gäi ch¬ng tr×nh con hiÓn thij

DISPLAYACALL DELAY ; T¹o ®é trÔ cho LCD MOV AM # “0” ; HiÓn thÞ ch÷ 0ACALL DATAWRT ; Gäi DISPLAY

AGAIN: SJMP AGAIN ; Chê ë ®©y COMNWRT: ; Göi lÖnh ®Õn LCD

MOV P1, A ; Sao chÐp thanh ghi A ®Õn cæng P1

CLR P2.0 ; §Æt RS = 0 ®Ó göi lÖnhCLR P2.1 ; §Æt R/W = 0 ®Ó ghi d÷ liÖuSETB P2.2 ; §Æt E = 1 cho xung caoCLR P2.2 ; §Æt E = 0 cho xung cao xuèng

thÊpRET

DATAWRT: ; Ghi d÷ liÖu ra LCDMOV P1, A ; Sao chÐp thanh ghi A ®Õn cæng

P1SETB P2.0 ; §Æt RS = 1 ®Ó göi d÷ liÖuCLR P2.1 ; §Æt R/W = 0 ®Ó ghiSETB P2.2 ; §Æt E = 1 cho xung cao

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 23

Page 24: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

CLR P2.2 ; §Æt E = 0 cho xung cao xuèng thÊp

RET DELAY: MOV R3, # 50 ; §Æt ®é trÔ 50s hoÆc cao h¬n cho CPU nhanh HERE2: MOV R4, # 255 ; §Æt R4 = 255 HERE: DJNZ R4, HERE ; §îi ë ®©y cho ®Õn khi R4 = 0

DJNZ R3, HERE2RETEND

Hình 2.2 : Nối ghép LCD

2.1.3. Gửi mã lệnh hoặc dữ liệu đến LCD có kiểm tra cờ bậnĐoạn chương trình trên đây đã chỉ ra cách gửi các lệnh đến LCD mà không có

kiểm tra cờ bận (Busy Flag). Lưu ý rằng chúng ta phải đặt một độ trễ lớn trong quá trình xuất dữ liệu hoặc lệnh ra LCD. Tuy nhiên, một cách tốt hơn nhiều là hiển thị cờ bận trước khi xuất một lệnh hoặc dữ liệu tới LCD. Dưới đây là một chương trình như vậy :; Kiểm tra cờ bận trước khi gửi dữ liệu, lệnh ra LCD; Đặt P1 là cổng dữ liệu; Đặt P2.0 nối tới cổng RS; Đặt P2.1 nối tới chân R/W; Đặt P2.1 nối tới chân E

ORGMOV A, # 38H ; Khëi t¹o LCD hai dßng víi ma trËn 5 7ACALL COMMAND ; XuÊt lÖnhMOV A, # 0EH ; DÞch con trá sang ph¶iACALL COMMAND ; XuÊt lÖnhMOV A, # 01H ; Xo¸ lÖnh LCDACALL COMMAND ; XuÊt lÖnhMOV A, # 86H ; DÞch con trá sang ph¶i ACALL COMMAND ; §a con trá vÒ dßng 1 lÖnh 6MOV A, # “N” ; HiÓn thÞ ch÷ N

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 24

P2.1

D0

P1.0

P1.0

P2.2

D7R/W ERS

VSS

VEE

VCC

+5v

10KPOT

LCD8051

Page 25: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

ACALL DATA DISPLAYMOV A, # “0” ; HiÓn thÞ ch÷ 0ACALL DATA DISPLAY

HERE: SJMP HERE ; Chê ë ®©y COMMAND: ACALLREADY ; LCD ®· s½n sµng cha?

MOV P1, A ; XuÊt m· lÖnhCLR P2.0 ; §Æt RS = 0 cho xuÊt lÖnhCLR P2.1 ; §Æt R/W = 0 ®Ó ghi d÷ liÖu tíi LCDSETB P2.2 ; §Æt E = 1 ®èi víi xung cao xuèng thÊpCLR P2.2 ; §Æt E = 0 chèt d÷ liÖuRET

DATA-DISPLAY::ACALLREADY ; LCD ®· s½n sµng cha?MOV P1, A ; XuÊt d÷ liÖuSETB P2.0 ; §Æt RS = 1 cho xuÊt d÷ liÖuCLR P2.1 ; §Æt R/W = 0 ®Ó ghi d÷ liÖu ra LCDSETB P2.2 ; §Æt E = 1 ®èi víi xung cao xuèng thÊpCLR P2.2 ; §Æt E = 0 chèt d÷ liÖuRET

DELAY: SETB P1.7 ; LÊy P1.7 lµm cæng vµoCLR P2.0 ; §Æt RS = 0 ®Ó truy cËp thanh ghi

lÖnhSETB P2.1 ; §Æt R/W = 1 ®äc thanh ghi lÖnh

; §äc thanh ghi lÖnh vµ kiÓm tra cê lÖnh BACK: CLR P2.2 ; E = 1 ®èi víi xung cao xuèng thÊp

SETB P2.2 ; E = 0 cho xung cao xuèng thÊp? JB P1.7, BACK ; §îi ë ®©y cho ®Õn khi cê bËn = 0RETEND

Lưu ý rằng trong chương trình cờ bận D7 của thanh ghi lệnh. Để đọc thanh ghi lệnh ta phải đặt RS =0, R/W = 1và xung cao – xuống – thấp cho bit E để cấp thanh ghi lệnh cho chúng ta. Sau khi đọc thanh ghi lệnh, nếu bit D7 (cờ bận) ở mức cao thì LCD bận và không có thông tin (lệnh) nào được xuất đến nó chỉ khi nào D7 = 0 mới có thể gửi dữ liệu hoặc lệnh đến LCD. Lưu ý trong phương pháp này không sử dụng độ trễ thời giânnò vì ta đang kiểm tra cờ bận trước khi xuất lệnh hoặc dữ liệu nên LCD. 2.1.4 Bảng dữ liệu của LCD :

Trong LCD ta có thể dặt dữ liệu vào bất cứ chỗ nào. Dưới đây là các vị trí địa chỉ và cách chúng được truy cập :

RS E/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 1 A A A A A A A

Khi AAAAAAA = 0000000 đến 0100111 cho dòng lệnh 1 và AAAAAAA =1100111 cho dòng lệnh 2. Xem bảng sau :

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 25

Page 26: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0Dòng 1 (min) 1 0 0 0 0 0 0 0Dòng 1 (max) 1 0 1 0 0 1 1 1Dòng 2 (min) 1 1 0 0 0 0 0 0Dòng 2 (max) 1 1 1 0 0 1 1 1

Bảng 2.3 : Đánh dấu địa chỉ cho LCD

Dải địa chỉ cao có thể là 0100111 cho LCD. 40 ký tự trong khi đối với CLD 20 ký tự chỉ đến 010011 (19 thập phân = 10011 nhị phân). Để ý rằng dải trên 0100111 (nhị phân) =39 (thập phân) ứng với vị trí 0 đến 39 cho LCD kích thước 40 x 2.

Từ những điều nói ở trên đây ta có thể nhận được các địa chỉ của vị trí con trỏ có các kích thước LCD khác nhau. Xem hình 2.3 chú ý rằng tất cả mọi địa chỉ đều dạng số Hex. Hình 2.4 cho một biểu đồ việc phân thời gian của LCD. Bảng 2.4 là danh sách liệt kê chi tiết các lệnh và chỉ lệnh của LCD.

Bảng 2.2 được mở rộng từ bảng này:

16 2 LCD 80C0

81C0

82C2

83C3

84C4

85C5

86C6

ThroughThrough

8FCF

20 1 LCD 80 81 82 83 Through 9320 2 LCD 80

C081C0

82C2

83C3

Through 93Through D3

20 4 LCD 80C094D4

81C095D5

82C296D6

83C397D7

Through 93Through D3Through A7Through E7

20 2 LCD 80C0

81C0

82C2

83C3

Through A7Through E7

Note: All data is in hex.

Hình 2.3 :Các địa chỉ con trỏ đối với một số LCD

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 26

Page 27: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Hình 2.4 : Phân khe thời gian của LCD

Bảng 2.4 : Danh sách liệt kê các lệnh và địa chỉ lệnh của LCD

LÖnh

RS

R/W

DB

7

DB

6

DB

5

DB

4

DB

3

DB

2

DB

1

DB

0 M« t¶

Thêi gian thùc hiÖn

Xo¸ mµn h×nh

0 0 0 0 0 0 0 0 0 1 Xo¸ toµn bé mµn h×nh vµ ®Æt ®Þa chØ 0 cña DD RAM vµo bé ®Õm ®Þa chØ

1.64 s

Trë vÒ ®Çu dßng

0 0 0 0 0 0 0 0 1 - §Æt ®Þa chØ 0 cña DD RAM nh bé ®Õm ®Þa chØ. Tr¶ hiÓn thÞ dÞch vÒ vÞ trÝ gèc DD RAM kh«ng thay ®æi

1.64 s

§Æt chÕ ®é truy nhËp

0 0 0 0 0 0 0 1 1/D

S §Æt híng chuyÓn dÞch con trá vµ x¸c ®Þnh dÞch hiÓn thÞ c¸c thao t¸c nµy ®îc thùc hiÖn khi ®äc vµ ghi d÷ liÖu

40 s

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 27

Page 28: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

§iÒu khiÓn BËt/t¾t hiÓn thÞ

0 0 0 0 0 0 1 D C B §Æt BËt/ t¾t mµn h×nh (D) BËt/ t¾t con trá (C) vµ nhÊp nh¸y ký tù ë vÞ trÝ con trá (B)

40 s

DÞch hiÓn thÞ vµ con trá

0 0 0 0 0 1 S/C

R/L

- - DÞch con trá vµ dÞch hiÓn thÞ mµ kh«ng thay ®æi DD RAM

40 s

§Æt chøc n¨ng

0 0 0 0 1 DL

N F - - ThiÕt lËp ®é dµi d÷ liÖu (DL) sè dßng hiÓn thÞ (L) vµ phßng ký tù (F)

40 s

§Æt ®Þa chØ CGRAM

0 0 0 1 AGC ThiÕt lËp ®Þa chØ C6 RAM d÷ liÖu CG RAM ®-îc göi ®i vµ nhËn sau thiÕt lËp nµy

40 s

ThiÕt lËp ®Þa chØ DD RAM

0 0 1 ADD ThiÕt lËp ®Þa chØ DD RAM d÷ liÖu DD RAM ®-îc göi vµ nhËn sau thiÕt lËp nµy

40 s

Cê bËn ®äc vµ ®Þa chØ

0 1 BF ADD Cê bËn ®äc (BF) b¸o ho¹t ®éng bªn trong ®ang ®îc thùc hiÖn vµ ®äc néi dung bé ®Õm ®Þa chØ

40 s

Ghi d÷ liÖu CG hoÆc DD RAM

1 0 Ghi d÷ liÖu Ghi d÷ liÖu vµo DD RAM hoÆc CG RAM

40 s

§äc d÷ liÖu CG hoÆc DD RAM

1 1 §äc d÷ liÖu §äc d÷ liÖu tõ DD RAM hoÆc CG RAM

40 s

Ghi chú:1. Thời gian thực là thời gian cực đại khi tần số fCP hoặc fosc là 250 KHz.2. Thời gian thực thay đổi khi tần số thay đổi. Khi tần số fEP hay fosc là 270 kHz thì

thời gian thực được tính 250/270 x 40 =35µs v.v…3. Các ký hiệu viết tắt trong bảng là:

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 28

Page 29: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

DD RAM RAM dữ liệu hiển thị (Display Data RAM)CG RAM RAM máy phát ký tự(character Generator).ACC Địa chỉ của RAM máy phát ký tự.ADD Địa chỉ của RAM dữ liệu hiển thị phù hợp với địa chỉ con trỏ.AC Bộ đếm địa chỉ (Address Counter) được dùng cho các địa chỉ DDRAM và CGRAM.1/D = 1 Tăng 1/D = 0 GiảmS = 1 Kèm dịch hiển thị S/C = 1 Dịch hiển thị S/C = 0 Dịch con R/L = 1 Dịch sang phải R/L = 0 Dịch trái DL = 1 8 bit DL = 0 4 bit N = 1 2 dòng N = 1 1 dòngF = 1 Ma trận điểm 5 x 10 F = 0 Ma trận điểm 5 x 7BF = 1 Bận BF = 0 Có thể nhận lệnh

2.2. Các chương trình con khi giao tiếp với LCD:

Xử lý đường điều khiển E : Để thiết lập các lệnh hay gởi dữ liệu ký tự cho LCD, ta phải tạo ra một xung

cạnh xuống trên chân E, do đó ta đưa chân E lên mức cao, tạo một đỗ trễ khoảng 200ms (để tạo độ rộng xung) và sau đó đưa E xuống thấp, ta có thể coi nó là một chương trình con để ra lệnh cho LCD đọc dữ liệu, coi nó là một chương trình con:

LENH:SETB ELCALL DELAY2CLR ERET

Đọc dữ liệu hay trạng thái từ LCD: tạo một xung cạnh lên, chương trình như sau:

LENH2:CLR ELCALL DELAY2SETB ERET

Chương trình delay: 200ms, timer1, chế độ 1DELAY2:

MOV TMOD,#10HMOV R7,#4

LL:MOV TH1,#HIGH(-50000)MOV TL1,#LOW(-50000)SETB TR1JNB TF1,$CLR TR1CLR TF1DJNZ R7,LL

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 29

Page 30: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

MOV R7,#00HRET

Kiểm tra trạng thái bận LCD:Trong khi viết chương trình ta phải kiểm tra xem LCD có còn bận thực hiện

lệnh đã nhận trước đó hay không. Khi thực hiện các hoạt động bên trong chíp, mạch nội bên

trong cần một khoảng thời gian để hoàn tất. Khi đang thực thi các hoạt động bên trong chip như thế, LCD bỏ qua mọi giao tiếp với bên ngoài và bật cờ BF (thông qua chân DB7 khi có thiết lập RS=0, R/W=1) lên để báo cho 8951 biết nó đang “bận”. Dĩ nhiên, khi xong việc, nó sẽ đặt cờ BF lại mức 0. Dựa trên nguyên tắc đó ta viết đoạn chương trình con kiểm tra trạng thái bận của LCD như sau:

WAIT_LCD:CLR ECLR RSSETB RWMOV DATA_LCD,#0FFHSETB EMOV A,DATA_LCDJB ACC.7,WAIT_LCDCLR RWCLR RSRET

Khởi tạo LCD : chương trình khởi tạo LCD như sau: KHOITAO:

CLR RS ;Chọn chế độ gởi lệnhMOV DATA_LCD,#38H ;Chọn bus 8bit, font ký tự 5x8, 2 hàngLCALL LENH ;Gọi lệnh thực thi xuất ra LCDLCALL WAIT_LCD ;Kiểm tra trạng thái bận của LCDCLR RS ;Chọn chế độ gởi lệnhMOV DATA_LCD,#0FH ;LCD on, bật cursorLCALL LENHLCALL WAIT_LCDRET

Xóa màn hình hiển thị LCD:CLR_LCD:

MOV DATA_LCD,#01HLCALL LENHLCALL WAIT_LCDRET

Ghi ra màn hình LCD:CÁCH 1:WRITE_TEXT:

SETB E ;E=1 bắt đầulệnh LCDSETB RS ;RS=1 để chọn thanh chế độ xuất

;các dữ liệu ký tự để hiển thị lên LCDMOV DATA_LCD,#’T’ ;goi dữ liệu ký tự chữ T lên LCDCLR E ;E=0 tạo cạnh xuống

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 30

Page 31: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

LCALL WAIT_LCD ; Kiểm tra xem LCD còn bận hay không

RETCACH2:WRITE_TEXT:

SETB RSMOV DATA_LCD,#’T’LCALL LENHLCALL WAIT_LCDRET

Trong chương trình có một số đoạn chương trình xuất chữ, VD :

WRITE_TEXT1:MOV A,R6MOV DPTR,#TEN1MOVC A,@A+DPTRSETB RSMOV DATA_LCD,ALCALL LENHLCALL WAIT_LCDMOV A,R6INC AMOV R6,ACJNE A,#18,WRITE_TEXT1RETTEN1: DB ‘!DH Cong Nghiep TpHCM!‘

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 31

Page 32: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Chương III : SƠ ĐỒ VÀ CHƯƠNG TRÌNH HOẠT ĐỘNG CỦA MẠCH CHỐNG TRỘM

3.1. Các sơ đồ trong mạch :Các linh kiện sử dụng trong mạch: 1 IC AT89C51, 1 LCD, 5 Công tắc nhấn, 1

IC 7805 ổn áp nguồn 12v, a. Sơ đồ nguyên lý :

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 32

Page 33: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

b. Sơ đồ mô phỏng trên Proteus :

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 33

Page 34: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

c. Sơ đồ các linh kiện :

d. Sơ đồ mạch in :

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 34

Page 35: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Sơ đồ mạch khi hoàn thiện

3.2. Chương trình hoạt động của mạch :

a. Nguyên tắc hoạt động của mạch :

Mạch sử dụng vi điều khiển AT89C51 ,điều khiển bộ công tắc hiển thị thông

qua LCD ,led và loa .Khi công tắc Start bật ,mạch bắt đầu hoạt động và LCD hiển

thị dòng chữ “Mạch báo động chống trộm” .Nếu công tắc SS1 ở room 1 bật thì led 1

và led 2 sáng ,loa 1 phát tiếng kêu báo động và LCD hiển thị báo ở room 1. Tương

tự , nếu công tắc SS2 ở room 2 bật thì led 1 và led 2 sáng ,loa 2 phát tiếng kêu báo

động và LCD hiển thị báo ở room 2. Nếu công tắc Silent bật thì khi SS1 hoặc SS2

có hoạt động , chỉ có led 1 va led 2 sáng , 2 loa không hoạt động .Khi nhấn công tắc

Stop mạch ngừng hoat động , LCD hiển thị “Hệ thống nghỉ”.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 35

Page 36: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

b. Lưu đồ giải thuật:

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 36

DELAY 500

Start

Khởi tạo LCD

Hiển thị chữ

1

2

Nạp địa chỉ cho vùng dữ liệu

Kiểm tra

Room 1

Kiểm tra Room 2

Khởi tạo LCD

Hiển thị chữ

DELAY 500

Reset

Page 37: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 37

1

Kiểm tra báo động 1

Kích hoạt báo động 1

Khởi tạo LCD

Hiển thị room 1

Kiểm tra Slient

Im lặng

Kích hoạt loa 1

Stop

Start

Khởi tạo LCD

Hệ thống nghỉ

Page 38: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 38

21

Kiểm tra báo động 2

Kích hoạt báo động 2

Khởi tạo LCD

Hiển thị room 2

Kiểm tra Slient

Im lặng

Kích hoạt loa 2

Stop

Start

Khởi tạo LCD

Hệ thống nghỉ

Page 39: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

c. Chương trình code nạp cho AT89C51:

$MOD51

P_DULIEU EQU P1

RS BIT P0.0

RW BIT P0.1

EN BIT P0.2

CAM_BIEN1 BIT P0.3

CAM_BIEN2 BIT P0.4

LOA1 BIT P0.5

LOA2 BIT P0.6

START BIT P0.7

LED7 BIT P2.0

SILENT BIT P2.1

STOP BIT P2.6

O_NHO DATA 20H

NHO_I BIT O_NHO.0

NHO_II BIT O_NHO.1

NHO_SILENT BIT O_NHO.2

; **********************************************************************

ORG 00H

MAIN1:

ACALL KHOITAO_LCD ;KHOI TAO LCD

; **********************************************************************

;HIEN THI CHAY DONG 6

NGHI:

SETB LED7

SETB CAM_BIEN1

SETB CAM_BIEN2

SETB STOP

SETB START

SETB LOA1

SETB LOA2

ACALL TT_NGHI ;HIEN THI DONG 6 (DANG O CHE DO NGHI)

;KIEM TRA DE QUAY TRO LAI HOAT DONG

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 39

Page 40: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

MP1:

MOV DPTR,#DATA7

LOOP1:

JNB START,HOAT_DONG

ACALL HT_CHAYCHU

MOV R1,#20 ;DELAY 500MS

DEL500_1:

MOV TH0,#HIGH(-10000)

MOV TL0,#LOW(-10000)

ACALL DELAY

DJNZ R1,DEL500_1 ;THOI GIAN DUNG YEN CUA MOT TRANG THAI MAN HINH LCD

INC DPTR ;TANG GIA TRI DPTR DE DICH CHUYEN DONG CHU

MOV A,DPL ;KIEM TRA DA DICH XONG DONG CHU RA MAN HINH LCD

CJNE A,#LOW(DATA7+73),LOOP1

MOV A,DPH

CJNE A,#HIGH(DATA7+73),LOOP1

SJMP MP1

; **********************************************************************

HOAT_DONG:

SETB LED7

SETB CAM_BIEN1

SETB CAM_BIEN2

CLR NHO_SILENT

CLR NHO_I

CLR NHO_II

SETB LOA1

SETB LOA2

ACALL TT_HOATDONG ;HIEN THI DONG 2

MP2: ;XU LY DICH CHUYEN DU LIEU HIEN THI CHO DONG 1

MOV DPTR,#DATA1 ;NAP DIA CHI VUNG DU LIEU DONG 1 CUA LCD

LOOP2:

JNB STOP,MAIN1

JNB SILENT,IMLANG ;TAT CHUONG BAO DONG

TIEP_TUC:

JNB CAM_BIEN1,MAIN2 ;KIEM TRA NEU CO NGUOI PHONG 1

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 40

Page 41: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

JNB CAM_BIEN2,MAIN3 ;KIEM TRA NEU CO NGUOI PHONG 2

JNB START,HOAT_DONG

ACALL HT_CHAYCHU ;HIEN THI DONG 1

MOV R1,#20 ;DELAY 500MS

DEL500_2:

MOV TH0,#HIGH(-10000)

MOV TL0,#LOW(-10000)

ACALL DELAY

DJNZ R1,DEL500_2 ;THOI GIAN DUNG YEN CUA MOT TRANG THAI MAN HINH LCD

INC DPTR ;TANG GIA TRI DPTR DE DICH CHUYEN DONG CHU

MOV A,DPL ;KIEM TRA DA DICH XONG DONG CHU RA MAN HINH LCD

CJNE A,#LOW(DATA1+40),LOOP2

MOV A,DPH

CJNE A,#HIGH(DATA1+40),LOOP2

SJMP MP2

; **********************************************************************

IMLANG:

SETB NHO_SILENT

SJMP TIEP_TUC

; **********************************************************************

KHOITAO_LCD: ;CTC KHOI TAO LCD

CLR RS ;RS = 0 - GUI LENH

CLR RW ;RW = 0 - WRITE LCD MODE

SETB EN ;E = 1 - ENABLE

MOV P_DULIEU,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7

ACALL GOI_LENH ;GUI LENH RA LCD

MOV TH0,#HIGH(-4100)

MOV TL0,#LOW(-4100)

ACALL DELAY ;DELAY 4.1MS

MOV P_DULIEU,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7

ACALL GOI_LENH ;GUI LENH RA LCD

MOV TH0,#HIGH(-100)

MOV TL0,#LOW(-100)

ACALL DELAY ;DELAY 100US

MOV P_DULIEU,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 41

Page 42: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

ACALL GOI_LENH ;GUI LENH RA LCD

MOV P_DULIEU,#0CH ;CODE = 0CH - CHO PHEP LCD HIEN THI

ACALL GOI_LENH ;GUI LENH RA LCD

MOV P_DULIEU,#01H ;CODE = 01H - XOA LCD

ACALL GOI_LENH ;GUI LENH RA LCD

MOV P_DULIEU,#06H ;CODE = 06H - TU TANG DIA CHI HIEN THI, TAT DICH

CHUYEN HIEN THI

ACALL GOI_LENH ;GUI LENH RA LCD

RET

; **********************************************************************

MAIN2:

CLR LED7 ;KICH HOAT LED 7 MAU

ACALL AAA

ACALL BAODONG1

KIEMTRA1:

JNB SILENT,IMLANG4

KIEMTRA_TIEP1:

JNB CAM_BIEN1,CHOP_KIEMTRA1

KKK:

JNB START,RESET

JNB STOP,KO_HD

JNB CAM_BIEN2,MAIN3

SJMP KIEMTRA1

; **********************************************************************

IMLANG4:

ACALL TAT_LOA

SJMP KIEMTRA_TIEP1

; **********************************************************************

CHOP_KIEMTRA1:

ACALL CHOP_TAT

SJMP KKK

; **********************************************************************

MAIN3:

CLR LED7

ACALL BAODONG2

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 42

Page 43: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

ACALL AAA

KIEMTRA2:

JNB SILENT,IMLANG5

KIEMTRA_TIEP2:

JNB CAM_BIEN2,CHOP_KIEMTRA2

LLL:

JNB START,RESET

JNB STOP,KO_HD

JNB CAM_BIEN1,MAIN2 ;KIEM TRA NEU CO TROM

SJMP KIEMTRA2

; **********************************************************************

IMLANG5:

ACALL TAT_LOA

SJMP KIEMTRA_TIEP2

; **********************************************************************

CHOP_KIEMTRA2:

ACALL CHOP_TAT

SJMP LLL

; **********************************************************************

CHOP_TAT:

MOV P_DULIEU,#80H

ACALL GOI_LENH

MOV DPTR,#DATA8

ACALL GHI_DULIEULCD

ACALL TAOTRE_200MS1

MOV P_DULIEU,#80H

ACALL GOI_LENH

MOV DPTR,#DATA12

ACALL GHI_DULIEULCD

ACALL TAOTRE_200MS1

MOV P_DULIEU,#80H

ACALL GOI_LENH

MOV DPTR,#DATA8

ACALL GHI_DULIEULCD

RET

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 43

Page 44: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

; **********************************************************************

KO_HD:

LJMP MAIN1

; **********************************************************************

MAIN4:

ACALL AAA

BAO_HIEU1:

JNB SILENT,IMLANG6

KIEMTRA_TIEP3:

JNB CAM_BIEN1,CHOP_1

BAO_HIEU2:

JNB CAM_BIEN2,CHOP_2

JNB STOP,KO_HD ;KIEM TRA DE NGUNG HOAT DONG

JNB START,RESET ;KIEM TRA DE NGUNG RESET

SJMP BAO_HIEU1

IMLANG6:

ACALL TAT_LOA

SJMP KIEMTRA_TIEP3

; **********************************************************************

RESET:

LCALL HOAT_DONG

CHOP_1:

MOV P_DULIEU,#8BH

ACALL GOI_LENH

MOV DPTR,#DATA9

ACALL GHI_DULIEULCD

ACALL TAOTRE_200MS1

MOV P_DULIEU,#8BH

ACALL GOI_LENH

MOV DPTR,#DATA12

ACALL GHI_DULIEULCD

ACALL TAOTRE_200MS1

MOV P_DULIEU,#8BH

ACALL GOI_LENH

MOV DPTR,#DATA9

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 44

Page 45: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

ACALL GHI_DULIEULCD

ACALL TAOTRE_200MS1

SJMP BAO_HIEU2

CHOP_2:

MOV P_DULIEU,#8BH

ACALL GOI_LENH

MOV DPTR,#DATA10

ACALL GHI_DULIEULCD

ACALL TAOTRE_200MS1

MOV P_DULIEU,#8BH

ACALL GOI_LENH

MOV DPTR,#DATA12

ACALL GHI_DULIEULCD

ACALL TAOTRE_200MS1

MOV P_DULIEU,#8BH

ACALL GOI_LENH

MOV DPTR,#DATA10

ACALL GHI_DULIEULCD

ACALL TAOTRE_200MS1

SJMP BAO_HIEU1

; **********************************************************************

TAT_LOA:

SETB LOA1

SETB LOA2

RET

; **********************************************************************

BAODONG1:

JB NHO_SILENT,IMLANG1

CLR LOA1 ;KICH HOAT LOA 1

SETB LOA2 ;TAT LOA 2

IMLANG1:

SETB NHO_I

MOV C,NHO_II

JC ALL_BAODONG

MOV P_DULIEU,#0C0H

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 45

Page 46: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

ACALL GOI_LENH

MOV DPTR,#DATA3

LCALL GHI_DULIEULCD

RET

; **********************************************************************

BAODONG2:

JB NHO_SILENT,IMLANG2

CLR LOA2 ;KICH HOAT LOA 2

SETB LOA1 ;TAT LOA 1

IMLANG2:

SETB NHO_II

MOV C,NHO_I

JC ALL_BAODONG

ACALL KHOITAO_LCD

MOV P_DULIEU,#0C8H

ACALL GOI_LENH

MOV DPTR,#DATA4

LCALL GHI_DULIEULCD

RET

; **********************************************************************

ALL_BAODONG:

JB NHO_SILENT,IMLANG3

CLR LOA1

CLR LOA2

IMLANG3:

ACALL KHOITAO_LCD

MOV P_DULIEU,#0C5H

ACALL GOI_LENH

MOV DPTR,#DATA5

LCALL GHI_DULIEULCD

LJMP MAIN4

; **********************************************************************

TAOTRE_200MS1: ;TAO TRE DE BAO HIEU PHONG NAO CO NGUOI

MOV R4,#10 ;DELAY 500MS

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 46

Page 47: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

DEL200:

MOV TH0,#HIGH(-10000)

MOV TL0,#LOW(-10000)

ACALL DELAY

DJNZ R4,DEL200

RET

; **********************************************************************

AAA:

MOV P_DULIEU,#80H

ACALL GOI_LENH

MOV DPTR,#DATA8

ACALL GHI_DULIEULCD

RET

; **********************************************************************

TT_NGHI: ;XUAT DU LIEU DONG 6

MOV P_DULIEU,#0C0H

ACALL GOI_LENH

MOV DPTR,#DATA6

ACALL GHI_DULIEULCD

RET

;**********************************************************************

GOI_LENH:

CLR RS ;RS = 0 - GUI LENH

SJMP TAO_XUNG

GOI_DULIEU:

SETB RS

NOP

;***********************************************************************

;TAO XUNG ENABLE DE CHUYEN THONG TIN (COMMAND/DATA) VAO LCD

TAO_XUNG:

CLR RW ;RW = 0 - WRITE LCD MODE

CLR EN ;EN = 0

NOP

SETB EN ;EN = 1 - XUNG ENABLE

NOP

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 47

Page 48: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

MOV TH0,#HIGH(-1000) ;LENH NAY DUOC THAY THE CHO DOAN MA KIEM

TRA DUOI DAY KHI CHAY CHUONG TRINH NAY TRONG PHAN MEM MO PHONG

TOPVIEW

MOV TL0,#LOW(-1000)

ACALL DELAY

RET

; **********************************************************************

HT_CHAYCHU: ;CTC DAT DIA CHI BAT DAU DONG 1 VA NAP DU LIEU

DONG 1 VAO DDRAM

MOV P_DULIEU,#80H ;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA

DONG 1 - 00H

ACALL GOI_LENH ;GUI LENH RA LCD

ACALL GHI_DULIEULCD ;GUI VUNG DU LIEU SANG LCD

RET

; **********************************************************************

TT_HOATDONG:

MOV P_DULIEU,#0C0H

ACALL GOI_LENH

MOV DPTR,#DATA2

ACALL GHI_DULIEULCD

RET

; **********************************************************************

RESET1:

LCALL HOAT_DONG

; **********************************************************************

DELAY:

MOV TMOD,#01H

SETB TR0

JNB TF0,$

CLR TR0

CLR TF0

JNB START,RESET1

RET

; **********************************************************************

GHI_DULIEULCD:

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 48

Page 49: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

MOV R0,#0

LAP:

MOV A,R0

MOVC A,@A+DPTR

MOV P_DULIEU,A

ACALL GOI_DULIEU

INC R0

CJNE R0,#16,LAP

RET

; **********************************************************************

DATA1:

DB ' '

DB 'MACH BAO DONG CHONG TROM'

DB ' '

DATA2:

DB '$$ DHCN TPHCM $$'

DB ' '

DATA3:

DB 'ROOM 1'

DB ' '

DATA4:

DB 'ROOM 2'

DB ' '

DATA5:

DB 'TWO ROOMS'

DB ' '

DATA6:

DB 'HE THONG NGHI'

DB ' '

DATA7:

DB ' ‘

DB 'MACH CHONG TROM-GVHD:NGUYEN THI BAO THU-SVTH:TRUNG DUC - VAN TIEN'

DB ' '

DATA8:

DB 'STRANGER'

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 49

Page 50: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

DB ' '

DATA9:

DB 'VT 1'

DB ' '

DATA10:

DB 'VT 2'

DB ' '

DATA12:

DB ' '

DATA13:

DB ' '

DB ' '

END

KẾT LUẬN

Xã hội không ngừng phát triển, các công nghệ luôn được đổi mới qua từng

ngày, đòi hỏi mỗi chúng ta phải thường xuyên cập nhật và trau dồi kiến thức. Với

đề tài làm đồ án thiết kế “Mạch chống trộm 2 cửa sử dụng cảm biến”, chúng tôi

nhận thấy đây tuy không phải là một đề tài mới mẻ nhưng có tính ứng dụng thực tế

cao và chắc chắn sẽ còn được phát triển trong tương lai.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 50

Page 51: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

Sau một thời gian nghiên cứu và tìm hiểu, thực hiện các chương trình mô

phỏng và bắt tay làm mạch thực tế, chúng tôi nhận thấy đây là một mạch dễ làm, dễ

sử dụng, với các linh kiện sẵn có, giá thành rẻ nên việc sở hữu một “mạch chống

trộm” trong mỗi gia đình không còn là một việc khó khăn nữa.

Và quan trọng hơn hết qua đồ án này chúng tôi muốn tổng hợp và vận dụng

những kiến thức đã tích lũy được trong suốt 3 năm qua học tại trường.

Trong quá trình làm đồ án, do trình độ hiểu biết có hạn, kinh nghiệm làm

việc còn ít nên không thể tránh khỏi những thiếu sót mong thầy cô và các bạn góp ý

thêm!

Một lần nữa chúng tôi xin chân thành cảm ơn đến các thầy cô giáo và các

bạn đã giúp chúng tôi hoàn thành đồ án này!

Tài liệu tham khảo

Giáo trình:

1. Giáo trình Quang Điện Tử.

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 51

Page 52: Đồ án mạch chống trộm

GVHD: Nguyễn Thị Bảo Thư Đề tài: Mạch chống trộm sử dụng cảm biến

2. Giáo trình Vi xử lý – Phạm Quang Trí , Phạm Hữu Lộc.

3. Tài liệu tham khảo môn Linh kiện điện tử - Lê Thị Hồng Thắm.

Website:

4. http://tailieu.vn

5. http://www.dientuvietnam.net

6. http://www.ebook.edu.vn

7. http://www.alldatasheet.com

SVTH: Nguyễn Trung Đức - Nguyễn Văn Tiến 52

Page 53: Đồ án mạch chống trộm

MỤC LỤC

Chương I : GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MCS-51 (AT89C51)

.....................................................................................................................................1

1.1. Giới thiệu họ MCS -51..................................................................................1

1.2. Khảo sát sơ đồ chân, chức năng từng chân của AT89C51.........................3

1.3. Cấu trúc bên trong vi điều khiển..................................................................6

1.4. Hoạt động Timer của 89C51.......................................................................15

Chương II : GIỚI THIỆU VỀ LCD VÀ GIAO TIẾP LCD VỚI 89C51...........19

2.1. Giới thiệu về LCD:.......................................................................................19

2.2. Các chương trình con khi giao tiếp với LCD:.........................................28

Chương III : SƠ ĐỒ VÀ CHƯƠNG TRÌNH HOẠT ĐỘNG CỦA MẠCH

CHỐNG TRỘM......................................................................................................31

3.1. Các sơ đồ trong mạch :................................................................................31

3.2. Chương trình hoạt động của mạch :..........................................................35

KẾT LUẬN..............................................................................................................50

Tài liệu tham khảo..................................................................................................51