Tải bản đầy đủ (.docx) (31 trang)

ứng dụng vi điều khiển 89c52 mô phỏng máy bán hàng tự động

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 (966.97 KB, 31 trang )

Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
LỜI NÓI ĐẦU
Sự ra đời của các máy rút tiền tự động,các bảng quảng cáo sử dụng quang
báo,hệ thống hẹn giờ tắt mở trong các hệ thống giao thông… gần đây tại Việt Nam đã
càng khẳng đinh sự ứng dụng mạnh mẽ của kỹ thuật vi xử lý.Nó thực sự đã đi vào đời
sống và phục vụ nhu cầu của chúng ta.
Từ yêu cầu của môn học Kỹ thuật vi xử lý và thực tiễn trên, nhóm chúng em đã
chọn đề tài thiết kế phần hiển thị của máy bán hàng tự động. Trong quá trình lập trình
và thiết kế, nhóm chúng em đã nhận được sự hướng dẫn tận tình của thầy giáo bộ môn
– thầy Trần Trung Tín.Đây là lần đầu tiên nhóm chúng em thực hiện đề tài này, nên
việc thiếu sót là không thể tránh khỏi.Chính vì thế, rất mong nhận được sự góp ý chân
thành của thầy cô cùng các bạn để hoàn thiện đề tài này.
Chúng em xin chân thành cảm ơn !
Đà Nẵng, tháng 12 năm 2012
Nhóm thực hiện đồ án
Nguyễn Nhật Phúc
Trần Viết Tuấn
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 1
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
MỤC LỤC
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 2
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
CHƯƠNG 1 GIỚI THIỆU MẠCH
1.1. Sơ đồ khối toàn mạch
1.1.1. Sơ đồ khối
Hình 1.1 Sơ đồ khối mạch
1.1.2. Chức năng từng khối
+ Khối xử lý: nhằm xử lý số liệu nhận được, xuất dữ liệu và điều khiển việc hiển thị
dùng IC 89c52
+ Khối hiển thị: nhằm hiển thị LCDtheo mạch đã thiết kế.
+ Khối nguồn: nhằm cung cấp nguồn cho IC 89c52 5v và bảng hiển thị 12v.


1.2. Các linh kiện trong mạch
+ Vi điều khiển 89c52.
+ IC 7805 ổn dòng 5V.
+ Led đơn.led 7 đoạn
+ Điện trở, trở kéo,diot
+ Thạch anh 12MHz, tụ gốm 33pF, tụ hóa 10µF.
+ LCD 16x2
+ IC 74ls47
1.2.1.Vi điều khiển 89c52
1.2.1.1. Các đặc điểm 8051
+ 8KB ROM.
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 3
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
+ 128 bytes RAM nội.
+ 4 bank thanh ghi với 8 byte mỗi bank (R0-R7).
+ 16 byte được định địa chỉ bit.
+ 80 byte bộ nhớ đa dụng.
+ Bốn cổng I/O 8-bit (P0-P3)
+ Hai bộ timer 16-bit (Timer0 và Timer1).
+ Một bộ giao diện truyền nhận nối tiếp.
+ Năm nguồn ngắt (2 ngắt ngoài và 3 ngắt nội).
+ Bộ nhớ dữ liệu và chương trình của 8051 có thể được mở rộng tới 64K ROM và 64K
RAM.
1.2.1.2. Giới thiệu sơ lược về IC 89C52
AT89C52 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ó 8KB bộ nhớ ROM Flash xóa đượ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 AT89C52 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. Kết hợp một CPU linh hoạt 8 bit với Flash trên một chip đơn thể, Atmel
89C52 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.
AT89C52 có các đặc trưng chuẩn sau: 4KN Flash, 128 byte RAM, 32 đường xuất
nhập, 2 bộ định thời/đếm 16 bit, một cấu trúc ngắt hai 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 AT89C52 đượ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: Trần Viết Tuấn – Nguyễn Nhật Phúc 4
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
1.2.1.3. Sơ đồ chân IC 89C52
Hình 1.2 Sơ đồ chân IC 89C52
AT89C52 có tất cả 40 chân. Mỗi chân có chức năng như các đường I/O
(xuất/nhập), trong đó 24 chân có công dụng kép: mỗi đường có thể hoạt động như một
đường I/O hoặc như một đường điều khiển hoặc như thành phần của bus địa chỉ và bus
dữ liệu.
Trong số 40 chân, có 32 chân dành cho 4 cổng P0, P1 ,P2 và P3, mỗi cổng có 8
chân. Các chân còn lại dành cho nguồn Vcc, đất GND, các chân dao động XTAL1 và
XTAL2, khởi động lại RST, cho phép chốt địa chỉ ALE, truy cập được địa chỉ ngoài,
cho phép cất chương trình.
1.2.1.4.Chức năng của các chân
a. Chân VCC: Chân số 40 là VCC cấp điện áp nguồn cho Vi điều khiển.Nguồn
điện cấp là +5V±0.5.
b. Chân GND:Chân số 20 nối GND(hay nối Mass).
Khi thiết kế cần sử dụng một mạch ổn áp để bảo vệ cho Vi điều khiển, cách đơn
giản là sử dụng IC ổn áp 7805.
c. Port 0 gồm 8 chân (từ chân 32 đến 39) có hai chức năng:
• Chức năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên

