Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 296 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
296
Dung lượng
14,26 MB
Nội dung
TRƯỜNG CĐN CƠNG NGHIỆP HÀ NỘI Chủ biên: TRẦN THANH BÌNH BỘ MƠN ĐIỆN TỬ *** GIÁO TRÌNH VI XỬ LÝ ( Lưu hành nội bộ) HÀ NỘI 2012 44 Tun bố bản quyền Tài liệu này là loại giáo trình nội bộ dùng trong nhà trường với mục đích làm tài liệu giảng dạy cho giáo viên và học sinh, sinh viên nên các nguồn thơng tin có thể được tham khảo Tài liệu phải do trường Cao đẳng nghề Cơng nghiệp Hà Nội in ấn và phát hành. Việc sử dụng tài liệu này với mục đích thương mại hoặc khác với mục đích trên đều bị nghiêm cấm và bị coi là vi phạm bản quyền Trường Cao đẳng nghề Cơng nghiệp Hà Nội xin chân thành cảm ơn các thơng tin giúp cho nhà trường bảo vệ bản quyền của mình 45 LỜI NĨI ĐẦU Trong chương trình đào tạo của các trường trung cấp nghề, cao đẳng nghề Điện tử cơng nghiệp thực hành nghề giữ một vị trí rất quan trọng: rèn luyện tay nghề cho học sinh. Việc dạy thực hành địi hỏi nhiều yếu tố: vật tư thiết bị đầy đủ đồng thời cần một giáo trình nội bộ, mang tính khoa học và đáp ứng với u cầu thực tế Nội dung của giáo trình “Vi xử lý” đã được xây dựng trên cơ sở kế thừa những nội dung giảng dạy của các trường, kết hợp với những nội dung mới nhằm đáp ứng u cầu nâng cao chất lượng đào tạo phục vụ sự nghiệp cơng nghiệp hóa, hiện đại hóa đất nước,. Giáo trình được biên soạn ngắn gọn, dễ hiểu, bổ sung nhiều kiến thức mới và biên soạn theo quan điểm mở, nghĩa là, đề cập những nội dung cơ bản, cốt yếu để tùy theo tính chất của các ngành nghề đào tạo mà nhà trường tự điều chỉnh cho thích hợp và khơng trái với quy định của chương trình khung đào tạo cao đẳng nghề Tuy các tác giả đã có nhiều cố gắng khi biên soạn, nhưng giáo trình chắc chắn khơng tránh khỏi những thiếu sót, rất mong nhận được sự tham gia đóng góp ý kiến của các bạn đồng nghiệp và các chun gia kỹ thuật đầu ngành Xin trân trọng cảm ơn! 46 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 q trình học tập; + Thái độ: Đảm bảo an tồn cho người và thiết bị, Các thuật ngữ chun 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 phát 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 tố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 tố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ố u cầu điều khiển 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 47 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 ngồ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ý. u cầu điều khiển càng cao thì hệ thống càng phức tạp và nếu 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 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 q 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 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ọ MCS51 Trong họ MCS51 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ọ MCS51 là họ MCS52 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 48 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 Pentium) 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 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 tố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 49 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ớ ngồ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 tố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 tốn. Những ứng dụng thường 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 đình Đồ điện trong nhà Máy điện thoại Các hệ thống an tồn Các bộ mở cửa ga ra xe Máy fax Máy trả lời thự động Máy tính gia đình Ti vi Truyền hình cáp Máy quay camera Đ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… Văn phịng Máy tính Máy fax Máy điện thoại Các hệ thống an tồn Máy Scaner Máy photocopy Máy in … Ơ tơ Điều khiển động cơ Điều khiển túi đệm khí Thiết bị ABS Thiết bị đo lường Hệ thống bảo mật Điều khiển truyền tin Giải trí Điều hịa nhiệt độ Mở cửa khơng cần chìa khóa… 50 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 tốn về một mặt cơng suất tính tố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 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 tốn của bài tố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ỏ vng 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 51 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/signetics, 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 Kiến thức Kỹ năng Thái độ Nội dung Điểm chuẩn Nêu được lịch sử phát triển của vi xử lý Phân biệt được vi xử lý với vi xử lý về cấu trúc Nêu vi xử lý cho hệ thống nhúng 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 Khả năng hoạt động nhóm khi làm việc Khả năng hoạt động độc lập khi làm việc Đảm bảo an tồn vệ sinh cơng nghiệp Chủ động, tích cực trong hoạt động học 1 1 1 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ý? 52 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 ngun 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, + 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 tồn cho người và thiết bị, Các thuật ngữ chun mơn: được giải thích chi tiết trong nội dung bài học Nội dung: 53 out DDRB,r17 ldi r16,0xF0 out OCR0,r16 ; match value ldi r16,0x39 out TCCR0,r16 ; CTC mode • Bit 2:0 – CS02:0: Clock Select: Đây là 3 bit dùng để lựa chọn xung clock cho bộ định thời. Để dừng bộ định thời ta chọn { CS00, CS01, CS02 } = {0, 0, 0 } 2. Thanh Ghi Timer/Counter Register –TCNT0 Hình 7.45. Thanh ghi TCNT0 Đây là thanh ghi đếm 8 bit của bộ định thời 0 .Giá trị thanh ghi này tăng hoặc giảm 1 đơn vị sau mỗi chu kì clock. Khơng nên ghi vào thanh ghi này khi nó đang đếm 3. Thanh Ghi Output Compare Register –OCR0 Hình 7.46. Thanh ghi OCR0 OCR0 là thanh ghi 8 bit, giá trị của nó được liên tục so sánh với giá trị của thanh ghi TCNT0. Khi hai giá trị của hai thanh ghi này bằng nhau thì xảy ra một sự kiện “so sánh khớp” (compare match). Sự kiện so sánh khớp sẽ tạo ra một ngắt, nếu ngắt được cho phép Hay tạo ra một dạng sóng ở chân đầu ra OC0, tùy theo chế độ thực thi của bộ định thời 4. Thanh Ghi Timer/Counter Interrupt Mask Register – TIMSK 325 Hình 7.47. Thanh ghi TIMSK • Bit 1 – OCIE0: Timer/Counter0 Output Compare Match Interrupt Enable: Khi bit OCIE0 ghi là 1 và bit I của thanh ghi trạng thái SREG được set thành 1 thì ngắt kiện “so sánh khớp” (compare match interrupt ) được cho phép. Khi đó một ngắt sẽ được thực thi khi xảy ra một sự kiện “so sánh khớp” • Bit 0 – TOIE0: Timer/Counter0 Overflow Interrupt Enable: Khi bit này được ghi là 1 và ngắt tồn cục được cho phép thì ngắt tràn bộ định thời (Timer/Counter0 Overflow interrupt) được cho phép. Khi đó một ngắt tương ứng sẽ được thực thi khi bộ định thời tràn 5. Thanh Ghi Timer/Counter Interrupt Flag Register – TIFR Hình 7.48. Thanh ghi TIFR • Bit 1 – OCF0: Output Compare Flag 0: Bit này sẽ được set lên 1 khi xảy ra “so sánh khớp ” (compare match) bộ định thời (tức thanh ghi TCCN0) với thanh ghi OCR0. Cờ OCF0 sẽ tự động xóa khi ngắt tương ứng được thực thi. Ngồi ra ta cũngg có thể xóa cờ OCF0 bằng cách ghi một giá trị logic vào nó. Khi bit I trong thanh ghi SREG, bit OCIE0 (Timer/Counter0 Compare Match Interrupt Enable) và bit OCF0 được set lên 1 thì ngắt “so sánh khớp” (Compare Match Interrupt) sẽ được thực thi • Bit 0 – TOV0: Timer/Counter0 Overflow Flag: Bit TOV0 được set thành 1 bộ định thời tràn và nó được xóa khi ngắt tương ứng được thực thi. Ngồi ra cũngg có thể xóa bằng cách ghi một giá trị logic vào vị trí của nó . Khi bit I trong thanh ghi SREG, bit TOIE0 (Timer/Counter0 Overflow interrupt) và bit TOV0 được set lên 1 thì ngắt tràn định thời 0 (Timer/Counter0 Overflow Interrupt ) sẽ được thực thi. Trong chế độ PWM cờ TOV0 được Set khi bộ định thời 0 đổi hướng đếm tại giá trị 00h 326 6. Thanh Ghi Special Function IO Register –SFIOR Hình 7.49. Thanh ghi SFIOR • Bit 7 – TSM: Timer/Counter Synchronization Mode: Ghi bit thành kích hoạt chế độ đồng bộ bộ định thời (Timer/Counter Synchronization). Trong chế độ này, một giá trị được ghi vào các bit PSR0 và PSR321 sẽ được giữ lại, vì thế nó giữ cho tín hiệu reset của bộ chia trước (prescaler) tương ứng được xác nhận ( do đó bộ chia trước (prescaler) vẫn ở trạng thái Reset ). Điều này là để chắc chắn là các bộ định thời tương ứng được tạm nghỉ và có thể được cấu hình với các giá trị như nhau mà khơng làm ảnh hưởng đến một trong những cấu hình nâng cao khác của chúng. Khi bit này được ghi thành 0 thì các bộ định thời sẽ bắt đầu đếm đồng thời Bit 1 – PSR0: Prescaler Reset Timer/Counter0: Khi bit này là 1 thì bộ chia trước của bộ định thời 0 (Timer/couter 0 prescaler) sẽ được đặt lại. Bit này thường được xóa tức thời bởi phần cứng. Nếu bit này được ghi khi bộ định thời 0 đang thực thi chế độ khơng đồng bộ thì nó vẫn giữ ngun giá trị của nó cho đến khi bộ chia trước được đặt lại Bit này sẽ khơng được xóa bởi phần cứng nếu như bit TSM được set thành 1 7. Thanh Ghi Asynchronous Status Register – ASSR Hình 7.50. Thanh ghi ASSR Bit 3 – AS0: Asynchronous Timer/Counter0: Khi bit AS0 là 0 thì bộ định thời được đếm từ nguồn xung clock I/O, tức ClkI/O. Khi AS0 được ghi thành 1 bộ định thời được đếm từ xung thạch anh ở chân TOSC1. Khi giá trị của AS0 bị thay đổi thì nội dụng của các thanh ghi TCNT0, OCR0 và TCCR0 có thể bị hỏng Bit 2 – TCN0UB: Timer/Counter0 Update Busy: Khi bộ định thời 0 thực thi q trình khơng đồng bộ và thanh ghi TCNT0 đang được ghi thì bit TCN0UB sẽ set lên 1. Khi thanh ghi TCNT0 vừa được cập nhật từ thanh ghi lưu trữ tạm thì bit này bị xóa bởi phần cứng. Mức logic 0 trong trường hợp này là để chỉ ra rằng thanh ghi TCNT0 đã sẵn sàng để cập nhật một giá trị mới 327 Bit 1 \–OCR0UB: Output Compare Register0 Update Busy: Khi bộ định thời 0 thực thi q trình khơng đồng bộ và thanh ghi OCR0 đang được ghi thì bit OCR0UB sẽ set lên 1. Khi thanh ghi OCR0 vừa được cập nhật từ thanh ghi lưu trữ tạm thì bit này bị xóa bởi phần cứng .Mức logic 0 trong trường hợp này là để chỉ ra rằng thanh ghi OCR0 đã sẵn sàng để cập nhật một giá trị mới Bit 0 – TCR0UB: Timer/Counter Control Register0 Update Busy: Khi bộ định thời 0 thực thi q trình khơng đồng bộ thanh ghi TCCR0 đang được ghi thì bit TCR0UB sẽ set lên 1. Khi thanh ghi TCCR0 vừa được cập nhật từ thanh ghi lưu trữ tạm thì bit này bị xóa bởi phần cứng. Mức logic 0 trong trường hợp này là để chỉ ra rằng thanh ghi TCCR0 đã sẵn sàng để cập nhật một giá trị mới Nếu ghi vào một trong ba thanh ghi của bộ định thời 0 (TCNT0, OCR0, TCCR0) trong lúc cờ báo bận cập nhật (update busy flag) của chúng được set, thì giá trị cập nhật có thể bị hỏng và sẽ tạo ra một ngắt khơng biết trước 4. Bộ định thời 2 a. Sơ đồ khối bộ định thời 2 Hình 7.51. Sơ đồ khối bộ định thời 2 328 Bộ định thời 2 là bộ định thời 8 bit, bộ định thời 2 liên quan tới 5 thanh ghi với nhiều chế độ thực thi khác nhau. Các thuộc tính chính của bộ định gồm: Bộ đếm đơn kênh, xóa bộ định thời khi có sự kiện “so sánh khớp” và tự động nạp lại, PWM hiệu chỉnh pha, đếm sự kiện bên ngồi… b. Các thanh ghi bộ định thời 2 1. Thanh ghi Timer/Counter Control Register – TCCR2 Hình 7.52. Sơ đồ khối bộ định thời 2 • Bit 7 – FOC2: Force Output Compare • Bit 6, 3 – WGM21:0: Waveform Generation Mode • Bit 5:4 – COM21:0: Compare Match Output Mode • Bit 2:0 – CS22:0: Clock Select Bit 7–FOC2: Force Output Compare : Bit FOC2 chỉ hoạt động khi bit WGM20 chỉ định chế độ NonPWM, trong chế PWM nên ghi bit này thành 0. Ở chế độ nonPWM, bit FOC0 được ghi thành 1 lập tức một “so sánh khớp”(compare match ) xảy ra ở bộ tạo sóng, đầu ra OC2 thay đổi tùy theo thiết lập của những bit COM21:0 tương ứng với nó. Bit này khơng thể đọc, khi đọc ta ln nhận giá trị 0. Bit này hoạt động giống như bit FOC0 của bộ định thời 0 Bit 6, 3 – WGM21:0: Waveform Generation Mode : Những bit này điều khiển các chế độ thực thi của bộ đếm, theo đó dạng sóng tương ứng được tạo ra từ bộ tạo sóng. Các chế độ thực thi được hỗ trợ là : Normal, CTC, PWM. Bảng 7.6. Lựa chọn các chế độ thực thi của bộ định thời 2 Chú ý : Tên các bit CTC2 và PWM2 đã không được sử dụng nữa và được 329 thay thế bằng các tên khác là WGM21 và WGM20 Bit 5:4 – COM21:0: Compare Match Output Mode: Hai bit này điều khiển hoạt động của chân OC2. Nếu một trong hai bit này được set thành 1 thì đầu ra OC2 được ưu tiên hơn chức năng I/O thơng thường . Chú ý là các bit tương ứng của OC2 trong thanh ghi DDR phải được set để cho phép đầu ra. Khi OC2 được kết nối với chân đầu ra OC2 thì vai trò của các bit COM21:0 còn phụ thuộc vào các thiết lập của các bit WGM21:0. Các bit này hoạt động giống với các bit COM01:0 của bộ định thời 0. Xem lại bộ định thời 0 Bảng 7.7. Điều khiển hành vi của chân OC2 bằng các bit COM20: 1 trong chế độ nonPWM Bảng 7.8. Điều khiển hành vi của chân OC2 bằng các bit COM20: 1 trong chế độ PWM nhanh Bảng 7.9. Điều khiển hành vi của chân OC2 bằng các bit COM20 330 :1 trong chế độ PWM hiệu chỉnh pha Chú ý: Có trường hợp đặt biệt là khi thanh ghi OCR20 có giá trị TOP và bit COM21 được set , trong trường hợp này sự kiện so sánh khớp (Compare match) bị bỏ qua, nhưng việc set hay xóa OC2 TOP vẫn được thực hiện Bit 2:0 – CS22:0: Clock Select: Dùng để lựa chọn nguồn xung clock cho bộ định thời 2. 2. Thanh ghi Timer/Counter Register – TCNT2 Hình 7.53. Thanh ghi TCNT2 Đây là thanh ghi đếm 8 bit của bộ định thời 2. Giá trị thanh ghi này tăng hoặc giảm 1 đơn vị sau mỗi chu khì clock. Thanh ghi TCNT2 được truy xuất trực tiếp khi đọc hay ghi ( Điều này khác với bộ định thời 1 và 3 là khi truy xuất các thanh ghi TCNT1 hay TCNT3 cần phải thơng qua thanh ghi tạm trung gian 8 bit ). Khơng nên chỉnh sửa thanh ghi TCNT2 khi bộ định thời đang chạy 3. Thanh ghi Output Compare Register – OCR2 Hình 7.54. Thanh ghi OCR2 Thanh ghi OCR2 là thanh ghi 8 bit, giá trị của thanh ghi OCR2 sẽ được liên tục so sánh với giá trị của bộ đếm, tức thanh ghi TCNT2. Khi giá trị của hai thanh ghi này bằng nhau sẽ tạo ra sự kiện “so sánh khớp” ( Compare match). Một ngắt so sánh khớp ( compare match interrupt ) có thể được tạo ra nếu ngắt được cho phép, hay một dạng sóng sẽ được tạo ra ở chân OC2.Thanh ghi này hoạt động tương tự như thanh ghi OCR0 ở bộ định thời 0 4. Thanh ghi Timer/Counter Interrupt Mask Register – TIMSK 331 Hình 7.55. Thanh ghi TIMSK Bit 7 – OCIE2: Timer/Counter2 Output Compare Match Interrupt Enable: Khi bit OCIE2 được set thành 1 và bit I trong thanh ghi trạng thái được set thành 1 thì ngắt “so sánh khớp” (compare match interrupt ) của bộ định thời 2 được cho phép. Khi đó mơt ngắt tương ứng sẽ được thực thi khi xảy ra một sự kiện “so sánh khớp” ở bộ định thời 2. Chẳn hạn, để xảy ra một “so sánh khớp” (compare match ) ở bộ định thời 2 ta có thể set bit OCF2 trong thanh ghi TIFR, hoặc là chờ cho đến khi nào giá trị của hai thanh ghi TCNT2 và OCR2 bằng nhau thì một “so sánh khớp” (compare match ) sẽ xảy ra Bit 6 – TOIE2: Timer/Counter2 Overflow Interrupt Enable: Khi bit này được ghi là 1 và ngắt toàn cục được cho phép (bit I trong thanh ghi trạng thái SREG được set thành 1) thì ngắt tràn bộ định thời 2 (Timer/Counter2 Overflow interrupt) được cho phép. Khi đó một ngắt tương ứng sẽ được thực thi khi bộ định thời 2 tràn. Chẳn hạn, ta set bit TOV2 trong thanh ghi TIFR thành 1 hoặc là chờ cho bộ định thời 2 bị tràn khi vượt quá giá trị TOP ( hay MAX ) 5. Thanh ghi Timer/Counter Interrupt Flag Register – TIFR Hình 7.56. Thanh ghi TIMSK Bit 7 – OCF2: Output Compare Flag 2 : Bit này sẽ được set lên 1 khi xảy ra kiện “so sánh khớp” (compare match) giữa bộ định thời 2 (tức thanh ghi TCCN2) với thanh ghi OCR2. Cờ OCF2 sẽ tự động xóa khi ngắt tương ứng được thực thi. Ngồi ra ta cũngg có thể xóa cờ OCF2 bằng cách ghi một giá trị logic vào nó. Khi bit I trong thanh ghi SREG, bit OCIE2 (Timer/Counter2 Compare Match Interrupt Enable) và bit OCF2 được set lên 1 thì ngắt sự kiện “so sánh khớp” (Compare Match Interrupt) của bộ định thời 2 sẽ được thực thi Bit 6 – TOV2: Timer/Counter2 Overflow Flag: Bit TOV2 được set thành 1 khi bộ định thời tràn và nó được xóa khi ngắt tương ứng được thực thi. Ngồi ra cũngg có thể xóa bằng cách ghi một giá trị logic vào vị trí của nó. Khi bit I trong thanh ghi SREG, bit TOIE2 (Timer/Counter2 Overflow interrupt) và bit TOV2 được set lên 1 thì ngắt tràn định thời 2 (Timer/Counter2 Overflow Interrupt ) sẽ được thực thi. Trong chế độ PWM cờ TOV2 được set khi bộ định thời 2 đổi hướng đếm tại giá trị 00h 7.2.4. Cấu trúc ngắt của ATmega128 1. Khái niệm về ngắt Ngắt là một sự kiện bên trong hay bên ngồi làm ngắt bộ vi xử lý để báo cho nó biết rằng thiết bị cần dịch vụ của nó Một bộ vi xử lý có thể phục vụ một vài thiết bị, có hai cách để thực 332 hiện điều này đó là sử dụng các ngắt (interrupt) và thăm dò (polling). Trong phương pháp sử dụng các ngắt thì mỗi khi có một thiết bị bất kỳ cần đến dịch vụ của nó thì nó báo cho bộ vi xử lý bằng cách gửi một tín hiệu ngắt. Khi nhận đựợc tín hiệu ngắt thì bộ vi xử lý ngắt tất cả những gì nó đang thực hiện để chuyển sang phục vụ thiết bị. Chương trình đi cùng với ngắt được gọi là trình dịch vụ ngắt ISR (Interrupt Service Routine) hay cịn gọi là trình quản lý ngắt (Interrupt handler). Cịn trong phương pháp thăm dị thì bộ vi xử lý hiển thị liên tục tình trạng của một thiết bị đã cho và điều kiện thoả mãn thì nó phục vụ thiết bị. Sau đó nó chuyển sang hiển thị tình trạng của thiết bị kế tiếp cho đến khi tất cả đều được phục vụ Mặc dù phương pháp thăm dị có thể thể hiển thị tình trạng của một vài thiết bị và phục vụ mỗi thiết bị khi các điều kiện nhất định được thoả mãn nhưng nó khơng tận dụng hết cộng dụng của bộ vi xử lý. Điểm mạnh của phương pháp ngắt là bộ vi xử lý có thể phục vụ được rất nhiều thiết bị (tất nhiên là khơng tại cùng một thời điểm). Mỗi thiết bị có thể nhận được sự chú ý của bộ vi xử lý dựa trên mức ưu tiên được gán cho nó. Đối với phương pháp thăm dị thì khơng thể gán mức ưu tiên cho các thiết bị vì nó kiểm tra tất cả mọi thiết bị theo kiểu quay vịng Quan trọng hơn là trong phương pháp ngắt thì bộ vi xử lý cũngg cịn có thể che hoặc làm lơ một u cầu dịch vụ của thiết bị. Điều này lại một lần nữa khơng thể thực hiện được trong phương pháp thăm dò. Lý do quan trọng nhất mà phương pháp ngắt được ưu chuộng nhất là vì phương pháp thăm dị làm hao phí thời gian của bộ vi xử lý bằng cách hỏi dò từng thiết bị kể cả khi chúng khơng cần đến dịch vụ 2. Trình phục vụ ngắt và bảng véc tơ ngắt Đối với mỗi ngắt thì phải có một trình phục vụ ngắt ISR (Interrupt Service Routine) hay trình quản lý ngắt (Interrupt handler). Khi một ngắt đựợc gọi thì bộ vi xử lý phục vụ ngắt. Khi một ngắt đựợc gọi thì bộ vi xử lý chạy trình phục vụ ngắt. Đối với mỗi ngắt thì có một vị trí cố định trong bộ nhớ để giữ địa chỉ ISR của nó. Nhóm các vị trí nhớ được dành riêng để gửi các địa chỉ của các ISR được gọi là bảng véc tơ ngắt Khi kích hoạt một ngắt bộ vi xử lý đi qua các bước sau: ● Vi xử lý kết thúc lệnh đang thực hiện và lưu địa chỉ của lệnh kế tiếp (PC) vào ngăn xếp ● Nó nhảy đến một vị trí cố định trong bộ nhớ được gọi là bảng véc tơ ngắt nơi lưu giữ địa chỉ của một trình phục vụ ngắt ● Bộ vi xử lý nhận địa chỉ ISR từ bảng véc tơ ngắt và nhảy tới đó. Nó bắt đầu thực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR là RETI (trở về từ ngắt) ● Khi thực hiện lệnh RETI bộ vi xử lý quay trở về nơi nó đã bị ngắt. Trước hết nó nhận địa chỉ của bộ đếm chương trình PC từ ngăn xếp bằng cách kéo hai byte trên đỉnh của ngăn xếp vào PC. Sau đó bắt đầu thực hiện các lệnh từ địa chỉ đó Dưới đây là bảng véc tơ ngắt của ATmega128 , cùng với địa chỉ của 333 nó trong bộ nhớ chương trình Bảng 7.10. Vector ngắt của ATmega128 334 3. Thứ tự ưu tiên ngắt Khơng như vi xử lý họ 8051, ở đó thứ tự ưu tiên của các ngắt có thể thay đổi được ( bằng cách lập trình ). Với vi xử lý AVR thứ tự ưu tiên các ngắt là không thể thay đổi và theo qui tắc: “ Một vec tơ ngắt có địa chỉ thấp hơn trong bộ nhớ chương trình có mức độ ưu tiên cao hơn ”. Chẳn hạn ngắt ngồi 0 ( INT0 ) có mức độ ưu tiên cao hơn ngắt ngồi 1 ( INT1 ) Để cho phép một ngắt người dùng cần cho phép ngắt tồn cục ( set bit I trong thanh ghi SREG ) và các bit điều khiển ngắt tương ứng Khi một ngắt xảy ra và đang được phục vụ thì bit I trong thanh ghi SREG bị xóa, như thế khi có một ngắt khác xảy ra nó sẽ khơng được phục vụ, do đó để cho phép các ngắt trong khi một ISR ( interrupt service routine ) khác đang thực thi, thì trong chương trình ISR phải có lệnh SEI để set lại bit I trong SREG 4. Ngắt trong ngắt Khi AVR đang thực hiện một trình phục vụ ngắt thuộc một ngắt nào đó thì lại có một ngắt khác được kích hoạt. Trong những trường hợp như vậy thì một ngắt có mức ưu tiên cao hơn có thể ngắt một ngắt có mức ưu tiên thấp hơn. Lúc này ISR của ngắt có mức ưu tiên cao hơn sẽ được thực (*) thi Khi thực hiện xong ISR của ngắt có mức ưu tiên cao hơn thì nó mới quay lại phục vụ tiếp ISR của ngắt có mức ưu tiên thấp hơn trước khi trở về chương trình chính. Đây gọi là ngắt trong ngắt. Chú ý: Giả định là khi một ISR nào đó đang thực thi thì xảy ra một u cầu ngắt từ một ISR khác có mức ưu tiên thấp hơn thì ISR có mức ưu tiên thấp hơn khơng được phục vụ, nhưng nó sẽ khơng bị bỏ qua ln mà ở trạng thái chờ. Nghĩa là ngay sau khi ISR có mức ưu tiên cao hơn thực thi xong thì đến lượt ISR có mức ưu tiên thấp hơn sẽ được phục vụ (*) : Điều này chỉ xảy ra khi trong code của ISR của ngắt có mức ưu tiên thấp hơn có lệnh set bit I trong thanh ghi SREG (đó là lệnh SEI ) 5. Các ngắt ngồi ATmega128 có 8 ngắt ngoài từ INT0 đến INT7 ( ở đây chưa kể tới ngắt reset ). Tám ngắt này tương ứng với 8 chân của MCU là INT0 ,INT1, …, INT7. Để ý là ngay khi các chân INT0, INT1, …, INT7 của MCU được cấu hình như là chân lối ra, thì các ngắt ngồi vẫn có tác dụng nếu được cho phép Các ngắt ngồi có thể bắt mẫu theo kiểu cạnh lên ( Rising ), cạnh xuống ( Falling ) hay mức thấp ( Low level ). Điều này được qui định trong hai thanh ghi EICRA và EICRB. Dưới đây là mơ tả chi tiết 2 thanh ghi EICRA và EICRB và các thanh ghi liên quan tới các ngắt ngồi 335 1. Thanh ghi External Interrupt Control Register A – EICRA Hình 7.57. Thanh ghi EICRA Tám bit của thanh ghi EICRA sẽ điều khiển kiểu bắt mẫu cho 4 ngắt INT3, INT2, INT1, INT0. Qui định cụ thể được thể hiện trong Bảng 48 ISCn1 ISCn0 0 1 n = 3, 2, 1, 0 1 Kiểu bắt mẫu Mức thấp sẽ tạo yêu cầu ngắt Dự trữ Cạnh xuống ( Falling ) sẽ tạo yêu cầu ngắt Cạnh lên ( Rising ) sẽ tạo yêu cầu ngắt Bảng 7.11. Bảng điều khiển kiểu bắt mẫu ngắt 2. Thanh Ghi External Interrupt Control Register B – EICRB Hình 7.58. Thanh ghi EICRB Tám bit của thanh ghi EICRA sẽ điều khiển kiểu bắt mẫu cho 4 ngắt INT7, INT6, INT5, INT4. . Qui định cụ thể được thể hiện trong Bảng 50 ISCn1 ISCn0 Kiểu bắt mẫu Mức thấp sẽ tạo yêu cầu ngắt 336 1 1 n = 7,6, 5, 4 Bất cứ sự thay đổi mức logic nào ở chân INTn sẽ tao ra một yêu cầu ngắt Cạnh xuống ( Falling ) giữa hai mẫu sẽ tạo yêu cầu ngắt Cạnh lên ( Rising ) giữa hai mẫu sẽ tạo yêu cầu ngắt Bảng 7.12. Bảng điều khiển kiểu bắt mẫu ngắt 3. Thanh Ghi External Interrupt Mask Register – EIMSK Hình 7.59. Thanh ghi EIMSK Khi cho phép ngắt tồn cục ( set bit I trong thanh ghi SREG thành 1 ) thì các ngắt vẫn chưa thể thực thi, để ngắt có thể thực thi ta cần phải cho phép nó, 8 bit trong thanh ghi EIMSK sẽ quyết định 8 ngắt ngoài tương ứng ( từ INT7 INT0 ) có được cho phép hay khơng. Khi một trong số 8 bit ( từ INT7 INT0 ) được set thành 1 và ngắt tồn cục được cho phép thì ngắt ngồi tương ứng được cho phép. Cịn tín hiệu ngắt là mức hay cạnh sẽ do các thanh ghi EICRA và EICRB ( nêu ở trên ) qui định. Kích hoạt bất cứ chân ( Pin ) nào trong 8 chân của ngắt ngoài cũngg tạo ra yêu cầu ngắt ngay cả khi chân được thiết lập thành đầu ra Thanh Ghi External Interrupt Flag Register – EIFR Hình 7.60. Thanh ghi EIFR Đây là tám cờ ngắt tương ứng với tám ngắt ngồi INT7 INT0. Khi có tín hiệu u cầu ngắt ngồi thì cờ ngắt tương ứng sẽ được set thành 1, nếu ngắt tương ứng được cho phép thì MCU sẽ nhảy tới bảng véc tơ ngắt, cờ ngắt sẽ được xóa khi chương trình phục vụ ngắt ( ISR ) được thực thi. Ngồi ra ta cũngg có set hay xóa cờ ngắt bằng cách ghi trực tiếp một giá trị logic vào nó 5. Thanh Ghi MCU Control Register – MCUCR 337 Hình 7.61. Thanh ghi MCUCR Trong phần này ta chỉ quan tâm tới hai bit là: IVCE (Interrupt Vector Select ) và bit IVSEL (Interrupt Vector Change Enable ) của thanh ghi MCUCR. Bit này liên quan đến việc thiết lập vị trí bảng véc tơ ngắt Bit 1 – IVSEL: Interrupt Vector Select: Khi bit này là 0 vị trí của bảng véc tơ ngắt được đặt ở phần đầu bộ nhớ chương trình. Khi bit này là 1 bảng véc tơ ngắt được di chuyển tới phần đầu của vùng nhớ Boot Loader Bit 0 – IVCE: Interrupt Vector Change Enable : Bit này phải được ghi thành để cho phép thay đổi bit IVSEL. Bit IVCE được xóa sau 4 chu kì máy sau khi nó được set hay bit IVSEL được ghi. Trong lúc bit ICVE đang set các ngắt sẽ bị cấm cho tới khi bit IVSEL được ghi, nếu bit IVSEL không được ghi thì các ngắt vẫn bị cấm trong 4 cho kì máy liên tiếp ( sau 4 chu kì máy thì bit IVCE sẽ tự động bị xóa nên các ngắt được cho phép trở 338 TÀI LIỆU THAM KHẢO Kỹ thuật vi xử lý và lập trình Assembly cho hệ vi xử lý, Đỗ Xuân Tiến, 2003 Tài liệu hướng dẫn sử dụng thí nghiệm MTS51, 8051 Microcomputer Trainer – K&H MFG. CO.,LTD Tài liệu hường dẫn sử dụng bộ thí nghiệm AVR, Training kit SAT128 350 (Dr.kim Training kit Atmega128 SAT128350) Vi xử lý – Nguyễn Đình Phú, Đại học sư phạm Kỹ thuật HCM Programming Embedded Systems I – Michael J.Pont, University of Leicester Họ vi xử lý 8051, I. Sott Mackenzie, dịch: Tống Văn On và Hoàng Đức Hải, 2001 Microprocessor and IC families Walter H. Buchbaum. Sc.D Mikrocompute Lehrbuch HPI Fachbuchreihen Pflaum Verlag Munchen8051 Development Boad, Rev 5 Paul Stoffregen 10 www.atmel.com – datasheet Atmega128 11 www.atmel.com datasheet Atmel 89C51 12 www.robotkim.com/drkimrobot.com 339 ... đ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ự... So sánh sự khác nhau của? ?vi? ?xử? ?lý? ?và? ?vi? ?xử? ?lý? ?8 bit ? ?Trình? ?tự nạp bộ nhớ Flash của? ?vi? ?xử? ?lý? ?89C51 Các thành phần bên trong sơ đồ khối? ?vi? ?xử? ?lý? ?89C51 So sánh giữa? ?vi? ?xử? ?lý? ?89C51 với 89C52 Các hoạt động Reset của 8051... Nêu được lịch sử phát triển của? ?vi? ?xử? ?lý Phân biệt được? ?vi? ?xử ? ?lý? ?với? ?vi? ?xử ? ?lý? ?về cấu trúc Nêu vi xử lý cho hệ thống nhúng 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