Thiết kế và phát triển hệ thống điều khiển nhúng dựa trên nền vi điều khiển 8051

Tài liệu Thiết kế và phát triển hệ thống điều khiển nhúng dựa trên nền vi điều khiển 8051: ... Ebook Thiết kế và phát triển hệ thống điều khiển nhúng dựa trên nền vi điều khiển 8051

doc107 trang | Chia sẻ: huyen82 | Lượt xem: 2060 | Lượt tải: 1download
Tóm tắt tài liệu Thiết kế và phát triển hệ thống điều khiển nhúng dựa trên nền vi điều khiển 8051, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1.Tên đề tài : THIẾT KẾ VÀ PHÁT TRIỂN HỆ THỐNG ĐIỀU KHIỂN NHÚNG DỰA TRÊN NỀN VI ĐIỀU KHIỂN 8051 2.Nội dung : Thiết kế Board mạch dựa trên nền tảng vi điều khiển 80C51 xây dựng bàn thí nghiệm vi điều khiển đa năng. 3.Giáo viên hướng dẫn : 4. Ngày giao nhiệm vụ : 5.Ngày hoàn thành nhiệm vụ : Thông qua bộ môn Ngày___tháng___năm___ Giáo viên hướng dẫn Chủ nhiệm bộ môn NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Hà Nội ngày ….tháng …..năm 20 (Chữ kí giáo viên hướng dẫn) NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Hà Nội ngày ….tháng …..năm 200 (Chữ kí giáo viên phản biện) LỜI NÓI ĐẦU Kỹ thuật vi xử lý với tốc độ phát triển nhanh đã và đang mang đến những thay đổi to lớn trong khoa học và công nghệ cũng như trong đời sống hàng ngày. Ngày nay, các thiết bị máy móc ngày càng trở nên thông minh hơn, các công việc được thực hiện với hiệu quả cao hơn, đó cũng là nhờ vi xử lý, vi điều khiển. Đối với sinh viên các ngành Tự động – điều khiển - Đo lường thì môn học Kỹ thuật Vi xử lý, Vi điều khiển là môn học căn bản và rất quan trọng. Sinh viên Tự động – điều khiển - Đo lường khi ra trường mà chưa nắm vững được khái niệm cơ bản về vi xử lý, vi điều khiển thì đó là một điều thiếu sót. Mà chúng ta cũng biết rằng nếu chỉ học trên lý thuyết môn học này thì rất khó để có thể hiểu sâu về môn học. Bởi vậy nên, thiết bị thực hành để phục vụ cho môn học là rất cần thiết. hiện nay các thiết bị thí nghiệm mua của nước ngoài thì đắt tiền mà không khai thác được hiệu quả do linh kiện và nội dung các bài thí nghiệm không phù hợp với chương trình đào tạo ở nước ta. Xuất phát từ những phân tích trên. nhóm sinh viên chúng em đã tiến hành tìm hiểu, thiết kế và xây dựng “Bàn thí nghiệm Vi điều khiển ”. Nhiệm vụ của đồ án là : Tìm hiểu về bộ vi điều khiển 8051 từ đó xây dựng một bàn thí nghiệm vi xử lý, vi điều khiển đa năng. Bàn thí nghiệm đa năng này phải thực hiện được các chức năng sau : Dễ dàng nạp mã chương trình vào Ram để thực hiện chương trình mà người thực hiện thí nghiệm đã làm. - Thực hiện cơ chế giao tiếp giữa bàn thí nghiệm và máy tính. - Xây dựng các thành phần thiết bị ngoại vi phục vụ trong quá trình thí nghiệm. Nội dung đề tài: Nội dung chính của đề tài là : Tìm hiểu cấu trúc phần cứng và kỹ thuật lập trình cho vi điều khiển 8051. Phải thiết kế và thực thi bo mạch chính của bàn thí nghiệm. Viết bios cho vi điều khiển. Dựa trên ngôn ngữ lập trình Visual C++ thiết kế giao diện nhằm mục đích giao tiếp giữa bàn thí nghiệm và máy tính. Từ những nội dung chính trên đồ án được chia thành những phần sau : Phần I: Giới thiệu chung Giới thiệu một cách khái quát nhất những vấn đề về: lý do lựa chọn đề tài, những vấn đề thực hiện được trong đề tài và chưa thực hiện được trong đề tài, mục đích của việc nghiên cứu đề tài từ đó đưa ra phân tích yêu cầu cần thiết của đề tài. Phần II: Khái quát chung về vi điều khiển 8051 Phần này giới thiệu một các chung nhất về lịch sử phát triển, khả năng ứng dụng, cấu trúc phần cứng của vi điều khiển 8051. Phần III: Thiết kế phần cứng Board mạch phát triển trên nền vi điều khiển 8051 Phần này đi sâu vào thiết kế sơ đồ mạch nguyên lý, giải thích nguyên lý hoạt động của mạch theo từng khối chức năng và thiết kế mạch in. Phần IV: Viết Bios cho Board mạch phát triển 8051 Phần này tập chung vào xây dựng và phát triển bios để bàn thí nghiệm thực hiện được đúng theo như yêu cầu đã đặt ra. Phần V : Thiết kế giao diện trên máy tính Trên nên tảng ngôn ngữ lập trình Visual C++ xây dựng giao diện trên máy tính thực hiện qua trình giao tiếp giữa máy tính và bàn thí nghiệm. Phần VI : Kết luận Tổng kết lại toàn bộ nội dung của đồ án, xu hướng phát triển mở rộng của đồ án. Mặt dù chúng em rất cố gắng để hoàn thành tập luận văn này đúng thời hạn, nên không tránh khỏi những thiếu sót mong quí thầy cô thông cảm. Chúng em mong được đón nhận những ý kiến đóng góp. Cuối cùng xin chân thành cảm ơn quí thầy cô và các bạn sinh viên. Nhóm sinh viên thực hiện MỤC LỤC PHẦN I : GIỚI THIỆU CHUNG Đặt vấn đề………………………………………………………… Giới hạn của đề tài………………………………………………… Mục đích nghiên cứu……………………………………………… Phân tích các yêu cầu……………………………………………… PHẦN II : KHÁI QUÁT CHUNG VỀ VI ĐIỀU KHIỂN 8051 Lịch sử phát triển của 8051……………………………………… Khả năng ứng dụng của vi điều khiển ……………………… …. Giới thiệu cấu trúc phần cứng họ vi điều khiển 8051…………… Các đặc điểm cơ bản của 8051…………………………. Các đặc tính cơ bản của 8051…………………………… Sơ đồ khối cấu trúc của 8051…………………………… Khảo sát sơ đồ chân của 8051………………………….. Các chân chức năng của 8051………………………….. Các ngõ tín hiệu điều khiển…………………………….. Tổ chức bộ nhớ của vi điều khiển 8051………………………… Các thanh ghi chức năng đặc biệt……………………………… PHẦN III: THIẾT KẾ PHẦN CỨNG BOARD MẠCH PHÁT TRIỂN TRÊN NỀN TẢNG VI ĐIỀU KHIỂN 8051 I. Thiết kế phần cứng BOARD phát triển trên nền vi điều khiển 8051…………………………………………………………………. Mục đích thiết kế bo mạch phát triển trên nền vi điều khiển 8051………………………………………………………..…. Yêu cầu thiết kế bo mạch…………………………………… Lựa chọn thiết bị…………………………………………….. Phương án thực hiện……………………………………….. Sơ đồ nguyên lý của mạch………………………………… Khái quát cấu trúc cơ bản và nguyên lý hoạt động của từng khối chức năng………………………………………………. 1.6.1 Chip 8051……………………………………………… 1.6.2 Bộ chốt địa chỉ………………………………………… 1.6.3 Giải mã địa chỉ………………………………………… 1.6.4 Bộ nhớ ngoài : RAM và ROM………………………… 1.6.5 Mở rộng cổng………………………………………….. 1.6.6 Chuyển đổi tín hiệu………………………………….. 1.6.7 Giao tiếp với máy tính………………………………... 1.6.8 Khối hiển thị…………………………………………... 1.6.9 Ghép nối với bàn phím………………………………... 1.6.10 Ghép nối với động cơ bước………………………… 2.6.11 Ghép nối với LCD…………………………………… II. Thiết kế mạch in……………………………………………………. PHẦN IV : VIẾT BIOS CHO BOARD MẠCH PHÁT TRIỂN 8051 Công cụ lập trình cho Bios 8051……………………........ Giới thiệu về phần mềm lập trình Assembly Reads51…... Intel HEX-record Format………………………………... Code Bios……………………………………………….. PHẦN V : THIẾT KẾ GIAO DIỆN TRÊN MÁY TÍNH Tổng quan về Visual C++ trong vấn đề giao tiếp giữa PC và vi điều khiển……………………………………………………….. Giao diện thiết kế trên máy tính………………………………. PHẦN VI : KẾT LUẬN PHẦN I GIỚI THIỆU CHUNG I. ĐẶT VẤN ĐỀ Môn học Kỹ thuật Vi xử lý, Kỹ thuật Vi điều khiển là môn học căn bản quan trọng đối với sinh viên các ngành Tự động - Đo lường, Điện tử, Tin học. Dựa trên nền tảng của môn học Kỹ thuật Vi xử lý, Kỹ thuật Vi điều khiển, sinh viên sẽ tiếp thu những môn học kỹ thuật chuyên ngành quan trọng khác và tiếp cận dễ dàng hơn với những công nghệ, trang thiết bị hiện đại. Thiết bị thực hành để phục vụ cho môn học là rất cần thiết, nhưng hiện nay các thiết bị thí nghiệm mua của nước ngoài thì đắt tiền mà không khai thác được hiệu quả do linh kiện và nội dung các bài thí nghiệm không phù hợp với chương trình đào tạo ở nước ta. Xuất phát từ yêu cầu thực tế trên, chúng tôi nghiên cứu và đề xuất phương án chế tạo một thiết bị thí nghiệm Vi điều khiển với đầy đủ các thành phần cơ bản của một hệ vi điều khiển và các ngoại vi, trên đó có thể thực hiện các bài thí nghiệm từ cơ bản đến nâng cao, đáp ứng được yêu cầu thí nghiệm môn học "Kỹ thuật Vi điều khiển. II. GIỚI HẠN ĐỀ TÀI Với thời gian gần mười tuần thực hiện đề tài, chúng em đã cố gắng hết sức để hoàn thành đề tài này, nhưng chỉ giải quyết được những vấn đề sau : Thiết kế mạch phần cứng bo mạch chính bàn thí nghiệm vi điều khiển 8051. Tìm hiểu và thiết kế các bo mạch phụ các thiết bị ngoại vi phục vụ trong quá trình thí nghiệm. Viết bios cho vi điều khiển và đã thực hiện được các yêu cầu cần thiết đề ra . Xây dựng giao diện dựa trên nền Visual C thực hiện cơ chế giao tiếp giữa vi điều khiển và máy tính. Mặc dù đã rất cố gắng nhưng chúng em vẫn chưa thực hiện được: Cơ chế thực hiện từng lệnh. Chưa hoàn chỉnh được mạch theo thiết kế đã định … III. MỤC ĐÍCH NGHIÊN CỨU Mục đích chính của đề tài là : Tìm hiểu về bộ vi điều khiển 8051 từ đó xây dựng một bàn thí nghiệm vi xử lý, vi điều khiển đa năng. Như vậy, bàn thí nghiệm này là một thiết bị thí nghiệm hữu ích cho SV trong quá trình học, tìm hiểu, nghiên cứu về vi điều khiển. Đề tài giúp người sử dụng có cái nhìn khái quát hơn về Họ MCS 8051 nói riêng, vi điều khiển nói chung. Từ đó có thể làm nền tảng để tìm hiểu và phát triển các hệ vi điều khiển trong thực tế công nghiệp. Mặc dù Đề tài hết sức đơn nhưng khi bắt tay vào thực hiện thấy cũng không hề đơn giản chút nào. Bởi một điều rất đơn giản là chúng em chưa có kinh nghiệm khi làm mạch thực. Chính vì vậy, đề tài mang lại cho chúng em rất nhiều kinh nghiệm. Ngoài ra, quá trình nghiên cứu thực hiện đề tài là một cơ hội để chúng em tự kiểm tra lại những kiến thức đã được học ở trường, đồng thời phát huy tính sáng tạo, khả năng giải quyết một vấn đề theo yêu cầu đặt ra. Và đây cũng là dịp để chúng em tiếp xúc với thực tế, đó là phải thiết kế một bàn thí nghiệm thực, mặc dù kết quả chưa được như mong muốn nhưng nó giúp chúng em hiểu ra rất nhiều điều. IV. PHÂN TÍCH YÊU CẦU + Phần cứng: Bởi vì mục đích của sản phẩm là phục vụ cho việc đào tạo nên cấu hình phần cứng phải rõ ràng, dàn trải. Kích thước của thiết bị gọn nhẹ, dễ dàng di chuyển và bảo quản. Các thành phần của hệ vi điều khiển phải được thể hiện rõ ràng, dễ nhận biết. + Các thành phần của thiết bị: Thiết bị có đầy đủ các thành phần cơ bản của một hệ vi điều khiển và các nguồn tài nguyên ngoại vi phong phú, cho phép người sử dụng có thể tự do phát triển các ứng dụng của mình: Bộ vi xử lí trung tâm. Các bộ nhớ ROM, RAM, EEPROM bên ngoài. Các cổng vào/ra tương tự, vào/ra số, các cổng ghép nối ngoại vi mở rộng lập trình được. Giao tiếp bàn phím. Hiển thị LCD. Hiển thị trạng thái bằng đèn LED . Hiển thị LED 7 thanh. Các đầu vào xung. Mạch điều khiển động cơ một chiều, động cơ bước. Giao tiếp với máy tính PC qua cổng truyền thông nối tiếp (COM). PHẦN II KHÁI QUÁT CHUNG VỀ VI ĐIỀU KHIỂN 8051 I. LỊCH SỬ PHÁT TRIỂN CỦA CÁC BỘ VI ĐIỀU KHIỂN : Bộ vi điều khiển thực ra, là một loại vi xử lí trong tập hợp các bộ vi xử lý nói chung. Bộ vi điều khiển được phát triển từ bộ vi xử lí, từ những năm 70 do sự phát triển và hoàn thiện về công nghệ vi điện tử dựa trên kỹ thuật MOS (Metal-Oxide-Semiconductor) , mức độ tích hợp của các linh kiện bán dẫn trong một chip ngày càng cao. Năm 1971 xuất hiện bộ vi xử lí 4 bit loại TMS1000 do công ty texas Instruments vừa là nơi phát minh vừa là nhà sản xuất. Nhìn tổng thể thì bộ vi xử lí chỉ có chứa trên một chip những chức năng cần thiết để xử lí chương trình theo một trình tự, còn tất cả bộ phận phụ trợ khác cần thiết như : bộ nhớ dữ liệu , bộ nhớ chương trình , bộ chuển đổi AID, khối điều khiển, khối hiển thị, điều khiển máy in, hối đồng hồ và lịch là những linh kiện nằm ở bên ngoài được nối vào bộ vi xử lí. Mãi đến năm 1976 công ty INTEL (Interlligen-Elictronics). Mới cho ra đời bộ vi điều khiển đơn chip đầu tiên trên thế giới với tên gọi 8048. Bên cạnh bộ xử lí trung tâm 8048 còn chứa bộ nhớ dữ liệu, bộ nhớ chương trình, bộ đếm và phát thời gian các cổng vào và ra Digital trên một chip. Các công ty khác cũng lần lược cho ra đời các bộ vi điều khiển 8bit tương tự như 8048 và hình thành họ vi điều khiển MCS-48 (Microcontroller-sustem-48). Đến năm 1980 công ty INTEL cho ra đời thế hệ thứ hai của bộ vi điều khiển đơn chip với tên gọi 8051. Và sau đó hàng loạt các vi điều khiển cùng loại với 8051 ra đời và hình thành họ vi điều khiển MCS-51 . Đến nay họ vi điều khiển 8 bit MCS51 đã có đến 250 thành viên và hầu hết các công ty hàng dẫn hàng đầu thế giới chế tạo. Đứng đầu là công ty INTEL và rất nhiều công ty khác như : AMD, SIEMENS, PHILIPS, DALLAS, OKI … Ngoài ra còn có các công ty khác cũng có những họ vi điều khiển riêng như: Họ 68HCOS của công ty Motorola Họ ST62 của công ty SGS-THOMSON Họ H8 của công ty Hitachi Họ pic cuả công ty Microchip II. KHẢ NĂNG ỨNG DỤNG CỦA VI ĐIỀU KHIỂN Có thể nói vi điều khiển ngay từ khi mới ra đời đã có nhiều ứng dụng rất lớn trong công nghiệp cũng như trong đời sống. Có thể khẳng định một điều rằng: trong bất kì một thiết bị máy móc nào dù có thô sơ hay hiện đại đến mấy đi chăng nữa cũng cần phải có các bộ vi xử lý, vi điều khiển. Các bộ vi xử lý, vi điều khiển là bộ khối xử lý trung tâm, là bộ não của của các thiết bị, sản phẩm. Chính vì vậy nên nó là thành phần không thể thiếu của bất kì một thiết bị tự động hóa nào. Có thể trình bày một các khái quát nhất khả năng ứng dụng của các bộ vi điều khiển như sau : Các thiết bị nội thất gia đình : - Các sản phẩm điện trong nhà : tủ lạnh, điều hòa, nồi cơm điện … - Hệ thống an toàn trong nhà, trong xe : hệ thống báo động, hệ thống bảo vệ, hệ thống quan sát… - hệ thống tự động hóa tòa nhà. Các thiết bị sử dụng trong văn phòng -Các sản phẩm điện dùng trong văn phòng : máy in, máy copy… Các thiết bị điều khiển trong công nghiệp -Các bộ điều khiển sử dụng kỹ thuật vi điều khiển : điều khiển động cơ, điều khiển quá trình… -Các hệ thống bảo vệ Các thiết bị tự động hóa hiện đại III. GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MSC-51 (8051): III.1 Đặc điểm của bộ vi điều khiển 8051 Đặ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 IC 8951 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 8951 được tóm tắt như sau: 4 KB EPROM bên trong. 128 Byte RAM nội. 4 Port xuất /nhập I/O 8 bit. Giao tiếp nối tiếp. 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ó khả năng truy nhập theo bit 4ms cho hoạt động nhân hoặc chia. III.2 Các đặc tính cơ bản của vi điều khiển 8051 Đặc tính Số lượng ROM trên chíp RAM trên chíp Bộ định thời Các chân vào - ra Cổng nối tiếp Nguồn ngắt Giao tiếp nối tiếp Vùng nhớ mã ngoài Vùng nhớ dữ liệu ngoài Xử lý boolean ( xử lý đơn bit) 4K byte 128 byte 2 32 1 6 64KB 64KB Bảng 1.1: Các đặc tính của 8051. III.3. Sơ đồ khối cấu trúc của 8051 III.4. Khảo sát sơ đồ chân của 8051 III.5. Các chân chức năng của 8051 8051 có tất cả 40 chân với chức năng như các đường xuất nhập. Trong đó có 24 chân có tác dụng kép với các chức năng khác nhau : Hoạt động như đường xuất nhập Bus dữ liệu Bus địa chỉ Các đường điều khiển … PORT 0: Trong các ứng dụng nhỏ thì P0 được sử dụng như một cổng vào ra bình thường. Trong các ứng dụng lớn có sử dụng bộ nhớ ngoài thì P0 còn có chức năng: Bus địa chỉ A0—A7 Bus dữ liệu D0—D7 Một điều cần chú ý: đối với cổng P0 đặc điểm cấu tạo của nó nên khi ta muốn cho P0 là cổng vào thì ta phải nắp vào P0 điện trở treo. PORT 2: Trong các ứng dụng nhỏ thì P2 được sử dụng như một cổng vào ra bình thường. Trong các ứng dụng lớn có sử dụng bộ nhớ ngoài thì P0 còn có chức năng: Bus địa chỉ cao A8—A15. c. PORT 1: P1 không có thêm một chức năng nào khác chúng chỉ được sử dụng như một cổng vào ra bình thường. P1 được sử dụng cho giao tiếp với các thiết bị ngoại vi bên ngoài. d. PORT 3: Có thể được sử dụng như các cổng vào ra bình thường để kết nối với các thiết bị ngoại vi. Ngoài ra, P3 có rất nhiều chức năng đặc biệt khác. III.6 Các ngõ tín hiệu điều khiển Ngõ tín hiệu PSEN (program store enable): PSEN là ngõ tín hiệu ra ở chân 29 chip 8051 có tác dụng cho phép đọc bộ nhớ chương trình ngoài. Thường thì chân PSEN được nối đến chân OE\ (output enable) của EPROM cho phép đọc các byte mã lệnh. PSEN ở mức thấp( tích cực) trong thời gian 8051 lấy lệnh. Các mã lệnh 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 bên trong 8051 để giải mã lệnh. Nếu không sử dụng bộ nhớ ngoài mà chỉ dùng ROM bên trong 8051 thì khi đó PSEN=1. Ngõ tín hiệu ALE ( address latch enable) : Như chúng ta đã biết, trong ứng dụng sử dụng bộ nhớ ngoài thì P0 có chức năng đặc biệt đó là vừa làm Bus dữ liệu cũng như Bus địa chỉ. Như vậy một vấn đề đặt ra là : khi nào thì P0 làm Bus dữ liệu khi nào P0 làm Bus địa chỉ ? Để biết được điều này thì 8051 đưa ra chân điều khiển ALE. Chân tín hiệu điều khiển này thường được nối với chân LE( latch enable) của bộ chốt địa chỉ. Như vậy, khi ALE=1--> cho phép 74HC573 chốt địa chỉ byte thấp A0-A7, sau đó ALE xuống 0 thì byte thấp và byte cao của bộ đếm chương trình đều có nhưng EPROM chưa xuất mã lệnh ra Bus dữ liệu vì chân PSEN\ chưa tích cực, chỉ khi ALE lên 1 tiếp theo thì Opcode được đưa lên Bus dữ liệu và được chuyển vào thanh ghi lệnh để giải mã lệnh. Ngõ tín hiệu EA (external access) : Tín hiệu điều khiển EA\ là tín hiệu điều khiển cho phép truy nhập vùng bộ nhớ chương trình ngoài. Nếu EA\ = 0 thì cho phép truy nhập mã chương trình từ bộ nhớ ngoài. Trong trường hợp EA\=1 thì mã chương trình thực hiện ở ROM trong vi điều khiển 8051. Ngõ tín hiệu RST (Reset) : Tín hiệu này cho RESET toàn bộ hệ thống. Khi ngõ vào của tín hiệu này được đưa lên cao( ít nhất là 2 chu kì máy) --> các thanh ghi bên trong được nạp các giá trị thích hợp để khởi động hệ thống. Ban đầu khi cấp nguồn cho 8051 thì mạch tự động RESET. Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được reset tại địa chỉ 0000H. Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại địa chỉ 0000H của bộ nhớ chương trình. Nội dung của RAM trên chip không bị thay đổi bởi tác động của ngõ vào reset. Ngõ vào bộ dao động X1, X2: Bộ dao động được tích hợp bên trong 8051, khi sử dụng 8051 ta chỉ cần kết nối thêm một mạch dao động thạch anh vào mạch. Sơ đồ mạch dao động thạch anh như hình vẽ sau : Tần số của thạch anh thường sử dụng : 12MHz. IV. Tổ chức bộ nhớ của vi điều khiển 8051 Bộ nhớ trong 8951 bao gồm EPROM và RAM. RAM trong 8951 bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt. 8951 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 8951 nhưng 8951 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu. B¶ng tãm t¾t c¸c vïng nhí cña 8051 RAM bên trong 8951 được phân chia như sau: Các bank thanh ghi có địa chỉ từ 00H đến 1FH. RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH. RAM đa dụng từ 30H đến 7FH. Các thanh ghi chức năng đặc biệt từ 80H đến FFH. RAM đa dụng : Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các địa chỉ từ 30H đến 7FH, 32 byte dưới từ 00H đến 1FH cũng có thể dùng với mục đích tương tự (mặc dù các địa chỉ này đã có mục đích khác). Mọi địa chỉ trong 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. RAM có thể truy xuất từng bit : 8951 chứa 210 bit được địa chỉ hóa, trong đó có 128 bit có chứa các byte chứa các địa chỉ từ 20H đến 2FH và các bit còn lại chứa trong nhóm thanh ghi có chức năng đặc biệt. Ý tưởng truy xuất từng bit bằng phần mềm là các đăc tính mạnh của microcontroller xử lý chung. Các bit có thể được đặt, xóa, AND, OR, … , với 1 lệnh đơn. Đa số các microcontroller xử lý đòi hỏi một chuỗi lệnh đọc-sửa- ghi để đạt được mục đích tương tự. Ngoài ra các port cũng có thể truy xuất được từng bit. 128 bit có chứa các byte có địa chỉ từ 00H -1FH cũng có thể truy xuất như các byte hoặc các bit phụ thuộc vào lệnh được dùng. Các bank thanh ghi : 32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi. Bộ lệnh 8951 hổ trợ 8 thanh ghi có tên là R0 -R7 và theo mặc định sau khi reset hệ thống, các thanh ghi này có các địa chỉ từ 00H - 07H. Các lệnh dùng các thanh ghi RO - R7 sẽ ngắn hơn và nhanh hơn so với các lệnh có chức năng tương ứng dùng kiểu địa chỉ trực tiếp. Các dữ liệu được dùng thường xuyên nên dùng một trong các thanh ghi này. Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được truy xuất bởi các thanh ghi RO - R7 để chuyển đổi việc truy xuất các bank thanh ghi ta phải thay đổi các bit chọn bank trong thanh ghi trạng thái. VI. Các thanh ghi có chức năng đặc biệt: Các thanh ghi nội của 8951 được truy xuất ngầm định bởi bộ lệnh. Các thanh ghi trong 8951 được định dạng như một phần của RAM trên chip vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp). Cũng như R0 đến R7, 8951 có 21 thanh ghi có chức năng đặc biệt (SFR: Special Function Register) ở vùng trên của RAM nội từ địa chỉ 80H - FFH. Chú ý: tất cả 128 địa chỉ từ 80H đến FFH không được định nghĩa, chỉ có 21 thanh ghi có chức năng đặc biệt được định nghĩa sẵn các địa chỉ. Ngoại trừ thanh ghi A có thể được truy xuất ngầm như đã nói, đa số các thanh ghi có chức năng điệt biệt SFR có thể địa chỉ hóa từng bit hoặc byte. Từ trạng thái chương trình ở địa chỉ D0H được tóm tắt như sau: Từ trạng thái chương trình: Từ trạng thái chương trình (PSW: Program Status Word) ở địa chỉ D0H chứa các bit trạng thái như bảng tóm tắt sau: Bit Ký hiệu Địa chỉ Y nghĩa PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY AC F0 RS1 RS0 OV P D7H D6H D5H D4H D3H D2H D1H D0H Cờ nhớ Cờ nhớ phụ Cờ 0 Bit 1 chọn bank thanh ghi Bit chọn bank thanh ghi. 00=bank 0; địa chỉ 00H-07H 01=bank 1: địa chỉ 08H-0FH 10=bank 2:địa chỉ 10H-17H 11=bank 3:địa chỉ 18H-1FH Cờ tràn Dự trữ Cờ Parity chẵn. Bảng : Từ trạng thái chương trình Cờ nhớ (CY) có công dụng kép. Thông thường nó được dùng cho các lệnh toán học: nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn phép trừ . Ví dụ, nếu thanh ghi tích lũy chứa FFH, thì lệnh sau: ADD A,#1 Sẽ trả về thanh ghi tích lũy kết qủa 00H và set cờ nhớ trong PSW. Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit. Ví dụ, lệnh sẽ AND bit 25H với cờ nhớ và đặt kết qủa trở vào cờ nhớ: ANL C,25H Cờ nhớ phụ: Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết qủa của 4 bit thấp trong khoảng 0AH đến 0FH. Nếu các giá trị cộng được là số BCD, thì sau lệnh cộng cần có DA A( hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết qủa lớn hơn 9 trở về tâm từ 0¸9. Cờ 0 Cờ 0 (F0)là một bit cờ đa dụng dành các ứng dụng của người dùng. Các bit chọn bank thanh ghi Các bit chọn bank thanh ghi (RSO và RS1) xác định bank thanh ghi được tích cực. Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần. Ví dụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7 (địa chỉ byte IFH) đến thanh ghi tích lũy: SETB RS1 SETB RSO MOV A,R7 Khi chương trình được hợp dịch các địa chỉ bit đúng được thay thế cho các ký hiệu “RS1” và “RS0”. Vậy lệnh SETB RS1 sẽ giống như lệnh SETB 0D4H. Cờ Tràn Cờ tràn (OV) được set một lệnh cộng hoặc trừ nếu có một phép toán bị tràn. Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để xác định xem kết qủa của nó có nằm trong tầm xác định không. Khi các số không dấu được cộng, bit OV có thể được bỏ qua. Các kết qủa lớn hơn +127 hoặc nhỏ hơn –128 sẽ set bit OV. 2.Timer 0 và timer 1: a. Thanh ghi chế độ định thời TMOD: GATE C/T M1 M0 GATE C/T M1 M0 TMOD chứa hai nhóm 4 bit dùng để thiết lập chế độ định thời cho bộ định thời 0 và bộ định thời 1. TMOD không được định địa chỉ từng bit mà được thiết lập một lần bằng phần mềm ở đầu chương trình. Bit Tên Timer Mô tả 7 GATE 1 Bit (Mở) cổng, khi lên 1 timer chỉ chạy khi INT1 ở mức cao. 6 C/T 1 Bit chọn chế độ counter/timer 1=bộ đếm sự kiện 0=bộ định khoảng thời gian 5 M1 1 Bit 1 của chế độ(mode) 4 M0 1 Bit 0 của chế độ 00: chế độ 0 : timer 13 bit 01: chế độ 1 : timer 16 bit 10: chế độ 2 : tự động nạp lại 8255A bit 11: chế độ 3 : tách timer 3 GATE 0 Bit (mở) cổng 2 C/T 0 Bit chọn counter/timer 1 M1 0 Bit 1 của chế độ 0 M0 0 Bit 0 của chế độ Tương tự như vậy với bốn bit của bộ định thời 0. Với các chế độ định thời được chọn: M1 M0 Chế độ Mô tả 0 0 0 Chế độ định thời 13 bit 0 1 1 Chế độ định thời/ bộ đếm 16 bit 1 0 2 Chế độ định thời/ bộ đếm 8 bit tự nạp lại 1 1 3 Timer 0: TL0 là bộ định thời/ đếm 8 bit điều khiển bởi các bit chọn của Timer 0 chuẩn. TH0 là một bộ timer 8 bit điều khiển bởi các bit chọn của Timer 1. Còn Timer 1 dừng không hoạt động. b. Thanh ghi điều khiển định thời: TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Bit Tên Địa chỉ bit Mô tả TCON.7 TF1 8Fh Cờ tràn của bộ định thời 1. Được set bởi phần cứng khi có tràn, được xoá bởi phần mềm hoặc phần cứng khi bộ vi xử lý trỏ đến trình phục vụ ngắt. TCON.6 TR1 8Eh Bit điều khiển Timer 1. Set hoặc xoá bởi phần cứng để timer 1 hoạt động hoặc ngừng. TCON.5 TF0 8Dh Cờ tràn của Timer 1. Set/ xoá bởi phần cứng khi Timer/ Counter 0 tràn hoặc bộ vi xử lý trỏ đến trình phục vụ ngắt. TCON.4 TR0 8Ch Bit điều khiển hoạt động của Timer 0. TCON.3 IE1 8Bh Cờ ngắt bên ngoài 1 (kích khởi cạnh). Hoạt động bởi phần cứng. TCON.2 IT1 8Ah Cờ ngắt bên ngoài 1 (kích khởi cạnh hoặc mức). Hoạt động bởi phần mềm. TCON.1 IE0 89h Cờ ngắt bên ngoài 0 (kích khởi cạnh). Hoạt động bởi phần cứng. TCON.0 IT0 88h Cờ ngắt bên ngoài 0 (kích khởi cạnh hoặc mức). Hoạt động bởi phần mềm. 3. Các ngắt: Cho phép và không cho phép ngắt IE: EA - ET2 ES ET1 EX1 ET0 EX0 Bit Ký hiệu Mô tả IE.7 EA Cho phép/ không cho phép ngắt toàn cục. IE.6 - Chưa được sử dụng . IE.5 ET2 Cho phép ngắt bộ định thời 2. IE.4 ES Cho phép ngắt do port nối tiếp . IE.3 ET1 Cho phép ngắt do timer 1. IE.2 EX1 Cho phép ngắt do ngắt ngoài 1. IE.1 ET0 Cho phép ngắt do timer 0. IE.0 EX0 Cho phép ngắt do ngắt ngoài 0. Thanh ghi xác định ưu tiên ngắt IP: - - PT2 PS PT1 PX1 PT0 PX0 Bit Ký hiệu Mô tả IP.7 - Chưa được sử dụng. IP.6 - Chưa được sử dụng. IP.5 PT2 Ưu tiên cho ngắt do timer 2. IP.4 PS Ưu tiên cho ngắt do port nối tiếp. IP.3 PT1 Ưu tiên cho ngắt do timer 1. IP.2 PX1 Ưu tiên cho ngắt do ngắt ngoài 1. IP.1 PT0 Ưu tiên cho ngắt do timer 0. IP.0 PX0 Ưu tiên cho ngắt do ngắt ngoài 0. Thanh ghi điều khiển hoạt động cổng nối tiếp SCON: SM0 SM1 SM2 REN TB RB8 TI RI Bit Ký hiệu Mô tả SCON.7 SM0 Bit 0 chọn chế độ của port nối tiếp. SCON.6 SM1 Bit 1 chọn chế độ của port nối tiếp. SCON.5 SM2 Bit 2 chọn chế độ của port nối tiếp. SCON.4 REN Set/ xoá bằng phần mềm để cho phép/ không cho phép thu. SCON.3 TB8 Bit phát 8. Bit thứ 9 được phát ở các các chế độ 2 và 3; được set hoặc xoá bởi phần mềm. SCON.2 RB8 Bit phát 8. Bit thứ 9 nhận được cờ ngắt phát; được xoá bởi phần mềm. SCON.1 TI Cờ ngắt phát. SCON.0 RI Cờ ngắt thu. PHẦN III THIẾT KẾ PHẦN CỨNG BOARD MẠCH PHÁT TRIỂN TRÊN NỀN TẢNG VI ĐIỀU KHIỂN 8051 I. Thiết kế phần cứng BOARD phát triển trên nền vi điều khiển 8051 Mục đích thiết kế Thiết kế Board dựa trên nền tảng vi điều khiển 80C51 xây dựng bàn thí nghiệm về vi điều khiển. Bàn thí nghiệm này giúp cho người sử dụng có thể dễ dàng nạp mã chương trình mà người sử dụng lập trình. Sau đó có thể chạy thử để xem kết quả lập trình của mình có đúng không, có theo đúng ý muốn không. Một yêu cầu cơ bản là quá trình nạp vào chip mã chương trình phải được thực hiện một cách dễ dàng không cần phải tháo chip khi nạp lại chương trình, và trong quá trình chương trình đang thực hiện người sử dụng có thể quan sát được các thông số thay đổi trong các thanh ghi, từ đó có thể biết được phần lập trình của mình đúng sai như thế nào. Vì mang tính chất là một bàn thí nghiệm nên nó phải được thiết kế một cách đơn giản, dễ sử dụng và phải tích hợp các ngoại vi cần thiết trong quá trình thực hiện thí nghiệm về vi điều khiển như : hệ thống đèn LED, LCD, bàn phím, động cơ bước… Việc tích hợp các thiết bị ngoại vi trên bàn thí nghiệm này cho phép người sử dụng có thể thực hiện thí nghiệm với các bài toán lập trình sử dụng các ngoại vi khác nhau trong các bài thí nghiệm khác nhau. Như vậy, Bo mạch này phải có khả năng ứng dụng vào nhiều bài toán khác nhau thông qua thay đổi mã chương trình lập trình cho vi điều khiển 8051. Từ đó người sử dụng có thể hiểu hơn về môn học kỹ thuật vi điều khiển. Yêu cầu thiết kế Như vậy, xuất phát từ mục đích thiết kế Board phát triển trên nên tảng vi điều khiển 8051 yêu cầu ta phải xây dựng một bo mạch đa năng tích hợp các chíp cần thiết : Bộ nhớ ngoài: Ram, Rom Mở rộng cổng vào ra Giao tiếp với máy tính Chuyển đổi A/D Giao tiếp bàn phím Hiển thị Led Hiển thị Led 7 thanh Hiển thị LCD Các đầu ra xung Điều khiển động cơ bước, điều khiển động cơ một chiều Giao tiếp máy tính Các chân I/O của vi điều khiển cũng như các chíp mở rộng cổng được đưa ra các khe cắm ( CONx) tiện cho việc ghép nối với các thành phần khác. Khả năng mở rộng của bo mạch chúng ta thiết kế. Dễ dàng cho người lập trình. Phương án thực hiện Từ mục đích thiết kế: -Bàn thí nghiệm phải có khả năng ứng dụng vào nhiều bài toán khác nhau thông qua thay đổi mã chương trình lập trình cho vi điều khiển 8051. - Quá trình nạp vào chip mã chương trình phải được thực hiện một cách dễ dàng không cần phải tháo chip khi nạp lại chương trình. - Khi chương trình ứng dụng đang thực hiện thì người sử dụng có thể quan sát được các thông số thay đổi trong các thanh ghi cần thiết. phương án thiết kế hợp lý nhất là : -Viết BIOS trên bộ nhớ ROM của vi điều khiển 8051 -chương trình thực hiện được nạp trực tiếp vào RAM ngoài có nghĩa là sử dụng Ram ngoài như bộ nhớ vừa đọc vừa ghi. 1.4 Lựa chọn thiết bị Chip : Vì yêu cầu là thiết kế bàn thí nghiệm về vi điều khiển cho sinh viên nên không cần yêu cầu sử dụng chip có tốc độ xử lý nhanh, tích hợp nhiều chức năng, cũng như khả năng tính toán … mà vấn đề là từ bàn thí nghiệm này người sử dụng có một cái nhìn tổng quan nhất về vi xử lý, vi điều khiển. hơn nữa, chíp này phải đảm bảo một điều rất quan trọng nữa là khả năng lập trình cho chip, bởi chúng ta biết rằng, đối tượng sử dụng bàn thí nghiệm này là sinh viên mới bắt đầu tiếp cận môn học vi điều khiển nên nếu ta sử dụng chip mà phần cứng của nó quá phức tạp và khó tiếp cận thì không phù hợp. Chính vì các lý do trên thì Chíp 8051 được sử dụng cho bàn thí nghiệm là sự lựa chọn hợp lý nhất. Ram ngoài : Ram là bộ nhớ truy xuất ngẩu nhiên, có nghĩa là bất kì ô nhớ nào cũng dễ dàng truy xuất như những ô nhớ khác. -Khuyết điểm của Ram là dữ liệu lưu trữ trong Ram sẽ mất khi mất điện. -Ưu điểm chính của Ram là có thể đọc và ghi nhanh chóng. 8051 có khả năng mở rộng bộ nhớ đến 64 kbyte bộ nhớ chương trình và 64 kbyte bộ nhớ dữ liệu bên ngoài. Tuy nhiên để phù hợp với nhu cầu thiết kế và thi công đòi hỏi đơn giản. Hơn nữa, mã chương trình được nạp vào ram chỉ là những chương trình đơn giản được thực hiện trong quá trình làm thí nghiệm bởi vậy không nhất thiết đòi hỏi dung lượng bộ nhớ lớn và tốc độ truy nhập nhanh. Trên phương diện thiết kế c._.

Các file đính kèm theo tài liệu này:

  • docDA0299.DOC
Tài liệu liên quan