Mỗi chân có chức năng như các đường I/Oxuấ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
Trang 1LỜ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 quangbá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 đờisố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ânthà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 2012Nhóm thực hiện đồ ánNguyễn Nhật PhúcTrần Viết Tuấn
Trang 2MỤC LỤC
LỜI NÓI ĐẦU i
MỤC LỤC ii
DANH MỤC HÌNH iii
CHƯƠNG 1 GIỚI THIỆU MẠCH 1
1.1 Sơ đồ khối toàn mạch 1
1.1.1 Sơ đồ khối 1
1.1.2 Chức năng từng khối 1
1.2 Các linh kiện trong mạch 1
1.2.1.Vi điều khiển 89c52 1
1.2.1.1 Các đặc điểm 8051 1
1.2.1.2 Giới thiệu sơ lược về IC 89C52 2
1.2.1.3 Sơ đồ chân IC 89C52 3
1.2.1.4.Chức năng của các chân 3
1.2.1.5.Tổ chức bộ nhớ trong IC89c52 5
1.2.2 IC 7805 ổn áp 5v 9
1.2.3 LCD 16x2 10
1.2.4 LED 7 đoạn anode chung 11
1.2.5 Thạch anh 12 MHz 11
1.2.6 Tụ gốm 33pF 12
1.2.7 Tụ hóa 10µF 12
1.2.8 IC 74ls47 12
CHƯƠNG 2: THIẾT KẾ VÀ THI CÔNG MẠCH 14
2.1 Sơ đồ mạch nguyên lý 14
2.2 Sơ đồ mạch in 14
2.3 Sơ đồ thuật toán 15
2.4 Nguyên lý hoạt động 15
2.5 Chương trình 16
2.6 Mạch thực tế 27
KẾT LUẬN 28
Trang 3DANH MỤC HÌNH
Hình 1.1 Sơ đồ khối mạch 1
Hình 1.2 Sơ đồ chân IC 89C52 3
Hình 1.3 Sơ đồ bộ nhớ IC 89c52 5
Hình 1.4 IC 7805 9
Hình 1.5 Hình dáng của loại LCD thông dụng 10
Hình 1.6 Led 7 đoạn anot chung 11
Hình 1.7 Thạch anh 12MHz 11
Hình 1.8 tụ gốm 12
Hình 1.9 Tụ 12
Hình 2.1 Sơ đồ mạch nguyên lý trên protues 14
Hình 2.2 Mach in 14
Hình 2.3 Lưu đồ thuật toán 15
Hình 2.4 Mạch thực tế 27
Trang 4CHƯƠNG 1 GIỚI THIỆU MẠCH
1.1 Sơ đồ khối toàn mạch
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
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
Trang 5 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ấtnguồ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ủaAtmel
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ôngnghiệp MCS-51 Flash trên chip này cho phép bộ nhớ chương trình được lập trình lạitrê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ể, Atmel89C52 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ề chiphí 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ấtnhậ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ânngắ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ảmxuố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
Trang 61.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ó 8châ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ênngoà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ấttín hiệu để điều khiển led đơn sáng tắt
Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port0) 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
Trang 7vớ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đườngxuấ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 đảmnhậ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 đầucho 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ớithạ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 để truyxuấ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)
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ânALE 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 độ
Trang 8bằ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ínhiệ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 hayROM 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 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)
Trang 9Ta 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ỗibank, các thanh ghi được đặt tên từ R0-R7, các thanh ghi này được đặt mặc định trongbank 1 Có 4 bank thanh ghi và tại mỗi thời điểm chỉ có một bank thanh ghi được truyxuấ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ácbank thanh ghi, người dùng phải thay đổi giá trị các bit chọn bank trong thanh ghitrạ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 racá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
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 ghinà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
Trang 10Trê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 ứngdà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 truyxuấ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ó địachỉ của các thanh ghi này nằm trong khoảng 80H đến FFH Các thanh ghi đặc biệt nàynà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ể truyxuấ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 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ùngquả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
Trang 11 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-địachỉ 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)
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ấuPSW.1 D1H - Chưa được thiết kế để sử dụng
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
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,
Trang 127812 ổ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 cungcấ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ắpthê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ềuduy 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àongõ IN nữa
1.2.3 LCD 16x2
Trang 13Hì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
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
Trang 141.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êmmộ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ớinhau 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ạitrê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ớimạ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ángkhi 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ềukhiể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ảodòngqua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led Nếu kết nối với nguồn5V 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
Trang 15Hì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 độngcủa 8052 Thạch anh sẽđược gắn vàochân XTAL1 vàXTAL2 (Chân số 18 và 19) của89c52
1.2.8 IC 74ls47
6 Hình 1.10 IC 74ls47