Giáo trình Vi điều khiển: Phần 1
lượt xem 26
download
Giáo trình “Vi điều khiển” trong bộ giáo trình nghề Điện tử công nghiệp, được xây dựng và biên soạn trên cơ sở chương trình khung đào tạo nghề do Bộ Lao động – Thương binh và Xã hội ban hành và được chi tiết hóa trong chương trình đào tạo nghề Điện tử công nghiệp của Trường Cao đẳng nghề Yên Bái. Giáo trình gồm 2 phần, sau đây là phần 1.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình Vi điều khiển: Phần 1
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái LỜI NÓI ĐẦU Giáo trình “Vi điều khiển” trong bộ giáo trình nghề Điện tử công nghiệp, được xây dựng và biên soạn trên cơ sở chương trình khung đào tạo nghề do Bộ Lao động – Thương binh và Xã hội ban hành và được chi tiết hóa trong chương trình đào tạo nghề Điện tử công nghiệp của Trường Cao đẳng nghề Yên Bái. Đối tượng phục vụ là học sinh sinh viên trong các khoá đào tạo trình độ cao đẳng nghề, trung cấp nghề Điện tử công nghiệp trong các cơ sở sản xuất làm tài liệu học tập và nghiên cứu. Các nhà quản lý và người sử dụng nhân lực trong các cơ sở sản xuất làm tài liệu tham khảo. Giáo trình môn học “Vi điều khiển” được biên soạn theo các nguyên tắc: Tính định hướng thị trường lao động, tính hệ thống và khoa học, tính ổn định và linh hoạt, hướng tới liên thông, chuẩn đào tạo nghề trong nước và thế giới, tính hiện đại và sát thực với sản xuất. Trong quá trình thực hiện nhóm biên soạn đã tham khảo nhiều tài liệu liên quan của các trường bạn, sách kỹ thuật của các chuyên gia... đồng thời tham khảo nhiều tài liệu của các trường đào tạo, hãng sản xuất; các yêu cầu của thực tế, các kiến thức mới cũng đã được nhóm biên soạn cố gắng cập nhật và thể hiện trong giáo trình Ngoài ra còn có sự tham gia đóng góp ý kiến tích cực của các cán bộ, kỹ sư kỹ thuật chuyên ngành trong và ngoài tỉnh để giáo trình được hoàn thiện. Giáo trình môn học “Vi điều khiển” đã được Hội đồng thẩm định Trường Cao đẳng nghề Yên Bái nghiệm thu và nhất trí đưa vào sử dụng làm tài liệu chính thống trong nhà trường phục vụ giảng dạy và học tập của học sinh sinh viên. Giáo trình này được biên soạn lần đầu nên mặc dù đã hết sức cố gắng song khó tránh khỏi những thiếu sót, chúng tôi mong nhận được các ý kiến đóng góp của người sử dụng và các đồng nghiệp để giáo trình ngày càng được hoàn thiện hơn. Xin trân trọng giới thiệu! HIỆU TRƯỞNG Thạc sỹ: Trịnh Tiến Thanh 1
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái MỤC LỤC GIỚI THIỆU VỀ MÔ ĐUN ............................................................................. 7 Vị trí, ý nghĩa, vai trò mô đun ................................................................ 7 Mục tiêu của môdun ............................................................................... 7 Mục tiêu thực hiện của mô đun............................................................... 7 Nội dung chính của mô đun .................................................................... 7 Bài 1: Sơ lược về lịch sử và hướng phát triển ................................................. 8 1. Lịch sử phát triển ................................................................................. 8 2. Vi điều khiển ........................................................................................ 8 2.1. Nguyên lý cấu tạo ........................................................................... 9 2.2. Các kiểu cấu trúc bộ nhớ ............................................................... 10 3. Lĩnh vực ứng dụng ............................................................................. 11 4. Hướng phát triển ................................................................................ 11 Bài 2: Cấu trúc họ vi điều khiển 8051 ........................................................... 13 1. Tổng quan .......................................................................................... 13 2. Sơ đồ chân .......................................................................................... 14 2.1. Port 0 ............................................................................................ 15 2.2. Port 1 ............................................................................................ 15 2.3. Port 2 ............................................................................................ 15 2.4. Port 3 ............................................................................................ 15 2.5. Chân cho phép bộ nhớ chương trình PSEN ................................... 16 2.6. Chân cho phép chốt địa chỉ ALE ................................................... 16 2.7. Chân truy xuất bộ ROM ngoài EA ................................................ 16 2.8. Chân RESET ................................................................................ 17 2.9. Các chân XTAL1 và XTAL2 ........................................................ 17 3. Cấu trúc PORT I/O ............................................................................. 17 4. Tổ chức bộ nhớ................................................................................... 18 4.1. Vùng RAM đa năng ...................................................................... 19 4.2. Vùng RAM địa chỉ bít................................................................... 21 4.3. Các dãy thanh ghi ......................................................................... 22 2
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái 5. Các thanh ghi đặc biệt (SFR) .............................................................. 23 5.1. Từ trạng thái chương trình PSW ................................................... 23 5.2. Thanh ghi B .................................................................................. 25 5.3. Con trỏ stack ................................................................................ 26 5.4. Con trỏ dử liệu DPTR ................................................................... 26 5.6. Các thanh ghi port ........................................................................ 26 5.7. Các thanh ghi định thời ................................................................. 27 5.8. Các thanh ghi của port nối tiếp...................................................... 27 5.9. Các thanh ghi ngắt ........................................................................ 28 5.10. Thanh ghi điều khiển nguồn ........................................................ 28 6. Bộ nhớ ngoài ...................................................................................... 29 6.1. Truy xuất bộ nhớ chương trình ngoài ............................................ 30 6.2. Truy xuất bộ nhớ dử liệu ngoài ..................................................... 32 6.3. Giãi mả địa chỉ ............................................................................. 34 6.4. Các không gian nhớ chương trình và dữ liệu gối nhau ................... 34 7. Các cải tiến của 8032/8052 ................................................................. 35 8. Hoạt động RESET .............................................................................. 36 9. Bài tập ................................................................................................ 37 Bài 3: TẬP LỆNH 8051................................................................................. 39 1. Mở đầu ............................................................................................... 39 2. Các cách định địa chỉ .......................................................................... 39 2.1. Định địa chỉ bằng thanh ghi .......................................................... 39 2.2. Định địa chỉ trực tiếp .................................................................... 40 2.3. Định địa chỉ gián tiếp .................................................................... 41 2.4. Định địa chỉ tức thời ..................................................................... 42 2.5. Định địa chỉ tương đối .................................................................. 43 2.6. Định địa chỉ tuyệt đối ................................................................... 44 2.7. Định địa chỉ dài ............................................................................ 45 2.8. Định địa chỉ theo chỉ số ................................................................ 45 3. Các nhóm lệnh .................................................................................... 47 3.1. Nhóm lệnh số học ......................................................................... 47 3
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái 3.2. Nhóm lênh logic ........................................................................... 55 3.3. Nhóm lệnh truyền dữ liệu ............................................................. 66 3.4. Nhóm lênh Boolean( Các lệnh một bit) ......................................... 68 3.5 Nhóm lệnh rẽ nhánh chương trình .................................................. 78 4. Luyện tập ........................................................................................... 88 Bài 4: BỘ ĐỊNH THỜI .................................................................................. 90 1. Mở đầu ............................................................................................... 90 2. Thanh ghi SFR của timer .................................................................... 91 2.1. Thanh ghi chế độ TMOD .............................................................. 91 2.2. Thanh ghi điều khiển TCON ......................................................... 92 3. Các chế độ làm việc ............................................................................ 93 3.1. Chế độ time 13 bit (Mode 0) ......................................................... 94 3.2. Chế độ time 16 bit (Mode 1) ......................................................... 94 3.3. Chế độ tự nạp lại 8 bit ( Mode 2) .................................................. 97 3.4. Chế độ tách biệt time ( Mode 3) .................................................... 97 4. Nguồn cung cấp xung cho time ........................................................... 98 4.1. Chức năng định thời ..................................................................... 98 4.2. Chức năng đếm sự kiện ................................................................. 98 5. Khởi động, dừng, điều khiển timer ..................................................... 99 6. Khởi tạo truy xuất thanh ghi timer .................................................... 100 6.1. Đọc thời gian đang hoạt động ..................................................... 101 6.2. Thời gian ngắn và thời gian dài ................................................... 101 7. Time 2 của 8052 ............................................................................... 102 7.1. Chế độ tự động nạp lại ................................................................ 105 7.2. Chế độ thu nhận .......................................................................... 106 8. Luyện tập ......................................................................................... 107 8.1. Phương pháp ............................................................................... 107 8.2. Bài tập ........................................................................................ 107 Bài 5: CỔNG NỐI TIẾP .............................................................................. 110 1. Mở đầu ............................................................................................. 110 1.1. Khái niệm truyền dữ liệu đơn công và song công ........................ 111 4
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái 1.2. Truyền thông nối tiếp dị bộ và đóng khung dữ liệu. .................... 111 1.3. Các bít bắt đầu và dừng. ............................................................. 111 1.4. Tốc độ truyền dữ liệu .................................................................. 112 1.5. Chuẩn RS232 .............................................................................. 112 2. Thanh ghi điều khiển ........................................................................ 113 2.1. Thanh ghi SCON ........................................................................ 113 2.2. Thanh ghi SBUF ......................................................................... 115 3. Chế độ làm việc ................................................................................ 116 3.1. Thanh ghi dịch 8 bit ................................................................... 116 3.2. Chế độ UART 8 bit có tốc độ baud thay đổi ............................... 117 3.3. UART 9 bit với tốc độ baud cố định .......................................... 118 3.4. Chế độ UART với tốc độ baud cố định....................................... 118 4. Khởi tạo và truy xuất thanh ghi PORT nối tiếp ................................. 118 4.1. Cho phép nhận ............................................................................ 118 4.2. Bit dữ liệu thứ 9.......................................................................... 119 4.3. Thêm vào bit chẵn – lẻ ................................................................ 119 4.4. Các cờ ngắt ................................................................................. 120 5. Truyền thông đa xử lý ...................................................................... 120 6. Tốc độ Baud ..................................................................................... 122 6.1. Tạo tốc độ baud bằng Timer 1 ..................................................... 123 6.2. Tạo tốc độ baud bằng Timer 2 ..................................................... 125 7. Luyện tập ......................................................................................... 125 Bài 6: Ngắt (Interrupt) ................................................................................. 127 1. Mở dầu ............................................................................................. 127 2. Tổ chức ngắt của 8051 ...................................................................... 128 2.1. Cho phép và không cho phép các ngắt......................................... 128 2.2. Mức ưu tiên ................................................................................ 129 2.3. Chuỗi pooling ............................................................................. 130 3. Xử lý ngắt ........................................................................................ 130 Các vec tơ ngắt .................................................................................. 131 4. Thiết kế chương trình dùng ngắt ....................................................... 132 5
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái 4.1. Chương trình phục vụ ngắt kích thước nhỏ .................................. 133 4.2. Chương trình phục vụ ngắt kích thước lớn .................................. 134 5. Ngắt cổng nối tiếp ............................................................................ 137 6. Các ngắt ngoài .................................................................................. 139 7. Đồ thị thời gian của ngắt .................................................................. 144 8. Bài tập .............................................................................................. 146 Bài 7: Phần mềm hợp ngữ ........................................................................... 147 1. Mở đầu ............................................................................................. 147 2. Hoạt động của ASSEMBLER ........................................................... 148 3. Cấu trúc chương trình dữ liệu ........................................................... 150 4. Tính biểu thức trong khi hợp dịch ..................................................... 154 4.1. Các biểu thức và toán tử ............................................................. 154 4.2. Chuỗi kí tự ( character string) ..................................................... 154 4.3. Bộ đếm vị trí ( location counter) ................................................. 155 4.4. Các toán tử số học ( arithmetic operation) ................................... 155 4.5. Các toán tử logic ......................................................................... 155 4.6. Toán tử quan hệ ( relation operator) ............................................ 156 4.7. Các toán tử khác ......................................................................... 156 4.8. Thứ tự ưu tiên toán tử ................................................................. 156 4.9. Các chỉ dẫn cho Assembler ......................................................... 157 5. Các điều khiển của ASSEMBLER .................................................... 159 6. Hoạt động liên kết ............................................................................ 160 7. MACRO ........................................................................................... 161 7.1. Truyền tham số cho macro .......................................................... 161 7.2. Macro với nhãn cục bộ................................................................ 162 7.3. Tác vụ Repeat ( lặp lại) ............................................................... 163 7.4. Các tác vụ điều khiển .................................................................. 164 8. Luyện tập ......................................................................................... 165 8.1. Phương pháp viết chương trình hợp ngữ ..................................... 165 8.2. Luyện tập.................................................................................... 165 6
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái GIỚI THIỆU VỀ MÔ ĐUN 1. Vị trí, ý nghĩa, vai trò mô đun Đây là một mô đun chuyên ngành được học sau khi học viên đã hoàn tất các mô đun hỗ trợ trước đó như: Linh kiện điện tử, mạch điện tử, vi mạch tương tự, kỹ thuật số... Điện tử công nghiệp là một trong các lĩnh vực ứng dụng của công nghệ điện tử để điều khiển thiết bị cũng như thực hiện các yêu cầu về tự động hóa quá trình sản xuất. Trong thực tế hiện nay việc ứng dụng các bộ vi điều khiển cho các yêu cầu này rất là phổ biến do tính linh hoạt, độ ổn định và khả năng giải quyết được những vấn đề phức tạp của nó. Chính vì vậy việc nắm bắt được cấu tạo và nguyên lý hoạt động các hệ dùng vi điều khiển là đièu rất cần thiết cho công tác vận hành cũng như sửa chữa của người công nhân ngành sửa chữa thiết bị điện tử công nghiệp. 2. Mục tiêu của môdun Sau khi hoàn tất mô-đun này, học viên có năng lực: • Giải thích nguyên lý hoạt động của hệ dùng vi điều khiển. • Thay thế các khối chức năng hư hỏng trong hệ dùng vi điều khiển. • Viết các chương trình ứng dụng đơn giản. 3. Mục tiêu thực hiện của mô đun • Vận hành được các thiết bị và dây chuyền sản xuất dùng vi điều khiển. • Xác định được các nguyên nhân gây hư hỏng thường xảy ra trong thực tế. • Sửa chữa và thay thế linh kiện hư hỏng. • Kiểm tra và viết được chương trình điều khiển. 4. Nội dung chính của mô đun Mô đun vi điều khiển bao gồm 7 bài học như sau : 1.Sơ lược về lịch sử và hướng phát triển của vi điều khiển 2.Cấu trúc họ 8051 3.Tập lệnh 8051 4.Bộ định thời 5.Cổng nối tiếp 6.Ngắt 7.Phần mềm ASEMBLER 7
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái Bài 1: Sơ lược về lịch sử và hướng phát triển 1. Lịch sử phát triển Việc phát minh ra transistor vào năm 1948 là thời điểm bắt đầu cho quá trình phát triển của máy tính với tính năng ngày càng cao và kích thước ngày càng nhỏ. Linh kiện hội đủ 2 ưu điểm trên chính là vi xử lý. Máy tính điện tử đầu tiên của mỹ năm 1946 tên gọi ENIAC đã sử dụng 18.000 bóng đèn điện tử và sau đó năm 1960 được IBM thay thế bằng model 1410 với toàn bộ linh kiện là transistor. Vì chức năng phức tạp nên việc lắp ráp hệ thống cũng rất khó khăn và tốn kém, do đó đã phát sinh ý tưởng phải tìm cách thu nhỏ kích thước của các linh kiện rời như: Transistor, diode, điện trở...và kết quả là sự ra đời của công nghệ vi mạch. Theo yêu cầu của các chuyên viên về tên lửa của cơ quan NASA luôn đòi hỏi tính ổn định và kích thước thật nhỏ nên vào năm 1958 Jack Kilby của hãng Texas instrument đã thiết kế được vi mạch đầu tiên và năm 1963 công ty Rockwell đã cho ra đời tên lửa Minerva II được chế tạo toàn bộ bằng vi mạch. Trong lĩnh vực dân sự vào năm 1961 công ty Fairchild lần đầu tiên giới thiệu một FF không dùng 2 hoặc 4 transistor rời mà được tích hợp trong một vi mạch đơn tinh thể. Các thế hệ vi mạch đầu tiên chỉ được sản xuất theo công nghệ lưỡng cực, trong trường hợp cần nhiều lớp khuếch tán, nhiều lỗ tiếp xúc và đường dẫn...giá thành có thể lên đến 10 - 20 đô la một mạch. Nhờ kỹ thuật MOS mật độ tích hợp được tăng cao hơn hẳn kỹ thuật lưỡng cực. Hướng phát triển tiếp theo sau đó là công nghệ CMOS bao gồm 2 transistor trường bổ túc làm giảm công suất tiêu thụ vì tại cùng một thời điểm luôn có 1 transistor bị khóa. Với yêu cầu ngày càng phức tạp và đa dạng làm cho việc sản xuất vi mạch với số lượng lớn cũng khó khăn, điều này dẫn đến một suy nghĩ mới về một vi mạch có khả năng lập trình, các vi mạch này có cấu tạo giống nhau và chức năng sẽ thay đổi sau khi lập trình bằng phương pháp làm chảy các đường dẫn điện. Không bao lâu vào năm 1974 hãng INTEL đã sản xuất được chip vi xử lý đầu tiên lập trình theo yêu cầu của khách hàng mở đầu cho kỹ nguyên vi xử lý cũng còn được gọi là cuộc cách mạng công nghiệp lần thứ II. 2. Vi điều khiển Một vi xử lý chỉ giao tiếp được với bên ngoài thông qua các khối vào - ra và để lưu trữ dữ liệu lại phải cần đến bộ nhớ. Dữ liệu nhận vào được xử lý bởi chương trình và sau đó kết quả cũng như các tín hiệu điều khiển sẽ được đưa đến khối ra. Đầu tiên ba khối chức năng này được kết hợp với nhau: Đơn vị xử lý trung tâm, khối vào-ra và bộ nhớ để tạo thành micro computer, bus hệ thống có nhiệm vụ kết nối các khối kể trên với nhau. Do yêu cầu giảm nhỏ kích thước và giá thành sản xuất, người ta đã tích hợp các khối chức năng của micro computer trong cùng một linh kiện và được đặt tên là vi điều khiển (microcontroller). 8
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái 2.1. Nguyên lý cấu tạo Điểm cần lưu ý về vi điều khiển là sơ đồ khối cấu tạo của nó. Cấu tạo một họ microcontroller chủ yếu dựa trên một kiểu tiêu chuẩn bao gồm các tính năng quan trọng nhất, nhiều chủng loại phù hợp với các lĩnh vực ứng dụng đặc biệt khác nhau, có thể kết hợp thêm thiết bị ngoại vi để tăng khả năng hoặc giảm nhỏ kích thước đến mức tối thiểu trong các ứng dụng chuyên biệt như: Kết nối bus, kết nối video hoặc điều khiển trực tiếp các cơ cấu hiển thị LCD...Với kiểu tiêu chuẩn cũng đủ dùng cho hầu hết các ứng dụng. Hình 1.1 Cấu trúc máy tính Hình 1.2 Cấu trúc vi điều khiển 9
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái Hình 1.3 Sơ đồ khối vi điều khiển 2.2. Các kiểu cấu trúc bộ nhớ Các bộ vi xử lý và vi điều khiển hiện nay chủ yếu được chế tạo theo 2 kiểu cấu trúc khác nhau: Cấu trúc Von Neumann và Harvard. 2.2.1. Cấu trúc Von Neumann Trong cấu trúc Von Neumann chỉ có một vùng địa chỉ tuyến tính bao gồm tất cả dữ liệu và lệnh điều khiển, độ lớn của vùng địa chỉ phụ thuộc vào chiều dài của bộ đếm chương trình, nếu không trang bị thêm linh kiện phụ thì việc định địa chỉ bộ nhớ chương trình và bộ nhớ dữ liệu không độc lập với nhau. Trong cấu trúc này chỉ tồn tại một bus dữ liệu và một bus địa chỉ để đọc-ghi dữ liệu và đọc lệnh điều khiển chương trình và không có khả năng thực. Trình hiện song song (truy xuất đồng thời bộ nhớ dữ liệu và bộ nhớ chương). Hình 1.4 Cấu trúc Von Neumann 10
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái 2.2.2. Cấu trúc Harvard Gồm hai vùng địa chỉ riêng biệt cho bộ nhớ dữ liệu và bộ nhớ chương trình nên có thể truy xuất song song dữ liệu và lệnh điều khiển, cấu trúc này đặc biệt thích hợp với các vi điều khiển 16 và 32 bít vì làm tăng tốc độ làm việc. Nếu chỉ có một hệ thống bus như thường thấy ở vi điều khiển 8 bít thì việc truy xuất bộ nhớ dữ liệu hoặc bộ nhớ chương trình sẽ được thực hiện thông qua các tín hiệu điều khiển, nếu không có yêu cầu ghi vào bộ nhớ chương trình thì cấu trúc này còn cho phép tăng tính an toàn của chương trình. Hình 1.5 Cấu trúc harvard 3. Lĩnh vực ứng dụng Vi điều khiển hiện nay được ứng dụng trong nhiều lĩnh vực như: TV, thiết bị HiFi, máy giặt, điện thoại và trong ô tô...góp phần làm đơn giản hóa quá trình xử dụng với nhiều tính năng và độ an toàn cao hơn. Ngoài ra vi điều khiển còn được áp dụng trong lĩnh vực khoa học kỹ thuật như: Các thiết bị phân tích và đo lường trong công nghiệp như các dây chuyền sản xuất tự động, trong lĩnh vực máy công cụ như CNC và điều khiển chất lượng sản phẩm. 4. Hướng phát triển Yêu cầu đặt ra cho vi điều khiển hiện nay là tăng lĩnh vực ứng dụng với tốc độ xử lý ngày càng nhanh và kích thước nhỏ gọn, công suất tiêu thụ thấp. Vấn đề đặt ra là liệu với vi điều khiển 8 bít có còn phù hợp hay không ? hoặc trong tương lai phải thay bằng các vi điều khiển 16/32 bít. Khác với vi xử lý việc phát triển luôn kèm theo việc nâng cao khả năng tính toán bằng cách mở rộng hệ thống bus. Đối với vi điều khiển không nhất thiết phải như thế, một vi điều khiển 8 bít cũng đủ cho rất nhiều ứng dụng và vi điều khiển 16 bít là hoàn toàn quá dư thừa, trong trường hợp cần giảm giá thành, kích thước và công suất tiêu thụ thì vi điều khiển 4 bít là giải pháp tối ưu. Một vài ứng dụng cần vi điều khiển có nhiều khối ngoại vi, có ứng dụng lại cần ngoại vi tốc độ cao, hướng phát triển tương lai là tăng khả năng của CPU và khối ngoại vi. 11
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái Một hướng đơn giản là tăng tần số xung đồng hồ để rút ngắn thời gian thực hiện chương trình, giảm thời gian biến đổi A/D và tăng tần số giới hạn của timer. Tuy nhiên các linh kiện bên ngoài cũng phải có khả năng làm việc ở tần số cao, khi tăng tần số đồng cũng làm tăng công suất tiêu thụ của vi điều khiển. Việc tối ưu hóa cấu trúc chương trình và bộ nhớ cũng góp phần nâng cao khả năng hệ thống. Trong các ứng dụng đa nhiệm, phương pháp phân đoạn và phân dãy hóa có một ý nghĩa rất lớn. Với công nghệ sản xuất mới có thể đồng thời tăng tần số làm việc và giảm công suất tiêu thụ và cả điện áp nuôi điều này sẽ mở ra các lĩnh vực ứng dụng mới trong đó mạch điện rất đơn giản và năng lượng tiêu thụ rất thấp, bằng cách thay đổi cú pháp tập lệnh thích hợp cho phép biên dịch dể dàng từ các ngôn ngữ cấp cao như “C” hoặc “C#” sang mã lệnh của vi điều khiển. Hình 1.6 Lĩnh vực ứng dụng Hình 1.7 Hướng phát triển vi điều khiển 12
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái Bài 2: Cấu trúc họ vi điều khiển 8051 1. Tổng quan MCS-51 là họ vi điều khiển của Intel. Các nhà sản xuất IC khác như Siemens, Advanced Micro Device, Fujitsu và Philips được cấp phép là các nhà cung cấp thứ hai cho các vi mạch họ MCS-51. Vi mạch tổng quát của họ MCS- 51 là chip 8051, linh kiện đầu tiên của họ này được đưa ra thị trường. Chip 8051 có các đặc điểm được tóm tắt như sau: - 4 Kbyte ROM nội - 128 byte RAM nội - 4 port I/O 8 bít - 2 bộ định thời 16 bít (timer) - Cổng giao tiếp nối tiếp - Không gian chương trình ngoài 64 K - Không gian nhớ dữ liệu ngoài 64 K - Có khả năng xử lý bít - 210 địa chỉ bít - Nhân/ chia trong 4 μS Hình 2.1 Sơ đồ khối 8051 Các thành viên khác của họ MCS-51 có dung lượng ROM (EPROM), RAM trên chip khác nhau hoặc có thêm bộ định thời thứ ba (bảng 2.1) 13
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái BẢNG 2.1 Các chip họ MCS-51 Chip ROM nội (Kbyte) RAM nội (byte) Số timer 8031 0 128 2 8051 4 ROM 128 2 8751 4 EPROM 128 2 8032 0 256 3 8052 8 ROM 256 3 8752 8 EPROM 256 3 Thuật ngữ “8051” được dùng để chỉ chung cho các chip họ MCS-51 với các chip cải tiến từ 8051 sẻ được đề cập đến một cách rõ ràng khi cần thiết, cấu trúc cơ bản được trình bày trong sơ đồ khối hình 2.1. Hình 2.2 Sơ đồ chân của 8051 2. Sơ đồ chân Chức năng từng chân của 8051 được mô tả tóm tắt như sau: Như trong hình 2.2 32 trong số 40 chân của 8051 có công dụng xuất/ nhập. Tuy nhiên 24 trong 32 chân này có hai chức năng (26/32 đối với 8032 và 8052). Mỗi một chân ngoài chức năng xuất nhập còn có thể hoạt động như một đường điều khiển, đường dữ liệu hoặc đường địa chỉ 32 chân nói trên hình thành 4 port 8 bít, với các thiết kế yêu cầu tối thiểu các thành phần bên ngoài 14
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái có thể sử dụng các port này làm nhiệm vụ xuất/ nhập 8 đường cho mỗi port có thể được xử lý như một đơn vị giao tiếp với các thiết bị song song như máy in, bộ biến đổi D-A.......hoặc mỗi đường có thể hoạt động độc lập giao tiếp với một thiết bị đơn bít như chuyển mạch, LED, BJT, FET, cuộn dây, động cơ, loa... 2.1. Port 0 Port gồm các chân từ 32 đến 39 đối với 8051 có 2 công dụng. Trong các thiết kế cần tối thiểu hóa thành phần, port 0 được sử dụng làm nhiệm vụ xuất/nhập. Trong các thiết kế lớn hơn có bộ nhớ ngoài, port 0 trở thành bus địa chỉ/dữ liệu đa hợp (byte thấp địa chỉ). 2.2. Port 1 Port 1 chỉ có một công dụng là xuất/nhập (các chân 1…8 trên 8051). Các chân của port 1 được ký hiệu là P1.0, P1.1...P1.7 và được dùng để giao tiếp với thiết bị bên ngoài khi có yêu cầu. Không có chức năng nào khác nữa gán cho các chân của port 1, nghĩa là chúng chỉ được sử dụng để giao tiếp với các thiết bị ngoại vi ngoại lệ với 8032, 8052 có thể dùng P1.0 và P1.1 làm ngõ vào cho mạch định thời thứ ba. 2.3. Port 2 Port 2 gồm các chân từ 21…28 trên 8051 có hai công dụng hoặc làm nhiệm vụ xuất/nhập hoặc là byte địa chỉ cao của bus địa chỉ 16 bít cho các thiết kế có bộ nhớ chương trình ngoài hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài. 2.4. Port 3 Port 3 gồm các chân từ 10…17 trên 8051 có hai công dụng, ngoài chức năng xuất/nhập các chân của port 3 còn có chức năng riêng như trình bày trong bảng 2.2. Bảng 2.2: Chức năng các chân PORT 3 và PORT 1 Bít Tên Địa chỉ bít Chức năng P3.0 RxD B0H Nhận dữ liệu port nối tiếp P3.1 TxD B1H Phát dữ liệu port nối tiếp P3.2 INT0 B2H Ngõ vào ngắt 0 ngoài P3.3 INT1 B3H Ngõ vào ngắt 1 ngoài P3,4 T0 B4H Ngõ vào timer 0 15
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái P3,5 T1 B5H Ngõ vào timer 1 P3.6 WR B6H Ghi RAM ngoài P3.7 RD B7H Đọc RAM ngoài P1.0 T2 90H Ngõ vào timer 2 P1.1 T2EX 91H Nạp/nhận timer 2 2.5. Chân cho phép bộ nhớ chương trình PSEN 8051 cung cấp 4 tín hiệu điều khiển bus. Tín hiệu cho phép bộ nhớ chương trình PSEN (program store enable) là tín hiệu xuất trên chân 29, đây là tín hiệu điều khiển cho phép truy xuất bộ nhớ chương trình ngoài, chân này thường nối với chân cho phép xuất OE (output enable) của EPROM hoặc ROM để cho phép đọc các byte mã lệnh. Tín hiệu PSEN ở logic 0 trong suốt thời gian tìm nạp lệnh, các mã nhị phân của chương trình được đọc từ EPROM qua bus dử liệu và được chốt vào thanh ghi lệnh IR của 8051 để được giải mã. Khi thực hiện một chương trình chứa trong ROM nội, PSEN được duy trì ở mức logic 1. 2.6. Chân cho phép chốt địa chỉ ALE Đây là tín hiệu ra cho phép chốt địa chỉ ALE (address latch enable) để giãi đa hợp bus địa chỉ/dữ liệu khi port 0 được dùng làm bus đa hợp địa chỉ/dữ liệu, chân ALE xuất tín hiệu để chốt địa chỉ (byte thấp của địa chỉ 16 bít) vào một thanh ghi ngoài trong suốt nửa đầu của chu kỳ bộ nhớ. Sau khi thực hiện xong các chân của port 0 sẽ xuất/nhập dữ liệu hợp lệ trong nửa thứ hai của chu kỳ bộ nhớ. Tín hiệu ALE có tần số bằng 1/6 tần số của mạch dao động bên trong chip 8051 và có thể được dùng làm xung đồng hồ cho phần còn lại của hệ thống. Nếu mạch dao động có tần số 12 MHz thì tần số ALE là 2 MHz. Ngoại lệ duy nhất là trong thời gian thực hiện lệnh MOVX, một xung ALE sẽ bị bỏ qua (hình 2.10). Chân ALE còn được dùng để nhận xung ngõ vào lập trình cho EPROM trên chip. 2.7. Chân truy xuất bộ ROM ngoài EA Đây là ngõ vào (chân 31) có thể được nối với 5V (logic 1) hoặc với GND (logic 0). Nếu chân này nối lên 5V 8051 và 8052 sẽ thực hiện chương trình chứa trong ROM nội (chương trình nhỏ hơn 4K/8K). Nếu chân này nối với GND và chân PSEN cũng ở logic 0 thì chương trình thực hiện được chứa ở ROM ngoài. Đối với 8031/8032 chân EA phải ở logic 0 vì chúng không có bộ nhớ chương trình trên chip. Nếu chân EA ở logic 0 đối với 8051/8052 ROM nội bên trong chip được vô hiệu hóa và chương trình cần thực hiện chứa ở ROM ngoài. Các phiên bản EPROM của 8051 còn xử dụng chân EA làm chân nhận điện áp cấp 16
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái điện 21V (VPP) cho việc lập trình EPROM nội. 2.8. Chân RESET Ngõ vào RST (chân 9) là ngõ vào xóa của 8051 dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay thường gọi là reset hệ thống. Khi ngõ vào này được treo ở logic 1 ít nhất 2 chu kỳ máy, các thanh ghi bên trong của 8051 được nạp các gía trị thích hợp cho việc khởi động lại hệ thống. 2.9. Các chân XTAL1 và XTAL2 Như trên hình 2.2 mạch dao động bên trong chip 8051 được ghép với thạch anh bên ngoài ở hai chân XTAL1 và XTAL2 (chân 18 và 19). Tần số danh định là 12 MHz cho hầu hết các chip của họ MCS-51, trong hình 2.3 cho thấy một nguồn xung clock TTL có thể được nối vào các chân XTAL1 và XTAL2. 8051 XTAL1 Dao động TTL 7404 XTAL2 Hình 2.3. 8051 với mạch dao động bên ngoài 3. Cấu trúc PORT I/O Sơ đồ mạch bên trong các chân của port xuất/nhập được vẽ đơn giản như ở hình 2.4. Việc ghi đến một chân của port sẽ nạp dữ liệu vào bộ chốt của port, ngõ ra Q của bộ chốt điều khiển một transistor trường và transistor này nối đến chân của port. Khả năng fan-out của các port 1, 2 và 3 là 4 tải TTL loại LS còn của port 0 là 8 tải LS. Lưu ý là điện trở kéo lên sẽ không có ở port 0 trừ khi port này làm nhiệm vụ bus đa hợp địa chỉ/dữ liệu vì vậy một điện trở kéo lên bên ngoài phải được cần đến, giá trị điện trở này phụ thuộc vào đặc tính ngõ vào của thành phần ghép nối với chân của port. 17
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái Bus nội V cc Đọc chốt Đọc chân Chân port Chốt port Ghi vào chốt Ngõ ra open drain đối với port 0 ở chế độ I/O Hình 2.4 Sơ đồ port I/O Cấu trúc port cho thấy có hai khả năng: Đọc bộ chốt và đọc tại chân của port. Các lệnh yêu cầu thao tác đọc-sửa-ghi VD: CPL P1.5 sẽ đọc bộ chốt để tránh sự hiểu lầm mức điện áp do nguyên nhân dòng tải tăng. Các lệnh nhập một bít của port VD: MOV C,P1.5 sẻ đọc tại chân port. Trong trường hợp này bộ chốt của port phải chứa 1 nếu không FET sẽ được kích bảo hòa và điều này kéo ngõ ra xuống mức thấp. Việc reset hệ thống sẽ set tất cả các bộ chốt port. Do đó các chân port có thể được dùng làm các ngõ nhập mà không cần phải set các bộ chốt. Tuy nhiên, nếu một bộ chốt bị xóa VD: CLR P1.5 thì chân port không thể làm nhiệm vụ tiếp theo là ngõ nhập trừ khi trước đó phải set bộ chốt SETB P1.5 Hình 2.4 không trình bày mạch cho các chức năng khác của các port 0, 2 và 3. Khi các chức năng khác được xử dụng, các mạch kích ngõ ra được chuyển đến một địa chỉ nội (port 2), địa chỉ/dữ liệu (port 0) hoặc tín hiệu điều khiển (port 3) tương ứng. 4. Tổ chức bộ nhớ Hầu hết các bộ vi xử lý đều có không gian nhớ chung cho dữ liệu và chương trình. Điều này cũng hợp lý vì các chương trình thường được lưu trên đĩa và được nạp vào RAM để thực hiện, vậy thì cả hai dữ liệu và chương trình đều lưu trú trên RAM. Các chip vi điều khiển hiếm khi được xử dụng giống như các vi xử lý trong máy tính thay vào đó chúng được dùng làm thành phần trung tâm trong các thiết kế hướng điều khiển. Trong đó bộ nhớ có dung lượng giới hạn không có ổ đĩa và hệ điều hành. Chương trình điều khiển phải thường trú trong ROM. Do lý do trên 8051 có không gian bộ nhớ riêng cho chương trình và dữ liệu. Như đã thấy trong bảng 2.1 cả 2 bộ nhớ chương trình và dữ liệu đều đặt bên trong chip, tuy nhiên có thể mở rộng bộ nhớ chương trình và dữ liệu bằng cách dùng thêm các chip nhớ bên ngoài với dung lượng tối đa là 64K cho bộ nhớ chương trình và 64K cho bộ nhớ dữ liệu. Bộ nhớ nội trong chip bao gồm ROM (chỉ có trong 8051/8052) và RAM. RAM trên chíp bao gồm vùng RAM đa chức năng, vùng RAM địa chỉ bít, các dãy thanh ghi và các thanh ghi chức 18
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái năng đặc biệt SFR (special funtion registers) hai đặc tính đáng lưu ý là: a. Các thanh ghi và các port xuất/nhập được định địa chỉ theo kiểu ánh xạ bộ nhớ và được truy xuất như một vị trí nhớ trong bộ nhớ. b. Vùng ngăn xếp thường trú trong RAM trên chíp thay vì trong RAM ngoài như đối với các bộ vi xử lý. Hình 2.5 tóm tắt các không gian nhớ của chíp 8031 không có ROM nội, không trình bày chi tiết về bộ nhớ dữ liệu trên chíp. Hình 2.6 trình bày chi tiết bộ nhớ dữ liệu trên chip, không gian nhớ nội này được chia thành: Các dãy thanh ghi (00H..1FH) vùng RAM địa chỉ bít (20H..2FH), vùng RAM đa năng (30H..7FH) và các thanh ghi chức năng đặc biệt (80H..FFH). Bộ nhớ Bộ nhớ chương trình dữ liêu Cho phép Cho phép FF bởi bởi 00 và RAM nội Bộ nhớ ngoài Hình 2.5 Tổ chức bộ nhớ của 8031 4.1. Vùng RAM đa năng Vùng nhớ Ram đa dụng gồm có 80 byte có địa chỉ từ 30H đến 7FH vùng nhớ này không có gì đặc biệt so với hai vùng nhớ trên. Vùng nhớ bank thanh ghi 32 byte từ 00H đến 1 FH cũng có thể dùng làm vùng nhớ ram đa dụng mặc dù các ô nhớ này có chức năng như đã trình bầy. Mọi địa chỉ vùng Ram đa dụng đều có thể truy xuất tự do dùng kiểu địa chỉ trực tiếp hoặc gián tiếp. Bộ nhớ ngăn xếp của vi điều khiển dùng bộ nhớ Ram nội nên dung lượng của bộ nhớ ngăn xếp nhỏ trong khi đó các bộ vi xử lý dùng bộ nhớ ngoài làm bộ nhớ ngăn xếp nên dung lượng tùy ý mở rộng. Mặc dù hình 2.6 trình bày vùng RAM đa năng có 80 byte đặt ở địa chỉ từ 30H đến 7FH, bên dưới vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có thể 19
- GT: Vi điều khiển Trường Cao đẳng nghề Yên Bái được xử dụng tương tự (mặc dù vùng này có công dụng khác). Bất kỳ vị trí nhớ nào trong vùng RAM đa năng đều có thể được truy xuất tự do bằng cách xử dụng cách định địa chỉ trực tiếp hoặc gián tiếp. Ví dụ để đọc nội dung tại 5FH của RAM nội vào thanh ghi A có thể dùng lệnh sau MOV A, 5FH Lệnh trên di chuyển một byte dữ liệu bằng cách dùng kiểu định địa chỉ trực tiếp để xác định vị trí nguồn (nghĩa là địa chỉ 5FH). Đích của dữ liệu được xác định rõ ràng trong mã lệnh là thanh ghi A. Vùng RAM đa năng còn có thể được truy xuất bằng cách dùng kiểu định địa chỉ gián tiếp qua các thanh ghi R0, R1. Ví dụ hai lệnh sau thực hiện cùng công việc như ở ví dụ trên. MOV R0,#5FH MOV A,@R0 Lệnh đầu tiên xử dụng kiểu định địa chỉ tức thời di chuyển giá trị 5FH vào thanh ghi R0, lệnh tiếp theo xử dụng cách định địa chỉ gián tiếp di chuyển dữ liệu trỏ bởi R0 vào thanh ghi A 7F FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 - D0 PSW Vùng RAM đa năng 30 B8 - - - BC BB BA B9 B8 IP 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 2D 6F 6E 6D 6C 6B 6A 69 68 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 2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 99 Địa chỉ byte SBUF 27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
GIÁO TRÌNH VI ĐIỀU KHIỂN part 1
20 p | 633 | 215
-
Giáo trình Vi xử lý: Phần 1 - CĐ Giao thông Vận tải
171 p | 65 | 13
-
Giáo trình Vi điều khiển PIC: Lý thuyết - Thực hành (Phần 1)
201 p | 35 | 12
-
Giáo trình Vi điều khiển PIC: Lý thuyết - Thực hành (Phần 2)
168 p | 15 | 11
-
Giáo trình Vi điều khiển: Phần 1 - Lâm Quang Chuyên
70 p | 48 | 9
-
Giáo trình Vi điều khiển PIC: Phần 2
262 p | 19 | 9
-
Giáo trình Vi điều khiển PIC16F và ngôn ngữ lập trình Hi-Tech C: Phần 2 (Năm 2014)
84 p | 19 | 8
-
Giáo trình Vi điều khiển PIC: Phần 1
119 p | 23 | 8
-
Giáo trình Vi điều khiển: Phần 2 - Lâm Quang Chuyên
56 p | 39 | 7
-
Giáo trình Vi điều khiển PIC16F và ngôn ngữ lập trình Hi-Tech C: Phần 1 (Năm 2014)
78 p | 20 | 7
-
Giáo trình Vi điều khiển PIC16F và ngôn ngữ lập trình Hi-Tech C: Phần 1
78 p | 16 | 6
-
Giáo trình Vi điều khiển (Nghề: Điện tử công nghiệp - CĐ/TC): Phần 1 - Trường Cao đẳng Nghề Đồng Tháp
102 p | 21 | 6
-
Giáo trình Vi điều khiển PIC16F và ngôn ngữ lập trình Hi-Tech C: Phần 2
87 p | 16 | 5
-
Giáo trình Vi điều khiển (Nghề: Cơ điện tử - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội
82 p | 36 | 5
-
Giáo trình Vi điều khiển (Nghề: Điện tử công nghiệp - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội
107 p | 39 | 4
-
Giáo trình Vi điều khiển cơ bản (Nghề: Điện tử công nghiệp - Trung cấp) - Trường Trung cấp nghề Đông Sài Gòn
120 p | 9 | 4
-
Giáo trình Vi điều khiển - Trường CĐ nghề Số 20
130 p | 8 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn