Tải bản đầy đủ (.pdf) (41 trang)

Thiết kế mạch đếm sản phẩm là những hộp sữa dùng vi điều khiển 8051 và cảm biến hồng ngoại

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (957.28 KB, 41 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NÔI
----VIỆN ĐIỆN----

BÁO CÁO ĐỒ ÁN I
ĐỀ TÀI: Thiết kế mạch đếm sản phẩm là những hộp sữa dùng vi điều

khiển 8051 và cảm biến hồng ngoại.

GVHD: LÊ HẢI SÂM
NHÓM SINH VIÊN THỰC HIỆN: NGUYỄN SỸ TUÂN MSSV:20112719
LÊ MINH TÙNG
MSSV:2011
HOÀNG HỮU TÔN MSSV: 2011

PHỤ LỤC
PHẦN I

LÝ THUYẾT

I.ĐẶT VẤN ĐỀ:
II. MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI:
III.GIẢI PHÁP VÀ GIỚI HẠN CỦA ĐỀ TÀI
IV.XÂY DỰNG SƠ ĐỒ KHỐI
V.CÁC KHỐI TRONG MẠCH ĐIỆN:
1. Cảm biến

2. Khối xử lí
3.Khối hiển thị
4. Bàn phím:
5. Kết hợp 8051 với bộ nhớ ngoài
PHẦN II THIẾT KẾ, THI CÔNG VÀ CHƯƠNG TRÌNH


A.THIẾT KẾ, THI CÔNG PHẦN CỨNG
I.KẾT NỐI 8051 VỚI BỘ NHỚ VÀ CÁC IC NGOẠI VI


1.Kết nối bộ nhớ chương trình bên ngoài:
2.Kết nối bộ nhớ dữ liệu ngoài:
3.Kết nối mạch giải mã:
4. Kết nối mạch chốt
II. THIẾT KẾ MẠCH RESET
III.KẾT NỐI KÍT VI ĐIỀU KHIỂN VỚI THIẾT BỊ NGOẠI VI
1.Kết nối với bàn phím
2.Kết nối hiển thị:
3.Kết nối mạch rơle:
IV.THIẾT KẾ MẠCH CẢM BIẾN
1.Khối phát
2.Khối đầu dò:
B.CHƯƠNG TRÌNH ĐIỀU KHIỂN
I.LƯU ĐỒ THUẬT TOÁN
1.Chương trình con khởi động ngoại vi
2.Chương trình ngắt hiển thị
3.Chương trình con nhấn số
4.Chương trình tăng 1
5.Chương trình con kiểm tra phím ấn: IN –HEX
6.Chương trình dò mã phím ấn
7.Chương trình đầu dò
8.Chương trình Blank:xóa số 0 không có nghĩa

9.Chươngtrình nhập hộp
10.Chương trình nhập sản phẩm
11.Chương trình delay

12.Chương trình con lưu số sản phẩm số hộp trong mỗi ca sản
xuất
II.CHƯƠNG TRÌNH HỆ THỐNG

PHẦN I
I.

LÝ THUYẾT

ĐẶT VẤN ĐỀ:

Ngày nay cùng với sự phát triển của các ngành khoa học kỹ thuật, kỹ thuật
điện tử Mà trong đó là kỹ thuật số đóng vai trò quan trọng trong mọi lĩnh
vực khoa học kỹ thuật, quản lí, công nghiệp tự động hóa, cung cấp thông


tin…. do đó chúng ta phải nắm bắt và vận dụng nó một cách có hiệu quả
nhằm góp phần vào sự phát triển nền khoa học kỹ thuật thế giới nói chung
và trong sự phát triển kỹ thuật điện tử nói riêng.
Từ tìm hiểu trên mạng và thông qua thực tế, chúng em đã được thấy
nhiều khâu được tự động hóa trong quá trình sản xuất. Một trong những
khâu đơn giản trong dây chuyền sản xuất tự động hóa đó là số lượng
sản phẩm làm ra được đếm một cách tự động.
Tuy nhiên đối với những doanh nghiệp vừa và nhỏ thì việc tự động
hóa hoàn toàn chưa được áp dụng trong những khâu đếm sản phẩm,
đóng bao bì mà vẫn còn sử dụng nhân công
Từ những điều đã được thấy đó và khả năng của chúng em, chúng em muốn
làm một điều gì nhỏ để góp phần vào giúp người lao động bớt phần mệt
nhọc chân tay mà cho phép tăng hiệu suất lao động lên gấp nhiều lần, đồng
thời đảm bảo được độ chính xác cao. Nên chúng em quyết định thiết kế một

mạch đếm sản phẩm vì nó rất gần gũi với thực tế và nó thật sự rất có ý nghĩa
đối với chúng em vì đã làm được một phần nhỏ đóng góp cho xã hội.
Để làm được mạch này cần thiết kế được hai phần chính là: bộ phận cảm
biến và bộ phận đếm.
*Bộ phận cảm biến: gồm phần phát và phần thu. Thông thường người ta sử
dụng phần phát là led hồng ngoại để phát ra ánh sáng hồng ngoại mục đích
để chống nhiễu so với các loại ánh sáng khác, còn phần thu là transistor
quang để thu ánh sáng hồng ngoại.
* Bộ phận đếm có nhiều phương pháp thực thi đó là:
-Lắp mạch dùng kỹ thuật số với các IC đếm, chốt, so sánh ghép lại
-Lắp mạch dùng kỹ thuật vi xử lí
-Lắp mạch dùng kỹ thuật vi điều khiển
II.

MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI:

Trong đồ án này chúng em thực hiện mạch đếm sản phẩm bằngphương pháp đếm xung.
Như vậy mỗi sản phẩm đi qua trên băng chuyền phải có một thiết bị để cảm nhận sản
phẩm, thiết bị này gọi là cảm biến. Khi một sản phẩm đi qua cảm biến sẽ nhận và tạo ra
một xung điện đưa về khối xử lí để tăng dần số đếm. Tại một thời điểm tức thời, để xác
định được số đếm cần phải có bộ phận hiển thị. Tuy nhiên mỗi khu vực sản xuất hay mỗi
ca sản xuất lại yêu cầu với số đếm khác nhau vì thế phải có sự linh hoạt trong việc
chuyển đổi số đếm. Bộ phận chuyển đổi trực quan nhất là bàn phím. Khi cần
thay đổi số đếm người sử dụng chỉ cần nhập số đếm ban đầu vào và mạch sẽ tự động
đếm. Khi số sản phẩm được đếm bằng với số đếm ban đầu thì mạch sẽ tự động dừng. Từ
đây suy ra mục đích yêu cầu của đề tài:
-Số đếm phải chính xác, và thay đổi việc cài đặt số đếm ban đầu một cách linh
hoạt.
-Bộ phận hiển thị phải rõ ràng



-Mạch điện không quá phức tạp, bảo đảm được sự an toàn,dễ sử dụng.
-Giá thành không quá mắc
III.

GIẢI PHÁP VÀ GIỚI HẠN CỦA ĐỀ TÀI:
 Giải pháp

Theo những đặc thù của sản phẩm là những hộp sữa và thùng sữa có kích thước như sau:
- Hộp sữa có chiều rộng là 5cm chiều cao 10 cm rộng 2,5cm có khả năng che được ánh
sáng hồng ngoại
-Thùng sữa có kích thước tương đối lớn vậy nên có thể che được ánh sáng hồng ngoại.
Đặc điểm của sản phẩm phân bố trên bang truyền là khá phức tạp không theo một
hình thức nào cả. Vậy nên ta phải đưa ra giải pháp làm sao cho những hộp sữa trên bang
truyền là phải tách rời nhau để cho cảm biến phân biệt được các sản phẩm.
Theo như tìm hiểu thì chúng em đưa ra giải pháp như sau:
Khi sản phẩm được sản xuất ra trên các băng truyên thì chúng có thể năm san sát nhau và
chạy trên băng truyền. Để tách riêng các sản phẩm ra cho cảm biến phân biệt được từng
sản phẩm thì chúng ta phải cho sản phẩm chạy qua các băng truyền có tốc độ khác nhau,
quá trình chuyển giao qua các băng truyền chúng ta phải tạo các khúc cua, trên băng
truyền chỉ cho phép vừa đủ để một sản phẩm đi qua. Như vây các sản phẩm có thể tách ra
riêng rẽ và như vậy cẩm biến có thể đo được từng sản phẩm chính xác được.
 Giới hạn
Vì mỗi thùng sữa chứa 24 hộp sữa nên phạm vi đếm sản phẩm trong một
thùng giới hạn từ 2->99 sản phẩm, còn số thùng giới hạn từ 0->9999
thùng.
IV.

XÂY DỰNG SƠ ĐỒ KHỐI


V.

CÁC KHỐI TRONG MẠCH ĐIỆN:

1. Cảm biến:


a. Giới thiệu sơ lược về mạch cảm biến:
Để cảm nhận mỗi lần sản phẩm đi qua thì cảm biến phải có phần phát và phần thu.
Phần phát phát ra ánh sáng hồng ngoại và phần thu hấp thụ ánh sáng hồng ngoại vì ánh
sáng hồng ngoại có đặc điểm là ít bị nhiễu so với các loại ánh sáng khác. Hai bộ phậnphát
và thu hoạt động với cùng tần số. Khi có sản phẩm đi qua giữa phần phát và phần thu,
ánh sáng hồng ngoại bị che bộ phận thu sẽ hoạt động với tần số khác tần số phát như thế
tạo ra một xung tác động tới bộ phận xử lí. Vậy bộ phận phát và bộ phận thu phải có
nguồn tạo dao động. Bộ phận dao động tác động tới công tắc đóng ngắt của nguồn phát
và nguồn thu ánh sáng. Có nhiều linh kiện phát và thu ánh sáng hồng ngoại nhưng chúng
em chọn led hồng ngoại và transitor quang là linh kiện phát và thu vì transistor quang là
linh kiện rất nhạy với ánh sáng hồng ngoại.Bộ phận tạo dao động có thể dùng mạch LC,
cổng logic, hoặc IC dao động. Với việc sử dụng IC chuyên dùng tạo dao động, bộ tạo dao
động sẽ trở nên đơn giản hơn với tần số phát và thu.
b. Các linh kiện trong mạch cảm biến:
b1. Cấu tạo, nguyên lí hoạt động của led hồng ngoại:
_Led được cấu tạo từ GaAs với vùng cấm có độ rộng là 1.43eV tương ứng bức xạ
900nm.
Ngoài ra khi pha tạp Si với nguyên vật liệu GaAlAs, độ rộng vùng cấm có thể thay đổi.
Với cách này, người ta có thể tạo ra dải sóng giữa 800 -900nm và do đó tạo ra sự điều
hưởng sao cho led hồng ngoại phát ra bước sóng thích hợp nhất cho điểm cực đại của độ
nhạy các bộ thu.
_Hoạt động: khi mối nối p -n được phân cực thuận thì dòng điện qua nối lớn vì sự dẫn
điện là do hạt tải đa số, còn khi mối nối được phân cực nghịch thì chỉ có dòng rỉ do sự di

chuy ển của các hạt tải thiểu số. Nhưng khi chiếu sáng vào mối nối, dòng điện nghịch
tăng lên gần như tỷ lệ với quang thông trong lúc dòng thuận không tăng. Đặc
tuyến volt –ampere của led hồng ngoại như sau:

b2. Photon transistor.
Photon Transistorcũng tương tự như transistor thông thường nhưng chỉ khác ở chỗ
nó không có cực bazơ, thay cho tác dụng khống chế của dòng vào cực bazơ là sự khống
chế của chùm sáng đối với dòng colector của transitor hoặc có cực bazơ, nhưng khống
chế tín hiệu là ánh sáng.Cấu tạo của transistor quang
_ Ký hiệu và cấu tạo:


Dòng điện trong transistor:
Vì nối thu được phân cực nghịch nên có dòng rỉ Ico chạy giữa thu –nền và vì nối nền Khi chiếu ánh sáng vào miền bazơ, trong miền bazơ có sự phát xạ cặp điện tử lỗ trống
làm xuất hiện dòng IL
. Do ánh sáng khiến dòng thu trở thành:
Ic = (β+ 1) .(Ico + 𝐼𝐿 ).

b3. IC dao động 555
Sơ đồ chân:

Chức năng của các chân :
Đây là vi mạch định thời chuyên dùng, có thể mắc thành dạng mạch đơn ổn hay
bất ổn.
Điện áp cung cấp từ 3V đến 18V.
Dòng điện ra đến 200mA (loại vi mạch BJT) hay 100mA (loại CMOS).
Chân 1: Nối với masse.
Chân 2: Nhận tín hiệu kích thích (trigger).



Chân 3: Tín hiệu ra (output).
Chân 4: Phục nguyên về trạng thái ban đầu (preset).
Chân 5: Nhận điện áp điều khiển (control voltag).
Chân 6: Mức ngưỡng ( threshold ).
Chân 7: Tạo đường phóng điện cho tụ.
Chân 8: Cấp nguồn Vcc.

2. Khối xử lí:
Với khối xử lí người ta có thể dùng IC rời hoặc khối vi xử lí. Nếu sử dụng vi xử lí
trong khối xử lý, người ta có thể thiết kế mạch điện giao tiếp được với máy tínhnên dễ
dàng cho việc điều khiển từ xa và bằng việc thay đổi phần mềm có thể mở rộng chương
trình điều khiển mạch điện đếm nhiều dây chuyền trong cùng một thời điểm hay lưu lại
các số liệu trong các ca sản xuất, đó là lí do chúng em sử dụng vi xử lí trong khối xử lí.
Cùng với thời gian, con người đã cho ra đời nhiều loại vi xử lí từ 8 bit đến 64 bit với cải
tiến ngày càng ưu việt nhưng tùy theo mục đích sử dụng mà vi xử lí 8 bit vẫn còn tồn tại.
Trong đồ án này chúng em sử dụng vi điều khiển 8051. 8051 cũng là vi xử lí 8 bit nhưng
có chứa bộ nhớ bên trong và có thêm 2 bộ định thời ngoài ra nó có thể giao tiếp nối tiếp
trực tiếp với máy tính mà vi xử lí 8 bit như 8085 cũng giao tiếp được với máy tính nhưng
là giao tiếp song song nên cần có IC chuyển đổi dữ liệu từ song song sang nối tiếp để
giao tiếp với máy tính. Với bộ nhớ trong 8051 thích hợp cho những chương trình có quy
mô nhỏ tuy nhiên 8051 có thể kết hợp được với bộ nhớ ngoài cho chương trình có quy
mô lớn. Sau đây là giới thiệu của chúng em về vi điều khiển 8051:

a. Giới thiệu cấu trúc phần cứng 8051
a1. Sơ đồ chân 8051
8051 là IC vi điều khiển (Microcontroller) do hãng Intel sản xuất. IC này có đặc
điểm như sau:
- 4k byte ROM,128 byte RAM
- 4 Port I/O 8 bit.
- 2 bộ đếm/ định thời 16 bit.

- Giao tiếp nối tiếp.
- 64k byte không gian bộ nhớ chương trình mở rộng.
- 64k byte không gian bộ nhớ dữ liệu mở rộng.
- Một bộ xử lý luận lý (thao tác trên các bít đơn).
- 210 bit được địa chỉ hóa.
- Bộ nhân / chia 4.
Sơ lược về các chân của 8051:

a2. Chức năng của các chân 8051:
Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 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
thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu.


Port 1: từ chân 1 đến chân 9 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao tiếp
với thiết bị ngoài nếu cần.
Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7). Port 2 là một port có tác dụng kép
dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng
bộ nhớ mở rộng.
Port 3: từ chân 10 đến chân 17(P3.0 _ P3.7). Port 3 là port có tác dụng kép. Các
chân của port này có nhiều chức năng. ALE (Address Latch Enable):
Khi 8051 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ v à 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 ở 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.EA\(External Access): Tín hiệu vào EA\
ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1, 8051 thi hành chương
trình từ ROM nội. Nếu ở mức 0, 8051 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 21V khi lập trình cho Eprom trong 8051.
RST (Reset): Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 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 phải tự động reset.Các ngõ vào bộ dao động X1, X2:
Bộ tạo dao động được tích hợp bên trong 8051. Khi sử dụng 8051, người ta chỉ
cần nối thêm tụ thạch anh và các tụ. Tần số tụ thạch anh thường là 12 Mh.

