Giáo trình Vi xử lý - CĐ Nghề Công Nghiệp Hà Nội
lượt xem 7
download
Giáo trình Vi xử lý cung cấp cho người đọc những kiến thức như: sơ lược về lịch sử và hướng phát triển của vi xử lý; cấu trúc họ vi điều khiển 8051; Tập lệnh của vi điều khiển; ngắt và định thời;...Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình Vi xử lý - CĐ Nghề Công Nghiệp Hà Nội
- GIÁO TRÌNH VI XỬ LÝ ( Lưu hành nội bộ) HÀ NỘI 2012 44
- BÀI 1. SƠ LƯỢC VỀ LỊCH SỬ VÀ HƯỚNG PHÁT TRIỂN CỦA VI XỬ LÝ Mục tiêu: + Kiến thức: - Trình bày được lịch sử phát triển của vi xử lý; - Trình bày được cấu trúc chung của vi xử lý; - Phát biểu đúng các ứng dụng của vi xử lý và hướng phát triển của vi xử lý; + Kỹ năng: - Nâng cao kỹ năng hoạt động nhóm trong quá trình học tập; + Thái độ: - Đảm bảo an toàn cho người và thiết bị, Các thuật ngữ chuyên môn: Được giải thích chi tiết trong nội dung bài học Nội dung: A. LÝ THUYẾT 1.1. Giới thiệu lịch sử phát triển của vi xử lý Trước khi tìm hiểu lịch sử phát triển của vi xử lý chúng ta cùng nhắc lại lịch sử phát triển của vi xử lý. Lịch sử phát triển của vi xử lý gắn liền với sự phát 45
- triển của các vi mạch điện tử vì vi xử lý là vi mạch điện tử chế tạo theo công nghệ LSI (Large Scale Integrated) cho đến VLSI (Very Large Scale Integrated). Với sự khám phá ra transistor và phát triển của công nghệ chế tạo vi mạch SSI, MSI, máy tính vẫn còn là một nhóm gồm nhiều IC kết hợp lại với nhau, cho đến thập niên 70, với sự phát triển của công nghệ LSI, cấu trúc máy tính được rút gọn bởi các nhà thiết kế và được chế tạo thành một IC duy nhất được gọi là vi xử lý (microprocessor). Vi xử lý kết hợp với các thiết bị khác tạo ra các máy tính có khả năng tính toán rất lớn như máy vi tính và có thể tạo ra các sản phẩm khác các máy điện thoại, các tổng đài điện thoại, các hệ thống điều khiển tự động... Vi xử lý đầu tiên có khả năng xử lý 4 bit dữ liệu, các vi xử lý này có tốc độ xử lý rất chậm, các nhà thiết kế cải tiến thành vi xử lý 8 bit, sau đó là vi xử lý 16 bit và 32 bit. Sự phát triển về dung lượng các bit của vi xử lý làm tăng thêm số lượng các lệnh điều khiển và các lệnh tính toán phức tạp. Vi xử lý có rất nhiều loại bắt đầu từ 4 bit cho đến 32 bit, vi xử lý 4 bit hiện nay không còn nhưng vi xử lý 8 bit vẫn còn mặc dù đã có vi xử lý 32 bit. Lý do sự tồn tại của vi xử lý 8 bit là phù hợp với một số yêu cầu điều khiển của các thiết bị điều khiển trong công nghiệp. Các vi xử lý 32 bit thường sử dụng cho các máy tính với khối lượng dữ liệu của máy tính rất lớn nên cần các vi xử lý càng mạnh càng tốt. Các hệ thống điều khiển trong công nghiệp sử dụng các vi xử lý 8 bit để điều khiển như hệ thống điện của xe hơi, hệ thống điều hòa, hệ thống điều khiển các dây chuyền sản xuất,… Khi sử dụng vi xử lý cần phải thiết kế một hệ thống gồm có: - Vi xử lý. - Bộ nhớ. - Các IC ngoại vi. Bộ nhớ dùng để chứa chương trình cho vi xử lý thực hiện và chứa dữ liệu xử lý, các IC ngoại vi dùng để xuất nhập dữ liệu từ bên ngoài vào xử lý và điều khiển trở lại. Các khối này liên kết với nhau tạo thành một hệ thống vi xử lý. Yêu cầu điều khiển càng cao thì hệ thống càng phức tạp và nếu yêu cầu điều khiển đơn giản ví dụ chỉ cần đóng mở một đèn Led theo một thời gian yêu cầu nào đó thì hệ thống vi xử lý cũng phải có đầy đủ các khối trên. Để kết nối các khối trên tạo thành một hệ thống vi xử lý đó hỏi người thiết kế phải rất hiểu biết về tất cả các thành phần vi xử lý, bộ nhớ, các thiết bị ngoại vi. Hệ thống tạo ra khó phức tạp, chiếm nhiều không gian, mạch in, và vấn đề chính là đó hỏi người thiết kế, người sử dụng hiểu thật sự về hệ thống. Một lý do chính nữa là vi xử lý thường xử lý dữ liệu theo byte hoặc word trong khi đó các đối tượng điều khiển trong công nghiệp thường điều khiển theo bit. Chính với sự phức tạp nên các nhà chế tạo đó tích hợp một ít bộ nhớ và một số các thiết bị ngoại vi cùng với vi xử lý tạo thành một IC gọi là vi xử lý – Microcontroller. Khi vi xử lý ra đời đó mang lại sự tiện lợi là dễ dàng sử dụng trong điều khiển công nghiệp, việc sử dụng vi xử lý không đòi hỏi người sử dụng phải hiểu biết một lượng kiến thức quá nhiều như người sử dụng vi xử lý – dĩ nhiên người sử dụng hiểu biết càng nhiều thì càng tốt nhưng đối với người bắt đầu thì việc sử dụng vi xử lý là điều rất phức tạp trong khi đó mong muốn là sử dụng được ngay. 46
- Các phần tiếp theo chúng ta sẽ khảo sát vi xử lý để thấy sự sự tiện lợi trong vấn đề điều khiển trong công nghiệp. Có rất nhiều hãng chế tạo được vi xử lý, hãng sản xuất nổi tiếng là ATMEL. Hãng Intel là nhà thiết kế. Có nhiều họ vi xử lý mang các mã số khác nhau, một trong họ nổi tiếng là họ MCS-51. Trong họ MCS-51 thì vi xử lý đầu tiên là 80C31 không có bộ nhớ bên trong là do chưa tích hợp được. - Vi xử lý 80C51 tích hợp được 4 kbyte bộ nhớ PROM. Chỉ lập trình 1 lần không thể xóa để lập trình lại được. - Vi xử lý 87C51 tích hợp được 4 kbyte bộ nhớ EPROM. Cho phép lập trình nhiều lần và xóa bằng tia cực tím. - Vi xử lý 89C51 tích hợp được 4 kbyte bộ nhớ flash ROM nạp và xóa bằng điện một cách tiện lợi và nhanh chĩng. Có thể cho phép nạp xóa hàng ngàn lần. Song song với họ MCS-51 là họ MCS-52 có 3 timer nhiều hơn họ MCS- 51 một timer và dung lượng bộ nhớ nội lớn gấp đôi tức là 8Kbyte. Hiện nay có rất nhiều vi xử lý thế hệ mới với nhiều đặc tính hay hơn, nhiều thanh ghi hơn, dung lượng bộ nhớ lớn hơn. Ứng dụng của vi xử lý rất nhiều trong các hệ thống điều khiển công nghiệp, các dây chuyền sản xuất, các bộ điều khiển lập trình, máy giặt, máy điều hòa nhiệt độ, máy bơm xăng tự động… có thể nói vi xử lý và vi xử lý được ứng dụng trong hầu hết mọi lĩnh vực tự động. 1.2. Các bộ vi xử lý so với bộ vi xử lý dùng chung. Sự khác nhau giữa một bộ vi xử lý và một bộ vi xử lý như thế nào? Bộ vi xử lý ở đây là các bộ vi xử lý công dụng chung như họ Intell x86(8086, 80286, 80386, 80486 và Pentium) hoặc họ Motorola 680x0 (68000, 68010, 68020, 68030, 68040 v.v…). Những bộ vi xử lý này không có RAM, ROM và không có các cổng vào ra trên chíp. Với lý do đó mà chúng được gọi chung là các bộ vi xử lý công dụng chung 47
- Hình 1.1: Hệ thống vi xử lý được so sánh với hệ thống vi xử lý (a) Hệ thống vi xử lý công dụng chung (b) Hệ thống vi xử lý Một nhà thiết kế hệ thống sử dụng một bộ vi xử lý công dụng chung chẳng hạn như Pentium hay 68040 phải bổ xung thêm RAM, ROM, các cổng vào ra và các bộ định thời làm cho chúng cồng kềnh và đắt hơn, nhưng chúng có ưu điểm là linh hoạt chẳng hạn người thiết kế có thể quyết định về số lượng RAM, ROM và các cổng vào ra cần thiết phù hợp với bài toán trong tầm tay của mình. Điều này không thể có được đối với một bộ vi xử lý. Một bộ vi xử lý có một CPU (một bộ vi xử lý) cùng với một số lượng cố định RAM, ROM, các cổng vào ra và một bộ định thời tất cả trên cùng một chíp. Hay nói cách khác là bộ xử lý, RAM, ROM các cổng vào ra, bộ định thời đều được nhúng với nhau trên một chíp do vậy người thiết kế không thể bổ xung thêm bộ nhớ ngoài, cổng vào ra hoặc bộ định thời cho nó, chính vì vậy chúng trở lên lý tưởng với nhiều ứng dụng mà trong đó giá thành và không gian lại hạn chế. Trong nhiều ứng dụng, ví dụ một điều khiển từ xa ti vi thì không cần công suất tính toán của một bộ vi xử lý 80486 hoặc 8086. Trong rất nhiều ứng dụng mà trong đó giá thành và không gian nó chiếm, công suất nó tiêu tốn và giá thành trên một đơn vị là những còn nhắc nghiêm ngặt hơn nhiều so với công suất tính toán. Những ứng dụng thường yêu cầu một số thao tác vào ra để đọc các tín hiệu và tắt mở những bit nhất định. Với lý do đó mà một số người gọi các bộ xử lý này là IBP (Itty Bitty Processor). Điều thú vị nhất là một số nhà sản xuất các bộ vi xử lý đó đi xa hơn là tích hợp cả bộ chuyển đổi ADC và các ngoại vi khác vào trong bộ vi xử lý. Bảng1.1: Một số sản phẩm được nhúng sử dụng các bộ vi xử lý Thiết bị nội thất gia Văn phòng Ô tô đình Đồ điện trong nhà Máy tính Điều khiển động cơ Máy điện thoại Máy fax Điều khiển túi đệm khí Các hệ thống an toàn Máy điện thoại Thiết bị ABS 48
- Các bộ mở cửa ga ra xe Các hệ thống an toàn Thiết bị đo lường Máy fax Máy Scaner Hệ thống bảo mật Máy trả lời thự động Máy photocopy Điều khiển truyền tin Máy tính gia đình Máy in … Giải trí Ti vi Điều hòa nhiệt độ Truyền hình cáp Mở cửa không cần chìa Máy quay camera khóa… Điều khiển từ xa Trị chơi điện tử Các lại nhạc cụ điện tử Điều khiển ánh sáng Lò vi sóng Máy giặt Tủ lạnh Các máy tập thể dục, thể hình… 1.3. Các bộ vi xử lý cho các hệ thống nhúng Trong các tài liệu về vi xử lý, vi xử lý ta thường thấy khái niệm về hệ thống nhúng (Embeded system). Các bộ vi xử lý, vi xử lý được sử dụng rộng rãi trong các sản phẩm hệ thống nhúng. Một sản phẩm nhúng sử dụng một bộ vi xử lý hoặc một bộ vi xử lý để thực hiện một nhiệm vụ chỉ một mà thôi. Máy in là một ví dụ về một việc nhúng với bộ vi xử lý bên trong nó chỉ làm một việc là nhận dữ liệu và in ra. Điều này khác với một máy tính PC dựa trên bộ vi xử lý Pentium (hoặc một PC tương ứng với IBM x86 bất kỳ). Một PC có thể được sử dụng cho một số bất kỳ các trạm dịch vụ in, bộ đầu cuối kiểm kê trong ngân hàng, máy chơi điện tử, trạm dịch vụ mạng hoặc trạm đầu cuối mạng internet. Phần mềm cho các dịch vụ khác nhau có thể được nạp và chạy. Tất nhiên là lý do hiển nhiên để một PC thực hiện hàng loạt các công việc là nó có bộ nhớ RAM và một hệ điều hành nạp phần mềm ứng dụng thường được đốt vào trong ROM. Một máy tính chứa hoặc được nối tới các sản phẩm nhúng khác nhau chẳng hạn như bàn phím, máy in, moderm, bộ điều khiển CD ROM, Card âm thanh, chuột máy tính…Một nội ngoại vi này có một bộ vi xử lý bên trong nó để thực hiện chỉ một công việc, ví dụ trong mỗi con chuột máy tính đều có một bộ vi xử lý để thực thi công việc tìm vị trí chuột và gửi nó đến PC. 1.4. Các tiêu chuẩn lựa chọn bộ vi xử lý Có 4 bộ vi xử lý 8 bít chính. Đó là 6811 của Motorola, 8051 của Intel, Z8 của Xilog và PIC 16xx của Microchip Technology. Mỗi một kiểu loại trên đây đều có một tập lệnh và thanh ghi riêng, nên chúng đều không tương thích lẫn nhau. Cũng có những bộ vi xử lý 16 bít và 32 bít được sản xuất bởi các hãng sản xuất chíp khác nhau. Với tất cả những bộ vi xử lý khác nhau như thế thì lấy gì làm tiêu chuẩn lựa chọn và các nhà thiết kế phải cân nhắc? Có ba tiêu chuẩn để lựa chọn các bộ vi xử lý là: 1.Tiêu chuẩn đầu tiên và trước hết trong lựa chọn một bộ vi xử lý là nó phải đáp ứng nhu cầu bài toán về một mặt công suất tính toán và giá thành hiệu quả. Trong khi phân tích các nhu cầu của một dự án dựa trên bộ vi xử lý chúng ta 49
- trước hết phải biết là bộ vi xử lý nào 8 bit, 16 bit hay 32 bit có thể đáp ứng tốt nhất nhu cầu tính toán của bài toán một cách hiệu quả nhất? những tiêu chuẩn được đề ra để cân nhắc là: a. Tốc độ: Tốc độ lớn nhất của mà bộ vi xử lý hỗ trợ là bao nhiêu. b. Kiểu đóng vỏ: Đóng vỏ kiểu 40 chân DIP hay QFP hay là kiểu đóng vỏ khác (DIP – đóng vỏ theo 2 hàng chân. QFP – đóng vỏ vuông dẹt)? Đây là điều quan trọng đối với không gian, kiểu lắp ráp và tạo mẫu thử cho sản phẩm cuối cùng. c. Công suất tiêu thụ : Điều này đặc biệt khắt khe đối với những sản phẩm dùng pin, ắc quy. d. Dung lượng bộ nhớ RAM và ROM trên chíp. e. Số chân vào – ra và bộ định thời trên chíp f. Khả năng dễ dàng nâng cấp cho hiệu suất cao hoặc giảm công suất tiêu thụ g. Giá thành cho một đơn vị: Điều này quan trọng quyết định giá thành cuối cùng của sản phẩm mà một bộ vi xử lý được sử dụng 2. Tiêu chuẩn thứ 2 trong lựa chọn một bộ vi xử lý là khả năng phát triển các sản phẩm xung quanh nó dễ dàng như thế nào? Chủ yếu bao gồm khả năng có sẵn trình lượng ngữ, gỡ rối, trình biên dịch ngôn ngữ hiệu quả về mã nguồn, trình mô phỏng hỗ trợ kỹ thuật và khả năng sử dụng trong như nguồn môi trường. Trong nhiều trường hợp sự hỗ trợ nhà cung cấp thứ 3 (nghĩa là nhà cung cấp khác không phải là hãng sản xuất chíp). 3. Tiêu chuẩn thứ ba trong lựa chọn một bộ vi xử lý là khả năng sẵn sàng đáp ứng về số lượng trong hiện tại và trong tương lai. Đối với một số thiết kế điều này thậm chí cũng quan trọng hơn cả hai tiêu chuẩn đầu tiên. Hiện nay, các bộ vi xử lý 8 bít dẫn đầu, họ 8051 là có số lượng lớn nhất các nguồn cung cấp đa dạng. Nhà cung cấp có nghĩa là nhà sản xuất bên cạnh nhà sáng chế của bộ vi xử lý. Trong trường hợp 8051 thì nhà sáng chế của nó là Intel, nhưng hiện nay có rất nhiều hãng sản xuất nó (cũng như trước kia đó sản xuất) như Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matra và Dallas, Semicondictior… B. THẢO LUẬN NHÓM 1. Ứng dụng thực tế của vi xử lý trong điện tử dân dụng? 2. Ứng dụng thực tế của vi xử lý trong điện tử công nghiệp? 3. So sách một chíp vi xử lý với một chíp vi xử lý về mặt cấu trúc? C. THỰC HÀNH (Không) D. ĐÁNH GIÁ KẾT QUẢ: (tính theo thang điểm 10) Mục tiêu Nội dung Điểm chuẩn Kiến thức - Nêu được lịch sử phát triển của vi xử lý 1 - Phân biệt được vi xử lý với vi xử lý về cấu 1 50
- trúc - Nêu được các bộ vi xử lý cho hệ thống nhúng 2 và các tiêu chuẩn lựa chọn một bộ vi xử lý - Tổng hợp và phân tích nội dung bài học 1 - Khả năng hoạt động nhóm khi làm việc 1 Kỹ năng - Khả năng hoạt động độc lập khi làm việc 1 - Đảm bảo an toàn vệ sinh công nghiệp 1 Thái độ - Chủ động, tích cực trong hoạt động học 2 E. CÂU HỎI VÀ BÀI TẬP Câu1. Trình bày lịch sử phát triển của vi xử lý? Câu 2. So sánh sự giống và khác nhau giữa bộ vi xử lý so với bộ vi xử lý dùng chung? Câu 3. Thế nào là hệ thống nhúng, giải thích các bộ vi xử lý cho hệ thống nhúng? Câu 4. Nêu các tiêu chuẩn lựa chọn bộ vi xử lý? BÀI 2. CẤU TRÚC HỌ VI ĐIỀU KHIỂN 8051 Mục tiêu: + Kiến thức: - Mô tả được cấu trúc họ vi xử lý họ 8051; - Giải thích được tổ chức bộ nhớ của họ vi xử lý 8051; - Phân tích được cấu trúc, chức năng nhiệm vụ các thanh ghi của họ 8051; - Trình bày được nguyên lý hoạt động của mạch dao động, mạch reset; - Phân tích được chức năng, nhiệm vụ của các IC ngoại vi, 51
- + Kỹ năng: - Vẽ được sơ đồ cấu trúc, sơ đồ kết nối bên trong của vi xử lý 8051; + Thái độ: - Đảm bảo an toàn cho người và thiết bị, Các thuật ngữ chuyên môn: được giải thích chi tiết trong nội dung bài học Nội dung: A. LÝ THUYẾT 2. 1. Tổng quan 2.1.1. Họ 8051 Vào năm 1981 hãng Intel giới thiệu một số bộ vi xử lý được gọi là 8051. Bộ vi xử lý này có 128byte RAM, 4Kbyte ROM trên chip, hai bộ định thời, một cổng nối tiếp và 4 cổng vào ra 8 bit tất cả được đặt trên một chíp. Lúc ấy nó được coi là một “hệ thống trên chip”. 8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thể làm việc với 8 bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit được chia thành các dữ liệu 8 bit để xử lý. Mặc dù 8051 có thể có một ROM trên chíp cực đại là 64Kbyte, nhưng các nhà sản xuất lúc đó đó cho xuất xưởng chỉ với 4Kbyte ROM trên chíp, điều này sẽ được bàn chi tiết hơn sau này. 8051 đó trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác sản xuất và bán bất kỳ dạng biến thể nào của 8051 mà họ thích với điều kiện họ phải để lại mã tương thích với 8051, điều này dẫn đến sự ra đời của nhiều phiên bản 8051 với các tốc độ khác nhau và dung lượng ROM trên chip khác nhau được bán, hơn nửa các nhà sản xuất. Điều này quan trọng là mặc dự có nhiều biến thể khác nhau của 8051 về tốc độ và dung lượng nhớ ROM trên chíp, nhưng tất cả chúng đều tương thích với 8051 ban đầu về các lệnh. Điều này có nghĩa là nếu ta viết chương trình của mình cho một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà không phân biệt nó từ hãng sản xuất nào Bảng 2.1: Các đặc tính của 8051 đầu tiên Đặc tính Số lượng ROM trên chíp 4 Kbyte RAM trên chíp 128 byte Bộ định thời 2 Các chân vào - ra 32 Cổng nối tiếp 1 Nguồn ngắt 6 2.1.2. Các thành viên khác của họ 8051 Có hai bộ vi xử lý thành viên khác của họ 8051 là 8052 và 8031. a- Bộ vi xử lý 8052: Bộ vi điều khiển 8052 là một thành viên khác của họ 8051, 8052 có tất cả các đặc tính chuẩn của 8051 ngoài ra nó có thêm 128 byte RAM và một bộ định thời nữa. Hay nói cách khác là 8052 có 256 byte RAM và 3 bộ định thời. Nó cũng có 8K byte ROM. Trên chíp thay với 4K byte như 8051. 52
- Bảng 2.2: Đặc tính của các thành viên họ 8051 Đặc tính 8051 8052 8031 ROM trên chíp 4 Kbyte 8 Kbyte 0 Kbyte RAM trên chíp 128 byte 256 byte 128 byte Bộ định thời 2 2 2 Các chân vào - ra 32 32 32 Cổng nối tiếp 1 1 1 Nguồn ngắt 6 8 6 Như ta thấy từ bảng đặc tính thì 8051 là tập con của 8052. Do vậy tất cả mọi chương trình viết cho 8051 đều chạy trên 8052 nhưng điều ngược lại là không đúng. b- Bộ vi xử lý 8031: Một thành viên khác nữa của 8051 là chíp 8031. Chíp này thường được coi như là 8051 không có ROM trên chíp với nó có 0 Kbyte ROM trên chíp. Để sử dụng chíp này ta phải bổ xung ROM ngoài cho nó. ROM ngoài phải chứa chương trình mà 8031 sẽ nạp và thực hiện. So với 8051 mà chương trình được chứa trong ROM trên chíp bị giới hạn bởi 4K byte, cũng ROM ngoài chứa chương trình được gắn vào 8031 thì có thể lớn đến 64K byte. Khi bổ xung cổng, như vậy chỉ cũng lại 2 cổng để thao tác. Để giải quyết vấn đề này ta có thể bổ xung cổng vào - ra cho 8031. Ngoài ra cũng có các phiên bản khác nhau về tốc độ của 8031 từ các hãng sản xuất khác nhau. 2.1.3. Các bộ vi xử lý 8051 từ các hãng khác nhau. Mặc dù 8051 là thành viên phổ biến nhất của họ 8051 nhưng chúng ta sẽ thấy nó trong kho linh kiện. Đó là do 8051 có dưới nhiều dạng kiểu bộ nhớ khác nhau như UV - PROM, Flash và NV - RAM mà chúng đều có số đăng ký linh kiện khác nhau. Phiên bản UV-PROM của 8051 là 8751. Phiên bản Flash ROM được bán bởi nhiều hãng khác nhau chẳng hạn của Atmel Corp với tên gọi là AT89C51 cũng phiên bản NV-RAM của 8051 do Dalas Semi Conductor cung cấp thì được gọi là DS5000. Ngoài ra cũng có phiên bản OTP (khả trình một lần) của 8051 được sản xuất bởi rất nhiều hãng. a- Bộ vi xử lý 8751 Chíp 8751 chỉ có 4K byte bộ nhớ UV-EPROM trên chíp. Để sử dụng chíp này để phát triển yêu cầu truy cập đến một bộ đốt PROM cũng như bộ xóa UV- EPROM để xóa nội dung của bộ nhớ UV-EPROM bên trong 8751 trước khi ta có thể lập trình lại nó. Do một thực tế là ROM trên chíp đối với 8751 là UV- EPROM nên cần phải mất 20 phút để xóa 8751 trước khi nó có thể được lập trình trở lại. Điều này dẫn đến nhiều nhà sản xuất giới thiệu các phiên bản Flash ROM và UV-RAM của 8051. Ngoài ra cũng có nhiều phiên bản với các tốc độ khác nhau của 8751 từ nhiều hãng khác nhau. b- Bộ vi xử lý AT8951 từ Atmel Corporation. Chíp 8051 phổ biến này có ROM trên chíp ở dạng bộ nhớ Flash. Điều này là lý tưởng đối với những phát triển nhanh với bộ nhớ Flash có thể được xóa trong vài giây trong tương quan so với 20 phút hoặc hơn mà 8751 yêu 53
- cầu. Với lý do này mà AT89C51 để phát triển một hệ thống dựa trên bộ vi xử lý yêu cầu một bộ đốt ROM mà có hỗ trợ bộ nhớ Flash. Tuy nhiên lại không yêu cầu bộ xóa ROM. Lưu ý rằng trong bộ nhớ Flash ta phải xóa toàn bộ nội dung của ROM nhằm để lập trình lại cho nó. Việc xóa bộ nhớ Flash được thực hiện bởi chính bộ đốt PROM và đây chính là lý do tại sao lại không cần đến bộ xóa. Để loại trừ nhu cầu đối với một bộ đốt PROM hãng Atmel đang nghiên cứu một phiên bản của AT89C51 có thể được lập trình qua cổng truyền thông COM của máy tính IBM PC . Bảng 2.3: Các phiên bản của 8051 từ Atmel (Flash ROM). Chân Đóng Tên ROM RAM Timer Ngắt Vcc I/O vỏ AT89C51 4K 128 32 2 6 5V 40 4K AT89LV51 4K 128 32 2 3V 40 AT89C1051 1K 64K 15 1 3 3V 20 AT89C2051 2K 128K 15 2 6 3V 20 AT89C52 8K 128 32 3 8 5V 40 8K AT89LV52 8K 128 32 3 8 3V 40 Chữ C trong ký hiệu AT89C51 là CMOS. Cũng có những phiên bản đóng vỏ và tốc độ khác nhau của những sản phẩm trên. Ví dụ chíp AT89C51-12PC để ý rằng chữ “C” đứng trước số 51 là ký hiệu cho CMOS “12” ký hiệu cho 12 MHZ và “P” là kiểu đóng vỏ DIP và chữ “C” cuối cùng là ký hiệu cho thương mại (ngược với chữ “M” là quân sự ).Thông thường AT89C51 - 12PC rất lý tưởng cho các dự án của học sinh, sinh viên. c- Bộ vi xử lý DS5000 từ hãng Dallas Semiconductor. Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng Dallas Semiconductor. Bộ nhớ ROM trên chíp của DS5000 ở dới dạng NV-RAM. Khả năng đọc/ ghi của nó cho phép chương trình được nạp vào ROM trên chíp trong khi nó vẫn ở trong hệ thống (không cần phải lấy ra). Điều này còn có thể được thực hiện thông qua cổng nối tiếp của máy tính IBM PC. Việc nạp chương trình trong hệ thống (in-system) của DS5000 thông qua cổng nối tiếp của PC làm cho nó trở thành một hệ thống phát triển tại chỗ lý tưởng. Một ưu việt của NV-RAM là khả năng thay đổi nội dung của ROM theo từng byte tại một thời điểm. Điều này tương phản với bộ nhớ Flash và EPROM mà bộ nhớ của chúng phải được xoá sạch trước khi lập trình lại cho chúng. Bảng 2.4: Các phiên bản 8051 từ hãng Dallas Semiconductor 54
- Chân Đóng Tên ROM RAM Timer Ngắt Vcc I/O vỏ DS5000-8 8K 128 32 2 6 5V 40 DS5000-32 32K 128 32 2 6 5V 40 DS5000T-8 8K 128 32 2 6 5V 40 DS5000T-8 32K 128 32 2 6 5V 40 Chữ “T” đứng sau 5000 là có đồng hồ thời gian thực. Lưu ý rằng đồng hồ thời gian thực RTC là khác với bộ định thời Timer. RTC tạo và giữ thời gian l phút giờ, ngày, tháng - năm kể cả khi tắt nguồn. Còn có nhiều phiên bản DS5000 với những tốc độ và kiểu đóng gói khác nhau. Ví dụ DS5000-8-8 có 8K NV- RAMvà tốc độ 8MHZ. Thông thường DS5000-8-12 hoặc DS5000T-8-12 là lý tưởng đối với các dự án của sinh viên. d- Phiên bản OTP của 8051. Các phiên bản OTP của 8051 là các chíp 8051 có thể lập trình được một lần và được cung cấp từ nhiều hãng sản xuất khác nhau. Các phiên bản Flash và NV-RAM thường được dùng để phát triển sản phẩm mẫu. Khi một sản phẩm được thiết kế và được hoàn thiện tuyệt đối thì phiên bản OTP của 8051 được dùng để sản hàng loạt vì nó sẽ hơn rất nhiều theo giá thành một đơn vị sản phẩm e- Họ 8051 từ Hãng Philips Một nhà sản xuất chính của họ 8051 khác nữa là Philips Corporation. Thật vậy, hãng này có một dải lựa chọn rộng lớn cho các bộ vi xử lý họ 8051. Nhiều sản phẩm của hãng đã có kèm theo các đặc tính như các bộ chuyển đổi ADC, DAC, cổng I/0 mở rộng và cả các phiên bản OTP và Flash. 2.1.4. Cấu trúc bên trong vi xử lý họ 8051 55
- Hình 2.1: Cấu trúc bên trong vi xử lý họ 8051 Sơ đồ cấu trúc bên trong vi xử lý bao gồm các thành phần sau: - Khối ALU đi kèm với các thanh ghi Temp1, Temp2 và thanh ghi trạng thái PSW. - Bộ điều khiển logic (Timing and Control). - Vùng nhớ RAM nội và vùng nhớ Flash ROM lưu trữ chương trình. - Mạch tạo dao động nội kết hợp với tụ thạch anh bên ngoài để tạo dao động. - Khối xử lý ngắt, truyền dữ liệu, khối timer/counter. - Thanh ghi A, B, DPTR và 4 port0, port1, port2, port3 có chốt và đệm. - Thanh ghi bộ đếm chương trình PC (Program Counter). - Con trỏ dữ liệu DPTR (Data Pointer). - Thanh ghi con trỏ ngăn xếp SP (Stack Pointer). - Thanh ghi lệnh IR (Instruction Register). - Ngoài ra còn có 1 số các thanh ghi hỗ trợ để quản lý địa chỉ bộ nhớ RAM nội bên trong cũng như các thanh ghi quản lý địa chỉ truy xuất bộ nhớ bên ngoài. 56
- 2.2. Sơ đồ chân vi xử lý 8051 Hình 2.2: Vi xử lý 8051 và sơ đồ chân Vi xử lý 89C51 có tất cả 40 chân. Trong đó có 24 chân có tác dụng kép (có nghĩa là 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập điều khiển IO (input-output) hoặc là thành phần của các bus dữ liệu và bus địa chỉ để tải địa chỉ và dữ liệu khi giao tiếp với bộ nhớ ngoài. Các tín hiệu điều khiển: - Tín hiệu PSEN (Program Store Enable): PSEN là tín hiệu đầu ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường nối đến chân OE ( output enable hoặc RD) của EPROM cho phép đọc các byte mã lệnh. Khi có giao tiếp với bộ nhớ chương trình bên ngoài thì mới dùng đến PSEN , nếu không có giao tiếp thì chân PSEN bỏ trống. PSEN ở mức thấp trong thời gian vi xử lý 8051 lấy lệnh. Các mã lệnh của chương trình đọ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. Khi 8051 thi hành chương trình trong EPROM nội thì PSEN ở mức logic 1. - Tín hiệu điều khiển ALE (Address Latch Enable) : Khi vi xử lý 89C51 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus tải địa chỉ và bus dữ liệu (AD7 ÷ AD0) do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt. Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên việc chốt địa chỉ được thực hiện 1 cách hoàn toàn tự động. Các xung tín hiệu ALE có tần số bằng 1/6 tần số dao động thạch anh gắn vào vi xử lý và có thể dùng tín hiệu xung đầu ra ALE làm xung clock cung cấp cho các phần khác của hệ thống. Trong chế độ lập trình cho bộ nhớ nội của vi xử lý thì chân ALE được dùng làm đầu vào nhận xung lập trình từ bên ngoài để lập trình cho bộ nhớ Flash ROM trong 8051 57
- - Tín hiệu EA (External Access): Tín hiệu vào EA ở chân 31 thường nối lên mức 1 hoặc mức 0. Nếu nối EA lên mức logic 1 (+5v) thì vi xử lý sẽ thi hành chương trình từ bộ nhớ nội. Nếu nối EA với mức logic 0 (0V) thì vi xử lý sẽ thi hành chương trình từ bộ nhớ ngoại. - Tín hiệu RST (Reset): Đầu vào RST ở chân 9 là đầu vào Reset của 8051 Khi cấp điện cho hệ thống hoặc khi nhấn nút reset thì mạch sẽ reset vi xử lý. Khi reset thì tín hiệu reset phải ở mức cao ít nhất là 2 chu kỳ máy, khi đó các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Trạng thái của tất cả các thanh ghi sau khi reset hệ thống được tóm tắt như bảng Bảng 2.5: Trạng thái của các thanh ghi sau khi reset hệ thống THANH GHI NỘI DUNG Bộ đếm chương trình PC 0000H Thanh ghi tích lũy A 00H Thanh ghi B 00H Thanh ghi trạng thái PSW 00H Thanh ghi con trỏ SP 07H Thanh ghi DPTR 0000H Port 0 đến Port 3 FFH(11111111) IP XXX0 0000B IE 0X0X 0000B Các thanh ghi định thời 00H SCON SBUF 00H PCON (HMOS) 0XXX XXXXH PCON (CMOS) 0XXX 0000B Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC = 0000H. Sau khi reset, vi xử lý luôn bắt đầu thực hiện chương trình tại địa chỉ 0000H của bộ nhớ chương trình nên các chương trình viết cho vi xử lý luôn bắt đầu viết tại địa chỉ 0000H. Nội dung của RAM trong vi xử lý không bị thay đổi bởi tác động của đầu vào reset có nghĩa là vi xử lý đang sử dụng các thanh ghi để lưu trữ dữ liệu nhưng nếu vi xử lý bị reset thì dữ liệu trong các thanh ghi vẫn không đổi. - Chân VCC: Chân số 40 là VCC cấp điện áp nguồn cho chíp, nguồn điện áp là +5V. - Chân GND: Chân GND: Chân số 20 là GND. - Chân XTAL1 và XTAL2: 8051 có một bộ dao động trên chíp nhưng nó yêu cầu có một xung đồng hồ ngoài để chạy nó. Bộ dao động thạch anh thường xuyên nhất được nối tới các chân đầu vào XTAL1 (chân 19) và XTAL2 (chân 18). Bộ dao động thạch anh được nối tới XTAL1 và XTAL2 cũng cần hai tụ điện giá trị 30pF. Cần phải lưu ý rằng có nhiều tốc độ khác nhau của họ 8051. Tốc độ được coi như là tần số cực đại của bộ dao động được nối tới chân XTAL. Ví dụ, một chíp 12MHz hoặc thấp hơn. Tương tự như vậy thì một bộ vi xử lý cũng yêu cầu 58
- một tinh thể có tần số không lớn hơn 20MHz. Khi 8051 được nối tới một bộ dao động tinh thể thạch anh và cấp nguồn thì ta có thể quan sát tần số trên chân XTAL2 bằng máy hiện sóng. Nếu ta quyết định sử dụng một nguồn tần số khác bộ dao động thạch anh chẳng hạn như là bộ dao động TTL thì nó sẽ được nối tới chân XTAL1, còn chân XTAL2 thì để hở không nối. C2 XTAL2 NC XTAL2 C1 EXTERRNA XTAL1 L XTAL1 30pF OSCILLATA OR GND SIGNAL GND Hình 2.3: Kết nối mạch dao động với vi xử lý 2.3. Cấu trúc Port I/O a. Port 0: Hình 2.4: Cấu trúc Port 0 Port 0 là port có 2 chức năng với số thứ tự chân 32÷39. Trong các hệ thống điều khiển đơn giản sử dụng bộ nhớ bên trong không dùng bộ nhớ mở rộng bên ngoài thì port 0 được dùng làm các đường điều khiển IO (Input- Output). Trong các hệ thống điều khiển lớn sử dụng bộ nhớ mở rộng bên ngoài thì port 0 có chức năng là bus địa chỉ và bus dữ liệu AD7 ÷ AD0. (Address: địa chỉ, data: dữ liệu). b. Port 1 59
- Hình 2.5: Cấu trúc Port 1 Port 1 với số thứ tự chân 1÷8. Port1 chỉ có 1 chức năng dùng làm các đường điều khiển xuất nhập IO, port 1 không có chức năng khác. c. Port 2 Hình 2.6: Cấu trúc Port 2 Port 2 là port có 2 chức năng với số thứ tự chân 21÷28. Trong các hệ thống điều khiển đơn giản sử dụng bộ nhớ bên trong không dùng bộ nhớ mở rộng bên ngoài thì port 2 được dùng làm các đường điều khiển IO (Input- Output). Trong các hệ thống điều khiển lớn sử dụng bộ nhớ mở rộng bên ngoài thì port 2 có chức năng là bus địa chỉ cao A8÷A15. d. Port 3 60
- Cổng P3 chiếm tổng cộng là 8 chân từ chân 10 đến chân 17. Nó có thể được sử dụng như đầu vào hoặc đầu ra. Cống P3 không cần các điện trở kéo cũng như P1 và P2. Mặc dù cống P3 được cấu hình như một cống đầu ra khi tái lập, nhưng đây không phải là cách nó được ứng dụng phổ biến nhất. Cổng P3 có chức năng bổ sung là cung cấp một số tín hiệu quan trọng đặc biệt chẳng hạn như các ngắt. Bảng 2.6: Bảng chức năng cổng P3 Bít của cổng P3 Chức năng Chân số P3.0 Nhận dữ liệu (RXD) 10 P3.1 Phát dữ liệu (TXD) 11 P3.2 Ngắt 0(INT0) 12 P3.3 Ngắt 1(INT1) 13 P3.4 Bộ định thời 0 (TO) 14 P3.5 Bộ định thời 1(T1) 15 P3.6 Ghi (WR) 16 P3.7 Đọc (RD) 17 Các bit P3.0 và P3.1 được dùng cho các tín hiệu nhận và phát dữ liệu trong truyền thông dữ liệu nối tiếp. Các bit P3.2 và P3.3 được dành cho các ngắt ngoài. Bit P3.4 và P3.5 được dùng cho các bộ định thời 0 và 1. Cuối cùng các bit P3.6 và P3.7 được cấp cho các tín hiệu ghi và đọc các bộ nhớ ngoài được nối tới các hệ thống dựa trên 8031. Trong các hệ thống dựa trên 8751, 89C51 hoặc D35000 thì các chân P3.6 và P3.7 được dùng cho vào - ra còn các chân khác của P3 được sử dụng bình thường trong vai trò chức năng thay đổi. 2.4. Tổ chức bộ nhớ Vi xử lý 89C51 có bộ nhớ nội bên trong và có thêm khả năng giao tiếp với bộ nhớ bên ngoài nếu bộ nhớ bên trong không đủ khả năng lưu trữ chương trình. Bộ nhớ nội bên trong gồm có 2 loại bộ nhớ: bộ nhớ dữ liệu và bộ chương trình. Bộ nhớ dữ liệu có 256 byte, bộ nhớ chương trình có dung lượng 4kbyte. (89C52 có 8 kbyte, 89W55 có 16kbyte). Bộ nhớ mở rộng bên ngoài cũng được chia ra làm 2 loại bộ nhớ: bộ nhớ dữ liệu và bộ nhớ chương trình. Khả năng giao tiếp là 64kbyte cho mỗi loại. Bộ nhớ mở rộng bên ngoài và bộ nhớ chương trình bên trong không có gì đặc biệt chỉ có chức năng lưu trữ dữ liệu và mã chương trình nên không cần phải khảo sát. Bộ nhớ chương trình bên trong của vi xử lý thuộc loại bộ nhớ Flash ROM cho phép xóa bằng xung điện và lập trình lại. Bộ nhớ RAM nội bên trong là một bộ nhớ đặc biệt người sử dụng vi xử lý cần phải nắm rõ các tổ chức và các chức năng đặc biệt của bộ nhớ này 61
- Hình 2.7: Phân chia RAM bên trong 8951 RAM bên trong 89C51 được phân chia như sau: - Các bank thanh ghi có địa chỉ từ 00H đến 1FH. - RAM truy xuất 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. 32 byte thấp của bộ nhớ nội được dành cho 4 bank thanh ghi. Bộ lệnh 89C51 hỗ trợ thêm 8 thanh ghi có tên là R0 đến R7 và theo mặc định sau khi reset hệ thống thì các thanh ghi R0 đến R7 được gán cho 8 ô nhớ có địa chỉ từ 00H đến 07H, khi đó bank 0 có 2 cách truy xuất bằng địa chỉ trực tiếp và bằng thanh ghi R. Các lệnh dùng các thanh ghi R0 đến R7 sẽ có số lượng byte mã lệnh ít hơn và thời gian thực hiện lệnh nhanh hơn so với các lệnh có chức năng tương ứng nếu dùng kiểu địa chỉ trực tiếp. Các dữ liệu dùng thường xuyên nên lưu trữ ở 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 R0 đến 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. Người lập trình dùng vùng nhớ 4 bank thanh ghi để lưu trữ dữ liệu phục vụ cho việc xử lý dữ liệu khi viết chương trình. Chức năng chính của 4 bank thanh ghi này là nếu trong hệ thống có sử dụng nhiều chương trình thì chương trình thứ nhất bạn có thể sử dụng hết các thanh ghi R0 đến R7 của bank0, khi chuyển sang chương trình thứ 2 để xử lý một công việc gì đó và vẫn sử dụng các thanh ghi R0 đến R7 để lưu trữ cho việc sử lý dữ liệu mà không làm ảnh hưởng đến các dữ liệu R0 đến R7 trước đây và không cần phải thực hiện công việc cất dữ liệu thì cách nhanh nhất là gán nhóm thanh ghi R0 đến R7 cho bank1 là xong. Tương tự có thể mở thêm hai chương trình nữa và gán cho các bank 3 và 4. 62
- Hình 2.8: Cấu trúc bộ nhớ RAM bên trong vi xử lý 8951 63
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình Vi xử lý - Vi điều khiển - ĐH Sao Đỏ
109 p | 669 | 258
-
Giáo trình vi xử lý CHƯƠNG 2: LẬP TRÌNH HỢP NGỮ
34 p | 528 | 221
-
Giáo trình vi xử lý LỜI NÓI ĐẦU
4 p | 508 | 169
-
Giáo trình vi xử lý - Giao tiếp với các thiết bị dơn giản
18 p | 393 | 167
-
Giáo trình vi xử lý 1 8051 - Nguyễn Đình Phú
338 p | 496 | 166
-
Giáo trình vi xử lý: Phần 1 - Phạm Hùng Kim Khánh
126 p | 152 | 29
-
Giáo trình vi xử lý: Phần 2 - Phạm Hùng Kim Khánh
89 p | 126 | 22
-
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 xử lý: Phần 2 - CĐ Giao thông Vận tải
58 p | 49 | 12
-
Giáo trình Vi xử lý (Nghề: Điện tử công nghiệp - CĐ/TC): Phần 1 - Trường Cao đẳng Nghề Đồng Tháp
155 p | 30 | 9
-
Giáo trình Vi xử lý: Phần 2 - Phạm Quang Trí
127 p | 41 | 8
-
Giáo trình Vi xử lý: Phần 1 - Phạm Quang Trí
122 p | 38 | 7
-
Giáo trình Vi xử lý (Nghề: Điện tử công nghiệp - CĐ/TC): Phần 2 - Trường Cao đẳng Nghề Đồng Tháp
36 p | 20 | 7
-
Giáo trình Vi xử lý: Phần 1
186 p | 17 | 7
-
Giáo trình Vi xử lý: Phần 2
136 p | 22 | 7
-
Giáo trình Vi xử lý (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
143 p | 28 | 5
-
Giáo trình Vi xử lý (Nghề: Điện tử công nghiệp - Cao đẳng): Phần 2 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội
36 p | 33 | 5
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