ngoài vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất
tín hiệu để điều khiển led đơn sáng tắt.
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 5
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
• Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port
0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối
với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ
nhớ ngoài.
d. Port P1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm cácđường
xuất/nhập, không có chức năng khác.
e. Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:
• Chức năng xuất/nhập
• Chức năng là bus địa chỉ cao (A8-A15): khi kết nối với bộ nhớ ngoài có
dung lượng lớn,cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm
nhận, byte cao do P2 này đảm nhận.
f. Port3 gồm 8 chân (từ chân 10 đến 17): có chức năng xuất/nhập, với mỗi chân
có chứcnăng:
g. Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu
cho vi điều khiển. Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này
ở mức 1 tối thiểu 2 chu kì máy.
h. Chân XTAL1 và XTAL2 : hai chân này có vị trí chân là 18 và 19 được sử dụng
để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với
thạch anh và các tụ để tạo nguồn xung clock ổn định.
i. PSEN (Program Store Enable) tín hiệu được xuất ra ở chân 29 dùng để truy
xuất bộ nhớ chương trình ngoài. Chân này thường được nối với chân OE
(Output Enable) của ROM ngoài.
Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín
hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy. Khi thực thi
một chương trình ở ROM nội, chân này được duy trì ở mức logic không tích cực -
logic 1 (không cần kết nối chân này khi không sử dụng đến).

SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 6
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
j. Chân ALE (chân cho phép chốt địa chỉ-chân 30). Khi Vi điều khiển truy xuất
bộ nhớ từ bên ngoài, port 0 vừa có chức năng là bus địa chỉ, vừa có chức năng
là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ở chân
ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và các
đường dữliệu khi kết nối chúng với IC chốt. Các xung tín hiệu ALE có tốc độ
bằng 1/6 lần tần số dao động đưa vào Vi điều khiển, như vậy có thể dùng tín
hiệu ở ngõ ra ALE làm xung clock cung cấp cho các phần khác của hệ thống.
k. Chân EA dùng để xác định chương trình thực hiện được lấy từ ROM nội hay
ROM ngoại.
Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chương trình lấy từ bộ
nhớ nội.Khi EA nối với logic 0(0V) thì Vi điều khiển thực hiện chương trình lấy từ bộ
nhớ ngoại.
1.2.1.5.Tổ chức bộ nhớ trong IC89c52
Hình 1.3 Sơ đồ bộ nhớ IC 89c52
89C52 có không gian bộ nhớ riêng cho chương trình và dữ liệu. Cả hai bộ nhớ
chương trình và dữ liệu đều đặt bên trong chip, tuy nhiên ta có thể mở rộng bộ nhớ
chương trình và bộ nhớ dữ liệu bằng cách sử dụng các chip nhớ bên ngoài với dung
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 7
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
lượng tối đa là 64KB cho bộ nhớ chương trình (hay bộ nhớ mã) và 64KB cho bộ nhớ
dữ liệu.
Bộ nhớ nội trong chip bao gồm ROM và RAM. RAM trên chip bao gồm vùng
RAM đa chức năng (nhiều công dụng), vùng RAM với từng bit được định địa chỉ (gọi
tắt là vùng RAM định địa chỉ bit), các dãy (bank) thanh ghi và các thanh ghi chức
năng đặc biệt SFR (Special Funtion Register).
Ta thấy rằng không gian nhớ nội này được chia thành: các dãy thanh ghi
(00H÷1FH), vùng RAM định địa chỉ bit (20H÷2FH), vùng RAM đa mục đích
(30H÷7FH) và các thanh ghi chức năng đặc biệt (80H÷FFH) như hình 1.4.

a. Bộ nhớ dữ liệu – Bộ nhớ RAM
Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả trung gian
và kết quả cuối cùng của các phép toán, xử lí thông tin. Nó cũng dùng để tổ chức các
vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu.
RAM nội trong Vi điều khiển được tổ chức như sau:
- Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập lục
phân (số Hex)
- Các bank thanh ghi có địa chỉ 00H đến 1FH
- 210 vị trí được định địa chỉ bit
- Các vị trí RAM bình thường
- Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H đến FFH.
Các byte RAM 8 bit của vi điều khiển được gọi là "ô nhớ", nếu các ô nhớ có
chức năng đặc biệt thường được gọi là "thanh ghi", nếu là bit thì được gọi là "bit nhớ".
b. Các bank thanh ghi
Các bank thanh ghi có địa chỉ byte từ 00H đến 1FH, có 8 thanh ghi trong mỗi
bank, các thanh ghi được đặt tên từ R0-R7, các thanh ghi này được đặt mặc định trong
bank 1. Có 4 bank thanh ghi và tại mỗi thời điểm chỉ có một bank thanh ghi được truy
xuất với các thanh ghi từ R0 đến R7, để thay đổi việc truy xuất các thanh ghi trên các
bank thanh ghi, người dùng phải thay đổi giá trị các bit chọn bank trong thanh ghi
trạng thái PSW bằng các câu lệnh trong chương trình.
Các lệnh dùng các thanh ghi từ R0 đến R7 mất khoảng không gian lưu trữ ít hơn
và thời gian thực hiện nhanh hơn so với các lệnh dùng các ô nhớ RAM khác, ngoài ra
các thanh ghi này còn có thêm một số chức năng đặc biệt khác, vì lí do này các dữ liệu
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 8
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
sử dụng thường thường được người viết chương trình đưa vào lưu trong các thanh ghi
này.
Ngoài ra, có thể truy xuất thanh ghi trên các bank thanh ghi như với các ô nhớ
bình thường khác. Ví dụ: nguời dùng có thể truy xuất đến thanh ghi R7 bằng ô nhớ
07H.