b. Cấu trúc bên trong của 8051
*Tổ chức bộ nhớ:


Bộ nhớ bên trong 8051 bao gồm ROM và RAM. RAM 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. 8051 có bộ nhớ theo cấu trúc Harvard: có những vùng 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 8051
nhưng 8051 vẫn có thể kết nối với 64 k byte bộ nhớ chương trình và 64 k byte b ộ nhớ dữ
liệu mở rộng.

c.Hoạt động thanh ghi TIMER:
8051 có hai timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử dụng các timer để:
- Định khoảng thời gian.
- Đếm sự kiện.
- Tạo tốc độ baud cho port nối tiếp trong 8051.
Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng đều


đặn và đặ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 ngõ vào hoặc gửi sự kiện ra các ngõra. Các ứng
dụng khác có thể sử dụng việc 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 độ rộng xung ).
Truy xuất các timer của 8051 dùng sáu thanh ghi chức năng đặc biệt cho trong bảng sau:
SRF

TCON
TMOD
TL0
TL1
TH0
TH1

Mục đích
Điều khiển Timer
Chế độ Timer
Byte thấp của
Timer 0
Byte thấp của
Timer 1
Byte cao của Timer
0
Byte cao của Timer
1

Địa chỉ

88H
89H
90H

Địa chỉ hóa từng bit
Có
Không
Không


