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

Báo cáo Lập trình phần mềm nhúng Vy xử lý Xây dựng và Thực thi Leb Cube 5x5x5

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 (968.11 KB, 32 trang )

LỜI MỞ ĐẦU
Vi điều khiển là một lĩnh vực khá lý thú không chỉ đối với các bạn sinh viên
chuyên ngành Điện tử mà còn đối với sinh viên Công nghệ thông tin. Cùng với sự phát
triển của ngành điện tử thì nhiều họ vi điều khiển được các hãng sản xuất chíp cho ra
đời như: AT89, AVR của Atmel, PIC của Microchip… AT89 là bước phát triển tiếp
theo của họ 8051, cùng với sự phát triển đó nhiều ứng dụng về nó đã được ra đời như:
Mạch báo chuông tiết học, Điều khiển động cơ mà gần với chúng ta hơn đó là những
mạch ứng dụng vi điều khiển điều khiển Led đơn được ứng dụng nhiều trong ngành
quảng cáo.
Chắc hẳn ai trong chúng ta cũng đã một lần nghe qua từ 3D như xem phim 3D
hay Tivi 3D, và ắt hẳn bạn cũng đã từng nghe qua khối Led 3D hay Led Cube.
Ngày nay các ứng dụng về 3D ngày càng rộng rãi, đã thúc đẩy nhiều nhà khoa
học đi sâu nghiên cứu và cho ra những sản phẩm ứng dụng công nghệ 3D với chất
lượng ngày càng được nâng cao đáp ứng nhu cầu ngày càng cao của người dùng vì thế
việc nghiên cứu tìm hiểu led 3D đặt nền móng và giúp cho chúng ta hiểu hơn về công
nghệ 3D. Trong bài báo cáo này mình sẽ nói rõ hơn về khối led 3D qua đề tài: THIẾT
KẾ VÀ THI CÔNG LED CUBE 5X5X5 DÙNG VI ĐIỀU KHIỂN AT89S52.
Mục tiêu của đề tài: Tìm hiểu cấu tạo khối led cube từ đó lập trình tạo ra hiệu
ứng bắt mắt trong không gian 3 chiều.
Phương pháp nghiên cứu:
- Nghiên cứu và tìm hiểu 89S52 để ứng dụng hiệu ứng led Cube
- Thi công và thử nghiệm thực tế
Nội dung đề tài gồm 4 chương:
Chương 1: Tổng quan về phần mềm nhúng
Chương 2: Cơ sở phần cứng
Chương 3: Cơ sở phần mềm
Chương 4: Xây dựng chương trình
Tuy nhiên, do thời gian và kiến thức còn hạn chế nên không tránh khỏi sự thiếu
sót, mong nhận được sự đóng góp ý kiến của Thầy và các bạn.
GVHD: ThS. Lê Hoàn
LỜI CẢM ƠN


Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ,
giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác. Trong suốt thời gian
từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rất nhiều sự
quan tâm, giúp đỡ của quý thầy cô, gia đình và bạn bè. Nhân cơ hội này, em muốn bày
tỏ lòng biết ơn sâu sắc của em tới họ.
Đầu tiên, em muốn cảm ơn người hướng dẫn của em, thầy Lê Hoàn vì sự hướng
dẫn tận tình và khoa học. Đó là một cơ hội lớn cho em để được nghiên cứu và làm việc
dưới sự hướng dẫn của thầy. Cảm ơn rất nhiều tới thầy vì sự hướng dẫn em và cách đặt
ra các câu hỏi nghiên cứu giúp em tìm hiểu các vấn đề.
Em xin gửi lời cảm ơn chân thành đến các cán bộ, giảng viên trong khoa Công
nghệ thông tin – Trường Đại học Điện Lực đã cùng với tri thức và tâm huyết của mình
để truyền đạt vốn kiến thức quý báu cho chúng em – những thành viên trong lớp D6-
Tin trong suốt thời gian học tập tại trường.
Em muốn cảm ơn những thành viên lớp D6-Tin – Trường Đại học Điện Lực.
Những người bạn luôn chia sẻ và cổ vũ em trong những lúc khó khăn và em luôn ghi
nhớ điều đó.
Cuối cùng, em xin bày tỏ lòng biết ơn vô hạn đối với cha mẹ và gia đình đã luôn
ủng hộ, giúp đỡ em.
Hà Nội, tháng 06 năm 2015
Sinh viên thực hiện
GVHD: ThS. Lê Hoàn
MỤC LỤC
GVHD: ThS. Lê Hoàn
DANH MỤC CÁC HÌNH
GVHD: ThS. Lê Hoàn
DANH MỤC CÁC BẢNG
GVHD: ThS. Lê Hoàn
6
CHƯƠNG 1: TỔNG QUAN VỀ PHẦN MỀM NHÚNG
1.1 Khái niệm phần mềm nhúng