c. Vùng RAM truy xuất từng bit
Trên RAM nội có 210 ô nhớ bit được định địa chỉ và có thể truy xuất đến từng bit,
các bit nhớ này cũng được định địa chỉ bằng các số thập lục phân- số Hex. Trong đó có
128 bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH, các bit nhớ còn lại chứa
trong nhóm thanh ghi có chức năng đặc biệt.
Mặc dù các bit nhớ và ô nhớ (byte) cùng được định bằng số Hex, tuy nhiên chúng
sẽ được nhận dạng là địa chỉ bit hay địa chỉ byte thông qua các câu lệnh tương ứng
dành cho các bit nhớ hoặc các ô nhớ này.
Vídụ:
mov 05H,#10111111B ;>>> lệnh này thiết lập giá trị cho ô nhớ có địa chỉ là 05H.
JB 05H,nhan01 ;>>> lệnh này liên quan đến trạng thái của bit nhớ có địa
chỉ 05H.
d. Vùng RAM bình thường
Vùng RAM này có địa chỉ byte từ 30H đến 7FH, dùng để lưu trữ dữ liệu, được truy
xuất theo từng byte.
e. Các thanh ghi có chức năng đặc biệt
Các thanh ghi này được định địa chỉ byte, một số được định thêm địa chỉ bit, có địa
chỉ của các thanh ghi này nằm trong khoảng 80H đến FFH. Các thanh ghi đặc biệt này
này được dùng để xác lập trạng thái hoạt động cần thiết cho Vi điều khiển.
MỘT SỐ Ô NHỚ CÓ CHỨC NĂNG ĐẶC BIỆT
• Các thanh ghi có địa chỉ 80H, 90H, A0H, B0H:
Đây là các thanh ghi kiểm tra và điều khiển mức logic của các Port, có thể truy
xuất và xác lập các thanh ghi này với địa chỉ byte hoặc tên riêng lần lượt là P0, P1, P2,
P3 tương ứng với các Port xuất. Chẳng hạn để tất cả các chân của Port 0 lên mức logic
1, cần làm cho các bit của thanh ghi có địa chỉ 80H lên mức 1.
• Thanh ghi A: là thanh ghi quan trọng, dùng để lưu trữ các toán hạng và kết quả
của phép tính. Thanh ghi A có độ dài 8 bits, có địa chỉ là E0H.
• Thanh ghi B: ở địa chỉ F0H, được dùng với thanh ghi A để thực hiện các phép
toán số học. Khi thực hiện lệnh chia với thanh ghi A, số dư được lưu trữ ở thanh
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 9

Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
ghi B. Ngoài ra thanh ghi B còn được dùng như một thanh ghi đệm có nhiều
chức năng.
• Con trỏ ngăn xếp SP: là một thanh ghi có địa chỉ 81H, giá trị của nó được
tăng,giảm tự động khi thực hiện các lệnh PUSH, CALL,POP con trỏ SP dùng
quản lí và xử lí các nhóm dữ liệu liên tục.Giá trị mặc định của SP là 07H.
• Con trỏ dữ liệu DPTR: là thanh ghi 16 bit duy nhất của Vi điều khiển được tạo
thành từ hai thanh ghi DPL (byte thấp-địa chỉ byte 82H) và DPH (byte cao-địa
chỉ byte 83H). Hai thanh ghi DPL và DPT có thể truy xuất độc lập bởi người sử
dụng. Con trỏ dữ liệu DPTR thường được sử dụng khi truy xuất dữ liệu từ bộ
nhớ ROM hoặc bộ nhớ từ bên ngoài.
• Thanh ghi trạng thái chương trình PSW (địa chỉ byte D0H)
BIT
ĐỊA CHỈ
BIT

HIỆU
CHỨC NĂNG
PSW.7 D7H
C hoặc
Cy
Cờ nhớ
PSW.6 D6H AC Cờ nhớ phụ
PSW.5 D5H F0 Cờ 0 hay cờ Zero
PSW.4 D4H RS1 Bit lựa chọn dãy thanh ghi
PSW.3 D3H RS0 Bit lựa chọn dãy thanh ghi
PSW.2 D2H 0V
Cờ tràn với phép tính liên quan đến số nhị phân có
dấu
PSW.1 D1H - Chưa được thiết kế để sử dụng