91H

Không

92H

Không

93H

không

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

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


Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho Timer 1,
Timer 0.

d. Ngắt ( INTERRUPT):
Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời
chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác.
Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều
khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự
kiện
đó trong khi một chương trình khác đang thực thi.


3. Khối hiển thị:
Bộ phận hiển thị gồm 8 led 7 đoạn anod chung. Vì các vi xử lí xử lí các dữ liệu là số
nhị phân (1,0 ) nên cần có sự giãi mã từ số nhị phân sang số thập phân. Sự giải mã có thể
dùng giải mã bằng phần cứng (IC giải mã). Tuy nhiên với phần mềm quét led người ta có
thể giảm bớt được các IC giải mã giảm giá thành của mạch điện. Nhưng để kết nối
với mạch hiển thị phải cần có IC giao tiếp vào ra vì các port của 8051 đã dùng cho mục
đích khác. 8255 là IC giao tiếp vào ra song song thông dụng và có thể điều khiển được
bằng phần mềm nên chúng em sử dụng 8255 để giao tiếp với các thiết bị ngoại vi (phần
hiển thị…). Vì dòng ra các port của 8255 rất nhỏ (lớn nhất là port A khoảng 5mA) nên


cần có IC đệm dòng để nâng dòng lên đủ kéo cho led sáng. Chúng em chọn IC đệm
74245. Khi đưa dữ liệu ra để hiển thị tất cả các led đều nhận nhưng tại một thời điểm chỉ
cho phép một led được nhận dữ liệu nên phải có mạch giải mã để chọn led.
Chúng em sử dụng IC giải mã 74LS138.Vì vậy sơ đồ khối của mạch hiển thị như sau:

