Giáo trình vi xử lý spkt

Giáo trình vi xử lý spkt

686
lượt xem
289
download

Giáo trình vi xử lý spkt
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giáo trình vi xử lý spkt

Nội dung Text: Giáo trình kỹ thuật vi điều khiển - ĐH SPKT Hưng Yên

  1. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển Giáo trình Kỹ thuật Vi Điều Khiển MỤC LỤC Trang LỜI GIỚI THIỆU 5 Chương 1: KIẾN TRÚC HỆ VI XỬ LÝ (VXL). 1.1. Đơn vị xử lý trung tâm (CPU). 6 1.2. Quá trình tìm nạp lệnh và thực thi lệnh của CPU. 7 1.3. Bộ nhớ trung tâm của hệ VXL. 8 1.3.1. Bộ nhớ chỉ đọc. 8 1.3.2. Bộ nhớ truy cập ngẫu nhiên. 9 1.4. Các thiết bị xuất/nhập. 9 1.5. Cấu trúc kênh chung của hệ VXL. 9 Bạch Hưng Trường 1 24-10- 2003
  2. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển Chương 2. BỘ VI ĐIỀU KHIỂN AT89C51 (80C51). 2.1. Giới thiệu chung 2.2. Sự khác nhau giữa bộ VXL và bộ Vi điều khiển (VĐK). 11 2.3. Sơ đồ khối. 13 2.4. Sơ đồ chân tín hiệu của 80C51/AT89C51. 15 2.5. Chức năng các thành phần của AT89C51. 17 2.5.1. Các thanh ghi chức năng đặc biệt. 17 2.5.1.1. Thanh ghi ACC. 19 2.5.1.2. Thanh ghi B. 19 2.5.1.3. Thanh ghi SP. 19 2.5.1.4. Thanh ghi DPTR . 20 2.5.1.5. Các cổng vào/ ra dữ liệu (Ports 0 to 3). 20 2.5.1.6. Thanh ghi SBUF. 20 2.5.1.7. Các Thanh ghi Timer. 20 2.5.1.8. Các thanh ghi điều khiển. 20 2.5.1.9. Thanh ghi PSW. 20 2.5.1.10. Thanh ghi PCON. 21 2.5.1.11. Thanh ghi IE. 22 2.5.1.12. Thanh ghi IP. 22 2.5.1.13. Thanh ghi TCON. 23 2.5.1.14. Thanh ghi TMOD. 23 2.5.1.15. Thanh ghi SCON. 24 2.5.2. Khối tạo thời gian và bộ đếm (Timer/Counter). 25 2.5.3. Bộ nhớ chương trình và bộ nhớ dữ liệu nội trú. 28 2.5.3.1. Bộ nhớ chương trình nội trú. 29 2.5.3.2. Bộ nhớ dữ liệu nội trú. 30 2.5.3.2.1. Vùng nhớ 128 Byte thấp. 30 2.5.3.2.2. Vùng nhớ dành cho SFR. 31 2.5.3.2.3. Các lệnh truy cập bộ nhớ dữ liệu nội trú. 31 Bạch Hưng Trường 2 24-10- 2003
  3. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển 2.5.4. Bộ nhớ chương trình và bộ nhớ dữ liệu ngoại trú. 34 2.5.4.1. Bộ nhớ chương trình ngoại trú. 34 2.5.4.2. Bộ nhớ dữ liệu ngoại trú. 35 2.5.5. Cơ chế ngắt trong On-chip AT89C51. 38 2.5.5.1. Phân loại ngắt trong On-chip. 38 2.5.5.2. Các bước thực hiện ngắt. 39 2.5.5.3. Mức ngắt ưu tiên trong on-chip. 40 2.5.5.4. Nguyên lý điều khiển ngắt của AT89. 40 2.5.5.4.1.Các ngắt ngoài. 42 2.5.5.4.2. Vận hành Single-Step. 42 2.5.6. Nguyên lý truyền tin nối tiếp của AT89C51. 43 2.5.6.1. Phương thức truyền tin nối tiếp. 43 2.5.6.2. Liên lạc đa xử lý . 44 2.5.6.3. Các tốc độ Baud. 45 2.5.6.4. Sử dụng Timer 1 để tạo ra các tốc độ Baud . 45 2.5.6.5. Hoạt động của chế độ 0. 46 2.5.6.6. Hoạt động của chế độ 1. 48 2.5.6.7. Hoạt động của chế độ 2 và 3. 50 2.5.7. Nguyên lý khởi động của On-chip AT89C51. 54 2.5.8. Mạch dao động. 57 2.5.9. Chế độ nguồn giảm và chế độ nghỉ. 58 2.5.11. Bảo vệ chương trình. 59 Chương 3: TẬP LỆNH CỦA HỌ VĐK AT89/80C51. 3.1. Nhóm lệnh di chuyển dữ liệu. 61 3.1.1. Lệnh MOV dạng Byte. 61 3.1.2. Lệnh MOV dạng Bit. 62 Bạch Hưng Trường 3 24-10- 2003
  4. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển 3.1.3. Lệnh MOV dạng Word. 62 3.1.4. Lệnh chuyển byte mã lệnh. 63 3.1.5. Lệnh chuyển dữ liệu ra ngoài. 63 3.1.6. Lệnh chuyển số liệu vào ngăn xếp. 64 3.1.7. Lệnh chuyển số liệu ra khỏi ngăn xếp . 64 3.1.8. Hoán chuyển dữ liệu. 64 3.1.9. Hoán chuyển 4 bit thấp. 64 3.2. Nhóm lệnh tính toán số học. 65 3.2.1. Lệnh thực hiện phép cộng. 65 3.2.2. Lệnh cộng có nhớ. 65 3.2.3. Lệnh trừ có mượn. 66 3.2.4. Lệnh tăng lên 1 đơn vị. 66 3.2.5. Lệnh giảm 1 đơn vị. 67 3.2.6. Lệnh tăng con trỏ dữ liệu . 67 3.2.7. Lệnh thực hiện phép nhân. 68 3.2.8. Lệnh thực hiện phép chia . 68 3.2.9. Hiệu chỉnh số thập phân. 68 3.3. Nhóm lệnh tính toán logic. 69 3.3.1. Lệnh AND cho các biến 1 byte. 69 3.3.2. Lệnh AND cho các biến 1 bit. 69 3.3.3. Lệnh OR cho các biến 1 byte. 70 3.3.4. Lệnh OR cho các biến 1 bit. 70 3.3.5. Lệnh X-OR cho các biến 1 byte. 71 3.3.6. Lệnh dịch trái thanh ghi A. 71 3.3.7. Lệnh dịch trái thanh ghi A cùng với cờ nhớ. 71 3.3.8. Lệnh dịch phải thanh ghi A. 72 3.3.9. Lệnh dịch phảii thanh ghi A cùng với cờ nhớ. 72 Bạch Hưng Trường 4 24-10- 2003
  5. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển 3.3.10. Lệnh tráo đổi nội dung hai nửa byte của A. 72 3.4. Nhóm lệnh rẽ nhánh chương trình. 73 3.4.1. Lệnh gọi tuyệt đối . 73 3.4.2. Lệnh gọi dài. 73 3.4.3. Lệnh quay trở lại từ chương trình con. 74 3.4.4. Lệnh quay trở lại từ ngắt. 74 3.4.5. Lệnh nhảy gián tiếp. 75 3.4.6. Lệnh nhảy nếu 1 bit được thiết lập. 75 3.4.7. Lệnh nhảy nếu 1 bit không được thiết lập. 75 3.4.8. Lệnh nhảy nếu 1 bit được thiết lập và xoá bit đó. 76 3.4.9. Lệnh nhảy nếu cờ nhớ được thiết lập. 76 3.4.10. Lệnh nhảy nếu cờ nhớ không được thiết lập. 77 3.4.11. Lệnh nhảy nếu thanh ghi A bằng 0. 77 3.4.12. Lệnh nhảy nếu thanh ghi A khác 0. 77 3.4.13. Lệnh nhảy khi so sánh 2 toán hạng. 78 3.4.14. Lệnh giảm và nhảy. 79 3.4.15. Lệnh tạm ngừng hoạt động. 79 3.5. Nhóm lệnh điều khiển biến logic. 80 3.5.1. Lệnh xoá bit. 80 3.5.2. Lệnh xoá thanh ghi tích luỹ. 80 3.5.3. Lệnh thiết lập bit. 80 3.5.4. Lệnh lấy bù của bit. 81 3.5.5. Lệnh lấy bù của thanh ghi tích luỹ. 81 Phụ lục A : TRA CỨU NHANH TẬP LỆNH Bảng 1. Các lệnh toán học của bộ VĐK họ ATMEL. 82 Bạch Hưng Trường 5 24-10- 2003
  6. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển Bảng 2. Các lệnh chuyển đổi dữ liệu để truy cập vùng nhớ dữ liệu trong . 82 Bảng 3. Các lệnh số học. 83 Bảng 4. Các lệnh đại số. 84 Bảng 5. Các lệnh chuyển đổi dữ liệu để truy cập RAM ngoài. 84 Bảng 6. Các lệnh chuyển Byte mã lệnh. 85 Bảng 7. Các lệnh nhảy không điều kiện trong Flash Microcontrollers. 85 Bảng 8. Các lệnh nhảy có điều kiện. 85 Phụ lục B : CÁC HỆ THỐNG SỐ 1. Bảng chuyển đổi hệ thập phân/nhị phân 86 2. Bảng mã thập lục phân 87 3. Hệ thống số có dấu 88 TÀI LIỆU THAM KHẢO.………………………………………………… 89 Bạch Hưng Trường 6 24-10- 2003
  7. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển LỜI GIỚI THIỆU Khoa học kỹ thuật đang ngày càng phát triển rất mạnh mẽ, các công nghệ mới thuộc các lĩnh vực khác nhau cũng nhờ đó đã ra đời nhằm đáp ứng nhu cầu của xã hội và kỹ thuật Vi điều khiển cũng nằm trong số đó. Hiện nay kỹ thuật Vi xử lý đã được giảng dạy rộng rãi ở các trường Đại học và Cao đẳng trong cả nước, tuy nhiên lĩnh vực mới Vi điều khiển vẫn đang còn rất mới mẻ, và những ứng dụng của nó vẫn chưa được khai thác triệt để trong các hệ thống điều khiển, đo lường và điều chỉnh của các dây chuyền công nghiệp. Qua quá trình tham gia giảng dạy tại trường Đại học SPKT Hưng yên và thời gian học tập nâng cao ở CHLB Đức, tác giả đã tập trung nghiên cứu và biên soạn giáo trình kỹ thuật Vi điều khiển nhằm phục vụ công việc giảng dạy lĩnh vực này tại trường. Toàn bộ nội dung giáo trình được chia làm 2 phần. Phần 1 bao gồm các kiến thức cơ bản về phần cứng và các tập lệnh của họ Vi điều khiển 80C51/ AT89C51. Ở phần 2 tác giả tập trung trình bày phần cứng họ Vi điều khiển 80C52/ AT89S8252 và kỹ thuật lập trình bằng hợp ngữ. Đối tượng của quyển giáo trình này là các sinh viên ngành Điện, Điện tử, Cơ điện tử, Công nghệ thông tin. Tuy nhiên để tiếp thu tốt nội dung từ quyển giáo trình này, người học cần có kiến thức về kỹ thuật số, kỹ thuật mạch điện tử và đã biết qua một ngôn ngữ lập trình cấp cao như Pascal, C… Mặc dù đã rất cố gắng trong quá trình biên soạn, nhưng do trình độ và thời gian còn bị hạn chế nên chắc chắn quyển giáo trình này không tránh khỏi những thiếu sót, rất mong nhận được những ý kiến đóng góp, phê bình của bạn đọc. Bạch Hưng Trường 7 24-10- 2003
  8. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển Hưng yên, tháng 10 năm 2003 Tác giả Chương 1. KIẾN TRÚC HỆ VXL CPU Registers CU PC OUTPUT INPUT Interface ALU IR Interface ROM Program Memory RAM Data Memory Hình2.1. Khái quát chung về hệ VXL 1.1. CPU(Central Processing Unit): Bộ vi xử lý (VXL) là thuật ngữ được bắt nguồn từ tên gọi ti ếng Anh là MICROPROCESSOR (MP) hoặc CENTRAL PROCESING UNIT (CPU). Trong mỗi hệ VXL, CPU luôn là thành phần quan trọng nhất, nó quản lý tất cả các hoạt động của hệ VXL và thực hiện các thao tác trên dữ li ệu. Hầu h ết các CPU chỉ bao gồm một tập các mạch Logic thực hiện liên tục 2 thao tác: tìm nạp lệnh và thực thi lệnh. CPU có khả năng hiểu và thực thi các lệnh dựa trên một tập các mã nhị phân, trong đó mỗi một mã thực hiện một thao tác nào đó. Các lệnh này bao gồm: - Nhóm lệnh di chuyển dữ liệu (Mov,...). - Nhóm lệnh số học (Mul, Div, Add, Subb,...). - Nhóm lệnh Logic (ANL, ORL, CPL, XRL,...). - Nhóm lệnh rẽ nhánh chương trình (Jmp, Call, ...). - Nhóm lệnh điều khiển biến Logic (Setb, Clr,...).... Bạch Hưng Trường 8 24-10- 2003
  9. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển Các nhóm lệnh trên được biểu thị bởi 1 tập các mã nhị phân và được gọi là tập lệnh. Mỗi bộ VXL (CPU) thường bao gồm: - Các thanh ghi nội (Registers): có nhiệm vụ lưu giữ tạm thời các thông tin, dữ liệu. - Đơn vị số học logic (Arithmetic Logic Unit - ALU): Thực hiện các thao tác trên các thông tin hay dữ liệu đã được lưu giữ tạm th ời trong thanh ghi nội. - Đơn vị điều khiển (Control Unit - CU): Có nhiệm vụ giải mã lệnh và điều khiển việc thực hiện các thao tác, đồng thời thiết lập các hoạt đ ộng cần thiết để thực hiện các thao tác đó. - Thanh ghi lệnh (Instruction Register - IR): Lưu giữ mã nhị phân của lệnh để được thực thi. - Bộ đếm chương trình (Program Counter - PC): Lưu giữ điạ chỉ của lệnh kế tiếp trong bộ nhớ cần được thực thi. 1.2. Quá trình tìm nạp lệnh và thực thi lệnh của CPU: + Việc tìm nạp một lệnh từ RAM hệ thống là một trong nh ững thao tác cơ bản nhất mà CPU thực hiện. Quá trình tìm nạp được thực hi ện theo các bước sau: • Nội dung của PC được gửi lên kênh địa chỉ. • Tín hiệu điều khiển READ được xác lập (chuyển sang trạng thái tích cực). • Dữ liệu (mã lệnh) được đọc từ RAM và gửi đi trên kênh dữ liệu. • Mã lệnh được chốt vào thanh ghi lệnh bên trong CPU. • Nội dung của PC được tăng lên để chuẩn bị tìm nạp lệnh kế tiếp từ bộ nhớ. Address Bus CPU PC n IR opcode Data Bus RAM n+2 Control Bus n+1 Clock opcode n Bạch Hưng Trường Read 9 n-1 24-10- 2003 Hình 1.2. Hoạt động của Bus cho chu kỳ tìm nạp
  10. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển + Giai đoạn thực thi lệnh bao gồm việc giải mã các mã lệnh và tạo ra các tín hiệu để điều khiển việc xuất nhập giữa các thanh ghi nội với ALU , đồng thời thông báo để ALU thực hiện thao tác đã được xác định. 1.3. Bộ nhớ trung tâm của hệ Vi xử lý: Bộ nhớ trung tâm là bộ phận rất quan trọng đối với mỗi hệ VXL, nó là t ập hợp các thanh ghi thông tin với số lượng lớn. Chức năng cơ bản của bộ nhớ là để trao đổi và lưu trữ thông tin. 1.3.1. Bộ nhớ chỉ đọc (Read Only Memory - ROM): 1.3.1.1. ROM cơ bản: ROM dùng để lưu trữ chương trình điều hành (Monitor) của hệ VXL. Chương trình này sẽ quy định mọi hoạt động của hệ VXL. Bộ VXL sẽ căn cứ vào các lệnh chứa trong chương trình để điều khiển hệ VXL thực hiện các chức năng, nhiệm vụ được ấn định trong lệnh. Nói cách khác, hệ VXL sẽ thực hiện một cách trung thực thuật toán mà người thiết kế ph ần mềm đã xây d ựng và cài đặt vào ROM của hệ. Ngoài ra, ROM trong hệ VXL còn dùng để lưu trữ các bảng bi ểu, tham s ố của hệ thống mà trong quá trình hoạt động không được thay đổi nh ư: bảng địa chỉ cổng giao tiếp, các bảng tra cứu số liệu, các bộ mã cần sử dụng trong hệ. ROM cũng được quản lý theo phương thức ma trận đi ểm, nó có nhi ều chủng loại khác nhau: ROM, PROM, EPROM, EEPROM,… ROM là bộ nhớ cố định có cấu trúc đơn giản nhất. Nội dung của nó do nhà sản xuất chế tạo, người sử dụng không thể thay đổi nội dung này được nữa. 1.3.1.2. PROM (Programmable ROM - ROM có khả năng lập trình được): Đặc điểm chung: Nội dung của PROM do nhà sản xuất hoặc người thiết kế hệ VXL nạp vào nhưng chỉ đựoc 1 lần. Sau khi nạp xong nội dung này không thể thay đổi được nữa. 1.3.1.3. EPROM (Eraseable PROM – ROM nạp/xoá được nhiều lần): Bạch Hưng Trường 10 24-10- 2003
  11. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển EPROM là bộ nhớ cố định có cấu trúc đặc biệt. Nội dung của nó do nhà sản xuất hay người thiết kế hệ VXL nạp vào và có thể nạp/xoá nhiều lần. Người ta tạo ra 1 bit thông tin trong EPROM dựa trên nguyên tắc làm việc của Transistor trường có cực cửa cách ly kênh cảm ứng (MOSFET kênh cảm ứng). 1.3.1.4. EEPROM (Electrical EPROM – ROM có khả năng lập trình và xoá được bằng điện). 1.3.2. Bộ nhớ truy cập ngẫu nhiên (Random Acess Memory - RAM): RAM là bộ nhớ có thể ghi và đọc được, thông tin trên RAM s ẽ b ị m ất khi mất nguồn cung cấp. Theo phương thức lưu trữ thông tin, RAM được chia thành 2 loại cơ bản: RAM tĩnh và RAM động. RAM tĩnh: Có thể lưu trữ thông tin lâu tuỳ ý mi ễn là đ ược cung c ấp đi ện năng - tất cả các loại phần tử nhớ bằng Trigơ đều thuộc loại này. RAM động: Chỉ lưu được thông tin trong 1 khoảng thời gian nh ất định. Muốn kéo dài thời gian này cần có phương thức làm tươi lại thông tin trong phần tử nhớ RAM. Phần tử nhớ của RAM động đơn giản nhất là một linh kiện điện dung - tụ diện. Sử dụng RAM động có ph ức tạp nh ưng v ề c ấu trúc nhớ lại đơn giản, tiêu tốn ít năng lượng, tăng mật độ bộ nhớ và đôi khi còn làm tăng cả tốc độ làm việc của bộ nhớ. Cấu trúc mạch điện của các bộ nhớ RAM rất đa dạng cả về công nghệ chế tạo chúng (TTL, MOS,… ) và các yêu cầu sử dụng chúng nh ư các yêu c ầu về ghép nối, tốc độ làm việc, mật độ linh kiện và dung lương cần thiết… 1.4. Các thiết bị xuất/nhập: Các thiết bị xuất/nhập hay các thiết bị ngoại vi kết h ợp v ới các m ạch giao tiếp (Interface) sẽ tạo ra các đường truyền thông giữa hệ VXL với th ế gi ới bên ngoài. Tuy nhiên để trao đổi thông tin giữa hệ VXL với các thiết bị ngoại vi, cần có các phương pháp điều khiển thích hợp như: - Điều khiển vào/ra bằng chương trình. - Điều khiển vào/ra bằng ngắt. - Điều khiển vào/ra bằng phần cứng. Nội dung này sẽ được xét kỹ ở các chương sau. Bạch Hưng Trường 11 24-10- 2003
  12. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển 1.5. Cấu trúc kênh chung của hệ VXL: Kênh (Bus) là tập hợp các đường thông tin có cùng mục đích. Đ ể CPU có th ể giao tiếp được với các bộ phận khác trong hệ VXL theo yêu c ầu, mỗi h ệ VXL cần sử dụng 3 kênh như sau: - Kênh địa chỉ (Adress Bus). - Kênh dữ liệu (Daten Bus). - Kênh điều khiển (Control Bus). Để thực hiện thao tác đọc hoặc ghi, CPU xác định rõ vị trí (địa ch ỉ) của dữ liệu (hoặc lệnh) bằng cách đặt địa chỉ đó lên kênh địa chỉ, sau đó kích hoạt tín hiệu Read hoặc Write trên kênh điều khiển để chỉ ra thao tác là đọc hay ghi. Nếu kích hoạt tín hiệu điều khiển Read, thao tác đọc lấy 1 byte dữ liệu từ bộ nhớ ở vị trí đã xác định và đặt byte này lên kênh dữ li ệu. CPU s ẽ đ ọc d ữ li ệu và cất dữ liệu vào 1 trong các thanh ghi nội của CPU. Nếu kích hoạt tín hiệu điều khiển Write, CPU sẽ thực hiện thao tác ghi bằng cách xuất dữ liệu lên kênh dữ liệu. Nhờ vào tín hiệu điều khiển, bộ nhớ nhận biết được đây là thao tác ghi và lưu dữ liệu vào vị trí đã được xác định. Kênh dữ liệu cho phép trao đổi thông tin giữa CPU và bộ nh ớ, cũng nh ư gi ữa CPU với thiết bị ngoại vi. Thông thường các hệ VXL dành hầu hết thời gian cho việc di chuyển dữ liệu, đa số các thao tác di chuy ển d ữ li ệu x ảy ra gi ữa 1 thanh ghi của CPU với ROM và RAM ngoài. Do đó độ lớn của kênh dữ liệu ảnh hưởng rất lớn tới hiệu suất của hệ VXL. Nếu bộ nhớ của h ệ thống rất l ớn và CPU có khả năng tính toán cao, nhưng việc truy xuất dữ li ệu – di chuy ển d ữ liệu giữa bộ nhớ và CPU thông qua kênh dữ liệu lại bị ngh ẽn thì hi ện t ượng “nghẽn cổ chai” này chính là hậu quả của độ rộng kênh dữ liệu không đủ lớn. Để khắc phục hiện tượng này, cần tăng đường tín hiệu cho kênh dữ liệu. A D CPU D A R Control Bus T E E S N ROM S B B U U S RAM S 16 8 Bit Bit Bạch Hưng Trường I/O 12 24-10- 2003 Hình 1.3. Cấu trúc kênh chung của hệ thống VXL
  13. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển Như ở hình 1.3, kênh dữ liệu là kênh 2 chiều, còn kênh địa chỉ là kênh 1 chiều. Các thông tin về địa chỉ luôn được cung cấp bởi CPU, trong khi các d ữ liệu di chuyển theo cả 2 hướng tuỳ thuộc vào thao tác th ực hi ện là đ ọc hay ghi. Thuật ngữ “dữ liệu” được sử dụng theo nghĩa tổng quát: “thông tin” di chuyển trên kênh dữ liệu có thể là lệnh của chương trình, địa chỉ theo sau lệnh hoặc dữ liệu được sử dụng bởi chương trình. Kênh điều khiển là tập hợp các tín hiệu, mỗi tín hiệu có m ột vai trò riêng trong việc điều khiển có trật tự hoạt động của hệ thống. Các tín hiệu điều khiển được cung cấp bởi CPU để đồng bộ việc di chuyển thông tin trên các kênh địa chỉ và dữ liệu. Các bộ VXL thường có 3 tín hiệu đi ều khi ển: Read, Write, Clock. Tuy nhiên tuỳ vào yêu cầu cụ thể cũng như cấu trúc ph ần cứng của từng hệ VXL mà số lượng tín hiệu điều khiển có thể khác nhau. Bạch Hưng Trường 13 24-10- 2003
  14. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển Chương 2: BỘ VI ĐIỀU KHIỂN AT89C51 (80C51) 2.1. Giới thiệu chung: Vi điều khiển (VĐK) là một “hệ” Vi xử lý (VXL) được t ổ ch ức trong m ột chip. Nó bao gồm: - Bộ VXL - Bộ nhớ chương trình (ROM/EPROM/EEPROM/FLASH). - Bộ nhớ dữ liệu (RAM). - Các thanh ghi chức năng, các cổng I/O, cơ chế điều khiển ngắt và truy ền tin nối tiếp. - Các bộ thời gian dùng trong lĩnh vực chia tần và tạo thời gian thực. - …… Bộ VĐK có thể được lập trình để điều khiển các thiết bị thông tin, vi ễn thông, thiết bị đo lường, thiết bị điều chỉnh cũng như các ứng dụng trong công nghệ thông tin và kỹ thuật điều khiển tự động. Có th ể xem b ộ VĐK nh ư m ột Bạch Hưng Trường 14 24-10- 2003
  15. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển hệ VXL On-chip, đối với họ AT89C51, nó có đầy đủ ch ức năng của một h ệ VXL 8 bit, đựoc điều khiển bởi một hệ lệnh, có số lệnh đủ mạnh, cho phép lập trình bằng hợp ngữ (Assembly). 2.2. Sự khác nhau giữa bộ VXL và bộ VĐK. VXL VĐK CPU, RAM, ROM, Timers, SFR, Phần CPU đơn chíp. mạch giao tiếp, hệ thống ngắt cứng và cơ chế điều khiển ngắt….. Sử dụng các tập lệnh bao Sử dụng các lệnh điều khiển quát, mạnh về kiểu định địa xuất nhập, có thể truy xuất dữ Tập chỉ. Các lệnh này có thể truy liệu ở dạng Bit hoặc Byte. Các lệnh xuất dữ liệu lớn, thực hiện ở nhóm lệnh chính: Chuyển dữ dạng 1/2 Byte, Byte, Word, liệu, điều khiển biến logic, rẽ Double Word. nhánh chương trình, tính toán số học và logic. VXL VĐK ứng Trong các hệ thống điều khiển, Trong các hệ máy vi tính. dụng đo lường và điều chỉnh… 2.3. Sơ đồ khối. Bạch Hưng Trường 15 24-10- 2003
  16. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển External Interrupts Timer 1 Counter Interrupt 4K 128 Bytes FLASH RAM Timer 0 Inputs Control CPU OSC Bus 4 I/O Ports Serial Control Ports /WR /RD TxD RxD P0 P2 P1 P3 Address/Data Hình 2.1. Sơ đồ khối họ VĐK AT89C51 Bộ VĐK 8 bit AT89C51 hoạt động ở tần số 12 MHz, với bộ nhớ ROM 4Kbyte, bộ nhớ RAM 128 Byte cư trú bên trong và có thể mở rộng bộ nhớ ra ngoài. Ở bộ VĐK này còn có 4 cổng 8 bit (P0…P3) vào/ ra 2 chiều để giao tiếp với thiết bị ngoại vi. Ngoài ra, nó còn có: - 2 bộ đinh thời 16 bit (Timer 0 và Timer 1) - Mạch giao tiếp nối tiếp. - Bộ xử lý bit (thao tác trên các bit riêng rẽ). - Hệ thống điều khiển và xử lý ngắt. - Các kênh điều khiển/ dữ liệu/ địa chỉ. - CPU - Các thanh ghi chức năng đặc biệt (SFR). … Bạch Hưng Trường 16 24-10- 2003
  17. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển Tuy nhiên, tuỳ thuộc vào từng họ VĐK của từng hãng s ản xu ất khác nhau mà tính năng cũng như phạm vi ứng dụng của mỗi bộ VĐK là khác nhau, và chúng được thể hiện trong các bảng thống kê sau: ROM RAM Tốc độ Các chân Timer/ Nguồn Họ VĐK UART (bytes) (bytes) (MHz) I/O Counter ngắt 8051 8031AH ROMLESS 128 12 32 2 1 5 8051AH 4K ROM 128 12 32 2 1 5 8051AHP 4K ROM 128 12 32 2 1 5 8751H 4K EPROM 128 12 32 2 1 5 8751BH 4K EPROM 128 12 32 2 1 5 8052 8032AH ROMLESS 256 12 32 3 1 6 8052AH 8K ROM 256 12 32 3 1 6 8752BH 8K EPROM 256 12 32 3 1 6 80C51 32 80C31BH ROMLESS 128 12,16 32 2 1 5 80C51BH 4K ROM 128 12,16 32 2 1 5 80C31BHP 4K ROM 128 12,16 32 2 1 5 87C51 4K EPROM 128 12,16,20 32 2 1 5 ,24 8xC52/54/58 ROMLESS 256 12,16,20 32 3 1 6 80C32 ,24 8K ROM 256 12,16,20 32 3 1 6 80C52 ,24 8K EPROM 256 12,16,20 32 3 1 6 87C52 ,24 16K ROM 256 12,16,20 32 3 1 6 80C54 ,24 16K EPROM 256 12,16,20 32 3 1 6 87C54 ,24 ROM RAM Tốc độ Các chân Timer/ Nguồn Họ VĐK UART (bytes) (bytes) (MHz) I/O Counter ngắt 32K ROM 256 12,16,20 32 3 1 6 80C58 ,24 32K EPROM 256 12,16,20 32 3 1 6 87C58 ,24 8xL52/54/58 80L52 8K ROM 256 12,16,20 32 3 1 6 87L52 8K OTP ROM 256 12,16,20 32 3 1 6 80L54 16K ROM 256 12,16,20 32 3 1 6 Bạch Hưng Trường 17 24-10- 2003
  18. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển 16K OTP 256 12,16,20 32 3 1 6 87L54 ROM 80L58 32K ROM 256 12,16,20 32 3 1 6 32K OTP 256 12,16,20 32 3 1 6 87L58 ROM … Bảng 2.1. Các thông số của các họ VĐK thuộc hãng Intel (MSC 51) Họ VĐK Bộ nhớ Bộ nhớ dữ liệu Timer Công chương (Bytes) 16 bit nghệ trình(Bytes) AT89C1051 1K Flash 64 RAM 1 CMOS AT89C2051 2K Flash 128 RAM 2 CMOS AT89C51 4K Flash 128 RAM 2 CMOS AT89C52 8K Flash 256 RAM 3 CMOS AT89C55 20K Flash 256 RAM 3 CMOS AT89S8252 8K Flash 256 RAM + 2K 3 CMOS EEPROM AT89S53 12K Flash 256 RAM 3 CMOS Bảng 2.2. Các thông số của các họ VĐK thuộc hãng Atmel .Trong khuôn khổ tài liệu này, tác giả sẽ tập trung trình bày c ấu trúc ph ần cứng của họ VĐK AT89C51 thuộc hãng Atmel. 2.4. Sơ đồ chân tín hiệu của 80C51/AT89C51. Bạch Hưng Trường 18 24-10- 2003
  19. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển P1.0 -- 1 40 --Vcc P1.1-- --P0.0 (AD0) P1.2-- 2 39 --P0.1 (AD1) P1.3-- --P0.2 (AD2) P1.4-- 3 38 --P0.3 (AD3) P1.5-- --P0.4 (AD4) P1.6-- 4 37 --P0.5 (AD5) P1.7-- --P0.6 (AD6) RST-- 5 36 --P0.7 (AD7) (RxD) P3.0-- --/EA/Vpp (TxD) P3.1-- 6 35 --ALE/(/PROG) (/INT0) P3.2-- --/PSEN (/INT1) P3.3-- 7 34 --P2.7 (A15) (T0) P3.4-- --P2.6 (A14) (T1) P3.5-- 8 33 --P2.5 (A13) (/Wr) P3.6-- --P2.4 (A12) (/Rd) P3.7-- 9 32 --P2.3 (A11) XTAL2-- --P2.2 (A10) XTAL1-- 10 31 --P2.1 (A9) GND-- --P2.0 (A8) 11 30 12 29 Hình 2.2. IC 80C51/AT89C51 13 28 14 27 Chức năng của các chân tín hiệu như sau: 15 - P0.0 đến P0.7 là các chân của cổng 0. 26 - P1.0 đến P1.7 là các chân của cổng 1. 16 25 - P2.0 đến P2.7 là các chân của cổng 2 17 - P3.0 đến P3.7 là các chân của cổng 3 24 - RxD: Nhận tín hiệu kiểu nối tiếp. 18 23 - TxD: Truyền tín hiệu kiểu nối tiếp. 19 22 - /INT0: Ngắt ngoài 0. - /INT1: Ngắt ngoài 1. 20 21 - T0: Chân vào 0 của bộ Timer/Counter 0. - T1: Chân vào 1 của bộ Timer/Counter 1. - /Wr: Ghi dữ liệu vào bộ nhớ ngoài. - /Rd: Đọc dữ liệu từ bộ nhớ ngoài. - RST: Chân vào Reset, tích cực ở mức logic cao trong khoảng 2 chu kỳ máy. - XTAL1: Chân vào mạch khuyếch đaị dao động - XTAL2: Chân ra từ mạch khuyếch đaị dao động. - /PSEN : Chân cho phép đọc bộ nhớ chương trình ngoài (ROM ngoài). Bạch Hưng Trường 19 24-10- 2003
  20. ĐẠI HỌC SPKT HƯNG YÊN Giáo trình: Kỹ thuật Vi Điều Khiển - ALE (/PROG): Chân tín hiệu cho phép ch ốt địa ch ỉ đ ể truy c ập bộ nh ớ ngoà i, khi On-chip xuất ra byte thấp của địa ch ỉ. Tín hiệu ch ốt đ ược kích ho ạt ở m ức cao, tần số xung chốt = 1/6 tần số dao động của bộ VĐK. Nó có th ể đ ược dùng cho các bộ Timer ngoài hoặc cho mục đích tạo xung Clock. Đây cũng là chân nhận xung vào để nạp chương trình cho Flash (hoặc EEPROM) bên trong On-chip khi nó ở mức thấp. - /EA/Vpp: Cho phép On-chip truy cập bộ nhớ chương trình ngoài khi /EA=0, nếu /EA=1 thì On-chip sẽ làm việc với bộ nh ớ ch ương trình nội trú. Khi chân này được cấp nguồn điện áp 12V (Vpp) thì On-chip đảm nh ận ch ức năng n ạp chương trình cho Flash bên trong nó. - Vcc: Cung cấp dương nguồn cho On-chip (+ 5V). - GND: nối mát. 2.5. Chức năng các thành phần của AT89C51: 2.5.1. Các thanh ghi chức năng đặc biệt. SFR đảm nhiệm các chức năng khác nhau trong On-chip. Chúng n ằm ở RAM bên trong On-chip, chiếm vùng không gian nhớ 128 Byte được định địa chỉ từ 80h đến FFh. Cấu trúc của SFR bao gồm các chức năng thể hiện ở bảng 2.3 và bảng 2.4. Thanh Nội dung ghi MSB LSB IE EA - ET2 ES ET1 EX1 ET0 EX0 IP - - PT2 PS PT1 PX1 PT0 PX0 PSW CY AC FO RS1 RS0 OV - P TMOD GATE C/(/T) M1 M0 GATE C/(/T) M1 M0 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 SCON SM0 SM1 SM2 REN TB8 RB8 TI RI PCON SMOD - - - GF1 GF0 PD IDL P1 T2 T2EX /SS MOSI MISO SCK P3 RXD TXD /INT0 /INT1 T0 T1 /WR /RD Bảng 2.3. Chức năng riêng của từng thanh ghi trong SFR Bạch Hưng Trường 20 24-10- 2003

Giáo trình vi xử lý spkt

Giáo trình vi xử lý spkt

65 tài liệu

2359 lượt tải