PSW.0 D0H P Cờ chẵn lẻ
Chức năng từng bit trong thanh trạng thái PSW
Cờ nhớ C: được sử dụng trong các lệnh toán học:
C=1 nếu phép toán cộng xảy ra tràn hoặc phép trừ có mượn
C=0 nếu phép toán cộng không tràn hoặc phép trừ không có mượn.
Cờ nhớ phụ AC:được dùng trong các phép toán cộng hai số BCD.
Khi cộng số BCD:
Nếu kết quả 4 bit lớn hơn 09H thì AC=1
Nếu kết quả 4 bit dưới 09H thì AC=0.
Cờ 0 hay cờ nhớ Z:
Cờ Z = 0 khi thanh ghi A có giá trị khác 0 .
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 10
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
1.2.2. IC 7805 ổn áp 5v
Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử dụng IC
ổn áp thường được người thiết kế sử dụng vì mạch điện khá đơn giản.Các loại ổn áp
thường được sử dụng là IC 78xx, với xx là điện áp cần ổn áp.Ví dụ 7805 ổn áp 5V,
7812 ổn áp 12V.Việc dùng các loại IC ổn áp 78xx tương tự nhau, dưới đây là minh họa
cho IC ổn áp 7805.
Hình 1.4 IC 7805
IC 7805 có 3 chân:
• Chân số 1 là chân IN
• Chân số 2 là chân GND
• Chân số 3 là chân OUT
Nguyên lý hoạt động: ngõ ra OUT luôn ổn định ở 5V dù điện áp từ nguồn cung
cấp thay đổi. Mạch này dùng để bảo vệ những mạch điện chỉ hoạt động ở điện áp 5V
(các loại IC thường hoạt động ở điện áp này). Nếu nguồn điện có sự cố đột ngột: điện
áp tăng cao thì mạch điện vẫn hoạt động ổn định nhờ có IC 7805 vẫn giữ được điện áp
ở ngõ ra OUT 5V không đổi.
Mạch trên lấy nguồn một chiều từ một máy biến áp với điện áp từ 9V đến 12V