4. Bàn phím:
Vì đây là mạch đếm sản phẩm, đếm số sản phẩm trong một thùng, và số sản phẩm
trong một lô, mỗi loại như vậy có thể nhập vào số đếm trong phạm vi từ 0 đến tối đa
9999, do đó chúng em sử dụng 10 phím số từ 0 đến 9. Và mỗi lần nhập số vào để nhận
biết là nhập mấy số hoặc đã nhập xong và muốn biết cho phép đếm chưa hoặc hủy bỏ số
vừa nhập phải cần sử dụng thêm các phím chức năng, nên chúng em dùng thêm 6 phím
chức năng từ A đến F. Do đó bàn phím gồm 16 phím được kết nối vào port 1 của 8051:
Sơ đồ khối kết nối như sau:

5. Kết hợp 8051 với bộ nhớ ngoài
Vi xử lý (Microprocessor) là IC chuyên dụng về xử lý dữ liệu, điều khiển theo một
chương trình, muốn Microprocessor thực hiện một công việc gì ng ười sử dụng phải lập
trình hay viết chương trình. Ch ương trình phải lưư trữ ở đâu để Microprocessor nhận

lệnh và thi hành, đôi khi trong lúc xử lý chương trình Microprocessor cần nơi lưư trữ tạm
thời các dữ liệu sau đó lấy ra để tiếp tục xử lý. Nơi lưu trữ chương trình cho
Microprocessorthực hiện và nơi lưu trữ tạm thời dữ liệu chính là bộ nhớ. Các bộ nhớ của
Microprcessor là các IC, các IC nhớ này có thể đọc dữ liệu ra, ghi dữ liệu vào hoặc chỉ
đọc dữ liệu ra. Đôi khi bộ nhớ của Microprocessor không đủ để lưu trữ những thông tin
cần thiết khi chạy chương trình, khi đó phải dùng kỹ thuật mở rộng bộ nhớ. 8051 có khả