• Đó là phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực
công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của
các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao.
• Có khả năng tự trị, chạy trong các thiết bị mà không cần tới hệ điều hành.
• Đó có thể là những thiết bị cầm tay nhỏ gọn như đồng hồ kĩ thuật số và máy
chơi nhạc MP3, hoặc những sản phẩm lớn như đèn giao thông, bộ kiểm soát
trong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân.
• Phần mềm được tích hợp vào trong các IC của thiết bị điện tử.
• Ưu điểm nhỏ gọn, dễ cài đặt và sản xuất hàng loạt.
• Mục đích: Nhằm hỗ trợ cho các sản phẩm phần cứng các chức năng hoàn
hảo nhất, phục vụ tốt nhất các nhu cầu của người dùng với sự bảo mật về
sản phẩm tốt nhất.
Phần mềm nhúng chiếm phần lớn trên thị trường phần mềm thế giới, có tốc độ
tăng trưởng cực cao. Càng nhiều thiết bị ra đời thì càng cần đến phần mềm nhúng.
Thị trường phần mềm nhúng thế giới hiện nay đang có tốc độ tăng trưởng nhanh
chóng do nhu cầu mở rộng, thay đổi và nâng cấp liên tục của các mặt hàng có sử dụng
hệ thống nhúng.
Ở Việt Nam, hệ thống nhúng mới được quan tâm trong thời gian gần đây. Các
doanh nghiệp làm phần mềm nhúng cũng chưa nhiều, mới có một số trung tâm thuộc
các trường Đại học Quốc gia, Đại học Bách khoa, các đơn vị như Học Viện Kỹ thuật
quân sự, Viện nghiên cứu Điện tử - Tin học và Tự động hóa, Tổng công ty Điện tử -
Tin học, Công ty thiết bị điện tử y tế, Công ty VTC - Truyền hình số mặt đất và một số
công ty phần mềm khác
GVHD: ThS. Lê Hoàn
7
1.2 Một số ví dụ
Hình 1.1 Phần mềm điều khiển mạch Led
Hình 1.2 Robot của NASA
GVHD: ThS. Lê Hoàn
8

1.3 Công cụ phát triển
Tương tự như các sản phẩm phần mềm khác, phần mềm hệ thống nhúng cũng
được phát triển nhờ việc sử dụng các trình:
• Trình biên dịch (compilers)
• Chương trình dịch hợp ngữ (assembler)
• Các công cụ gỡ rối (debuggers)
Và sử dụng ngôn ngữ (C/C++, Java, html, assembly….)
Tuy nhiên, các nhà thiết kế hệ thống nhúng có thể sử dụng một số công cụ
chuyên dụng như:
• Bộ gỡ rối mạch hoặc các chương trình mô phỏng (emulator)
• Tiện ích để thêm các giá trị checksum hoặc CRC vào chương trình, giúp hệ
thống nhúng có thể kiểm tra tính hợp lệ của chương trình đó.
• Đối với các hệ thống xử lý tín hiệu số, người phát triển hệ thống có thể sử
dụng phần mềm workbench như MatLab để mô phỏng các phép toán.
GVHD: ThS. Lê Hoàn
9
CHƯƠNG 2: CƠ SỞ PHẦN CỨNG
1.4 Giới thiệu về vi điều khiển AT89S52
1.4.1 Chức năng
Vi điều khiển 8051 được InTel cho ra đời vào năm 1980 thuộc vi điều khiển đầu
tiên của họ MCS-51. Hiện tại rất nhiều nhà sản xuất như Siemens, Advanced Micro
Devices, Fussi và Philips tập trung phát triển các sản phẩm trên cơ sở 8051. Atmel là
hãng đã cho ra đời các chip 89C51, 52, 55 và sau đó cải tiến thêm, hãng cho ra đời
89S51, 89S52, 89S8252…
Cấu hình 89S52:
• 8 KB Flash ROM bên trong
• Vùng điện áp hoạt động 4.0V – 5.0V
• Xung clock: 0 Hz – 33 MHz
• 256 x 8-bit RAM nội
• 8 nguồn ngắt

