Đồ án Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi : LCD, ADC0809, RTC DS12887 và bàn phím sè HEX

Đề tài: Thiết kế mạch thí nghiệm dùng Vi điÒu khiển 80C51 phối ghép với thiết bị ngoại vi : LCD, ADC0809, RTC DS12887 và bàn phím sè HEX. Điều khiển tự động, ngày nay đã và đang được ứng dụng vào rất nhiều ngành sản xuất và cuộc sống. Từ những nhà máy, dây chuyền sản xuất cho đến những đồ dùng phục vô sinh hoạt nh­: máy giặt, lò vi sóng Để thực hiện việc điều khiển tự động có nhiều phương pháp, cách thức nh­ bằng máy tính, vi xử lý hay hệ điều khiển chuyên dụng. Tùy vào lĩnh vực mà lùa chọn hệ thống điều khiển thích hợp. Với sinh viên học chuyên ngành điều khiển tự động phải nắm bắt được tất cả những kiến thức cơ sở, tổng quát nhất để từ đó có thể giải quyết các bài toán điều khiển đặt ra trong công việc sau này. Một trong những kiến thức cần phải có đó là việc nghiên cứu và thiết kế mạch ứng dụng sử dụng bộ vi điều khiển. Do đó chúng em đã chọn đề tài : Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi LCD, ADC0809, RTC DS12887 và HEX-keypad. Các công việc thực hiện: • Tìm hiểu về Vi điều khiển 8051, và các thiết bị ngoại vi. • Thiết kế mạch nguyên lý. • Xây dựng các bài toán điều khiển. Phương pháp thực hiện • Tìm hiểu các thiết bị • Vẽ mạch nguyên lý bằng phần mềm Protel • Viết phần mềm bằng hợp ngữ bằng KeilC

