TỔNG QUAN
Lý do chọn đề tài
Kỹ thuật vi điều khiển hiện nay đã trở thành một phần thiết yếu trong các lĩnh vực kỹ thuật và đời sống hàng ngày Nó được ứng dụng từ dây chuyền sản xuất quy mô lớn cho đến các thiết bị gia dụng, giúp xử lý nhiều hoạt động phức tạp chỉ với một chip vi mạch nhỏ Sự phát triển này đã thay thế những tủ điều khiển cồng kềnh bằng các mạch điện gọn nhẹ, dễ dàng thao tác và sử dụng.
Việc tìm hiểu khảo sát vi điều khiển là mối quan tâm lớn của sinh viên ngành điện tử, vì mặc dù các bộ điều khiển sử dụng vi điều khiển có vẻ đơn giản, nhưng việc vận hành và sử dụng chúng lại phức tạp Chương trình và phần mềm đóng vai trò quan trọng trong quá trình xử lý, và mặc dù máy tính hiện đại có khả năng giải quyết vấn đề nhanh chóng, nhưng tất cả đều dựa trên kiến thức của con người Nếu không có sự can thiệp của con người, hệ thống vi điều khiển chỉ là một thiết bị vô tri Do đó, vi điều khiển và máy tính bao gồm cả phần cứng lẫn phần mềm Các bộ vi điều khiển đã phát triển nhanh chóng theo công nghệ bán dẫn, từ các bộ 4 bit đơn giản đến 32 bit hiện đại Bộ vi điều khiển 8 bit là nền tảng để nghiên cứu và sử dụng các bộ vi điều khiển tiên tiến hơn, đánh dấu bước đầu tiên trong việc khám phá lĩnh vực này Để tìm hiểu bộ vi điều khiển một cách khoa học và hiệu quả, việc trang bị kiến thức cho sinh viên là rất cần thiết, và từ thực tế đó, chúng tôi đã quyết định thực hiện đề tài “Thiết kế chế tạo kit thực tập vi điều khiển” với các mô-đun như LED đơn và LED.
7 thanh,lcd,động cơ DC” b.Mục đích nghiên cứu,đối tượng, phạm vi nghiên cứu
Từ chương trình thực tập vi điều khiển nhóm đã nghiên cứu lý thuyết tổng quan và xây dựng phần cứng các modul thực tập
Đối tượng nghiên cứu,phạm vi nghiên cứu
Thực hiện nghiên cứu trên chip AT89C51 bao gồm các modul led đơn, led 7 thanh, động cơ DC, động cơ bước, led matrix, phím đơn, matran phím4x4,LCD
TỔNG QUAN LÝ THUYẾT
Vi điều khiển AT98C51
2.1.1 Sơ lược về vi điều khiển.
Bộ Vi Điều Khiển là một mạch điện tử chứa hàng ngàn đến hàng triệu transistor (LSI, VLSI) được kết nối với nhau, cho phép lưu trữ và xử lý dữ liệu Sự kết hợp của các transistor giúp vi xử lý thực hiện nhiều chức năng hữu ích, và các chức năng này được xác định thông qua nhiều phần mềm có khả năng lập trình.
Hệ thống vi xử lý bao gồm ba khối chức năng chính: vi xử lý, bộ nhớ và các cổng I/O Bộ nhớ được thực hiện bằng các chip nhớ bán dẫn như ROM hoặc RWM, nơi lưu trữ chương trình và dữ liệu Đối với vi xử lý, bộ nhớ là tập hợp các ô nhớ được phân biệt theo địa chỉ Các cổng I/O được thực hiện bằng các chip MSI hoặc LSI, đóng vai trò là phần mềm giao tiếp giữa vi xử lý và các thiết bị I/O Bộ vi xử lý cũng phân biệt các cổng I/O theo địa chỉ của chúng.
2.1.2 Giới thiệu cấu trúc phần cứng họ MSC-51. Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự như nhau Ở đây giới thiệu ICAT89C51 là một họ IC vi điều khiển do hãng Intel của Mỹ sản xuất Chúng có các đặc điểm chung như sau:
Các đặc điểm của AT89C51 được tóm tắt như sau :
- 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.
Hình 2.1.2 : Sơ đồ khối của AT89C51:
2.1.3 KHẢO SÁT SƠ ĐỒ CHÂN AT89C51, CHỨC NĂNG TỪNG CHÂN 2.1.3.1 Sơ đồ chân AT89C51: a) DIP b)PLCC
Hình 2.1.3: Sơ đồ chân IC AT89C51
2.1.3.2 Chức năng các chân của AT89C51.
AT89C51 là một vi điều khiển với 40 chân, trong đó 24 chân có khả năng hoạt động đa chức năng Mỗi chân có thể đảm nhận vai trò như đường xuất nhập, đường điều khiển, hoặc là thành phần của bus dữ liệu và bus địa chỉ.
Port 0 là port ở các chân 32 – 39 của AT89C51 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.
Port 1 là port I/O trên các chân 1-8 Các chân được ký hiệu P1.0, P1.1, P1.2,
Cổng P1.7 có khả năng giao tiếp với các thiết bị bên ngoài khi cần thiết Trong khi đó, cổng 1 không có chức năng khác, do đó chỉ được sử dụng cho việc kết nối với các thiết bị ngoại vi.
Port 2 là 1 port có hai tác dụng trên các chân 21 - 28 được 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 là port có hai tác dụng trên các chân 10 - 17 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ủaAT89C51 như ở bảng sau:
Bit Tên Chức năng chuyển đổi
P3.0 RXD Nhận tín hiệu kiểu nối tiếp.
P3.1 TXD Truyền tín hiệu kiểu nối tiếp.
Chân vào 0 của Timer/Counter 0. Chân vào1 của Timer/Counter 1. Ghi dữ liệu vào bộ nhớ ngoài. Đọc dữ liệu từ bộ nhớ ngoài.
Bảng 2.1: Chức năng chân PORT 3
2.1.2.3 Các đầu tín hiệu điều khiển :
Chân PSEN cho phép đọc bộ nhớ chương trình ngoài (ROM ngoài) và là tín hiệu đầu ra ở chân 29 của vi điều khiển AT89C51 Khi PSEN ở mức thấp, vi điều khiển sẽ lấy lệnh từ EPROM qua bus dữ liệu và lưu trữ vào thanh ghi lệnh để giải mã Trong quá trình thi hành chương trình từ ROM nội, PSEN sẽ ở mức logic 1.
Chân ALE (/PROG) là tín hiệu cho phép chốt địa chỉ để truy cập bộ nhớ ngoài, hoạt động khi byte thấp của địa chỉ được xuất ra từ On-chip Tín hiệu chốt được kích hoạt ở mức cao, với tần số xung chốt bằng 1/6 tần số dao động của bộ VDK Chân ALE có thể sử dụng cho các bộ Time ngoài hoặc để tạo xung Clock, đồng thời cũng là chân xung vào để nạp chương trình cho Plash (hoặc EEPROM) bên trong On-chip khi ở mức thấp.
-/EA/Vpp: Cho phép On-chip truy cập bộ nhớ chương trình ngoài khi
Nếu /EA=0, thì hệ thống sẽ hoạt động với bộ nhớ chương trình nội trú Trong trường hợp cần truy cập vùng nhớ lớn hơn dung lượng bộ nhớ nội trú, bộ nhớ chương trình ngoài sẽ được sử dụng Khi chân này được cung cấp điện áp, hệ thống sẽ khởi động theo chế độ tương ứng.
12V(Vpp) thì On-chi Đảm nhận chức năng nạp chương trình cho Flash bên trong nó.
Đầu vào RST (Reset) tại chân 9 của AT89C51 là tín hiệu Reset quan trọng Khi tín hiệu này được đưa lên cao ít nhất 2 chu kỳ máy, các thanh ghi bên trong sẽ được nạp giá trị thích hợp để khởi động hệ thống Ngoài ra, khi cấp điện, mạch sẽ tự động thực hiện quá trình Reset.
XTAL1 và XTAL2 là chân vào và ra cho mạch khuếch đại dao động của bộ vi điều khiển AT89C51 Khi sử dụng AT89C51, người thiết kế chỉ cần kết nối thêm thạch anh và các tụ điện theo sơ đồ Tần số thạch anh phổ biến cho AT89C51 là 12MHz, trong khi thạch anh 11.0592MHz được sử dụng chuẩn để tạo ra tốc độ baud trong truyền thông.
- Chân 40 (Vcc) :Được nối lên nguồn 5V.
2.1.4 CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN
Hình 2.3: Tổ chức bộ nhớ vi điều khiển.
Memory Địa chỉ bit Địa chỉ byte Địa chỉ bit
2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE 2B 5F 5E 5D 5C 5B 5A 59 58
28 47 46 45 44 43 42 41 40 99 Không định địa chỉ bit SBUF
23 1F 1E 1D 1C 1B 1A 19 18 8D Không định địa chỉ bit TH1
22 17 16 15 14 13 12 11 10 8C Không định địa chỉ bit TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B Không định địa chỉ bit TL1
20 07 06 05 04 03 02 01 00 8A Không định địa chỉ bit TL0
1F Bank 3 89 Không định địa chỉ bit TMOD
17 Bank 2 87 Không định địa chỉ bit PCON
0F Bank 1 83 Không định địa chỉ bit DPH
08 82 Không định địa chỉ bit DPL
07 Bank thanh ghi 0 81 Không định địa chỉ bit SP
Bảng 2.2: Vùng nhớ RAM của AT89C51.
PSW.6 AC D6H Auxiliary Cary Flag
PSW4 RS1 D4H Register Bank Select 1
PSW.3 RS0 D3H Register Bank Select 0
00nk 0; address 00H(07H) 01nk 1; address 08H(0FH) 10nk 2; address 10H(17H) 11nk 3; address 18H(1FH)
PSW.0 P DOH Even Parity Flag
Bảng 2.3: Thanh ghi từ trạng thái.
Chức năng từng bit trạng thái chương trình
- Cờ Carry CY (Carry Flag):
Cờ nhớ trong phép toán số học nếu có nhớ từ phép cộng bít số 7 hoặc có số mượn mang đến bít 7 thì CY được đặt bằng 1
- Cờ Carry phụ AC (Auxiliary Carry Flag):
Khi thực hiện phép cộng các giá trị BCD, nếu có sự chuyển đổi từ bit 3 sang bit 4, thì bit nhớ AC sẽ được đặt thành 1 Để đảm bảo kết quả đúng, sau lệnh cộng, cần phải thực hiện lệnh DA A (hiệu chỉnh thập phân nhanh chứa A) cho những kết quả lớn hơn.
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 xác định dãy thanh ghi tích cực, chúng sẽ được xóa sau khi hệ thống được reset và có thể được thay đổi bởi phần mềm khi cần thiết Tùy thuộc vào giá trị của RS1 và RS0, khi RS1, RS0 = 00.
01, 10, 11 sẽ được chọn Bank tích cực tương ứng là Bank 0, Bank1, Bank2, Bank3.
Bảng 2.4: Bits chọn băng thanh ghi.
- Cờ tràn OV (Over Flag) :
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 thì
TÓM TẮT TẬP LỆNH
Thông qua việc khảo sát các kiểu định địa chỉ và ví dụ trong các tình huống lập trình điển hình, chúng ta có thể tiếp cận một cách hiệu quả với tập lệnh của MCS-51.
2.2.1.Các kiểu định địa chỉ.
Có 8 kiểu định địa chỉ.
- Thanh ghi.:VD: MOV PSW,#00011000B
- Tương đối:VD: SJMP THREE :Nhảy đến nhãn THREE
- Tuyệt đối: VD: AJMP THREE
- Chỉ số.VD: JMP @A+DPTR
- Nhóm lệnh di chuyển dữ liệu
- Nhóm lệnh xử lý bit
Hoạt động định thời là một chuỗi các Flip-Flop được kết nối nối tiếp và nhận tín hiệu từ nguồn xung nhịp Bộ định thời được lập trình để tràn trong một khoảng thời gian nhất định, khi đó cờ tràn của bộ định thời sẽ được set bằng 1 Các bộ định thời thường được sử dụng trong nhiều ứng dụng khác nhau.
- Định thời trong một khoảng thời gian.
- Tạo tốc độ baud cho các port nối tiếp
Bảng chức năng 6 thanh ghi đặc biệt:
2.15 Chức năng 6 thanh ghi đặc biệt.
THIẾT KẾ VÀ THI CÔNG
Sơ đồ nguyên lý
Hình 3.2.Sơ đồ nguyên lý toàn mạch.
Sơ đồ từng khối và chức năng các khối
3.3.1 Module xử lý trung tâm KIT (Board chủ).
3.3.1.1.Chức năng: Đây là module tiếp nhận và xử lí mọi thông tin liên quan đến hoạt động của KIT Khối xử lí trung tâm làm việc không ngừng trong suốt thời gian làm việc do đó độ bền bỉ và khả năng xử lí nhanh chóng linh hoạt với mọi tình huống phụ thuộc vào phẩm chất linh kiện mà chúng ta sử dụng cũng như nguồn cung cấp cho hệ thống.Chính và vậy chọn bộ xử lí trung tâm làm đối tượng đầu tiên để ta thiết kế không ngoài lý do trên, nó sẽ quyết định cho khả năng hoạt động cho hệ thống của chúng ta.
3.3.1.2.Yêu cầu chọn linh kiện, tính toán:
Yêu cầu chọn linh kiện.
- Có nền tảng cơ bản của một hệ thống vi điều khiển.
- Khả năng ưu việt so với hệ thống số.
- Dễ sử dụng cũng như thiết kế các ứng dụng.
- Có tài liệu liên quan.
- Không yêu cầu cao trong thiết kế phần cứng.
- Mua được trên thị trường Việt Nam.
Việc lựa chọn IC trung tâm 8051, cụ thể là loại AT89Cxx, nhằm đáp ứng yêu cầu và mục đích của đề tài Chúng tôi sử dụng Socket để thay thế cho việc hàn cứng IC lên KIT, nhằm thuận tiện cho việc thay đổi IC hoặc điều chỉnh chương trình ứng dụng mà không làm hư hại đến IC.
Vi điều khiển AT89Cxx là lựa chọn lý tưởng cho thị trường Hà Nội và khu vực miền Bắc nhờ dễ dàng mua sắm và bộ nhớ 4Kbyte phù hợp cho các ứng dụng thí nghiệm và nghiên cứu Chip này sở hữu 4K Flash ROM cho bộ nhớ chương trình, 128 byte RAM, 32 chân vào ra số, 2 bộ định thời, cùng với cấu trúc ngắt 2 mức ưu tiên và 5 nguồn ngắt Vùng nhớ Flash ROM có khả năng nạp và xóa lên đến 1000 lần, hỗ trợ tần số làm việc tối đa 24Mhz AT89Cxx còn tích hợp chế độ Power Down tiết kiệm điện năng, giữ nội dung RAM trong khi vô hiệu hóa các hoạt động khác cho chip cho đến khi có Reset cứng Ngoài ra, chế độ Idle cho phép RAM, bộ định thời/đếm, port nối tiếp và hệ thống ngắt tiếp tục hoạt động trong khi CPU tạm dừng.
Theo datasheet của nhà sản xuất, Port0 của IC có cấu trúc hở collector, do đó cần sử dụng điện trở treo bên ngoài để phục vụ cho mục đích tải ngoài Chúng ta nên chọn điện trở treo với giá trị từ 1K đến 10K, vì khoảng giá trị này giúp mạch hoạt động tiết kiệm năng lượng nhất Dòng điện qua các chân của IC cũng phù hợp với mức khoảng 0,5mA.
- Bảng lựa chọn linh kiện trong mạch :
TT Tên linh kiện Số lượng Thông số
Bảng 3.1.Linh kiện mạch Module vi xử lý
Module hiển thị LCD
Trong những năm gần đây, màn hình LCD ngày càng trở nên phổ biến và dần thay thế các loại đèn LED và LED 7 đoạn Điều này nhờ vào khả năng hiển thị số, ký tự và đồ họa vượt trội, cùng với việc lập trình cho các ký tự đồ họa trở nên dễ dàng hơn.
Khối hiển thị LCD là thành phần quan trọng trong bộ KIT này, giúp thực hiện các bài luyện tập kết nối LCD với vi điều khiển 89C51 Nó cho phép lập trình hiển thị số, ký tự và đồ họa trên LCD một cách dễ dàng và trực quan.
3.4.2.Phân tích yêu cầu lựa chọn linh kiện.
Với mục đích thực hành, thí nghiệm nên khối hiển thị LCD cần có những yêu cầu sau:
- Dễ dàng ghép nối và quan sát,
- Đảm bảo việc thực hiện các bài luyện tập cho người sử dụng,
- Thiết kế, chế tạo dễ dàng, giá thành hạ.
Các thông số của SD – DM1602A:
- Điện áp cung cấp: VDD = 4.5 ÷ 5.5V
- Điện áp điều khiển: V0 = VDD – 15.0V ÷ VDD + 0.3V
- Dòng điện đèn BL: 185mA
- Công suất đèn BL: PBL = 777mW
Từ các thông số trên ta chọn nguồn cung cấp: VDD = 5V
Biến trở để thay đổi điện áp V0 điều chỉnh độ tương phản của màn hình hiển thị.
Các chân DB0 đến DB7 được kết nối với 8 bit Px.0 đến Px.7 của vi điều khiển Chân RS, RW và E được nối với chân P2.2, P2.1 và P2.0 của vi điều khiển thông qua cáp 8.
Hình 3.3: Sơ đồ nguyên lý mạch hiển thị LCD.
- Bảng lựa chọn linh kiện trong mạch :
TT Tên linh kiện Số lượng Thông số
Bảng3.2.Linh kiện Module LCD
Hiển thị trạng thái logic tại các cổng Hiển thị các ứng dụng đơn giản kết hợp với các modul khác như trạng thái Run/Stop hoặc Left/Right v.v…
3.4.4.2.Thiết kế và tính toán.
Khác với diode thông thường, LED sáng (phân cực thuận) sẽ tạo ra sụt áp từ 1,7 đến 2,5V tùy thuộc vào màu sắc của LED, với dòng định mức dao động từ 10 đến 40 mA Do đó, cần thiết lập mạch điều khiển LED phù hợp.
Hình 3.4: Sơ đồ kết nối LED đơn.
LED đơn được điều khiển trực tiếp từ vi điều khiển với tín hiệu điện áp đầu vào từ 0 đến 5V Để LED phát sáng tốt, cần chọn dòng điện qua LED là 20 mA, với điện áp rơi trên LED khoảng 2.8V.
Xét hình a: LED sáng khi mức logic tại đầu IN là mức logic 0 Nên giá trị điện trở R1 là:
Xét hình b: LED sáng khi mức logic tại đầu IN1 có mức logic1, ứng với điện áp là 5V, nên giá trị điện trở R1 là:
Suy ra chọn R1 = 390. Tuy nhiên khi thiết kế mạch như hình b thì phải đảm bảo dòng tại chân vào
IN phải đáp ứng được 20mA.
Ta có các cách mắc nối LED như sau.
Có ba cách nối LED đơn, mỗi cách có những ưu nhược điểm riêng Cách 3 không thể cung cấp dòng lớn hơn 1mA từ Vi điều khiển, dẫn đến LED có thể không sáng hoặc sáng rất mờ Cách 2 gặp phải vấn đề sụt áp lớn trên LED (2V, 3V), gây tổn thất năng lượng lớn hoặc có thể làm cháy LED Trong khi đó, cách 1 là phương pháp tối ưu nhất, sử dụng điện trở hạn dòng để đảm bảo sụt áp khoảng 2V đến 2,5V trên điện trở và 0,9V trên Vi điều khiển Để bảo vệ LED, điện trở hạn dòng nên không dưới 100Ω.
Sau khi phân tích và tính toán, chúng tôi đã chọn phương án 1 Đối với modul led đơn, công suất tối đa mà mạch tiêu thụ được xác định khi 32 đèn led hoạt động đồng thời.
Với dòng trên mỗi Led là 20mA và điện áp nguồn là 5V
Hình 3.6: Sơ đồ nguyên lý LED đơn.
- Bảng lựa chọn linh kiện trong mạch :
TT Tên linh kiện Số lượng Thông số
Bảng 3.3.Linh kiện Module LED đơn.
3.4.5 Module Led 7 thanh (LED 7-SEG).
LED 7 thanh được cấu tạo từ 7 LED đơn, giúp hiển thị các thông số và đếm xung tương tự như màn hình LCD Thiết kế này cho phép hiển thị các con số một cách rõ ràng và dễ dàng, mang lại hiệu quả cao trong việc truyền đạt thông tin.
8 Như vậy ta có thể hiện các con số từ 0 đến 9, hay hiển thị một số chữ cái đơn giản.
3.4.5.2.Tính toán và thiết kế.
Để cung cấp điện áp cho 8 LED, ta cần điện áp 4V với điện áp rơi trên mỗi LED từ 1,7V đến 2V, do đó điện trở hạn dòng cho từng LED khoảng 150Ω đến 330Ω Nếu sử dụng một điện trở hạn dòng chung cho tất cả 8 LED tại đầu Anot hoặc Catot, điện trở sẽ được tính toán theo cách phù hợp.
Suy ra 8 LED có dòng tổng như sau: 8x15mA = 120mA.
Vậy giá trị điện trở đó được tính như sau:
Ta chọn loại điện trở 22 1W do dòng đi qua lớn(120÷200mA)
Tổng công suất của khối là:
Hình 3.8.Sơ đồ nguyên lý led 7 thanh.
- Bảng lựa chọn linh kiện trong mạch :
TT Tên linh kiện Số lượng Thông số
Bảng 3.5 Linh kiện modul led 7 thanh
3.4.6 Module điều khiển động cơ 1 chiều.
Module động cơ một chiều có chức năng thực hiện các yêu cầu điều khiển và điều chỉnh tốc độ động cơ điện một chiều.
3.4.6.2.Phân tích yêu cầu lựa chọn linh kiện.
Các yêu cầu của module động cơ một chiều:
- Điều khiển động cơ DC với dòng điện tải tối đa 2A khi quá tải.
- Có thể điều chỉnh tốc độ động cơ DC bằng cách tác động trên cổng P3 sử dụng công tắc 3 cực
- Điều khiển chính xác, tin cậy và ổn định.
3.4.6.3 Tính toán và thiết kế.
Trong MODULE này, chúng ta sử dụng động cơ DC công suất nhỏ, thuộc nhiều loại động cơ một chiều khác nhau Tín hiệu điều khiển được lấy từ cổng P2, sau đó được truyền qua hai con cách ly PC817 và cuối cùng được đưa đến IRF540 để điều khiển đóng ngắt động cơ.
Hình 3.9.Sơ đồ nguyên lý điều khiển động cơ DC.
Với động cơ một chiều và động cơ bước chúng em lựa chọn trong modul này thì có các thông số như sau: Điện áp điều khiển là 12VDC
Dòng điện định mức là 500mA
- Bảng lựa chọn linh kiện trong mạch :
TT Tên linh kiện Số lượng Thông số
Bảng 2.5.Linh kiện Module động cơ DC
Sơ đồ đi dây
Hình 3.5 Sơ đồ đi dây.
Sơ đồ bố trí linh kiện
Hình 3.6 Sơ đồ bố trí linh kiện.