• 4 Port xuất nhập I/O 8 bit
• 3 bộ Timer/Counter 16 bit
• Watchdog Timer
• Giao tiếp nối tiếp
• Cờ báo ngắt
• Có thể mở rộng 64 KByte không nhớ chương trình ngoài
• Có thể mở rộng 64 KByte không nhớ dữ liệu ngoài
GVHD: ThS. Lê Hoàn
10
Sơ đồ chân:
PDIP PLCC
Hình 2.3 Sơ đồ chân IC AT89S52
GVHD: ThS. Lê Hoàn
11
Hình 2.4 Sơ đồ khối IC AT89S52
Chức năng các chân:
Port 0: là port có 2 chức năng với số thứ tự chân từ 32-39
• Trong các hệ thống điều khiển đơn giản sử dụng bộ nhớ bên trong không
dùng bộ nhớ mở rộng bên ngoài thì port 0 được dùng làm các đường I/O.
• Trong các hệ thống điều khiển lớn sử dụng bộ nhớ mở rộng bên ngoài thì
port 0 có chức năng là bus địa chỉ và bus dữ liệu AD7-AD0
Port 1: với số thứ tự chân từ 1-8. có chức năng làm các đường điều khiển xuất
nhập ngoài ra còn có các chân có chức năng như bảng sau:
GVHD: ThS. Lê Hoàn
12
Bảng 2.1 Chức năng các chân port 1
Port 2: với số thứ tự chân từ 21-28 với hai chức năng:
• Trong các hệ thống điều khiển đơn giản sử dụng bộ nhớ bên trong không
dùng bộ nhớ mở rộng bên ngoài thì port 2 được dùng làm các đường I/O.
• Trong các hệ thống điều khiển lớn sử dụng bộ nhớ mở rộng bên ngoài thì

port 2 có chức năng là bus địa chỉ cao A8-A15.
Port 3: có hai chức năng với số thứ tự chân 10-17 các chân của port này có nhiều
chức năng khác nhau như bảng sau:
Bảng 2.2 Chức năng các chân port 3
GVHD: ThS. Lê Hoàn
13
• Chân PSEN (Program store enable): là tín hiệu ngõ ra ở chân 29 cho phép
đọc bộ nhớ chương trình mở rộng. Khi có giao tiếp với bộ nhớ bên ngoài
mới dùng đến chân PSEN
• Chân ALE/PROG (Address latch enable): là tín hiệu ngõ ra ở chân 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.
• Chân EA/VPP (External Access) số thứ chân là 31 có chức năng chọn bộ
nhớ chương trình: EA=GND: Chọn bộ nhớ ngoại, EA=VCC chọn bộ nhớ
nội.
• Chân RST (Reset) chân số 9 của vi điều khiển, khi nhấn nút reset thì mạch
sẽ reset vi điều khiển, khi reset thì tín hiệu phải ở mức cao ít nhất 2 chu kỳ
máy.
Sơ đồ mạch reset:
Hình 2.5 Sơ đồ mạch Reset
Trạng thái các thanh ghi sau khi reset
GVHD: ThS. Lê Hoàn
14
Hình 2.6 Trạng thái các thanh ghi sau khi reset
• Chân XTAL1 và XTAL2: Chân 18, 19 của vi điều khiển. Thường được nối
với thạch anh tạo thành mạch tạo dao động cho VĐK. Tần số thạch anh
thường dùng trong các ứng dụng là: 12 Mhz, Tần số tối đa 33Mhz. Tần số
càng lớn vi điều khiển xử lí càng nhanh.
Sơ đồ mạch kết nối thạch anh:
Hình 2.7 Sơ đồ mạch kết nối thạch anh