để đưa vào ngõ IN. Khi kết nối mạch điện, do nhiều nguyên nhân, người dùng dễ
nhầm lẫn cực tính của nguồn cung cấp khi đấu nối vào mạch, trong trường hợp này rất
dễ ảnh hưởng đến các linh kiện trên board mạch. Vì lí do đó một diode cầu được lắp
thêm vào mạch, diode cầu đảm bảo cực tính của nguồn cấp cho mạch theo một chiều
duy nhất, và nguời dùng cũng không cần quan tâm đến cực tính của nguồn khi nối vào
ngõ IN nữa.
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 11
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
1.2.3. LCD 16x2
Hình 1.5 Hình dáng của loại LCD thông dụng
+ Chức năng của các chân”
Chân 1: Vss chân nối đất cho LCD,khi thiết kế mạch ta nối chân này với GND
của mạch điều khiển.
Chân 2: VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với
VCC=5v của mạch điều khiển.
Chân 3: VEE Điều chỉnh độ tương phản của LCD
Chân 4 : RS Chân chọn thanh ghi. Nối chân RS với logic 0(bus DB0-DB7 sẽ nối
với thanh ghi lệnh IRcuar LCD, logic 1 (bus DB0-DB7 sẽ nối với thanh ghi dữ liệu
DR bên trong LCD.
Chân 5 : R/W Chân chọn chế độ đọc ghi. Nối chân R/W với logic 0 để LCD hoạt
động ở chế độ ghi, hoặc nối với logic 1 để LCD ở chế độ đọc.
Chân 6 : E Chân cho phép, sau khi các tín hiệu được đặt lên bus DB0-DB7, các
lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
Chân 7-14: DB0-DB7 8 đường của bus dữ liệu dùng để trao đổi thông tin với IC.
Có 2 chế độ sử dụng 8 đường bus này
+ chế độ 8 bit: dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7
+ Chế độ 4 bit: dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là
DB7
Chân 15 : Nguồn dương cho đèn nền
Chân 16 : GND cho đèn nền

SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 12
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
1.2.4. LED 7 đoạn anode chung
Hình 1.6 Led 7 đoạn anot chung
Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm
một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7 đoạn.
8 led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) được nối chung với
nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện. 8 cực còn lại
trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa ra ngoài để kết nối với
mạch điện. Nếu led 7 đoạn có Anode(cực +) chung, đầu chung này được nối với +Vcc,
các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng
khi tín hiệu đặt vào các chân này ở mức 0. Nếu led 7 đoạn có Cathode(cực -) chung,
đầu chung này được nối xuống Ground (hay Mass), các chân còn lại dùng để điều
khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này
ở mức .
Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảo
dòngqua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led. Nếu kết nối với nguồn
5V cóthể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều khiển.
1.2.5. Thạch anh 12 MHz
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 13
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
Hình 1.7 Thạch anh 12MHz
Chức năng: là nguồn tạo xung nhịpdao động clock ổn định (12 MHz)cho dao động
của 8052. Thạch anh sẽđược gắn vàochân XTAL1 vàXTAL2 (Chân số 18 và 19) của
89c52
1.2.6. Tụ gốm 33pF
.
Hình 1.8 tụ gốm
Chức năng: lọc nhiễu cho daođộng thạch anh, 2tụ gốm 33pF sẽđược nối một
đầuvới chân củathạch anh, đầu còn lại đấu ra Mass.

1.2.7. Tụ hóa 10µF
Hình 1.9 Tụ
Tụ hóa 10μF được gắn đầu âm vào chân reset, đầu dương lên nguồn. Khi cấp điện
cho mạch, tụ sẽ phóng điện khiến chân reset bật lên mức cao, khi đó toàn bộ hệ thống
sẽđược nạp lại từ đầu. Khi đang vận hành thì tụ hóa ngăn dòng đi vào chân reset.
1.2.8. IC 74ls47
6
Hình 1.10 IC 74ls47
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 14
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
Chức năng:
- Một trong những IC phổ biến trong điện tử số. Có rất nhiều kí hiệu khác nhau
tùy thuộc vào hãng và khả năng đáp ứng như: 74HC47, 74HCT47,74LS47,.
Ứng dụng:
Đây là IC giải mã kí giành riêng cho LED 7 thanh Anot chung. Ứng dụng khi ta
cần hiện thị số trên led 7 thanh trong mạch số mà không cần dùng vi xử lý hoặc muốn
tiết kiệm chân
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 15
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG MẠCH
2.1. Sơ đồ mạch nguyên lý
Hình 2.1 Sơ đồ mạch nguyên lý trên protues
2.2. Sơ đồ mạch in
Hình 2.2 Mach in
2.3. Sơ đồBEGIN
1
HIỂN THỊ MENU
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 16
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín


BỎ TIỀN? (BẤM NÚT)
KHÔNG
CHỌN 1,2 3 hoặc 4
KHÔNG
(SAU 9S)
END
ĐỢI 9S
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 17
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
thuật toán
Hình 2.3 Lưu đồ thuật toán
2.4. Nguyên lý hoạt động
Khi ta cấp nguồn cho mạch thì cầu diode sẽ có tác dụng chống đảo cực. sau đó
dòng điện khi qua IC 7805 sẽ được chuyển thành dòng 5V để cung cấp cho mạch điều
khiển, và dòng điện khi đi qua các tụ nhằm ổn định hơn.Lúc này, bộ tạo dao động
thạch anh sẽ tạo dao động cung cấp cho IC89C52 hoạt động.Các xung sẽ được đưa ra
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 18
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
các chân của IC đưa ra LCD hiển thị. Các nut reset để ta chọn sản phẩm và led 7 đoạn
hiển thị số giây.
2.5. Chương trình
LCD_RS BIT P3.0
LCD_RW BIT P3.1
LCD_E BIT P3.2
LCD_DATA EQU P2
LED_XANH BIT P3.7
LED_RED BIT P3.6
B1 BIT P0.0
B2 BIT P0.1
B3 BIT P0.2

B4 BIT P0.3
A1 BIT P1.0
A2 BIT P1.1
A3 BIT P1.2
A4 BIT P1.3
SW1 BIT P1.7
SW2 BIT P1.6
SW3 BIT P1.5
SW4 BIT P1.4
ORG 0000H
; KHOI TAO LCD
CLR LED_XANH
CLR LED_RED
MOV A,#38H ;INIT. LCD 2 DO`NG, MA TRA^.N 5X7
ACALL GUI_LENH
MOV A,#0EH ;DICH CON TRO SANG PHAI
ACALL GUI_LENH
MOV A,#0CH ;LCD ON, CURSOR ON = 0FH (CON TRO NHAP NHAY), CURSOR OFF = 0EH(CON TRO NAM NGANG_),
0CH = NO CURSOR ON
ACALL GUI_LENH
MOV A,#01H ;CLEAR LCD
ACALL GUI_LENH
MOV P3,#0FFH
CALL HIEN_THI
CALL DELAY_NEXT
MAIN:
CLR LED_XANH
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 19
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
CLR LED_RED

CALL SO2_0
MOV A,#01H ;CLEAR LCD
ACALL GUI_LENH
CALL SAN_PHAM1_2
; BAT DAU
BEGIN: ; CHUONG TRINH CHINH
;JNB SW1,NEXT1 ; NHAY NEU = 0
;JNB SW2,NEXT2
JMP CHECK_KEY1
;JMP BEGIN
; KET THUC
NEXT1:
JNB SW1,NEXT1 ; NHAY NEU = 0
CALL DELAY_KEY
CALL XOA_MANHINH
CALL SAN_PHAM3_4
CHECK_KEY:
JNB SW4,CHON_SP3 ; SELE
JNB SW3,CHON_SP4
JNB SW2, NEXT2
JMP CHECK_KEY
NEXT2:
JNB SW2,NEXT2
CALL DELAY_KEY
CALL XOA_MANHINH
CALL SAN_PHAM1_2
CHECK_KEY1:
JNB SW4,CHON_SP1
JNB SW3,CHON_SP2
JNB SW1, NEXT1

JMP CHECK_KEY1
JMP BEGIN
CHON_SP3:
CALL XOA_MANHINH
CALL CHON_SP_3
CALL DELAY_NEXT
CALL XOA_MANHINH
CALL CHO_DOI ; HIEN THI TEXT "PLEASE WAIT " & CAM ON
CALL DEM_GIAY ; DEM SO TU 1 - 9
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 20
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
CALL XOA_MANHINH
CALL CAM_ON
CALL DELAY_NEXT
CALL XOA_MANHINH
JMP MAIN
CHON_SP4:
CALL XOA_MANHINH
CALL CHON_SP_4
CALL DELAY_NEXT
CALL XOA_MANHINH
CALL CHO_DOI ; HIEN THI TEXT "PLEASE WAIT " & CAM ON
CALL DEM_GIAY ; DEM SO TU 1 - 9
CALL XOA_MANHINH
CALL CAM_ON
CALL DELAY_NEXT
CALL XOA_MANHINH
JMP MAIN
CHON_SP1:
CALL XOA_MANHINH

CALL CHON_SP_1
CALL DELAY_NEXT
CALL XOA_MANHINH
CALL CHO_DOI ; HIEN THI TEXT "PLEASE WAIT " & CAM ON
CALL DEM_GIAY ; DEM SO TU 1 - 9
CALL XOA_MANHINH
CALL CAM_ON
CALL DELAY_NEXT
CALL XOA_MANHINH
JMP MAIN
CHON_SP2:
CALL XOA_MANHINH
CALL CHON_SP_2
CALL DELAY_NEXT
CALL XOA_MANHINH
CALL CHO_DOI ; HIEN THI TEXT "PLEASE WAIT " & CAM ON
CALL DEM_GIAY ; DEM SO TU 1 - 9
CALL XOA_MANHINH
CALL CAM_ON
CALL DELAY_NEXT
CALL XOA_MANHINH
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 21
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
JMP MAIN
XOA_MANHINH:
MOV A,#01H ;CLEAR LCD
ACALL GUI_LENH
RET
;*********************************************************
; HIEN THI LOI CHAO

;
;*********************************************************
HIEN_THI:
MOV DPTR,#CAU1
MOV A,#80H
ACALL GUI_LENH
HEAR1:
CLR A
MOVC A,@A+DPTR
JZ KET_TRHUC1 ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP HEAR1
KET_TRHUC1:
MOV DPTR,#CAU2
MOV A,#0C3H
ACALL GUI_LENH
HEAR2:
CLR A
MOVC A,@A+DPTR
JZ KET_TRHUC2 ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP HEAR2
KET_TRHUC2:
RET
;*********************************************************
; HIEN THI SAN PHAM
;
;

;*********************************************************
SAN_PHAM1_2:
MOV DPTR,#SP1
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 22
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
MOV A,#80H
ACALL GUI_LENH
SP_1:
CLR A
MOVC A,@A+DPTR
JZ SP_2 ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP SP_1
SP_2:
MOV DPTR,#SP2
MOV A,#0C0H
ACALL GUI_LENH
SP_22:
CLR A
MOVC A,@A+DPTR
JZ SP_222 ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP SP_22
SP_222:
RET;************************************************************
SAN_PHAM3_4:
MOV DPTR,#SP3
MOV A,#80H

ACALL GUI_LENH
SP_3:
CLR A
MOVC A,@A+DPTR
JZ SP_4 ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP SP_3
SP_4:
MOV DPTR,#SP4
MOV A,#0C0H
ACALL GUI_LENH
SP_41:
CLR A
MOVC A,@A+DPTR
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 23
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
JZ SP_42 ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP SP_41
SP_42:
RET
;*********************************************************
; HIEN THI CAM ON
;
;*********************************************************
CHO_DOI:
MOV DPTR,#WAIT
MOV A,#80H

ACALL GUI_LENH
WAIT_1:
CLR A
MOVC A,@A+DPTR
JZ WAIT_2; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP WAIT_1
WAIT_2:
RET
CAM_ON:
MOV A,#01H ;CLEAR LCD
ACALL GUI_LENH
MOV DPTR,#THANKS
MOV A,#80H
ACALL GUI_LENH
THANHKS_1:
CLR A
MOVC A,@A+DPTR
JZ END_THANK ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP THANHKS_1
END_THANK:
CALL DELAY_NEXT
RET
;***********************************************************
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 24
Đồ Án Vi Xử Lý GVHG: Trần Trung Tín
CHON_SP_1:

MOV DPTR,#CHOOSE1
MOV A,#80H
ACALL GUI_LENH
CHON_SP1_1:
CLR A
MOVC A,@A+DPTR
JZ CHON_SP1_2 ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP CHON_SP1_1
CHON_SP1_2:
RET
;*********************
CHON_SP_2:
MOV DPTR,#CHOOSE2
MOV A,#80H
ACALL GUI_LENH
CHON_SP2_1:
CLR A
MOVC A,@A+DPTR
JZ CHON_SP2_2 ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP CHON_SP2_1
CHON_SP2_2:
RET
;*********************
CHON_SP_3:
MOV DPTR,#CHOOSE3
MOV A,#80H

ACALL GUI_LENH
CHON_SP3_1:
CLR A
MOVC A,@A+DPTR
JZ CHON_SP3_2 ; NHAY NEU KET THUC CHUOI KY TU = 0
LCALL GUI_DULIEU
INC DPTR
JMP CHON_SP3_1
CHON_SP3_2:
SVTH: Trần Viết Tuấn – Nguyễn Nhật Phúc 25

×