năng mở rộng bộ nhớ đến 64k byte bộ nhớ chương trình và 64k byte bộ nhớ dữ
liệu bên ngoài. Bộ nhớ chương trình là b ộ nhớ Rom còn bộ nhớ dữ liệu là bộ nhớ
Ram._ Bộ nhớ Ram chia ra làm 2 loại Sram và Dram. Dram được chế tạo dùng kỹ thuật
MOS, có dung lượng bộ nhớ lớn, công xuất tiêu tán thấp và tốc độ hoạt động trung bình.
Ơ Sram dữ liệu lưu trữ vào các Flip-Flop còn Dram dữ liệu lưu trữ mức 0 và 1 tương
đương với quá trình n ạp và xả của một tụ điện khoảng vài pF. Bởi vì điện áp của tụ sẽ
suy giảm dần do đó Dram đòi hỏi chu kỳ nạp lại nếu không muốn mất dữ liệu và được
gọi là quá trình làm tươi Ram, đây chính là khuyết điểm của Dram so với Sram.
Bộ nhớ Rom có nhiều loại: PROM,EPROM, EEPROM nhưng EPROM có thể lập trình
b ởi người dùng, có thể xóa và lập trình lại nhiều lần nên trong đồ án này chúng em
dùng EPROM 2764 và dùng SRAM 6264. Đặc điểm, sơ đồ chân và bảng sự thật của
2764 và 6264 ở hình dưới đây
a.SRAM 6264: là bộ nhớ được chế tạo theo công nghệ CMOS, có dung lượng
65536 bit được tổ chức thành 8192x8 bit (8KByte), điện áp cung cấp là +5V, thời gian
truy cập khoảng 150ns. Ngõ vào/ra dữ liệu được dùng chung, các ngõ vào/ra này tương
thích TTL. Công suất tiêu tán ở trạng thái chờ rất thấp chỉ khoảng 0,1mW so với khi hoạt
động bình thường là 200mW
b.EPROM 2764: là bộ nhớ chỉ đọc được chế tạo theo công nghệ NMOS, dùng
một nguồn đơn +5V, dung lượng bộ nhớ là 65536 bit, được tổ chức thành 8192x8 bit
(8KByte). 2764 là loại EPROM có thể xóa bằng tia cực tím và có thể ghi lại được nhiều
lần. Có hai kiểu họat động: bình thường và chờ. Ở trạng thái chờ, công suất tiêu thụ là
132mW so với 525mW khi ở trạng thái đọc dữ liệu, thời gian truy xuất là 200ns. Sơ đồ

chân và sơ đồ logic của 2764 như sau
-EPROM có thể được lập bởi người lập trình sử dụng và nó cũng có thể xóa để lập trình
lại khi nào muốn. -EPROM dùng trong mạch được chứa sẵn chương trình điều khiển,
tức là chỉ xuất Data mỗi khi CPU tham khảo đến, do đó ta chỉ quan tâm đến chế độ đọc
và chờ.Dựa vào các Mode hoạt động trên thì EPROM được điều khiển các chân sau:
- PGM = 5 Volt (Vcc )
- OE\nối chân PSEN của CPU
- CE\nối xuống CSO
+ Chế độ đọc (Read Mode ): Chế độ này được thiết lập khi CE\và OE\ ở mức thấp, PGM
ở mức cao. Có hai ngõ vào điều khiển dùng để truy xuất Data từ ROM là CE\và OE\dùng
để kiểm soát ngõ ra Data, đưa Data lên Data bus.
+ Chế độ chờ (Stanby Mode ): Chế độ này làm giảm công suất tiêu thụ được thiết lập khi
CE\ ở mức cao, ở chế độ này Data ở trạng thái trở kháng cao độc lập.
c.Giải mã địa chỉ:
Do 8051 thiết kế cần quản lý nhiều thiết bị ngoại vi, nhiều ô nhớ, muốn làm được
việc này người ta phải cung cấp cho mỗi ô nhớ và thiết bị ngoại vi tầm địa chỉ cho thiết bị
đó. Vì vậy cần có mạch giải mã địa chỉ trong mạch điện. Người ta thường dùng IC giải
mã 74HC138 với các ngõ ra được nối tới các ngõ vào chọn chip (CS\) trên các IC nhớ.
Sau đây là sơ đồ chân, bảng sự thật và đặc điểm của 74138
-Ngõ vào A,B,C là các chân ngõ vào số nhị phân 3 bit. C là bit có trọng số lớn nhất,
A là bit có trọng số nhỏ nhất


-Các chân ngõ ra: Yo ->Y7, tích cực mức thấp.
-Các chân điều khiển: G1,G2A, G2B
. IC chỉ hoạt động giải mã khi các chân điều khiển
đồng thời tích cực. G1 tích cực ở mức cao; G2A\ và G2B \tích cực ở mức thấp Khi một
trong 3 chân này không tích cực các ngõ ra từ Yo ->Y7 ở mức cao
d.Giải đa hợp các đường dữ liệu và đường địa chỉ:
Khi dùng bộ nhớ ngoài, port 0 không còn là port IO thuần túy. Nó được kết hợp giữa