GVHD: ThS. Lê Hoàn
15
• Chân VCC, GND: chân 40, 20 của vi điều khiển dùng để cấp nguồn và nối
đất cho vi điều khiển.
1.4.2 Tổ chức bộ nhớ của vi điều khiển
Vi điều khiển 89S52 có bộ nhớ nội bên trong và thêm khả năng giao tiếp với bộ
nhớ bên ngoài nếu bộ nhớ bên trong không đủ khả năng lưu trữ chương trình. Bộ nhớ
nội bên trong gồm có hai loại bộ nhớ:
Bộ nhớ dữ liệu và bộ nhớ chương trình. Bộ nhớ dữ liệu có 256 byte, bộ nhớ
chương trình có dung lượng 8kbyte.
Bộ nhớ mở rộng bên ngoài cũng được chia làm hai loại bộ nhớ: bộ nhớ dữ liệu và
bộ nhớ chương trình, khả năng giao tiếp là 64kbyte cho mỗi loại.
Hình 2.8 tổ chức bộ nhớ của vi điều khiển
Bộ nhớ mở rộng bên ngoài và bộ nhớ chương trình bên trong không có gì đặc
biệt chỉ có khả năng lưu trữ dữ liệu và mã chương trình. Bộ nhớ chương trình bên
trong của vi điều khiển thuộc loại bộ nhớ flash rom cho phép xóa bằng xung điện và
lập trình lại. Bộ nhớ Ram nội bên trong là bộ nhớ đặc biệt, sơ đồ cấu trúc bên trong
được trình bày trong hình dưới
GVHD: ThS. Lê Hoàn
16
Hình 2.9 Cấu trúc bộ nhớ Ram bên trong vi điều khiển
1.5 Giới thiệu về Led Cube
1.5.1 Giới thiệu
LED CUBE được tạo thành từ 125 bóng led, xếp thành 5 lớp, mỗi lớp 25 bóng.
Điều đặc biệt là ta không dùng 125 mối nối để thắp sáng từng bóng mà thay vào đó, ta
mắc chung các chân anode của 25 bóng trên 1 lớp lại với nhau và mắc chung 5 chân
cathode để tạo thành cột (có 25 cột).
1.5.2 Nguyên lý hoạt động
Để cho 1 led bất kỳ bật sáng, đầu tiên ta nối chân anode chung của lớp với điểm
có điện thế cao, khi đó 25 bóng led sẽ có chân anode được gắn với điểm điện thế cao,

việc còn lại là nối điểm điện thế thấp cho chân cathode của bóng led nào cần thắp
sáng.
GVHD: ThS. Lê Hoàn
17
Việc cấp điện thế cao cho các lớp được thực hiện bởi 5 transistor PNP. 5
Transistor này được điều khiển bởi 5 chân IO của vi điều khiển và được phân cực ở
vùng bão hòa và vùng ngưng tương ứng với mức logic 0 và 1 (ngược mức logic với
chân I/O của vi điều khiển) Việc cấp điện thế thấp cho các cột được thực hiện bởi 25
chân I/O của vi điều khiển. Do không có transistor để nhận dòng nên khi khi tính toán
điện trở hạn dòng cho led phải lưu ý đến khả năng nhận dòng của chân I/O vi điều
khiển (thông số IOL khoảng 200mA là tối đa). Ở thời điểm nào đó, mỗi chân này phải
nhận dòng từ 5 bóng led của 1 cột. Sơ đồ nguyên lý điều khiển sau đây:
Hình 2.10 Sơ đồ nguyên lý điều khiển Led
1.5.3 Cơ sở tính toán chọn linh kiện
Port 0 muốn hiển thị được và không bị nhiễu khi bỏ trống ta dùng điện trở léo lên
nguồn, chọn điện trở kéo lên 4,7 kΩ.
Mỗi led đơn để sáng được đòi hỏi dòng qua led là 10mA, hiệu điện thế 3V (dùng
led 5mm xanh dương).
Tính toán chọn điện trở hạn dòng cho led:
GVHD: ThS. Lê Hoàn
18
Hiển thị hiệu ứng trên khối led cube bằng phương pháp quét giải mã bằng phần
cứng và phần mềm. khối quét và hiển thị led cube được thiết kế gồm 5 lớp, mỗi lớp 25
led đơn được nối anode chung được điều khiển bằng phương pháp quét nhằm hiển thị
được các hiệu ứng 3D trên khối led cube.
Để cho led sáng ở chế độ đóng ngắt thì dòng qua led phải gấp 5 lần dòng có định
tức là mỗi led phải được cấp dòng đóng ngắt lên đến 50mA.
Dòng ngõ ra của vi điều khiển mức thấp là 20mA.
Phải chọn Transistor có
Ta có thể chọn Transistor là A1015 có dòng định mức là IC=200mA, β=180 hoặc

