Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán.
Göûi Baïn Ñoïc !
Ñaõ töø laâu aáp uû mong muoán coù moät goùc trôøi rieâng ñeå trao ñoåi vaø hoïc taäp veà caùc moân hoïc cuõng nhö öùng duïng veà lónh vöïc Töï ñoäng hoùa. Chuùng toâi ñaõ khoâng ngöøng hoïc hoûi vaø chuaån bò kyõ löôõng veà noäi dung cuûa nhöõng gì chuùng toâi muoán göûi ñeán caùc baïn ngaøy hoâm nay. Vôùi taát caû nieàm say meâ caùc lónh vöïc ñieàu khieån töï ñoäng vaø töï ñoäng hoùa, treân heát laø mong muoán phoå bieán kieán thöùc môùi nhaát veà coâng ngheä töï ñoäng hoùa, hy voïng seõ giuùp ích cho caùc baïn trong quaù trình hoïc taäp cuõng nhö nghieân cöùu. Vaø Chuùc cho ngaønh coâng nghieäp töï ñoäng hoùa Vieät Nam seõ coù theâm nhieàu taøi naêng môùi, giuùp ích cho nöôùc nhaø. Chuùng toâi ñaõ coù gaéng kyõ löôõng trong khi bieân soaïn, nhöng cuõng khoâng traùnh khoûi sai soùt mong nhaän ñöôïc, söï goùp yù cuûa caùc baïn. Xin chaân thaønh caùm ôn ! haõy ñeán vôùi chuùng toâi taïi ñòa chæ:
Seõ luaân luoân ñöôïc caäp nhaät nhöõng baøi vieát môùi.
Thaân Chaøo :Published by Löu Anh Tình
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
1
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán. Comment [GM1]: Bài 1
Giôùi thieäu chung veà Vi Ñieàu Khieån Caùc baïn thaân meán baøi ñaàu tieân naøy toâi xin ñeà caäp tôùi vaán ñeà noùng boûng hieän nay, trong lónh vöïc ñieàu khieån, ñoù laø doøng vi xöû lyù ñôn chip, maø caùc baïn seõ ñöôïc hoïc trong giaùo trình Kyõ thuaät Vi söû lyù. Toâi chaéc raèng ñaõ coù laàn baïn nghe ai ñoù nhaéc ñeán cuïm töø “Vi ñieàu khieån” hoaëc hoï 8051, hoï PIC, AVR .. ..nhaát laø trong caùc cuoäc thi Robocon gaàn ñaây vaø khi ñoù baïn töï hoûi khoâng bieát noù laø caùi gì, noù öùng duïng ôû ñaâu vaø hoïc taäp nghieân cöùu noù nhö theá naøo vaø caàn nhöõng gì. Vaäy ñeå traû lôøi cho nhöõng thaéc maéc cuûa caùc baïn, haõy ñeán vôùi chuùng toâi qua töøng baøi vieát,thaéc maéc,khoù khaên cuûa baïn seõ ñöôïc giaûi quyeát taän goác ( 100% free). Trong baøi naøy chuùng ta seõ ñeà caäp tôùi nhöõng vaán ñeà sau : 1. Vi ñieàu khieån laø gì ? 2. giôùi thieäu hoï 8051 3. giôùi thieäu hoï PIC 4. giôùi thieäu hoï AVR 5. giôùi thieäu moät soá haõng cung caáp chíp noåi tieáng : Atmel, Phillip, Synal… 1 – Vi ñieàu khieån laø gì ? Để bắt đầu chúng ta đưa ra khái niệm một Vi xử lý là gì ? vào những thập niên 70 của thế kỷ 20 khái niệm bộ vi sử lý đã xuất hiện “microproceesor” với việc hãng Intel đưa ra mẫu chip 8008. đánh dấu sự có mặt của một ngoặt cho ngành công nghiệp máy tính và điện tử sau này. Cùng với sự phát triển của ngành công nghiệp bán dẫn ngày càng tích hợp được nhiều Transitor trên một bản mạnh hơn. Liên tiếp các họ vi sử lý với tính năng được cải thuện đã được các hãng lớn tung ra như Intel 8008/8080/8086/8088 tiếp sau này là các dòng vxl mạnh hơn 80286/80386/80486… tiếp đến là dòng pentium II, III, IV ngày nay là Pentium D, Core dual .. và còn nũa. Bên cạnh anh cả Intel thì một số hãng như Motorola cũng đưa ra các mấu VXL có tính năng không kém như HC6800, 68010, 68020, 68030… đã được ứng dụng rất nhiều trong máy tính và các thiết bị điện tử gia dụng như máy giặt , tivi, tủ lạnh, máy diều hòa ò vi sóng … Cấu trúc của một vi sử lý dựa trên hai cấu trúc cơ bản là cấu chúc Havard và cấu trúc Von newmann. Điểm khác biệt giữa hai cấu trúc này là cấu túc Havard sử dụng đường truyền dữ liệu và địa chỉ riêng biệt nên tốc độ sử ký nhanh hơn, nhưng tốn đường dây hơn. Còn cấu trúc von newmann sử dụng chung bus dữ kiệu và địa chỉ thì tích kiệm được tài nguyên bộ nhớ . Được tích hợp tong mình một lõi là bộ vi sử lý trên kết hợp với các modul vao ra (I/O) ta có một vi điều khiển “Microcontroller”. Họ VDK 8051 Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
2
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán. được mang trong mình lõi VXL 8080, ngày nay do hãng philips sản xuất, Intel đã chuyển sang phát triển một loại VDK phức tạp khác sẽ ra mắt trong tương lai. Bạn có thể xem chi tiết tại web: http://www.developer.intel.com/ và các nhà sản suất khác cùng cho các họ VDK khác nhau như Motorola, Zilog, Rockwell… Vậy bạn cần nhớ là VDK được phát triển trên nền một VXL kết hợp thêm các khả năng giao tiếp, và khả năng lập trình thông qua mã giợi nhớ (instruction). Tức là trong một VDK có chứa Một hoặc nhiều VXL tùy theo công nghệ chế tạo. Ngày nay sự phát triển của công nghệ bán dẫn đã dưc công nghệ chế tạo chíp bán dẫn lên một tầm cao mới. có rất nhiều họ vi diều khiển có tính năng ưu việt cho từng ứng dụng. ở bài viết này tôi chỉ xin chích giới thiệu đến các bạn một số loại VDk thông dung , rễ kiếm và rẻ tiền đang hiện hành ở Việt Nam. 2 – Giới thiệu họ VDK 8051 Đây là dòng Microcontoller “VDk” có mặt ở việt nam đầu tiên vào những năm 90 thế kỷ 20. và thật sự phát triển dầm rộ vào những năm đầu thế kỷ 21, đến ngày nay nó đã trở nên quen thuộc. Nhưng ở việt Nam vân không thể lớn mạnh được do nhà phân phối chíp quá ít so với nhu cầu chủ yếu tập trung ớ Hà Nội Và TP HCM. Dòng 8051 và một VDK có cấu trúc của một hệ V máy tính. Bao gồm các khối cơ bản như CPU , RAM , ROM, Bus … IxC
EIR ExC
timer
Interrupt control
Serial devies
Parallel devices
Serial interface
Parallel interface
CPU
Address, data, Control bus (system bus)
RAM
ROM
Hình 2.1 - kiến trúc chung của hệ Vi máy tính Trong đó : CPU ( central procesing unit – là đơn vị sử lý trung tâm ) Timers là các bộ định thời Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
3
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán. Interrup control – là điều khiển ngắt Serial interface : giao tiếp nối tiếp Parallel interface ; giao tiếp song song System bus : bao gồm bus điều khiển (Control bus), bus dữ liệu (data bus), bus địa chỉ ( address bus). RAM :bộ nhớ truy cập ngẫu nhiên (radom access memory) Rom : bộ nhớ chỉ đọc (Read only memory). Serial device ; là thiết bị nối tiếp Parallel device : là thiết bị song song. Exc : xung clock ngoà (external clock) Ixc : là xung clock nội ( internal clock) Eir : là ngắt ngoài ( external interrupt).
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
4
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán. Tập lệnh mã ngữ của họ MCS-51 được xây dựng trên cơ sở mã ngữ của các bộ vi xử lý 8 bít, với những phát triến nhằm tối ưu hóa cho các ứng dụng điều khiển. Mỗi lệnh mã ngữ sẽ xử lý một byte hoặc một bít số liệu nằm ở một thanh ghi hoặc ô nhớ nào đó, nên trong lệnh phải có địa chỉ của số liệu để CPU tìm được số liệu cần xử lý. Cấu trúc mỗi lệnh mã ngữ của MCS-51 gồm có một mã lệnh 8 bít quy định thao tác sử lý, kèm theo từ 0 đến 2 byte toán hạng là số liệu hoặc địa chỉ cần thiết cho việc thực hiện lệnh. Các lệnh mã ngữ sử dụng nhiều phương pháp định địa chỉ khác nhau, vì thế trước hết chúng ta cần tìm hiểu chúng. Các phương pháp định địa chỉ được sử dụng trong các lệnh mã ngữ là địa chỉ tức thì, địa chỉ trực tiếp, địa chỉ gián tiếp, địa chỉ thanh ghi, địa chỉ tương đối, địa chỉ tuyệt đối, địa chỉ dài và địa chỉ chỉ số. Các lệnh sử dụng địa chỉ tức thì có một toán hạng (ký hiệu là #data) chính là số liệu cần xử lý, trình biên dịch nhận biết toán hạng số liệu tức thì nhớ ký tự # đặt trước toán hạng đó. Các lệnh sử dụng địa chỉ trực tiếp chỉ được dùng để truy cập vùng 128 byte thấp của bộ nhớ RAM trong và các thanh ghi chức năng đặc biệt SFR có địa chỉ ở vùng 128 byte cao của bộ nhớ RAM trong, chúng có toán hạng (ký hiệu là Direct) là địa chỉ 8 bít của ô nhớ hoặc tên thanh ghi SFR chứa số liệu cần xử lý. Phương pháp địa chỉ gián tiếp cho phép xác định hoặc tính toán địa chỉ của biến để truy cập đến các ô nhớ có giá trị biến đổi khi chương trình chạy, điều này không thể thực hiện được bằng địa chỉ trực tiếp. Các lệnh sử dụng địa chỉ gián tiếp để truy cập đến bộ nhớ RAM trong phải dùng các thanh ghi R0 hoặc R1 làm con trỏ dữ liệu (ký hiệu là @Ri, với i = 0 hoặc 1) Các lệnh truy cập đến bộ nhớ RAM ngoài phải dùng các thanh ghi RO, R1 hoặc thanh ghi 16 bít DPTR làm con trỏ dữ liệu (ký hiệu là @DPTR). Ký hiệu @Ri được hiểu là ô nhớ được trỏ bởi Ri, nghĩa là Ri chứa địa chỉ của ô nhớ cần truy cập, do đó cần thiết lập địa chỉ. của ô nhớ chứa số liệu cần xử lý ở thanh ghi dùng làm con trỏ trước khi thực hiện lệnh dùng con trỏ. Các lệnh sử dụng địa chỉ thanh ghi chỉ được dùng cho các thanh ghi của băng thanh ghi hiện thời, chúng có toán hạng là tên của một trong các thanh ghi R0-R7 (kí hiệu Rn là thanh ghi thứ n, với n = 0-7).
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
5
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán.
Bảng 1: Nhóm các lệnh số học Chỉ có các lệnh nhẩy sử dụng địa chỉ tương đối, chúng có một toán hạng (ký hiệu là Rel) là tên nhãn của điểm nhẩy đến và sẽ được trình biên dịch tính thành giá trị Offset bằng khoảng cách từ lệnh tiếp theo đến vị trí của nhãn, do đó địa chỉ tuyệt đối của điểm nhẩy đến sẽ bằng giá trị hiện tại của bộ đếm chương trình PC cộng với giá trị Offset. Do Offset là giá trị 8 bít có dấu nên tầm nhẩy khi sử dụng địa chỉ tương đối bị giới hạn trong khoảng cách 127 byte đến -128 byte từ vị trí của lệnh tiếp sau lệnh nhẩy. Chỉ có các lệnh ACALL và AJMP sử dụng địa chỉ tuyệt đối, chúng có một toán hạng là tên nhãn của điểm nhẩy đến và sẽ được trình biện dịch tính thành giá trị 11 bít Absolute bằng khoảng cách từ lệnh tiếp theo đến vị trí của nhãn và đó chính là 11 bít thấp của địa chỉ, còn 5 bít cao của địa chỉ sẽ là 5 bít cao hiện thời của bộ đếm chương trình PC, do đó các lệnh trên chỉ có thể rẽ nhánh chương trình trong giới hạn 2K của bộ nhớ chương trình. Chỉ có các lệnh LCALL và LJMP sử dụng kiểu định địa chỉ dài, chúng có một toán hạng là tên nhãn của điểm nhẩy đến và sẽ được trình biên dịch tính thành giá trị địa chỉ 16 bít, do đó các lệnh trên cho phép rẽ nhánh chương trình trong không gian 64K của bộ nhớ chương trình. Chỉ có các lệnh MOVC và JMP sử dụng địa chỉ chỉ số, chúng có một toán hạng là địa chỉ chỉ số được tính bằng tổng của chỉ số được cất trong thanh chứa A với một giá trị cơ sở là nội dung hiện thời của bộ đếm chương trình PC hoặc Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
6
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán. con trỏ dữ liệu DPTR (ký hiệu là @A+PC hoặc @A+DPTR). Kiểu địa chỉ chỉ số cho phép truy cập chính xác đến các phần tử của bảng số liệu và được dùng để lập bảng rẽ nhánh chương trình. Tập lệnh mã ngữ của họ MCSL51 được chia thành 5 nhóm là nhóm các lệnh số học, nhóm các lệnh logic, nhóm các lệnh di chuyển số liệu, nhóm các lệnh rẽ nhánh và nhóm các lệnh xử lý bít. Mỗi dạng lệnh mã ngữ thực hiện một thao tác nhất định dối với số liệu, nhưng khi sử dụng với các kiểu địa chỉ khác nhau sẽ tạo ra nhiều lệnh cụ thể, mỗi lệnh có mã lệnh và yêu cầu các toán hạng kèm theo khác nhau. Để ngắn gọn và tiện cho độc giả sử dụng sau này, chúng tôi trình bày tập lệnh mã ngữ của họ MCS-51dưới dạng các bảng theo từng nhóm lệnh. Trong các bảng, cột (4) là số byte của lệnh; Cột (5) là số chu kỳ máy TM cần thiết để thực hiện lệnh, mỗi chu kỳ máy bằng 6 chu kỳ xung nhịp Tc từ đó tính được thời gian thực hiện một lệnh bằng 6.TM.TC ; Cột (6) là byte mã lệnh < thực được lệnh khi sau lập) hoặc (xóa đổi thay bị thể có cờ các là (7) Cột lệnh; một của theo kèm aaaaH) eeH, bbH, (aaH, chỉ địa (ddH) thì tức liệu số byte và phân) nhị Hexa dạng tiên đầu>
Bảng 2: Nhóm các lệnh logic
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
7
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán.
Bảng 3: Nhóm các lệnh truyền số liệu
Bảng 4: Nhóm các lệnh rẽ nhánh chương trình
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
8
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán.
Bảng 5: Nhóm các lệnh xử lý bít Các bảng trên cung cấp đầy đủ thông tin về tập lệnh mã ngữ của họ MCS-51 để độc giả có thể viết các chương trình ứng dụng. Nếu độc giả muốn tìm hiểu chi tiết hơn về cả phần cứng và phần mềm của họ MCS-51, hãy tìm đọc tài liệu "Họ vi điều khiển 8051" của các tác giả Tống Văn On và Hoàng Đức Hải do Nhà xuất bản Lao động phát hành năm 2001, hoặc tài liệu “8 bít CMOS Single - Chíp Microcontroller 80C51/80C52 - Use"s Manual” của các hãng lntel, Siemens. Tại các trang web sau : http://atmel.com http://semicondoctor.phillips.com. Mời các bạn đón đọc bài hướng dẫn thực hành lập trình với VDK 8051 ( Còn tiếp).
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
9
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán.
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
10
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán.
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
11
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán.
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
12
Sky Control Blog Thaân Chaøo caùc baïn ñoïc giaû quyù meán.
Published By : Löu Anh Tình – Mai Leâ Bieân Contact to :
[email protected] hoaëc
[email protected] Phone : 0984 708 891 Mr Tình Add : 139/26 Phan Chu Trinh – F2 – TP. Vuõng Taøu.
13