doc82 trang | Chia sẻ: oanhnt | Lượt xem: 2316 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi : LCD, ADC0809, RTC DS12887 và bàn phím sè HEX, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Độc lập – Tù do – Hạnh phóc NHIỆM VÔ THIẾT KẾ TỐT NGHIỆP Họ và tên Ngô Quốc Toàn Khoá: 4 Khoa: Điện Ngành Điều khiển Tự động 1. ĐÒ tài: Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi : LCD, ADC0809, RTC DS12887 và bàn phím sè HEX. 2. Các số liệu ban đầu: ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………… 3. Nội dung các phần thuyết minh và tính toán: ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… 4. Các bản vẽ đồ thị (ghi rõ các loại bản vẽ và kích thước các bản vẽ): ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 5. Cán bộ hướng dẫn: …………..…Vũ Vân Hà … ……………………… 6. Ngày giao nhiệm vụ thiết kế:…………………………..………………... 7. Ngày hoàn thành nhiệm vụ:..…………………………………………….. Ngày tháng 04 năm 2006 CHỦ NHIỆM BỘ MÔN CÁN BỘ HƯỚNG DẪN (Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên) Sinh viên đã hoàn thành Ngày tháng 04 năm 2006 (Ký, ghi rõ họ tên) Mục Lục Lời cảm ơn.......................................................................................................7 MỞ ĐẦU .............................................................................................................8 Phần I: Tổng quan về VđK 8051 và Các thiết bị ngoại vi.........9 CHƯƠNG I: VI ĐIỀU KHIỂN 8051..............................................................9 I. KHÁI NIỆM CHUNG VỀ VI ĐIỀU KHIỂN...........................................9 I.1 Sù ra đời..............................................................................................9 I.2 Điểm khác biệt giữa VĐK và VXL dùng chung................................9 I.3 Tiêu chuẩn lùa chọn 1 bé vi điều khiển............................................10 II. VI ĐIỀU KHIỂN 8051..........................................................................10 II.1 Sơ đồ khối của 8051........................................................................10 II.2 Sơ đồ và chức năng các chân của 8051...........................................11 II.2.1 Sơ đồ các chân.........................................................................11 II.2.2 Chức năng của các chân..........................................................11 II.2.3 Cấu trúc của các cổng xuất/nhập............................................14 II.3 Tổ chức bộ nhớ 8051.......................................................................14 II.3.1 Vùng RAM đa mục đích.........................................................15 II.3.2 Vùng RAM định địa chỉ bit....................................................15 II.3.3 Các dãy thanh ghi....................................................................15 II.3.4 Các thanh ghi chức năng đặc biệt...........................................15 II.3.4.1 Từ trạng thái chương trình PSW...................................15 II.3.4.2 Thanh ghi B.................................................................16 II.3.4.3 Con trá stack................................................................16 II.3.4.4 Con trỏ dữ liệu.............................................................17 II.3.4.5 Các thanh ghi port........................................................17 II.3.4.6 Các thanh ghi định thời TMOD và TCON...................17 II.3.4.7 Thanh ghi của cổng nối tiếp.........................................19 II.3.4.8 Các thanh ghi ngắt........................................................20 II.3.4.9 Thanh ghi điều khiển nguồn.........................................20 II.4 Bộ nhớ ngoài...................................................................................21 II.4.1 Truy xuất bộ nhớ chương trình ngoài......................................21 II.4.2 Truy xuất bé nhớ dữ liệu ngoài..............................................22 II.4.3 Hoạt động Reset......................................................................23 III. TẬP LỆNH CỦA 8051.........................................................................24 III.1 Các kiểu định địa chỉ.....................................................................24 III.1.1 Định địa chỉ thanh ghi...........................................................24 III.1.2 Định địa chỉ trực tiếp.............................................................24 III.1.3 Định địa chỉ gián tiếp............................................................25 III.1.4 Định địa chỉ tức thời..............................................................26 III.1.5 Định địa chỉ tương đối...........................................................26 III.1.6 Định địa chỉ tuyệt đối............................................................26 III.1.7 Định địa chỉ dài.....................................................................27 III.1.8 Định địa chỉ chỉ số.................................................................27 III.2 Các loại lệnh.......................................................................................27 III.2.1 Lệnh số học............................................................................27 III.2.2 Các lệnh Logic.......................................................................28 III.2.3 Nhóm lệnh di chuyển dữ liệu.................................................30 III.2.4 Các lệnh xử lý bit...................................................................31 III.2.5 Các lệnh rẽ nhánh..................................................................31 III.2.6 Nhóm lệnh dịch, quay............................................................33 III.2.7 Các lệnh làm việc với Stack...................................................33 IV. HOẠT ĐỘNG ĐỊNH THỜI.................................................................33 IV.1 Các bộ định thời của 8051.............................................................33 IV.2 Thanh ghi chế độ bộ định thời......................................................34 IV.2.1 Các chế độ định thời và cờ tràn.............................................34 IV.2.1.1 Chế độ định thời 13-bit..................................................34 IV.2.1.2 Chế độ định thời 16-bit..................................................34 IV.2.1.3 Chế độ tự nạp lại 8-bit...................................................34 IV.2.1.4 Chế độ định thời chia xẻ................................................35 IV.3 Nguồn xung clock định thời .........................................................35 V. HOẠT ĐỘNG NGẮT............................................................................35 V.1 Tổ chức ngắt của 8051....................................................................35 V.1.1 Cho phép và không cho phép ngắt... ..........................................35 V.1.2 Ưu tiên ngắt............................................................................35 V.1.3 Chuỗi vòng..............................................................................36 V.2 Xử lý ngắt......................................................................................36 V.3 Các vector ngắt...............................................................................36 V.4 Các ngắt do port nối tiếp ................................................................36 V.5 Các ngắt ngoài................................................................................37 VI. LẬP TRÌNH HỢP NGỮ........................................................................37 VI.1 Trình dịch hợp ngữ........................................................................37 VI.2 Khuôn dạng của chương trình hợp ngữ..........................................37 VI.3 Cấu trúc chương trình....................................................................38 VI.4. Tổ chức chương trình....................................................................38 CHƯƠNG II: CÁC THIẾT BỊ NGOẠI VI......................................................39 I. ĐỒNG HỒ THỜI GIAN THỰC DS12887..............................................39 I.1 Hoạt động.........................................................................................40 I.2 Chức năng các chân .........................................................................41 I.3 Bản đồ địa chỉ................................ ...................................................................................43 I.4 Các thanh ghi điều khiển..................................................................46 I.5 Minh họa ghép nối giữa DS12887 với 8051.....................................49 II. THIẾT BỊ HIỂN THỊ LCD....................................................................49 II.1 LCD.................................................................................................49 II.2 Minh họa ghép nối giữa LCD với 8051...........................................52 III. ADC0809..............................................................................................52 III.1 Sơ đồ các chân của ADC0809........................................................53 III.2 Các bước lập trình cho ADC0809..................................................54 III.3 Minh họa ghép nối ADC0809 với 8051.........................................55 IV.BÀN PHÍM HEX..................................................................................55 IV.1 Minh họa ghép nối bàn phím với 8051..........................................56 V. GIẢI MÃ ĐỊA CHỈ 74LS138................................................................57 VI. CHỐT ĐỊA CHỈ 74HC373...................................................................57 V.1.Sơ đồ chân của 74HC373................................................................57 V.2 Hoạt động của 74LS373..................................................................57 PHẦN II. THIẾT KẾ..........................................................................................59 CHƯƠNG I: THIẾT KẾ PHẦN CỨNG...........................................................59 I. Mạch nguyên lý.......................................................................................59 II.Sơ đồ mạch..............................................................................................61 CHƯƠNG II: THIẾT KẾ PHẦN MỀM...........................................................62 I. Chuơng trình quét bàn phím HEX...........................................................62 II. Đọc thời gian từ đồng hồ thời gian thực RTC DS12887........................67 III. ĐiÒu khiển ADC0809 để thực hiện chuyển đổi....................................74 KẾT LUẬN.........................................................................................................78 TÀI LIỆU THAM KHẢO..................................................................................79 Lời cảm ơn Trước hết chúng em gửi lời cám ơn tới tập thể các thầy cô giáo bộ môn Điều khiển tự động - Khoa điện trường Đại học Bách khoa Hà Nội. Đã luôn giúp đỡ và truyền đạt cho chóng em những kiến thức quý báu trong qúa trình học tập tại trường. Chóng em xin chân thành cảm ơn thầy giáo hướng dẫn Vũ Vân Hà đã nhiệt tình hưỡng dẫn chúng em trong quá trình làm đồ án . Sinh viên thực hiện Trịnh Mạnh Hùng Nguyễn Xuân Linh Ngô Quốc Toàn MỞ ĐẦU Đề tài: Thiết kế mạch thí nghiệm dùng Vi điÒu khiển 80C51 phối ghép với thiết bị ngoại vi : LCD, ADC0809, RTC DS12887 và bàn phím sè HEX. Điều khiển tự động, ngày nay đã và đang được ứng dụng vào rất nhiều ngành sản xuất và cuộc sống. Từ những nhà máy, dây chuyền sản xuất cho đến những đồ dùng phục vô sinh hoạt nh­: máy giặt, lò vi sóng… Để thực hiện việc điều khiển tự động có nhiều phương pháp, cách thức nh­ bằng máy tính, vi xử lý hay hệ điều khiển chuyên dụng. Tùy vào lĩnh vực mà lùa chọn hệ thống điều khiển thích hợp. Với sinh viên học chuyên ngành điều khiển tự động phải nắm bắt được tất cả những kiến thức cơ sở, tổng quát nhất để từ đó có thể giải quyết các bài toán điều khiển đặt ra trong công việc sau này. Một trong những kiến thức cần phải có đó là việc nghiên cứu và thiết kế mạch ứng dụng sử dụng bộ vi điều khiển. Do đó chúng em đã chọn đề tài : Thiết kế mạch thí nghiệm dùng Vi điều khiển 80C51 phối ghép với các thiết bị ngoại vi LCD, ADC0809, RTC DS12887 và HEX-keypad. Các công việc thực hiện: · Tìm hiểu về Vi điều khiển 8051, và các thiết bị ngoại vi. · Thiết kế mạch nguyên lý. · Xây dựng các bài toán điều khiển. Phương pháp thực hiện · Tìm hiểu các thiết bị · Vẽ mạch nguyên lý bằng phần mềm Protel · Viết phần mềm bằng hợp ngữ bằng KeilC Phần I :tổng quan về Vi đIều khiển 8051 và các thiết bị ngoại vi CHƯƠNG I: VI ĐIỀU KHIỂN 8051 I. KHÁI NIỆM CHUNG VỀ VI ĐIỀU KHIỂN I.1. Sù ra đời Vào năm 1971 tập đoàn Intel đã giới thiệu 8080, bé vi xử lí thành công đầu tiên, tiếp đó không lâu Motorola, RCA, MOS Technology và Zilog còng đã giới thiệu các bộ vi xử lí tương tù : 6800, 1801, 6502 và Z80. Bản thân các vi mạch này tuy không có nhiều hiệu quả sử dụng nhưng khi là một phần của một máy tinh đơn board (Single Board Computer), chóng trở thành thành phần trung tâm trong các sản phẩm có Ých dùng để nghiên cứu và thiết kế. Năm 1976 Intel giới thiệu bộ vi điều khiển( Micro Controller) 8748, mét chip tương tù nh­ các bộ vi xử lí và là chip đầu tiên trong họ vi điều khiển MCS-48. 8748 là một vi mạch chứa trên 17000 transistor bao gồm một CPU, 1Kbyte EPROM, 64 byte RAM, 27 chân xuất nhập và một bộ định thời 8 bit. Sù ra đời của IC này và các IC khác của họ MCS-48 đã nhanh chóng trở thành chuẩn công nghiệp trong các ứng dụng hướng điều khiển (Control Oriented Application). Độ phức tạp, kích thước và khả năng của bộ vi điều khiển được tăng thêm một bậc quan trọng vào năm 1980 khi Intel công bè chip 8051, bé vi điều khiển đầu tiên của họ vi điều khiển MCS-51. So với 8048, chip 8051 chứa trên 60000 transistor bao gồm 4Kbyte ROM, 128 byte RAM, 32 đường xuất nhập, 1 port nối tiếp và 2 bộ định thời 16 bit. Vi điều khiển 8051 còng nh­ họ vi điều khiển MCS-51 là một trong những bộ vi điều khiển 8-bit mạnh và linh hoạt nhất, đã trở thành bộ vi điều khiển hàng đầu trong những năm gần đây. I.2 ĐiÓm khác biệt giữa vi điÒu khiển và vi xử lý dùng chung Những bé vi xử lý dùng chung thường gặp nh­ họ Intel x86 (8086, 80286, 80386, 80486, Pentium..) hoặc họ 680x0 của Motorola (6800, 68010, 68020, 68030, 68040…). Những bộ vi xử lý này không có RAM, ROM và không có các port I/O trên chip, do đã khi sử dụng thiết kế hệ thống phải bổ sung thêm RAM, ROM, I/O và các bộ định thời (Timer/Counter) ngoài để cho chúng hoạt động được. Tuy việc này làm cho hệ thống cồng kềnh, phức tạp và giá thành cao hơn nhưng chúng lại có ưu điÓm là linh hoạt hơn so với vi điều khiển. Trong khi đó với vi điều khiển nó có sẵn : 1 CPU( bé vi xử lý) cùng 1 lượng cố định RAM, ROM, các cổng I/O và Timer/Counter được tích hợp tất cả trên cùng 1 chip. I.3 Tiêu chuẩn lùa chọn 1 bé vi điều khiển Hiện nay có nhiều loại vi điều khiển, với loại vi điều khiển 8bit có 4 loại chính sau: 6811 (Motorola), 8051 (Intel), Z8 (Zilog) và PIC16x (Micro Technology). Mỗi loại trên đều có 1 tập lệnh và thanh ghi riêng nên chúng đều không tương thích lẫn nhau. Ngoài ra còn có những bộ vi điều khiển 16bit và 32bit, vì thế để lùa chọn bé vi điÒu khiển trong thiết kế cần phải dùa trên những tiêu chuẩn sau: Đáp ứng nhu cầu tính toán của bài toán 1 cách hiệu quả về giá thành và đầy đủ chức năng có thể nhìn thấy được: Tốc độ: tốc độ lớn nhất mà bộ vi điều khiển hỗ trợ là bao nhiêu? Kiểu đóng vỏ: kiểu DIP (Dual In-line Package) hay QFP (Quadrangle Flat Package). Đây là điÒu quan trọng đối với yêu cầu về không gian, kiểu lắp ráp và tạo mẫu cho sản phẩm. Công suất tiêu thụ. Dung lượng RAM, ROM trên chip. Số cổng vào/ra và Timer/Counter trên chip. Giá thành trên 1 đơn vị sản phẩm. Công cụ phát triển phần mềm. Nguồn cung cấp các bộ vi điều khiển: tức khả năng sẵn sàng đáp ứng về số lượng trong hiện tại và tương lai. II. VI ĐIỀU KHIỂN 8051 Vi điều khiển 8051 là thành viên đầu tiên của họ MCS-51 của Intel, sau đố các nhà sản xuất IC khác nh­ Siemens, Advanded Devices, Phillips …được cấp phép làm nhà cung cấp thứ 2 cho các chip của họ MCS-51. II.1 Sơ đồ khối của 8051 Chip 8051 có các đặc trưng cơ bản sau: 4 Kbyte ROM 128 Byte RAM 4 I/O port 8bit 1 bộ điÒu khiển ngắt ( Interrupt Control) 1 Mạch dao động nội (Oscillatior) 1 bộ điÒu khiển bus (Bus Control) 2 Timer 16bit Mạch giao tiếp nối tiếp Không gian nhớ chương trình (mã) ngoài 64Kbyte Không gian nhớ dữ liệu ngoài 64Kbyte Bộ xử lý bit 210 vị trí nhớ được định địa chỉ Nhân/chia trong 4ms Hình 1: Sơ đồ khối của chip 8051 II.2 SƠ ĐỒ VÀ CHỨC NĂNG CÁC CHÂN CỦA 8051 II.2.1 Sơ đồ các chân : Hình 2: Sơ đồ các chân của 8051 II.2.2 Chức năng của các chân Port 0 : Port 0 (các chân từ 32 ® 39) có 2 công dụng: có thể được sử dụng làm nhiệm vụ xuất/nhập hoặc trở thành bus địa chỉ và bus dữ liệu đa hợp. Port 1: Port 1 (các chân từ 1® 8) chỉ có 1 công dụng là xuất/nhập. Port 2: Port 2 (các chân từ 21® 28) có 2 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-bit. Port 3: Port 3 (các chân 10® 17) có 2 công dụng. Khi không hoạt động xuất/nhập, các chân của Port 3 có nhiều chức năng riêng. Bit Tên Địa chỉ bit Chức năng P3.0 RXD B0H Chân nhận dữ liệu của port nối tiếp P3.1 TXD B1H Chân phát dữ liệu của port nối tiếp P3.2 B2H Ngõ vào ngắt ngoài 0 P3.3 B3H Ngõ vào ngắt ngoài 1 P3.4 T0 B4H Ngõ vào của Timer/Counter 0 P3.5 T1 B5H Ngõ vào của Timer/Counter 0 P3.6 B6H ĐiÒu khiển ghi bé nhớ dữ liệu ngoài P3.7 B7H ĐiÒu khiển đọc bộ nhớ dữ liệu ngoài Hình 2: Sơ đồ các chân của 8051 Chân (Program Store Enable) : (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 được 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 lệnh. Tín hiệu ở mức logic 0 trong suốt thời gian tìm và nạp lệnh. Khi thực thi chương trình ở ROM nội , được duy trì ở mức logic 1 (logic không tích cực). Chân ALE (chân 30): chân xuất tín hiệu cho phép chốt địa chỉ (Address Latch Enable) để giải đa hợp (Demultiplexing) bus dữ liệu và bus địa chỉ. Tín hiệu ALE có tần số f=1/6 fosc (fosc: tần số của bộ dao động bên trong 8051) và có thể được dùng làm xung clock cho các phần còn lại của hệ thống. Chân ALE còn được dùng để nhận xung ngõ vào lập trình cho EPROM. Chân truy xuất ngoài (chân 31) : ngõ vào này có thể được nối +5V (mức logic 1) hoặc nối đất (mức logic 0). Nếu chân này có mức logic 1: 8051 thực thi chương trình trong ROM nội, còn khi ở mức logic 0 thì 8051 thực thi chương trình chứa ở bộ nhớ ngoài. Các phiên bản EPROM của 8051 còn sử dụng chân làm chân nhận điện áp cấp điện 21V cho việc lập trình EPROM nội. Chân RESET (chân 9): đây là ngõ vào xóa chính (Master reset) của 8051, dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là Reset hệ thống. Khi ngõ vào này được treo ở mức logic 1 tối thiểu là 2 chu kỳ máy, các thanh ghi bên trong 8051 được nạp các giá trị thích hợp cho việc khởi động lại hệ thống. XTAL1 và XTAL2 ( chân 18 và 19): 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 của thạch anh là 12 MHz cho hầu hết các chip của họ MCS-51. XTAL1: Ngõ vào đến mạch khuếch đại đảo của mạch dao động. XTAL2: Ngõ ra từ mạch khuếch đại đảo của mạch dao động. Chân Vcc (chân 40) lấy nguồn nuôi +5V để cấp cho chip. Chân Vss ( chân 20) chân nối đất. II.2.3. Cấu trúc của các cổng xuất/nhập. Việc ghi đến một chân