transistor A1013 có dòng định mức IC=200mA, β=60-320.
Tính toán chọn điện trở RB: khi transisotr dẫn bão hòa VBE=0,7V; VCE=0,2V.
Vậy ta có thể chọn RB=1kΩ; 1,2 kΩ; 1,5 kΩ; 1,8 kΩ; 2,2 kΩ;
1.6
GVHD: ThS. Lê Hoàn
19
CHƯƠNG 3: CƠ SỞ PHẦN MỀM
1.7 Keil C
1.7.1 Giới thiệu
Keil C hay còn gọi là Keil 8051 là công cụ phần mềm hỗ trợ khá đầy đủ để người
dùng soạn thảo và biên dịch chương trình dành cho các vi điều khiển thuộc họ 8051
bằng ngôn ngữ C và Assembly.
Hiểu nôm na rằng, trình biên dịch là phần mềm mà trên đó sẽ được viết các
chương trình điều khiển để nạp xuống cho con VĐK. Ta không thể viết chương trình
cho VĐK trên word, excel mà mỗi một loại VĐK khác nhau lại phải dùng một phần
mềm chuyên dụng riêng để viết chương trình cho nó. Đối với dòng VĐK 8051 thì
cũng có một vài trình biên dịch khác nhau, nhưng cơ bản nhất, phổ biến nhất là trình
biên dịch KeilC. Từ phần mềm này ta có thể viết chương trình bằng cả 2 loại ngôn ngữ
là C hoặc ASM.
Vì VĐK không thể hiểu được các ngôn ngữ mà chúng ta viết chương trình, nó
chỉ hiểu được các mã máy (mà do nhà sản xuất tạo ra), phần mềm này có chức năng
"phiên dịch" các dòng lệnh mà ta viết bằng C hoặc ASM sang "ngôn ngữ mã máy" (tạo
ra một file .hex) từ đó ta sẽ dùng mạch nạp để nạp file .hex này cho VĐK.
1.7.2 Mục đích
Trong đồ án này nhóm em sử dụng phần mềm Keil C để viết code thực hiện hoạt
động cho Led.
1.8 Proteus
1.8.1 Giới thiệu
Proteus là một phần mềm hỗ trợ thiết kế và mô phỏng các loại mạch điện tử. So
với một số các phần mềm hỗ trợ mô phỏng các mạch điện khác như:

• Circuitmaker 2000 ngofi việc hỗ trợ thiết kế sơ dồ mạch in (PCB) thì phần
mềm còn cho phép vẽ và mô phỏng mạch số chuẩn xác tới 95% nhưng lại bị
hạn chế khi mô phỏng các loại mạch tương tự cũng như mạch tổng hợp các
số cả tương tự.
• WorkBench (EWB) phần mềm này có thư viện linh kiện phong phú và có
nhiều thiết bị đo kiểm tra như thực tế giúp người thiết kế dễ dàng quan sát
cân chỉnh thông số của mạch điện. So với các phần mềm khác thì
WorkBench cho phép mô phỏng các loại mạch điện (cả số và tương tự)
GVHD: ThS. Lê Hoàn
20
• ORCAD, Eagle và PROTEL là các phần mềm hỗ trợ vẽ sơ đồ nguyên lý và
sơ đồ mạch in (PCB) nhưng không hỗ trợ mô phỏng mạch nguyên lý. Thì
Proteus có thế mạch hơn hẳn về các mặt:
o Thư viện linh kiện phong phú.
o Hỗ trợ nhiều thiết bị đo kiểm tra.
o Cho phép thiết kế và chạy mô phỏng sơ đồ nguyên lý gồm các mạch
tương tự, mạch số, mạch tổng hợp cả số cả tương tự
o Cho phép chạy mô phỏng các loại vi điều khiển, EPPROM, PIC.
o Hỗ trợ thiết kế mạch in (PCB).
1.8.2 Mục đích
Trong đồ án này nhóm em sử dụng phần mềm Proteus để tạo mạch ảo thể hiện
hoạt động của các Led.
GVHD: ThS. Lê Hoàn
21
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH
1.9 Thiết kế phần cứng
Hình 4.11 Sơ đồ thiết kế
GVHD: ThS. Lê Hoàn
22
1.10 Thiết kế phần mềm

1.10.1 Các lưu đồ
Hình 4.12 Lưu đồ chương trình chính
GVHD: ThS. Lê Hoàn
23
Hình 4.13 Lưu đồ Delay
GVHD: ThS. Lê Hoàn
24
Hình 4.14 Lưu đồ hiệu ứng tỏa ra
GVHD: ThS. Lê Hoàn
25
Hình 4.15 Lưu đồ hiệu ứng chớp tắt
GVHD: ThS. Lê Hoàn

×