bus địa chỉ và bus dữliệu nên dùng tín hiệu ALE và IC chốt để chốt byte thấp của bus địa
chỉ khi bắt đầu mỗi chu kỳ bộ nhớ. Port2 cho byte cao của bus địa chỉ. Ơ đây chúng em
dùng IC chốt 74373. Sơ đồ chân, đặc điểm và bảng trạng thái của 74373
e.Xếp chồng các vùng nhớ chương trình và dữ liệu bên ngoài:
Vì bộ nhớ chương trình là Rom nên xảy ra vấn đề bất tiện khi phát triển phần mềm
cho 8051 là tổ chức bộ nhớ như thế nào để có thể sửa đổi chương trình và có thể ghi trở
lại khi nó được chứa trong bộ nhớ Rom. Cách giải quyết là xếp chồng các vùng dữ liệu
và chương trình. Một bộ nhớ Ram có thể chứa cả chương trình và d ữ liệu bằng
cách nối đường OE\của Ram đến ngõ ra cổng AND có 2 ngõ vào là PSEN\và RD\. Sơ đồ
mạch như hình sau cho phép bộ nhớ Ram có 2 chức năng vừa là bộ nhớ chương trình vừa
là bộ nhớ dữ liệu.
Vậy 1 chương trình có thể được tải vào Ram (bằng cách ghi nó như bộ nhớ dữ liệu)
và thi hành chương trình (bằng cách truy xuất nó như bộ nhớ chương trình)


PHẦN II THIẾT KẾ, THI CÔNG VÀ CHƯƠNG TRÌNH
A. THIẾT KẾ, THI CÔNG PHẦN CỨNG
I. KẾT NỐI 8051 VỚI BỘ NHỚ VÀ CÁC IC NGOẠI VI
1.Kết nối bộ nhớ chương trình bên ngoài:
Bộ nhớ ROM được cho phép bởi tín hiệu PSEN\. Hình sau mô tả cách nối bộ
nhớ Eprom với 8051

2. Kết nối bộ nhớ dữ liệu ngoài:
Bộ nhớ Ram được cho phép ghi đọc bằng các tín hiệu điều khiển WRvà RD.
8051 có 1 lệnh duy nhất truy xuất dữ liệu của bộ nhớ dữ liệu ngoài là MOVX
dùng con trỏ 16 bit (DPTR) hoặc R0 và R1 xem như thanh ghi địa chỉ.
Kết nối bus địa chỉ và bus dữ liệu giữa RAM và 8051 cũng giống như
EPROM .
Ngoài ra, RD của 8051 được nối tới chân cho phép xuất (OE\) của Ram và
chân WR được nối tới chân ghi (WR\) của Ram.



3.Kết nối mạch giải mã:
*Hình thành mạch giải mã địa chỉ dựa trên bảng đồ bộ nhớ sau:

Tuy nhiên tại một thời điểm chỉ có 1 IC nhớ được truy xuất nên dùng các đường
địa chỉ A13, A14, A15 để phân biệt. Lấy A15, A13, A14 nối tới 3 đầu vào IC giải
mã 74138 (A,B,C). Các ngõ ra Y0, Y1, Y2, Y3 lần lượt được nối tới CE của Rom,
Ram, CS của 8255. Khi Yi = 0 thì IC đó được chọn:
A13, A14, A15 = 0 chọn Rom
A13 = 1, A14, A15 = 0 chọn Ram
A13 = 0, A14 = 1, A15 = 0 chọn 82551
A13 =1, A14 = 1, A15 = 0 chọn 82552
4. Kết nối mạch chốt
-Chân ALE (chân 30) của 8051 kết nối với chân G của 74373. Các đường của Port0 nối
với các đường từ Do đến D7 của 74373. Các đường tín hiệu ( Q0 đến Q7) của 74373 và


các đường port 2 (P2.0 đến P2.7) được nối tới các đường địa chỉ của ROM và RAM (A0
đến A12) còn các đường dữ liệu từ port 0 được nối tới các đường dữ liệu của ROM và
RAM, 8255 (D0 đến D 7 ).
-Trong mỗi chu kỳ máy sẽ có 2 xung ALE. Khi ALE ở mức logic cao (G = 1) và OC
= (0) thì ngõ ra Q0 đến Q7 tương ứng với ngõ vào D, mọi sự thay đổi ở ngõ vào đều
ảnh hưởng đến ngõ ra, lúc này Port 0 tương ứng là đường địa chỉ A0 đến A7. Khi ALE
xuống mức thấp (G = 0), ngõ ra Q sẽ giữ nguyên trạng thái trước đó bất chấp ngõ vào D,
lúc này các đường Port 0 tương ứng là các đường dữ liệu Do đến D7.
*Tín hiệu PSEN của 8051 (chân 29) nối tới 0E của Rom. Các đường (RD,WR) nối
đến RD, WR của Rom và 8255. Do muốn xếp chồng bộ nhớ nên cho tín hiệu RD, PSEN
của 8051 qua cổng AND (dùng 2 cổng NAND 74132) đưa tới OE của Ram
*Hình thành công tắc lưạ chọn Rom A, Rom B:

-Sơ đồ nguyên lý của công tắc lựa chọn: (Sơ đồ nguyên lý mạch điều khiển)
-Nguyên lý hoạt động của công tắc lựa chọn như sau:
Bất cứ khi nào cho phép truy xuất Rom (ngõ vào 1 chân cổng OR xuống mức logic [0])
và ngõ ra công tắc lựa chọn A hoặc B xuống mức logic [0] thì Rom A hay B được truy
xuất.
-Khi SW1 nối tới B, ngõ ra của cổng NAND (U9A) = 1 ngõ ra cổng OR (U8A) = 1, Rom
A không được chọn. Đồng thời khi đó, ngõ ra cổng NAND (U9B) = 0, nếu A13, A14,
A15 = 0 thì ngõ ra cổng OR (U8B) = 0 Rom B được chọn. Ngược lại, công tắc
chuyển sang A thì Rom A được truy xuất
*Hình thành công tắc lưạ chọn Rom A, Rom B:
-Sơ đồ nguyên lý của công tắc lựa chọn: (Sơ đồ nguyên lý mạch điều khiển)
-Nguyên lý hoạt động của công tắc lựa chọn như sau:
Bất cứ khi nào cho phép truy xuất Rom (ngõ vào 1 chân cổng OR xuống mức logic
[0]) và ngõ ra công tắc lựa chọn A hoặc B xuống mức logic [0] thì Rom A hay B được
truy xuất.
-Khi SW1 nối tới B, ngõ ra của cổng NAND (U9A) = 1 ngõ ra cổng OR (U8A) =
1, Rom A không được chọn. Đồng thời khi đó, ngõ ra cổng NAND (U9B) = 0, nếu A13,
A14, A15 = 0 thì ngõ ra cổng OR (U8B) = 0 Rom B được chọn. Ngược lại, công tắc
chuyển sang A thì Rom A được truy xuất.
II. THIẾT KẾ MẠCH RESET:
Khi công tắc chuyển từ A sang B và ngược lại đều reset toàn bộ lại hệ thống để cho PC
= 0000H. Bởi vì khi đang làm việc tại Rom A, PC khác 0000H, khi chuyển sang Rom B
PC bắt đầu tại địa chỉ khác 0000H làm sai chương trình. Vì vậy mạch reset trong đồ án
này bao gồm reset từ chuyển công tắc chọn Rom, reset từ ngoài đưa tới (nếu như kết hợp
với mạch khác), reset khi bắt đầu mỗi chương trình đếm sản phẩm và reset nếu như
nguồn cung cấp yếu. Sơ đồ nguyên lý mạch reset trong sơ đồ nguyên lý mạch điều khiển.
Reset bằng nút nhấn:
Khi nhấn nút, 1 chân của cổng nand U2A được nối mass ngõ ra = 1, reset (RST) =
1, hệ thống bị reset (đồng thời khi đó chân còn lại của cổng nand luôn được giữ ở mức
Cao ). Khi kết nối với mạch điện khác, mạch điện khác có thể reset mạch điện

này qua
header 3 (JP8). Sự tác động thông qua sự ngắt dẫn của Q3C828. Khi Q3


dẫn (có tác động
bên ngoài), ngõ ra cổng nand (U2A) = 1, ngõ ra cổng OR = 1, RST = 1, hệ thống bị reset
III.KẾT NỐI KÍT VI ĐIỀU KHIỂN VỚI THIẾT BỊ NGOẠI VI:
1. Kết nối với bàn phím
Bàn phím gồm 16 phím kết nối với kít vi điều khiển thông qua Port 1 của 8051.
Sơ đồ kết nối như sau:

BẢNG MÃ PHÍM


2. Kết nối hiển thị:
Phần hiển thị bao gồm 8 Led 7 đoạn chung anod. Bus dữ liệu xuất ra hiển thị đ
ược nối tới PortA của 82552. Vì dòng ra tại mỗi chân các Port của 8255 chỉ có
khoảng 4mA, mà mỗi Led sáng thì ph ải cung cấp dòng khoảng 8 –10mA nên
phải dùng IC đệm nênPortA của 8255 nối tới các ngõ vào A1 _ A8 của 74245,
bus dữ liệu ngõ ra nối qua điện trở hạn dòng đến các thanh của Led 7 đoạn. Với
mạch giải mã chọn Led: ba ngõ vào A, B, C của 74138 sẽ được nối tới PC5 –PC7
của 8255, chân cho phép G2 nối tới PC4 của 8255. Khi PC4 xuống mức thấp, G2
= [0], cho phép Led sáng. Bảng trạng thái chọn Led như sau:

Để cho một thanh led đủ sáng thì dòng điện qua nó là 10 mA, do đó để cả led 7
đoạn sáng thì dòng cung c ấp cho led là: I = 7 x 10 = 70 mA. Đây cũng chính là
dòng Ic của transistor. Vậy chọn transistor loại A1266 với hệ số khuyếch đại βlà
60.
3. Kết nối mạch rơle:
Tín hiệu điều khiển rơle được lấy ra từ PortA của 82551. Rơle sẽ tác động khi

đếm xong số lượng sản phẩm cài đặt trước. Ở đây chúng emgiả định sự tác động
của rơle bằng đèn Led hiển thị. Khi led sáng tương ứng với tác động của rơle.
Giống như mạch hiển thị, tín hiệu lấy ra điều khiển rơle đuợc đưa qua bộ đệm
74245 và hạn dòng bằng điện trở.
VI.
THIẾT KẾ MẠCH CẢM BIẾN
1. Khối phát
Sử dụng mạc dao động 555:


để xung tạo ra gần như đều nhau để kích thích cho Ạ564 dẫn mạnh, làm dòng IB
lớn suy ra dòng qua LED lớn, tín hiệu phát ra từ LED mạnh thì bên khối đầu dò
mới nhận được tín hiệu.
2.Khối đầu dò:
có chức năng là phát hiện sự mất xung ( có sản phẩm đi qua ) và đưa về con
89c51 để xử lý tăng số đếm lên 1 đơn vị


B. CHƯƠNG TRÌNH ĐIỀU KHIỂN

I.
LƯU ĐỒ THUẬT TOÁN
1. Chương trình chính
Để các thiết bị hoạt động được đầu tiên phải khởi động các thiết bị ngoại vi,
khởi động Timer cho phép ngắt. Sau đó gọi chương trình nhập số hộp, nhập số sản
phẩm. Nếu đồng ý số đếm đã nhập vào thì cho phép băng chuy ền hoạt động (đóng
role BC). Đọc dữ liệu từ cảm biến (đầu dò). Nếu có sản phẩm đi qua thì gọi chương
trình đếm. Nếu đủ sản phẩm một hộp thì gọi role đóng hộp đồng thời gọi chương
trình đếm hộp.. Nếu đủ số hộp thì băng chuy ền ngưng hoạt động và chờ cho ca
tiếp theo. Khi đã hoàn thành 9 ca sản phẩm thì quay lại làm từ ca 1.



CHƯƠNG TRÌNH CHÍNH

Nạp giá trị đầu vào các ô nhớ

No
Ca

0
Yes
Ca=9

Ca

Ca +1

Gọi chương trình con nhập số hôp
Gọi chuong trình con nhập số sản phẩm
Cho phép băng truyền hoạt động

Chương trình xem số liệu lưu bất kỳ

Yes
No

Phím E
Gọi chương trình con đo

Đếm sản phẩm


No

Đủ sản phẩm

Yes

Gọi chương trình kiểm tra phím bấm

Cho phép chương trình ngừng hoạt động
Gọi chương trình lưu số hộp và số sản phẩm

No

Yes
Gọi chương trình con rơ le đóng hộp
Đếm hôp

Đủ hộp


II. CÁC CHƯƠNG TRÌNH CON:
1. Chương trình con khởi động ngoại vi
8255 chỉ hoạt động khi nạp cho nó từ điều khiển vì vậy để giao tiếp với các thiết
bị ngoại vi cần khởi động cho các ô nhớ của 8255
Bắt đầu

Khởi động 8255 -1

Nạp giá trị đầu cho rơ le


Khởi động 8255 -2

Nạp giá trị đàu cho 8 led 7

Nạp giá trị đầu cho rơ le đếm hộp

Nạp giá trị đầu để chọn led

ret

2. Chương trình ngắt hiển thị:


Trong chương trình ngắt, thời gian ngắt được xác định bằng cờ tràn timer. Như
vậy cứ sau 250 µs các led lại được quét. Với thời gian ngắt nhỏ, dữ liệu ra khó có
thể quan sát được vì vậy delay sau mỗi lần hiển thị bằng việc giảm thanh ghiR2.
Khi R2 = 0 cho phép xuất dữ liệu ra hiển thị. Các Led sẽ được quét liên tục từ Led
77 đến Led 70, với dữ liệu xuất ra hiển thị từ ô nhớ 77H đến ô nhớ 70H

3. Chương trình con nhấn số
Chương trình này cho phép nhập số thập phân. Nếu phím nhấn từ 0 đến 9 thì nhận
số còn phím từ A đến F thì xóa số. Số nhận thì bit 7D = [0], 7E = [0]. Sau khi
nhập số liệu xong nếu thấy qua led hiển thị đúng số liệu đã nhập vào thì nhấn
phím A tức là đặt bit YES = 1 (7E = 1) để kết thúc quá trình nhập số liệu. Còn
đang nhập nếu muốn bỏ số liệu vừa nhập vào thì nhấn phím phím B tức là đặt bit
NO = 1 (7D = 1). Khi nhập xong số sản phẩm và số hộp thông qua chương trình
con nhấn số này thì nhấn phím C tức là cho phép sản phẩm từ lúc này đi qua đầu
dò và bắt đầu đếm.



4. Chương trình tăng 1:
Cứ có một sản phẩm đi qua đầu dò (chú ý ngõ ra chân 8 của IC567 từ nức logic 0
lên mức 1 sau đó được đưa qua cổng đảo nên ngõ ra là mức logic 0) được đưa vào
bit 0 của port B1 sẽ làm thay đổi mức logic từ 1 xuống 0 thì ô nhớ dùng cho việc
đếm sản phẩm sẽ được tăng lên một đơn vị thông qua việc gọi chương trình con
tăng 1, và khi đủ số sản phẩm thì ô nhớ dùng cho việc đếm số hộp cũng được tăng
lên một đơn vị thông qua ch ương trình con tăng 1, và cứ mỗi lần như vậy sự thay
đổi số liệu trong các ô nhớ được đẩy liên tục ra led để hiển thị. Vì đếm sản phẩm
đến tối đa là 99 và đếm số hộp tối đa là 9999 nên phải sử dụng 2 byte để đếm sản
phẩm từ hàngđơn vị đến h àng chục sử dụng byte thấp, còn hàng trăm và hàng
ngàn sử dụng byte cao. Nên khi so sánh số liệu đang đếm với số liệu đã lưu ban
đầu xem đã bằng chưa thì ph ải so sánh lần lượt byte cao trước tức là hàng ngàn,
hàng trăm sau đó tới byte thấp tứclà hàng ch ục hàng đơn vị.


×