Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứuViện nghiên cứu Robot Hoa kỳ đưa ra một định nghĩa về robot như sau: “Robot là một tay máy nhiều chức năng, chương trình hoạ
Trang 1Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
ASBTRACT
–¯—
“Robot” is a technical term to define a device can active follow a program The project “Designing Arm Robot” is designed for studying and learning about robot This project include two following parts:
- Designing mechanism realized by Nguyen Van Khoa
- Controller board and interface software designed by Nguyen Huu Cuong will explain in this part
Arm Robot of this project has some characteristics:
- Can run in two modes: Manual mode and Auto mode
Controller board designed with PIC16F84A micro-controller, this is one of the PIC micro-controller family This chip can satisfy with some requires of project, it is compatible for communication between system and computer
Software Control for Arm Robot programmed by Microsoft Visual Basic 6.0, this software running in Windows 9x/ME operating system In this environment, users easy use and control system though a familiar interface of Windows
Cantho University, December 16th 2002 Student, NGUYEN HUU CUONG
Trang 2Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
LỜI NÓI ĐẦU
–¯—
Cùng với sự phát triển khoa học và kỹ thuật, ngành điều khiển học và tự động hóa đã có những bước tiến quan trọng Quá trình đó góp phần không nhỏ vào việc tăng năng suất lao động, giảm giá thành, tăng chất lượng và độ đồng đều về chất lượng, đồng thời tạo điều kiện cải thiện môi trường làm việc của con người, đặc biệt trong một số công việc có độ an toàn lao động thấp hoặc có tính độc hại cao Ngày nay, các khái niệm “Dây chuyền sản xuất tự động” hay “Robot” –
“Người máy” – “Tay máy” đã trở nên quen thuộc đối với mọi người
Ngày nay, ở rất nhiều nước robot phát triển không chỉ theo hướng phục vụ sản xuất công nghệ mà còn theo hướng phục vụ trong sinh hoạt và giải trí trong gia đình Robot gia đình hay robot cá nhân được phát triển nhằm thay thế giúp việc nhà Ngày nay, khi thiết kế các loại robot này, các nhà thiết kế đã thêm vào các cảm biến cảm nhận, các giải thuật điều khiển thích nghi và fuzzy logic với mục đích để robot thực hiện được nhiều nhiệm vụ đa dạng khác nhau trong gia đình Đặc biệt là chúng di chuyển rất linh hoạt để phục vụ trong lĩnh vực giải trí
Trong công cuộc xây dựng đất nước hiện nay, đẩy mạnh công nghiệp hóa và hiện đại hóa là một trong nhiều đường lối chủ trương lớn của Đảng và Nhà nước ta Trong đó, điều khiển và tự động hóa góp phần không nhỏ trong chiến lược này
Nghiên cứu robot không còn là một lĩnh vực xa lạ đối với các ngành khoa học kỹ thuật của nước ta nhưng điều này có khá mới đối với sinh viên Đại học Cần Thơ nói chung và sinh viên Khoa Công nghệ Thông tin nói riêng Do đó, có thể đây là đề tài luận văn tốt nghiệp đầu tiên nghiên cứu về robot tại Khoa
Đề tài luận văn tốt nghiệp gồm hai phần chính:
- Thiết kế cánh tay robot (phần động học cơ khí) do Nguyễn Văn Khoa thực hiện
- Thiết kế mạch điều khiển cánh tay robot và phần mềm giao diện người dùng
do Nguyễn Hữu Cường thực hiện sẽ được trình bày trong bài viết này Đề tài này đã thực hiện các công việc sau:
ü Mô tả giải thuật phần cứng và phần mềm của hệ thống
ü Khảo sát vi điều khiển PIC16F84A
ü Khảo sát và lập trình giao tiếp máy tính trong Windows
ü Thiết kế và lắp ráp mạch điều khiển
ü Viết chương trình cho vi điều khiển
ü Thiết kế và viết chương trình giao diện máy tính
ü Hoàn chỉnh hệ thống
Vì đây là đề tài nghiên cứu đầu tiên nên chắc chắn còn khá nhiều thiếu sót và hạn chế trong việc thực hiện và trình bày Rất mong nhận được sự đóng góp ý kiến của quý thầy cô cùng toàn thể các bạn sinh viên để đề tài được hoàn chỉnh hơn
Trang 3Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
ĐHCT, ngày 16 tháng 12 năm 2002
Sinh viên thực hiện
Nguyễn Hữu Cường
Trang 4Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Viện nghiên cứu Robot Hoa kỳ đưa ra một định nghĩa về robot như sau:
“Robot là một tay máy nhiều chức năng, chương trình hoạt động thay đổi được, được dùng để di chuyển vật liệu, chi tiết máy, dụng cụ hoặc dùng cho những công việc đặc biệt thông qua những chuyển động khác nhau đã được lập trình nhằm mục đích hoàn thành những nhiệm vụ đa dạng”
Định nghĩa robot còn được Mikell P.Groover, một nhà nghiên cứu hàng đầu trong lĩnh vực robot, mở rộng hơn như sau:
“Robot công nghiệp là những máy, thiết bị tổng hợp hoạt động theo chương trình có những đặc điểm nhất định tương tự như ở con người”
Theo Artobolevski I I., Vorobiov M V và các nhà nghiên cứu thuộc trường phái khối SEV trước đây thì phát biểu rằng:
“Robot công nghiệp là những máy hoạt động tự động được điều khiển theo chương trình để thực hiện việc thay đổi vị trí của những đối tượng thao tác khác nhau với mục đích tự động hóa các quá trình sản xuất”
Sự thống nhất trong tất cả các định nghĩa nêu trên ở đặc điểm “điều khiển theo chương trình”
Một số nhà khoa học hàng đầu trong lĩnh vực robot của Nhật Bản đưa ra những định nghĩa về robot dưới dạng những yêu cầu như sau
Theo giáo sư Sitegu Watanabe (Đại học tổng hợp Tokyo) thì một robot công nghiệp phải thỏa năm yếu tố sau:
- Có khả năng thay đổi chuyển động
- Có khả năng cảm nhận được đối tượng thao tác
- Có số bậc chuyển động (bậc tự do) cao
- Có khả năng thích nghi với môi trường hoạt động
- Có khả năng hoạt động tương hỗ với đối tượng bên ngoài
Trang 5Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Theo giáo sư Masahiro Mori (Viện công nghệ Tokyo) thì robot công nghiệp phải có những đặc điểm sau:
- Có khả năng thay đổi chuyển động
- Có khả năng xử lý thông tin (biết suy nghĩ)
- Có tính vạn năng
- Có những đặc điểm của người và máy
P.J McKerrow, một nhà nghiện cứu robot của Úc đã đưa ra một định nghĩa Theo ông, robot là một loại máy có thể lập trình để thực hiện những công việc đa dạng tương tự như một máy tính, là một mạch điện tử có thể lập trình để thực hiện những công việc đa dạng
I.1.2 Phân loại Robot
Để nhận biết được các dạng robot người ta dựa vào những đặc điểm cơ bản khác nhau của chúng Có 4 yếu tố chính để phân loại robot như sau:
- Theo dạng hình học của không gian hoạt động
- Theo thế hệ robot
- Theo bộ điều khiển
- Theo nguồn dẫn động
a Phân loại theo dạng hình học của không gian hoạt động
Robot được phân loại theo sự phối hợp giữa ba trục chuyển động cơ bản rồi sau đó được bổ sung để mở rộng thêm bậc chuyển động nhằm tăng thêm độ linh hoạt Vùng giới hạn tầm hoạt động của robot được gọi là không gian làm việc hay vùng hoạt động
- Robot tọa độ vuông góc (cartesian robot): robot loại này có ba bậc chuyển động cơ bản gồm ba chuyển động tịnh tiến dọc theo ba trục vuông góc
- Robot tọa độ trụ (cylindrical robot): ba bậc chuyển động cơ bản gồm hai trục chuyển động tịnh tiến và một trục quay
- Robot tọa độ cầu (spherical robot): ba bậc chuyển động cơ bản gồm một trục tịnh tiến và hai trục quay
- Robot khớp bản lề (articular robot): ba bậc chuyển động cơ bản gồm ba trục quay
b Phân loại theo thế hệ
Phân loại dựa theo quá trình phát triển của robot
- Robot thế hệ thứ nhất:
+ Sử dụng tổ hợp các cơ cấu cam với công tắc giới hạn hành trình
+ Điều khiển vòng hở
+ Có thể sử dụng băng từ hoặc băng đục lỗ để đưa chương trình vào bộ điều khiển, tuy nhiên loại này không thể thay đổi chương trình được
+ Sử dụng phổ biến trong công việc gắp-đặt (pick-place)
- Robot thế hệ thứ hai:
+ Điều khiển vòng kín các chuyển động của tay máy
+ Có thể tự đưa ra quyết định lựa chọn chương trình đáp ứng dựa trên tín hiệu phản hồi từ cảm biến nhờ các chương trình đã được cài đặt từ trước
Trang 6Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
+ Hoạt động của robot có thể lập trình được nhờ các công cụ như bàn phím, panen điều khiển
- Robot thế hệ thứ ba:
+ Có những đặc điểm như loại trên và điều khiển hoạt động trên cơ sở xử lý thông tin thu nhận được từ hệ thống thu nhận hình ảnh (Vision systems – Camera)
+ Có khả năng nhận dạng ở mức độ thấp như phân biệt các đối tượng có hình dạng và kích thước khá khác biệt nhau
- Robot thế hệ thứ tư:
+ Có những đặc điểm tương tự như thế hệ thứ hai và thứ ba, có khả năng tự động lựa chọn chương trình hoạt động và lập trình lại cho các hoạt động dựa trên các tín hiệu thu nhận được từ cảm biến
+ Bộ điều khiển phải có bộ nhớ tương đối lớn để giải các bài toán tối ưu với điều kiện biên không được xác định trước Kết quả của bài toán sẽ là một tập hợp các tín hiệu điều khiển các đáp ứng của robot
- Robot thế hệ thứ năm:
+ Robot được trang bị các kỹ thuật của trí tuệ nhân tạo như nhận dạng tiếng nói, hình ảnh, xác định khoảng cách, cảm nhận đối tượng qua tiếp xúc, … để
ra quyết định và giải quyết các vấn đề hoặc nhiệm vụ đặt ra cho nó
+ Robot được trang bị mạng Neuron có khả năng tự học
+ Robot được trang bị các thuật toán dạng Neuron Fuzzy / Fuzzy Logic để tự suy nghĩ và ra quyết định cho các ứng xử tương thích với những tín hiệu nhận được từ môi trường theo những thuật toán tối ưu một hay nhiều mục tiêu đồng thời
c Phân loại theo bộ điều khiển
- Robot gắp-đặt
- Robot đường dẫn liên tục
d Phân loại theo nguồn dẫn động
- Robot dùng nguồn cấp điện
- Robot dùng nguồn khí nén
- Robot dùng nguồn thủy lực
I.1.3 Những ứng dụng của robot
Dựa vào những đặc điểm riêng biệt mà robot được ứng dụng trong các lĩnh vực khác nhau:
a Ứng dụng trong công nghiệp
Đây là lĩnh vực ứng dụng công nghệ robot nhiều nhất
- Ứng dụng robot trong công nghệ hàn
- Ứng dụng robot trong lắp ráp
- Ứng dụng robot trong nhà máy sản xuất
b Ứng dụng robot trong phòng thí nghiệm
c Ứng dụng robot trong các thao tác cần khuếch đại lực
d Ứng dụng robot trong nông nghiệp
e Ứng dụng robot trong không gian
Trang 7Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
f Ứng dụng robot trong tàu lặn
g Ứng dụng robot trong giáo dục
h Ứng dụng robot trong hỗ trợ người tần tật
i Ứng dụng robot trong sinh hoạt và giải trí
I.2 GIỚI THIỆU VỀ ĐỀ TÀI
I.2.1 Đặc điểm của cánh tay trong đề tài
Dựa vào các định nghĩa và phân loại robot bên trên, cánh tay robot dùng trong đề tài có thể được phân loại theo các đặc điểm cơ bản như sau:
- Đây là robot thế hệ thứ hai
- Điểu khiển hoạt động vòng kín
- Robot khớp bản lề: gồm bốn trục quayA, B, C và D
- Robot dùng nguồn cấp điện
- Cánh tay có thể hoạt động tự động theo chương trình đã được định trước
- Người dùng có thể thay đổi chương trình điều khiển thông qua phần mềm giao diện
Để có được các đặc điểm trên, hệ thống cánh tay robot sẽ gồm những phần
cơ bản sau:
- Phần động học cánh tay (cơ khí) sẽ được thực hiện trong đề tài: “Thiết kế cánh tay robot – Phần cơ khí” của Nguyễn Văn Khoa
Các phần còn lại được giới thiệu trong đề tài này là:
- Mạch điều khiển, sử dụng vi điều khiển PIC16F84A
- Phần mềm giao tiếp người dùng qua máy vi tính (Phần mềm điều khiển cánh tay robot – Software Control for Arm Robot SCAR) được viết bằng ngôn ngữ Visual Basic 6.0
Cánh tay robot này có thể hoạt động hai chế độ:
- Chế độ Manual: người dùng nhập tuần tự dữ liệu và cho hệ thống hoạt động theo các dữ liệu đưa vào Có thể sử dụng chế độ này để xác lập vị trí ban đầu của cánh tay
- Chế độ Auto: hệ thống hoạt động theo chương trình được lập trình trước
I.2.2 Lựa chọn bộ vi điều khiển
Bộ vi điều khiển là phần quan trọng nhất của một robot bảo đảm cho robot có thể hoạt động một cách tự động theo một chương trình định sẵn Vì vậy việc chọn lựa một bộ vi điều khiển ảnh hưởng không nhỏ đến hoạt động của robot này
Microchip là một Embedded Control Solutions Company (tạm gọi là công ty các giải pháp điều khiển có ghi nhớ) Trọng tâm của công ty này là các sản phẩm cần thiết thường gặp trên thị trường điều khiển có ghi nhớ Chúng là:
- Các loại vi điều khiển đa dụng 8-bit (8-bit General Purpose Microcontrollers – PICmicro™ MCUs)
- Các thiết bị nhớ chuyên biệt và chuẩn bất biến
- Các thiết bị bảo vệ
- Các sản phẩm tiêu chuẩn ứng dụng riêng biệt
Trang 8Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Trong quá khứ, những người dùng MCU 8-bit chỉ dùng các kiểu MCU cổ điển cho sản phẩm của họ, yêu cầu cần phải có một thiết bị ROM
Microchip có một mặt mạnh trong kỹ thuật EPROM Đó là một kỹ thuật bộ nhớ đã được chọn cho bộ nhớ chương trình PICmicro MCU Microchip đánh giá thấp sự khác biệt giá thành giữa kỹ thuật bộ nhớ EPROM và ROM, từ đó Microchip đem đến nhiều lợi ích lớn cho người dùng
Các PICmicro 8-bit MCU của Microchip có một tỉ lệ giá thành/hiệu suất cho phép chúng được dùng đến trong bất kỳ ứng dụng 8-bit MCU cổ điển nào cũng như các ứng dụng 4-bit cổ điển (Base-Line family), được dành cho những ứng dụng thay thế luận lý và giới hạn mức thấp DSP (High-End family) Các điểm đặc trưng và tỉ số giá thành/hiệu suất làm cho PICmicro MCU được coi là một giải pháp hấp dẫn cho hầu hết các ứng dụng
Vì thế tôi đã chọn PICmicro MCU cho đề tài để từ đó có thể tìm hiểu rõ hơn và phát triển các ứng dụng của vi điều khiển họ PIC trong nhiều lĩnh vực khác Điển hình là vi điều khiển PIC16F84A
I.2.3 Nguyên tắc hoạt động
Hệ thống nhận dữ liệu thông tin điều khiển (chế độ quay và số xung hồi tiếp của từng motor) từ máy tính thông qua mạch điện và phần mềm giao tiếp trên máy tính Điều khiển các motor hoạt động theo các dữ liệu đó Trong quá trình hoạt động, hệ thống sẽ nhận các xung hồi tiếp từ các motor, tiến hành đếm và so sánh với số xung hồi tiếp nhận được từ dữ liệu điều khiển ban đầu Khi số xung hồi tiếp nhận được từ motor bằng với dữ liệu xung hồi tiếp ban đầu, hệ thống sẽ kết thúc quá trình điều khiển đối với motor đó
Ngoài ra, hệ thống còn truyền thông tin trạng thái của từng motor về máy tính, từ đó thông qua chương trình giao diện người dùng có thể quan sát được trạng thái hoạt động của từng motor
I.2.4 Nhận xét về đề tài
Đề tài thực hiện được một số yêu cầu đề ra như:
- Có thể điều khiển cánh tay robot gắp một vật từ một điểm, mang và thả vật ở một điểm khác
- Người dùng có thể nhập số xung hồi tiếp để xác định thử vị trí đến của cánh tay sau đó có thể lưu lại dưới dạng lệnh điều khiển trong file điều khiển và cho chạy lại file điều khiển này
Dữ liệu
Xung hồi tiếp
HI.1 Mô hình cơ sở tự động của hệ thống
Trang 9Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
- Người dùng có thể xác định góc quay của từng khớp quay để cánh tay có thể
di chuyển từ vị trí reset đến một vị trí bất kỳ trong vùng hoạt động của cánh tay
- Hệ thống điều khiển có thể điều khiển bất kỳ cánh tay robot nào có cơ chế hoạt động tương tự cánh tay robot trong đề tài
Tuy nhiên, đề tài còn gặp một số hạn chế sau:
- Cánh tay robot không có đường phát tín hiệu khi chạm các công tắc giới hạn,
do đó hệ thống không thể dừng lại khi các khớp quay chạm công tắc giới hạn Điều này làm cho việc đưa cánh tay về vị trí reset không thể thực hiện tự động được
- Hệ thống các motor của cánh tay robot là các motor DC và đĩa phát xung chỉ phát xung một lần sau khi quay được một vòng Vì vậy, hoạt động của cánh tay không được chính xác lắm trong việc xác định tọa độ
Trang 10Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
CHƯƠNG II
GIỚI THIỆU SƠ LƯỢC VỀ VI ĐIỀU KHIỂN HỌ PIC
VI ĐIỀU KHIỂN PIC16F84A
–¯—
II.1 Giới thiệu sơ lược về vi điều khiển họ PIC
II.2 Giới thiệu sơ lược về vi điều khiển PIC16F84A II.3 Tổng quan tập lệnh vi điều khiển họ PIC
II.1 GIỚI THIỆU SƠ LƯỢC VỀ VI ĐIỀU KHIỂN HỌ PIC
Các vi điều khiển PICmicro được phân nhóm theo kích thước từ lệnh (Instruction Word) của chúng Có 3 dòng PICmicro như sau:
- Base-Line: chiều dài từ lệnh 12-bit
- Mid-Range: chiều dài từ lệnh 14-bit
- High-End: chiều dài từ lệnh 18-bit
Ở đây ta sẽ giới thiệu sơ lược về dòng vi điều khiển Mid-Range vì chúng có nhiều ứng dụng trong thực tế và vi điều khiển PIC16F84A cũng thuộc dòng này
II.1.1 Cấu trúc
a Cấu trúc nội vi
Cấu trúc nội vi gắn liền với những đặc điểm cơ bản cần thiết để cho thiết bị hoạt động Chúng bao gồm:
- Bộ tạo dao động thiết bị
- Reset luận lý
- CPU – Bộ xử lý trung tâm
- ALU – Bộ luận lý toán học
- Tổ chức bộ nhớ thiết bị
- Hoạt động ngắt
- Tập lệnh
b Cấu trúc ngoại vi
Cấu trúc ngoại vi có những điểm khác biệt so với một vi xử lý Chúng kết nối giữa thế giới bên ngoài với các cấu trúc bên trong của vi điều khiển
- Bộ vào/ra (I/O) đa mục đích
- Bộ định thời Timer0
- Bộ định thời Timer1
- Bộ định thời Timer2
- Bộ giữ (Capture), so sánh (Compare), biến điệu độ rộng xung (PWM) - CCP
- Port nối tiếp đồng bộ (Synchronous Serial Port – SSP)
- Port nối tiếp đồng bộ cơ bản (Basic Synchronous Serial Port – BSSP)
Trang 11Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
- Port nối tiếp đồng bộ chủ (Master Synchronous Serial Port – MSSP)
- USATR (SCI)
- Bộ tham chiếu điện thế
- Bộ so sánh
- Bộ biến đổi tương tự sang số 8-bit (A/D)
- Bộ biến đổi tương tự sang số 8-bit cơ bản (A/D)
- Bộ biến đổi tương tự sang số 10-bit (A/D)
- Bộ biến đổi đường dốc tương tự sang số (A/D)
- Bộ điều khiển hiển thị tinh thể lỏng (Liquid Crystal Display – LCD)
- Port song song phụ (Parallel Slave Port - PSP)
c Các đặc điểm riêng biệt
Các điểm riêng biệt này là các đặc điểm duy nhất trợ giúp để đạt được một hoặc nhiều mục tiêu sau đây:
- Giảm giá thành hệ thống
- Tăng độ tin cậy hệ thống
- Tăng tính mềm dẻo trong thiết kế
Các bộ vi điều khiển (MCU) Mid-Range PICmicro có các đặc điểm riêng để đạt được các mục tiêu trên Các đặc điểm đó là:
- Cấu hình thiết bị dạng bit
- Reset khi cấp nguồn (Power-on Reset – POR)
- Reset khi sụt áp (Brown-out Reset – BOR) luận lý
- Bộ định thời “chó trông cửa” (Watchdog Timer)
- Chế độ công suất thấp (ngủ – Sleep)
- Bộ dao động thiết bị RC bên trong
- Lập trình nối tiếp trên mạch (In-Circuit Serial Programming – ICSP)
II.1.2 Các thông số thiết bị
Một số thông số của thiết bị rất cần thiết, chúng bao gồm:
- Kỹ thuật bộ nhớ
- Điện thế hoạt động
- Dãy nhiệt độ hoạt động
- Tần số hoạt động
- Bao gói
Microchip có một số lượng lớn các tùy chọn và các phối hợp tùy chọn, có thể đáp ứng đầy đủ các nhu cầu của ta Ta cần chú ý đến hai thông số chính đó là loại bộ nhớ và dãy điện áp hoạt động:
a Thông số bộ nhớ
Kỹ thuật bộ nhớ không ảnh hưởng đến hoạt động luận lý của một thiết bị Một số yêu cầu trong các bước xử lý, một số đặc tính điện có thể thay đổi giữa các thiết bị có cùng đặc điểm set/pinout nhưng khác nhau về kỹ thuật bộ nhớ Thí dụ, đặc tính điện VIL (Input Low Voltage), có thể có một số khác biệt giữa một loại thiết bị EPROM và một loại thiết bị ROM
Trang 12Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Microchip cho ra đời ba loại bộ nhớ chương trình Loại bộ nhớ được thiết kế được phân biệt bằng chữ cái đầu tiên trong tên của vi điều khiển
- C, như PIC16CXXX Các thiết bị có loại bộ nhớ EPROM
- CR, như PIC16CRXXX Các thiết bị có loại bộ nhớ ROM
- F, như PIC16FXXX Các thiết bị có loại bộ nhớ Flash
EPROM: Bộ nhớ chỉ đọc lập trình và xóa được (Erasable Programmable Read Only Memory)
ROM: Bộ nhớ chỉ đọc (Read Only Memory)
Bộ nhớ Flash: Bộ nhớ này có thể xóa bằng điện, có thể vừa xóa vừa lập trình mà không cần gỡ khỏi mạch điện
b Các tùy chọn dãy điện áp hoạt động
Tất cả các MCU Mid-Range PICmicro đều hoạt động trong dãy điện áp tiêu chuẩn Các thiết bị này có thể hoạt động trong dãy điện áp được mở rộng (và dãy tần số thấp) Bảng dưới đây cho thấy các loại bộ nhớ và dãy điện áp được thiết kế cho vi điều khiển họ PIC
Dãy điện áp Loại bộ nhớ Tiêu chuẩn Được mở rộng
Dãy điện áp EPROM ROM Flash
Trước khi hoàn chỉnh thiết bị
LC 3.0-6.0V LCR 3.0-6.0V LF 3.0-6.0V Được mở
rộng Hoàn chỉnh kỹ
thuật LC 2.5-6.0V LCR 2.5-6.0V LF 2.0-6.0V
II.2 GIỚI THIỆU SƠ LƯỢC VỀ VI ĐIỀU KHIỂN PIC16F84A
Trong chương này chỉ giới thiệu một cách rất sơ lược về các đặc tính và một số bộ phận của vi điều khiển PIC16F84A sẽ được dùng trong việc điều khiển cánh tay robot, một số phần khác sẽ không được đề cập đến
II.2.1 Các đặc điểm cơ bản:
Vi điều khiển PIC16F84A có các đặc điểm cơ bản sau:
- Các đặc điểm của một CPU RISC có hiệu suất cao
- Các đặc điểm riêng của một vi điều khiển
- Và kỹ thuật CMOS, bộ nhớ FLASH/EEPROM
a Các đặc điểm của CPU RISC hiệu suất cao
- Tập lệnh chỉ gồm 35 lệnh đơn
- Tốc độ hoạt động: xung vào 20MHz; chu kỳ lệnh 200ns
- Dung lượng bộ nhớ chương trình 1024 từ
- Dung lượng RAM dữ liệu 68 byte
Trang 13Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
- Dung lượng EEPROM dữ liệu 64 byte (1KB)
- Độ rộng của từ lệnh là 14 bit
- Độ rộng byte dữ liệu là 8 bit
- 15 thanh ghi phần cứng chức năng đặc biệt (Special Function Hardware Registers – SFR)
- Ngăn xếp phần cứng độ sâu 8 tầng
- Cơ chế liên lạc địa chỉ trực tiếp và gián tiếp
- 4 loại ngắt:
+ Ngắt ngoài RB0/INT
+ Ngắt tràn bộ định thời TMR0
+ Ngắt khi thay đổi dữ liệu các chân PORTB<7:4>
+ Ngắt khi ghi xong dữ liệu vào EEPROM
b Các đặc điểm bên ngoài
- 13 chân I/O điều khiển trực tiếp riêng biệt
- Dòng phá huỷ cao, có thể điều khiển trực tiếp led:
+ Dòng phá hủy tối đa 25mA
+ Dòng nguồn tối đa 25mA
- TMR0: bộ định thời/đếm 8 bit với bộ đếm trước lập trình được (8 bit)
c Các đặc điểm của một vi điều khiển đặc biệt
- Bộ nhớ chương trình FLASH có thể ghi xóa lên đến 10.000 lần
- Bộ nhớ dữ liệu EEPROM có thể ghi xóa lên đến 10 triệu lần
- Khả năng lưu trữ dữ liệu EEPROM trên 40 năm
- Lập trình nối tiếp trên mạch (In-Circuit Serial Programming™ - ICSP™) thông qua hai chân RB<7:6>
- Reset khi cấp nguồn (Power-on Reset – POR), bộ định thời khi cấp nguồn (Power-up Timer – PWRT), bộ định thời khi bộ dao động khởi động (Oscillator Start-up Timer – OST)
- Bộ định thời chó trông cửa (Watchdog Timer – WDT) làm cho bộ dao động nội RC hoạt động chính xác
- Bảo vệ mã
- Chế độ tiết kiệm năng lượng SLEEP
- Có thể chọn lựa nhiều bộ dao động
d Kỹ thuật CMOS cho FLASH/EEPROM
- Kỹ thuật tốc độ cao, tiết kiệm năng lượng
- Thiết kế hoàn toàn tĩnh
- Dãy điện thế hoạt động rộng:
+ Trên thị trường: từ 2.0V đến 5.5V + Trong công nghiệp: từ 2.0V đến 5.5V
- Tiêu hao năng lượng thấp:
+ Loại dưới 2mA: 5V, 4MHz
+ Loại 15µA: 2V, 32kHz + Loại nguồn dự phòng dưới 0.5µA: 2V
Trang 14Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
II.2.2 Các chân vi điều khiển PIC16F84A
Vi điều khiển PIC16F84A có 2 kiểu phân bố chân là kiểu 18 chân và kiểu 20 chân, ở đây ta dùng kiểu 18 chân vì đây là loại thông dụng nhất
HII.1: Sơ đồ phân bố chân của vi điều khiển PIC16F84A
Chức năng các chân của vi điều khiển PIC16F84A được mô tả như sau:
Tên gọi S
ố Chức năng Loại đệm Mô tả
3) Ngõ vào dao động thạch anh Ngõ
vào của xung clock ngoại
OSC2/CLKOU
T
15 O - Ngõ ra dao động thạch anh Nối với
thạch anh hoặc mạch cộng hưởng trong chế độ dùng dao động thạch anh Trong chế độ dùng dao động
RC là ngõ ra của ¼ tần số xung clock được đưa vào chân OSC1, có chu kỳ bằng với chu kỳ lệnh
MCLR 4 I/P ST Ngõ vào xóa chính (Reset) Ngõ vào
điện thế lập trình Thực hiện RESET mức thấp cho thiết bị
TTL TTL TTL TTL
ST
PORTA là một cổng I/O hai chiều
Có thể được chọn để đưa xung clock vào bộ định thời/đếm TMR0 Là ngõ
ra dạng ống mở
TTL/ST(1)
TTL TTL
PORTB là một cổng I/O hai chiều PORTB có thể được lập trình bằng phần mềm cho các điện trở kéo lên trong trường hợp là ngõ vào
RBO/INT có thể được chọn làm chân ngắt ngoại
Trang 15Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
TTL TTL TTL TTL/ST(2)
TTL/ST(2)
Chân ngắt thay đổi Chân ngắt thay đổi Chân ngắt thay đổi
Xung lập trình nối tiếp Chân ngắt thay đổi
Dữ liệu lập trình nối tiếp
VSS 5 P - Tham chiếu đất cho mức logic và
các chân I/O
chân I/O
Các ký hiệu: O: Output I/O: Input/Output P: Power
-: Không dùng TTL: ngõ vào TTL ST: ngõ vào Schmitt Trigger
(1): là ngõ vào Schmitt Trigger khi được định là ngõ vào ngắt ngoài
(2): là ngõ vào Schmitt Trigger khi được dùng trong chế độ lập trình nối tiếp
(3): là ngõ vào Schmitt Trigger khi được định trong chế độ bộ dao động RC và là ngõ vào CMOS cho các bộ dao động khác
II.2.3 Tổ chức bộ nhớ
Vi điều khiển PIC16F84A có hai khối bộ nhớ là bộ nhớ chương trình và bộ nhớ dữ liệu Mỗi khối bộ nhớ đều có bus riêng, cho nên tốc độ truy xuất đến mỗi khối là như nhau (cùng chu kỳ dao động)
a Tổ chức bộ nhớ chương trình
Vi điều khiển PIC16F84A được cung cấp 1K x 14 (0000h – 3FFFh) địa chỉ vât lý cho bộ nhớ chương trình Việc truy xuất đến các địa chỉ vật lý này sẽ được thực hiện ngay trong lệnh Thí dụ, truy xuất đến địa chỉ 20h thì lệnh có thể như sau (goto 0x20)
Vector RESET ở địa chỉ 0000h và vector ngắt ở địa chỉ 0004h
HII.2: Bản đồ bộ nhớ chương trình và ngăn xếp PIC16F84A
Trang 16Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
b Tổ chức bộ nhớ dữ liệu
Bộ nhớ chương trình được chia thành hai vùng Vùng đầu tiên là các thanh ghi chức năng đặc biệt (Special Function Register – SFR), vùng còn lại là các thanh ghi đa dụng (General Purpose Register – GPR) Các thanh ghi SFR điều khiển hoạt động của thiết bị
Các phần chia của bộ nhớ dữ liệu được dồn lại (banking), cho cả hai vùng SFR và vùng GPR Vùng GPR được dồn lại cho phép lớn hơn 116 byte của RAM đa dụng Vùng được dồn của SFR dàng cho các thanh ghi điều khiển các chức năng ngoại vi Việc dồn lại này đòi hỏi sử dụng các bit điều khiển để chọn bank, các bit này được đặt trong thanh ghi STATUS
Các lệnh MOVWF và MOVF có thể chuyển giá trị từ thanh ghi W tới bất kỳ
vị trí nào trong hồ sơ thanh ghi (File – F) và ngược lại
Toàn bộ bộ nhớ dữ liệu có thể được truy xuất trực tiếp bằng cách sử dụng địa chỉ tuyệt đối của hồ sơ thanh ghi hoặc truy xuất gián tiếp thông qua thanh ghi chọn hồ sơ (File Select Register – FSR) Địa chỉ gián tiếp dùng giá trị hiện tại của bit RP0 để truy xuất vào vùng được dồn của bộ nhớ dữ liệu
Bộ nhớ dữ liệu được chia thành hai bank chứa các thanh ghi đa dụng và các thanh ghi chức năng đặc biệt Bank0 được chọn bằng cách xóa bit RP0 và set bit PR0 nếu chọn bank1 Mỗi bank được mở rộng đến 7Fh (128 byte) 12 địa chỉ đầu tiên của mỗi bank được dành riêng cho các thanh ghi chức năng đặc biệt (SFR) Phần còn lại dành cho các thanh ghi đa dụng (GPR), được dùng như RAM tĩnh
Trang 17Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Ghi chú: Vùng không sử dụng, đọc là 0
(1) Không phải thanh ghi vật lý HII.3: Bản đồ hồ sơ thanh ghi PIC16F84A
c Các thanh ghi đa dụng (GPR)
Mỗi thanh ghi đa dụng có độ rộng 8 bit và được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi chọn hồ sơ (FSR)
Các địa chỉ GPR trong bank1 được ánh xạ đến các địa chỉ trong bank0 Thí dụ, định địa chỉ 0Ch hoặc 8Ch sẽ truy xuất đến cùng một GPR
d Các thanh ghi chức năng đặc biệt (SFR)
CPU và các cấu trúc ngoại vi dùng các thanh ghi SFR để điều khiển hoạt động thiết bị Các thanh ghi này là RAM tĩnh Các thanh ghi SFR có thể được phân thành hai bộ, nội vi và ngoại vi
Trang 18Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
00
h
INDF Dùng liệt kê FSR định địa chỉ bộ nhớ dữ liệu (không phải
thanh ghi vật lý)
h PCL 8 bit thấp của bộ đếm chương trình (PC) 0000 0000 03
h
STATU
1xxx 04
h
FSR Con trỏ 0 địa chỉ gián tiếp bộ nhớ dữ liệu xxxx
xxxx 05
xxxx xxxx
h PCL 8 bit thấp của bộ đếm chương trình (PC) 0000 0000 83
h
STATU
1xxx 44
h
FSR Con trỏ 0 địa chỉ gián tiếp bộ nhớ dữ liệu xxxx
xxxx 85
h TRISA - - - Thanh ghi hướng dữ liệu PORTA 1111 -1 86
h
1111 87
h
Trang 19Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Ghi chú:
x:không biết; u:không đổi; -:không dùng, đọc là 0;
(1): byte cao của bộ đếm chương trình không thể truy xuất trực tiếp PCLATH là thanh ghi phụ trợ cho các bit PC<12:8> Nội dung của PCLATH có thể được truyền đến byte cao của bộ đếm chương trình, nhưng nội dung các bit PC<12:8> không bao giờ được truyền đến PCLATH
(2): các bit trạng thái TO và PD trong thanh ghi STATUS không bị ảnh hưởng bởi reset MCLR
(3): các dạng reset khác: reset ngoài thông qua MCLR và bộ định thời chó trông cửa
(4): trong bất kỳ dạng reset nào, các chân đều là ngõ vào
(5): giá trị này sẽ được chốt trong cổng ngõ ra
e Thanh ghi STATUS
Vi điều khiển PIC16F84A có khá nhiều thanh ghi chức năng đặc biệt nhưng
ta chỉ đề cập đến thanh ghi STATUS vì đây là thanh ghi được sử dụng nhiều trong việc viết chương trình điều khiển
Thang ghi STATUS chứa trạng thái toán học của ALU, trạng thái RESET và bit chọn bank cho bộ nhớ dữ liệu
Cũng như các thanh ghi khác, thanh ghi STATUS có thể là đích của một lệnh bất kỳ Nếu thanh ghi STATUS là đích của một lệnh, kết quả này ảnh hưởng đến các bit Z, DC hoặc C, ta không thể ghi trực tiếp vào ba bit này Các bit này được đặt lại và xóa theo kết quả logic của thiết bị Tương tự, các bit TO và PD cũng không thể ghi được Do đó, kết quả của một lệnh trên thanh ghi STATUS có thể khác với mong muốn
Thí dụ, CLRF STATUS sẽ xóa ba bit cao và đặt lại bit Z Do đó, khi đó thanh ghi STATUS có giá trị 000u u1uu (u: không đổi)
Chỉ có các lệnh BCF, BSF, SWAPF và MOVWF sẽ được dùng để thay đổi thanh ghi STATUS vì các lệnh này không ảnh hưởng đến bất kỳ bit trạng thái nào
Chú ý:
1- Các bit IRP và RP1 (STATUS<7:6>) không dùng trong vi điều khiển PIC16F84A và phải được xóa khi lập trình Việc dùng các bit này như các bit R/W
đa dụng không được đề cập đến, chúng được dùng cho các sản phẩm ở tương lai
2- Các bit C và DC hoạt động như bit số giữ, dấu trừ của số âm
Trang 20Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Ghi chú:
R:bit đọc được; W:bit ghi được;
1:bit được đặt; 0:bit bị xóa; x:bit không biết
bit 7-6: không dùng, đọc là 0
bit 5: RP0: bit chọn bank thanh ghi (dùng cho địa chỉ trực tiếp)
0 1: bank 1 (80h – FFh)
0 0: bank 0 (00h – 7Fh) bit 4: TO: bit báo tràn bộ định thời
1: sau khi cấp nguồn, lệnh CLRWDT, hoặc lệnh SLEEP
0: khi xuất hiện tràn bộ định thời chó trông cửa
bit 3: PD: bit báo nguồn thấp
1: sau khi cấp nguồn hoặc lệnh CLRWDT
0: là kết quả thực hiện lệnh SLEEP
bit 2: Z: bit zero
1: kết quả của một phép toán hoặc phép logic là 0
0: kết quả của một phép toán hoặc phép logic không là 0
bit 1: DC: bit số nhớ (các lệnh ADDWF, ADDLW, SUBLW, SUBWF, khi đảo dấu)
1: khi tràn số nhớ từ bit thấp thứ 4
0: khi không tràn số nhớ từ bit thấp thứ 4
bit 0: C: bit nhớ (các lệnh ADDWF, ADDLW, SUBLW, SUBWF, khi đảo dấu)
1: khi tràn số nhớ từ bit có trọng số cao nhất (Most Significant Bit – MSB)
0: khi không tràn số nhớ từ bit có trọng số cao nhất (MSB)
Chú ý: Phép trừ được thực hiện bằng cách cộng số bù 2 của toán hạng thứ hai Đối với lệnh quay (RRF, RLF), bit sẽ chứa giá trị của bit cao của thanh ghi nguồn
II.2.4 Các cổng vào/ra
Một vài chân của các cổng vào/ra này được đa hợp với một hàm tuần tự cho các đặc tính ngoại vi trên thiết bị Nói chung, khi một ngoại vi được cho phép, thì chân này không được dùng như một chân vào/ra đa dụng
a Các thanh ghi PORTA và TRISA
PORTA là một cổng hai chiều, có độ rộng 5 bit Thanh ghi định hướng dữ liệu tương ứng là TRISA Việc đặt một bit TRISA (=1) tương ứng một chân của PORTA là ngõ vào (nghĩa là, đặt tương ứng bộ điều khiển ngõ ra vào một chế độ trở kháng cao) Việc xóa một bit TRISA (=0) tương ứng một chân của PORTA là ngõ ra (nghĩa là, đưa nội dung của chốt ngõ ra lên chân được chọn)
Chú ý: Khi vừa cấp nguồn, các chân được đặt là ngõ vào và đọc là 0
Việc đọc thanh ghi PORTA là đọc trạng thái của các chân, ngược lại ghi lên chúng là ghi vào chốt cổng Tất cả các hoạt động ghi là các hoạt động đọc-sửa-ghi (read-modify-write) Vì vậy, việc ghi ra một cổng bao gồm việc đọc các chân của cổng Giá trị này được sửa và được ghi vào chốt dữ liệu của cổng
Trang 21Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Chân RA4 được đa hợp với ngõ vào xung clock module Timer0 tạo thành chân RA4/TOCKI Chân RA4/TOCKI là một ngõ vào Schmitt Trigger và một ngõ ra ống dẫn mở Các chân còn lại của PORTA có các tầng ngõ vào TTL và các bộ điều khiển ngõ ra CMOS đầy đủ
a) b) Ghi chú: Các chân vào/ra có các diode bảo vệ nối với V DD và V SS
HII.4 a) Sơ đồ khối của các chân RA3:RA0
b) Sơ đồ khối của chân RA4
Bảng dưới đây mô tả các chức năng các chân của PORTA:
Tên gọi Bit Loại đệm Chức năng
KI
Bit
4
ST Ngõ vào/Ngõ ra Ngõ vào xung clock ngoại cho
TMR0 Ngõ ra là loại ống dẫn mở
Ghi chú: TTL: ngõ vào TTL; ST: ngõ vào Schmitt Trigger
b Các thanh ghi PORTB và TRISB
Trang 22Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
PORTB là một cổng hai chiều, có độ rộng 8 bit Thanh ghi hướng dữ liệu tương ứng là TRISB Việc đặt một bit TRISB (=1) tương ứng một chân của PORTB là ngõ vào (nghĩa là, đặt tương ứng bộ điều khiển ngõ ra vào một chế độ trở kháng cao) Việc xóa một bit TRISB (=0) tương ứng một chân của PORTB là ngõ ra (nghĩa là, đưa nội dung của chốt ngõ ra lên chân được chọn)
Mỗi chân của PORTB có một weak nội kéo lên Một bit điều khiển đơn có thể mở tất cả các weak kéo lên Điều này được thực hiện bằng cách xóa bit RBPU(OPTION<7>) Weak kéo lên này sẽ tự động đóng khi chân được chọn làm ngõ ra Các weak kéo lên bị cấm khi reset cấp nguồn
a) b) Ghi chú: - TRISB = 1 cho phép weak kéo lên (nếu RBPU = 0)
- Các chân vào/ra có các diode bảo vệ nối với V DD và V SS
HII.5 a) Sơ đồ khối các chân RB7:RB4 b) Sơ đồ khối các chân RB3:RB0
Bốn chân RB7:RB4 của PORTB có một đặc tính ngắt khi thay đổi Chỉ có các chân này khi được định như các ngõ vào có thể làm xuất hiện ngắt đó (nghĩa là, bất kỳ chân nào RB7:RB4 được định là ngõ ra thì bị chặn từ sự so sánh với ngắt khi thay đổi) Các chân ngõ vào (của RB7:RB4) được so sánh với giá trị cũ được chốt ở lần đọc PORTB trước đó Các ngõ ra “bất đối xứng” của RB7:RB4 được OR với nhau tạo ra ngắt thay đổi cổng RB (RB Port Change Interrupt) và đặt lại bit cờ RBIF (INTCON<0>)
Ngắt này có thể đánh thức thiết bị từ SLEEP Người dùng, có thể xóa ngắt theo các cách sau:
- Đọc hoặc ghi PORTB Việc này sẽ kết thúc điều kiện không cân đối
- Xóa bit cờ RBIF
Trang 23Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Một điều kiện không cân đối sẽ tiếp tục đặt lại bit cờ RBIF Việc đọc PORTB sẽ kết thúc điều kiện không cân đối và xóa bit cờ RBIF
Bảng dưới đây mô tả chức năng các chân của PORTB:
Tên gọi Bit Loại
Phần mềm nội cho weak kéo lên lập trình được
TTL Chân vào/ra (với ngắt khi thay đổi)
Phần mềm nội cho weak kéo lên lập trình được
5
TTL Chân vào/ra (với ngắt khi thay đổi)
Phần mềm nội cho weak kéo lên lập trình được
6 TTL/ST
(2 ) Chân vào/ra (với ngắt khi thay đổi)
Phần mềm nội cho weak kéo lên lập trình được
Xung đồng hồ lập trình nối tiếp
7 TTL/ST
(2 ) Chân vào/ra (với ngắt khi thay đổi)
Phần mềm nội cho weak kéo lên lập trình được
Dữ liệu lập trình nối tiếp
Ghi chú: TTL: ngõ vào TTL; ST: Schmitt Trigger
(1) : đệm này là một ngõ vào Schmitt Trigger khi được định là ngắt ngoại
(2) : đệm này là một ngõ vào Schmitt Trigger khi được dùng ở chế độ lập trình nối tiếp
II.2.5 Các cấu hình bộ dao động
Vi điều khiển PIC16F84A có thể hoạt động được trong bốn chế độ bộ dao động khác nhau Người dùng có thể lập trình cho hai bit cấu hình (FOSC1 và FOSC2) để chọn một trong bốn chế độ sau:
- LP Thạch anh công suất thấp (Low Power Crystal)
- XT Thạch anh/Mạch cộng hưởng (Crystal/Resonator)
- HS Thạch anh tốc độ cao/Mạch cộng hưởng (High Speed Crystal/Resonator)
Trang 24Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
- RC Điện trở/Tụ điện (Resistor/Capacitor)
a Bộ dao động Thạch anh / Mạch cộng hưởng gốm
Trong các chế độ XT, LP, hay HS, một thạch anh hay một mạch cộng hưởng gốm được nối vào các chân OSC1/CLKIN và OSC2/CLKOUT để tạo dao động
Thiết kế bộ dao động cho PIC16F84A đòi hỏi dùng một thạch anh cắt song song Nếu sử dụng một thạch anh cắt nối tiếp có thể nhận được một tần số ngoài chỉ số của nhà sản xuất Khi ở các chế độ XT, LP, hay HS, thiết bị có thể có một nguồn xung clock ngoại điều khiển chân OSC1/CLKIN
a) b) HII.6 a) Hoạt động của Thạch anh/Mạch cộng hưởng gốm
b) Hoạt động của ngõ vào xung clock ngoại Chú ý: Điện trở Rs có thể được dùng trong chế độ HS, cũng tốt trong chế độ
XT, để tránh tình trạng thạch anh dao động trên mức cho phép
Chọn giá trị của tụ cho mạch cộng hưởng gốm theo bảng sau:
Chế độ Tần số OSC1/C1 OSC2/C2
XT 455 kHz
2.0 MHz 4.0 MHz
Khi sử dụng mạch cộng hưởng với tần số trên 3.5 MHz, sử dụng chế độ HS tốt hơn chế độ XT Chế độ HS có thể dùng được ở bất kỳ điện thế VDD nào
Chọn giá trị của tụ cho mạch dao động thạch anh theo bảng sau:
Chế độ Tần số OSC1/C1 OSC2/C2
LP 32 kHz 68 – 100 pF 68 – 100 pF
Trang 25Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
b Bộ dao động RC
Đối với các ứng dụng không cần nhanh lắm, sử dụng bộ dao động RC là một biện pháp tiết kiệm chi phí Tần số của bộ dao động RC là một hàm phụ thuộc vào điện thế cung cấp, giá trị điện trở (REXT), giá trị tụ điện (CEXT), và nhiệt độ hoạt động
Các giá trị khuyên dùng là:
- REXT trong khoảng từ 5 kΩ đến 100 kΩ
- CEXT lớn hơn 20 pF
HII.7 Chế độ bộ dao động RC
II.2.6 Các đặc tính điện
a Các mức tối đa tuyệt đối
- Nhiệt độ hoạt động: -550C đến +1250C
- Nhiệt độ cất trữ: -650C đến +1500C
- Điện thế các chân so với VSS (trừ VDD, MCLR, và RA4): -0.3V đến (VDD+0.3V)
- Điện thế VDD so với VSS: -0.3V đến 7.5V
- Điện thế MCLR so với VSS: -0.3V đến +14V
- Điện thế RA4 so với VSS: -0.3V đến +8.5V
- Công suất hao phí tổng cộng: 800mW Được tính bằng công thức sau:
P
- Dòng ra tối đa của chân VSS: 150mA
- Dòng vào tối đa chân VDD: 100mA
- Dòng kẹp ngõ vào, IIK (VI < 0 hoặc VI > VDD): ± 20mA
- Dòng kẹp ngõ ra, IOK (VO < 0 hoặc VO > VDD): ± 20mA
- Dòng ngõ ra phá hủy tối đa ở các chân: 25mA
- Dòng ngõ ra nguồn tối đa ở các chân: 25mA
Trang 26Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
- Dòng phá hủy tối đa của PORTA: 80mA
- Dòng nguồn tối đa của PORTA: 50mA
- Dòng phá hủy tối đa của PORTB: 150mA
- Dòng nguồn tối đa của PORTB: 100mA
HII.8 Đồ thị tần số – điện thế của PIC16F84A
V
V
Bộ dao động XT, RC, và
LP Bộ dao động HS
VDR(1) Điện thế lưu dữ liệu
RAM
1.5 - V Thiết bị ở chế độ SLEEP
SVDD Tốc độ tăng VDD 0.0
FOSC = 4MHz; VDD = 5.5V (trong lúc lập trình FLASH)
Bộ dao động HS
FOSC = 20MHz; VDD = 2.0V
Nhiệt độ hoạt động 0
-40 -40
+70 +80 +12
Trang 27Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
5
(1): điện thế thấp nhất để dữ liệu trong RAM không bị mất
II.2.7 Các dạng bao gói
a Dạng 18 chân Plastic Dual In-Line (P) – 300 mil (PDIP)
Đây là dạng thông dụng nhất
HII.9 Dạng 18 chân PDIP
b Dạng 18 chân Plastic Small Outline (SO) – 300 mil (SOIC)
HII.10 Dạng 18 chân SOIC
c Dạng 20 chân Plastic Shirnk Small Outline (SS) – 209 mil, 5.30 mm (SSOP)
HII.11 Dạng 20 chân SSOP
II.3 TỔNG QUAN TẬP LỆNH VI ĐIỀU KHIỂN HỌ PIC
Trang 28Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Mỗi lệnh của vi điều khiển họ PIC nhóm Mid-Range là một từ 14 bit, bao gồm một OPCODE chỉ rõ loại lệnh và một hay nhiều toán hạng chỉ rõ hơn nữa hoạt động của lệnh
Đối với các lệnh hướng byte, ‘f’ được đặt cho một thanh ghi file và ‘d’ được đặt cho đích của kết quả Việc đặt tên cho thanh ghi file chỉ rõ thanh ghi file nào được dùng trong lệnh Việc đặt tên cho đích chỉ rõ nơi chứa kết quả của lệnh Nếu
‘d’ là 0, kết quả được đưa vào thanh ghi W Nếu ‘d’ là 1, kết quả sẽ được đưa vào thanh ghi file được chỉ rõ trong lệnh
Đối với các lệnh hướng bit, ‘b’ được đặt cho một bit và ‘f’ được đặt cho thanh ghi file chứa bit đó
Đối với các biến tầm thường và điều khiển, ‘k’ được đặt cho một hằng số 8 hay 11 bit hoặc một giá trị tầm thường
Tất cả các lệnh đều được thực hiện trong một chu kỳ lệnh, ngoại trừ kiểm tra điều kiện là đúng hoặc bộ đếm chương trình bị thay đổi từ kết quả của một lệnh Trong trường hợp này, sự thực hiện lệnh sẽ chiếm hai chu kỳ lệnh với chu kỳ thứ hai được thực hiện như một lệnh NOP Một chu kỳ lệnh gồm bốn chu kỳ của bộ dao động Vì vậy, nếu tần số của một bộ dao động là 4MHz, thì thời gian để thực hiện một lệnh bình thường là 1µs Nếu kiểm tra điều kiện là đúng hoặc bộ đếm chương trình bị thay đổi từ kết quả của một lệnh, thì thời gian thực hiện lệnh sẽ là 2 µs
Bảng dưới đây mô tả các trường OPCODE:
Trường Mô tả
f Địa chỉ hồ sơ thanh ghi (0x00 đến 0x7F)
W Thanh ghi làm việc (thanh ghi tích lũy)
b Địa chỉ bit trong thanh ghi file 8 bit
k Trường biến tầm thường, dữ liệu hằng số hoặc
nhãn
x Vị trí không quan tâm (bằng 0 hoặc 1)
Hợp ngữ sẽ tạo mã với x = 0
Đó là dạng được dùng tương thích với tất cả các công cụ phần mềm Microchip
d Chọn đích; d = 0: cất kết quả vào W,
d = 1: cất kết quả vào thanh ghi file f
Mặc định d = 1
PC Bộ đếm chương trình
TO Bit báo tràn thời gian
PD Bit báo nguồn thấp
II.3.1 Dạng tổng quát của các lệnh
- Lệnh hướng byte đối với thanh ghi file:
d = 0 đích là W
d = 1 đích là f
f là 7 bit địa chỉ thanh ghi file
Trang 29Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
- Lệnh hướng bit đối với thanh ghi file:
b là 3 bit địa chỉ của bit
f là 7 bit địa chỉ thanh ghi file
- Lệnh đối với các biến tầm thường và điều khiển:
k là 8 bit giá trị tức thời
- Lệnh CALL và GOTO:
k là 11 bit giá trị tức thời
II.3.2 Tập lệnh vi điều khiển họ PIC
14 bit Opcode Từ gợi nhớ,
Toán hạng Mô tả
Chu kỳ MSb LSb
Trạng thái ảnh hưởng
Ghi chú
Lệnh hướng byte đối với thanh ghi file
1,2,
3 INCF f,d Tăng f 1 00 1010 dfff
1,2,
3 IORWF f,d OR W với f 1 00 0100 dfff
Trang 30Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
RLF f,d Quay trái f có cờ nhớ 1 00 1101 dfff
Lệnh hướng bit đối với thanh ghi file
BCF f,b Xóa bit thanh ghi f 1 01 00bb bfff
BSF f,b Đặt lại bit thanh ghi f 1 01 01bb bfff
ffff
1,2
BTFSC f,b Kiểm tra bit thanh ghi f,
nhảy nếu bị xóa (2) 1 01 10bb bfff ffff 3 BTFSS f,b Kiểm tra bit thanh ghi f,
nhảy nếu được đặt lại (2) 1 01 11bb bfff ffff 3
Lệnh đối với biến tầm thường và điều khiển
ADDLW k Cộng biến tầm thường với
W
1 11 111x kkkk kkkk
C,DC,Z
ANDLW k AND biến tầm thường với
W
1 11 1001 kkkk kkkk
Z
CALL k Gọi chương trình con 2 10 0kkk kkkk
kkkk CLRWD
T
0100
PD , TO
GOTO k Đi đến địa chỉ 2 10 1kkk kkkk
kkkk IORLW k OR biến tầm thường với W 1 11 1000 kkkk
RETFIE - Trở về từ ngắt 2 00 0000 0000
1001 RETLW k Trở về với biến tầm thường
trong W
2 11 01xx kkkk kkkk
RETUR
N
- Trở về từ chương trình con 2 00 0000 0000
1000 SLEEP - Chuyển sang chế độ dự
phòng 1 00 0000 0110 0011
PD , TOSUBLW k Trừ biến tầm thường cho W 1 11 110x kkkk C,DC,Z
Trang 31Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
kkkk XORLW k Ex-OR biến tầm thường
với W
1 11 1010 kkkk kkkk
Z
Ghi chú:
(1): Khi thanh ghi I/O được sửa đổi (thí dụ MOVF PORTB,1), giá trị được dùng sẽ là giá trị hiện tại trên các chân đó Thí dụ, nếu chốt dữ liệu là 1 cho các chân ngõ vào và được điều khiển ở mức thấp bằng thiết bị bên ngoài, dữ liệu được viết trở lại sẽ là 0
(2): Nếu lệnh được thực hiện trên thanh ghi TMR0 (và d = 1), bộ đếm trước (prescaler) sẽ bị xóa nếu được định cho Module Tmer0
(3): Nếu bộ đếm chương trình (PC) được sử đổi hoặc điều kiện kiểm tra là đúng, lệnh sẽ cần hai chu kỳ Chu kỳ thứ hai được thực hiện như lệnh NOP
II.3.3 Mô tả chi tiết các lệnh vi điều khiển họ PIC
1 ADDLW
Toán hạng: 0 ≤ k ≤ 255 Hoạt động: (W) + k → (W) Trạng thái ảnh hưởng: C, DC, Z Mô tả: Nội dung của thanh ghi W được cộng với biến tầm thường 8 bit
‘k’ và kết quả được đưa vào thanh ghi W
kết quả được cất trong thanh ghi W Nếu ‘d’ = 1, kết quả được cất trở lại trong thanh ghi ‘f’
3 ANDLW
Toán hạng: 0 ≤ k ≤ 255 Hoạt động: (W) AND (k) → (W) Trạng thái ảnh hưởng: Z
Mô tả: Nội dung của thanh ghi W được AND với biến tầm thường 8 bit
‘k’ Kết quả được đưa vào thanh ghi W
Trang 32Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Mô tả: AND thanh ghi W với thanh ghi ‘f’ Nếu ‘d’ = 0, kết quả được
cất trong thanh ghi W Nếu ‘d’ = 1, kết quả được cất trở lại trong thanh ghi ‘f’
Mô tả: Nếu bit ‘b’ trong thanh ghi ‘f’ là 0, lệnh kế tiếp được thực hiện
Nếu bit ‘b’ là 1, lệnh kế tiếp bị bỏ qua và thực hiện một lệnh NOP thay vào đó, dùng 2 chu kỳ lệnh
Mô tả: Nếu bit ‘b’ trong thanh ghi ‘f’ là 1, lệnh kế tiếp được thực hiện
Nếu bit ‘b’ là 0, lệnh kế tiếp bị bỏ qua và thực hiện một lệnh NOP thay vào đó, dùng 2 chu kỳ lệnh
9 CALL
Toán hạng: 0 ≤ k ≤ 2047 Hoạt động: (PC) + 1 → đỉnh ngăn xếp (Top of Stack – TOS)
(PCLATH <4:3>) → PC <12:11>
Trạng thái ảnh hưởng: Không
Trang 33Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Mô tả: Gọi chương trình con Đầu tiên, địa chỉ (PC + 1) đưa cất vào
ngăn xếp Địa chỉ tức thời 11 bit được đưa vào các bit PC
<10:0> Các bit cao của PC được lấy từ PCLATH Lệnh CALL thực hiện trong 2 chu kỳ lệnh
10 CLRF
Toán hạng: 0 ≤ f ≤ 127 Hoạt động: 00h → (f)
Trạng thái ảnh hưởng: Z Mô tả: Nội dung của thanh ghi ‘f’bị xóa và bit Z được đặt lại
11 CLRW
Toán hạng: Không Hoạt động: 00h → (W)
Trạng thái ảnh hưởng: Z Mô tả: Thanh ghi W bị xóa và bit Z được đặt lại
12 CLRWDT
Toán hạng: Không Hoạt động: 00h → WDT
được cất trong thanh ghi W Nếu ‘d’ = 1, kết quả được cất trở lại trong thanh ghi ‘f’
14 DECF
Toán hạng: 0 ≤ f ≤ 127
Trang 34Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Hoạt động: (f) – 1 → (đích) Trạng thái ảnh hưởng: Z
Mô tả: Giảm thanh ghi ‘f’ Nếu ‘d’ = 0, kết quả được cất trong thanh
ghi W Nếu ‘d’ = 1, kết quả được cất trở lại trong thanh ghi ‘f’
Trạng thái ảnh hưởng: Không Mô tả: Giảm thanh ghi ‘f’ Nếu ‘d’ = 0, kết quả được cất trong thanh
ghi W Nếu ‘d’ = 1, kết quả được cất trở lại trong thanh ghi ‘f’ Nếu kết quả khác 0, lệnh kế tiếp được thực hiện Nếu kết quả bằng 0, lệnh NOP được thực hiện thay vào lệnh kế tiếp, chiếm
2 chu kỳ lệnh
16 GOTO
Toán hạng: 0 ≤ k ≤ 2047 Hoạt động: k → PC <10:0>
Mô tả: Tăng thanh ghi ‘f’ Nếu ‘d’ = 0, kết quả được cất trong thanh ghi
W Nếu ‘d’ = 1, kết quả được cất trở lại trong thanh ghi ‘f’
Trạng thái ảnh hưởng: Không Mô tả: Tăng thanh ghi ‘f’ Nếu ‘d’ = 0, kết quả được cất trong thanh ghi
W Nếu ‘d’ = 1, kết quả được cất trở lại trong thanh ghi ‘f’
Trang 35Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Nếu kết quả khác 0, lệnh kế tiếp được thực hiện Nếu kết quả bằng 0, lệnh NOP được thực hiện thay vào lệnh kế tiếp, chiếm
2 chu kỳ lệnh
19 IORLW
Toán hạng: 0 ≤ k ≤ 255 Hoạt động: (W) OR (k) → (W) Trạng thái ảnh hưởng: Z
Mô tả: Nội dung của thanh ghi W được OR với biến tầm thường 8 bit
‘k’ Kết quả được đưa vào thanh ghi W
Mô tả: OR thanh ghi W với thanh ghi ‘f’ Nếu ‘d’ = 0, kết quả được cất
trong thanh ghi W Nếu ‘d’ = 1, kết quả được cất trở lại trong thanh ghi ‘f’
vào trạng thái của d Nếu ‘d’ = 0, đích làthanh ghi W Nếu ‘d’ =
1, đích là chính thanh ghi ‘f’đó d = 1 dùng để kiểm tra thanh ghi file, dựa vào trạng thái của cờ Z
22 MOVLW
Toán hạng: 0 ≤ k ≤ 255 Hoạt động: (k) → (W) Trạng thái ảnh hưởng: Không Mô tả: Biến tầm thường 8 bit ‘k’được đưa vào thanh ghi W
23 MOVWF
Toán hạng: 0 ≤ f ≤ 127 Hoạt động: (W) → (f) Trạng thái ảnh hưởng: Không Mô tả: Chuyển dữ liệu từ thanh ghi W đến thanh ghi ‘f’
24 NOP
Trang 36Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Toán hạng: Không Hoạt động: Không Trạng thái ảnh hưởng: Không Mô tả: Không hoạt động
25 RETFIE
Toán hạng: Không Hoạt động: Đỉnh ngăn xếp (TOS) → PC
TOS → PC Trạng thái ảnh hưởng: Không Mô tả: Biến tầm thường 8 bit ‘k’ được đưa vào thanh ghi W Đỉnh ngăn
xếp được đưa vào bộ đếm chương trình (trở về một địa chỉ) Lệnh này chiếm 2 chu kỳ lệnh
27 RETURN
Toán hạng: Không Hoạt động: TOS → PC Trạng thái ảnh hưởng: Không Mô tả: Trở về từ chương trình con Ngăn xếp được POP và đỉnh ngăn
xếp được đưa vào bộ đếm chương trình Lệnh này chiếm 2 chu kỳ lệnh
Mô tả: Nội dung của thanh ghi ‘f’được quay từng bit sang bên trái
thông qua cờ nhớ Nếu ‘d’ = 0, kết quả được cất vào thanh ghi
W Nếu ‘d’ = 1, kết quả được cất trở lại thanh ghi ‘f’
Trang 37Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Trạng thái ảnh hưởng: C Mô tả: Nội dung của thanh ghi ‘f’được quay từng bit sang bên phải
thông qua cờ nhớ Nếu ‘d’ = 0, kết quả được cất vào thanh ghi
W Nếu ‘d’ = 1, kết quả được cất trở lại thanh ghi ‘f’
30 SLEEP
Toán hạng: Không Hoạt động: 00h → WDT
bù 2) Kết quả được chuyển đến thanh ghi W
‘d’ = 0, kết quả được cất vào thanh ghi W Nếu ‘d’ = 1, kết quả được cất trở lại thanh ghi ‘f’
Trang 38Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Mô tả: Các phần thấp và cao của thanh ghi f được hoán vị Nếu ‘d’ = 0,
kết quả được cất vào thanh ghi W Nếu ‘d’ = 1, kết quả được cất vào thanh ghi ‘f’
34 XORLW
Toán hạng: 0 ≤ k ≤ 255 Hoạt động: (W) XOR (k) → (W) Trạng thái ảnh hưởng: Z
Mô tả: Nội dung của thanh ghi W được XOR với biến tầm thường 8 bit
‘k’ Kết quả được đưa vào thanh ghi W
Mô tả: XOR thanh ghi W với thanh ghi ‘f’ Nếu ‘d’ = 0, kết quả được
cất trong thanh ghi W Nếu ‘d’ = 1, kết quả được cất trở lại trong thanh ghi ‘f’
Trang 39Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
CHƯƠNG III
BOARD MẠCH ĐIỀU KHIỂN
–¯—
III.1 Bộ phận giao tiếp máy tính PC – vi điều khiển PIC16F84A
III.2 Bộ phận giao tiếp vi điều khiển PIC16F84A – bộ điều khiển motor
III.3 Các mạch hỗ trợ
Mạch điều khiển được thiết kế sau cho phải đảm nhận được các chức năng cơ bản sau:
- Truyền các dữ liệu từ máy tính PC đến các vi điều khiển PIC16F84A do người dùng nhập vào từ bàn phím thông qua chương trình giao diện
- Truyền các tín hiệu điều khiển từ các vi điều khiển PIC16F84A đến các motor DC và truyền các xung hồi tiếp từ các motor DC đó trở về các vi điều khiển
- Truyền các thông tin trạng thái của các motor DC từ các vi điều khiển PIC16F84A về máy tính PC để có thể đồng bộ tiến trình và thuận lợi cho người dùng có thể quan sát thông qua chương trình giao diện
Từ các chức năng trên, ta thấy board mạch điều khiển của ta bao gồm các khối
cơ bản sau:
HIII.1 Sơ đồ khối tổng quát
Máy tính PC
Vi điều khiển PIC
Arm robot (Motor DC)
Trang 40Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
Ta tạm thời chia mạch điều khiển thành 3 khối cơ bản trên:
- Máy tính PC: gồm phần mềm điều khiển và các Port điều khiển
- Vi điều khiển PIC: gồm hai vi điều khiển PIC16F84A và các mạch hỗ trợ cho chúng hoạt động
- Arm robot: gồm các motor DC và các IC điều khiển motor
Để liên kết các khối trên ta cần thiết kế hai bộ giao tiếp chính và đây cũng là cấu trúc chính của mạch điều khiển:
- Bộ giao tiếp máy tính PC với các vi điều khiển PIC
- Bộ giao tiếp các vi điều khiển PIC với hệ thống điều khiển motor (Arm
robot)
III.1 BỘ PHẬN GIAO TIẾP MÁY TÍNH PC – VI ĐIỀU KHIỂN PIC16F84A
Để có thể truyền dữ liệu và tín hiệu điều khiển từ PC sang các vi điều khiển và đồng thời nhận các tín hiệu hồi tiếp về từ các vi điều khiển để theo dõi trạng thái hoạt động của hệ thống, ta phải thiết lập giữa PC và các vi điều khiển một kết nối hai chiều Các Port (cổng) của máy tính PC có thể đảm nhiệm được chức năng này Các Port sau chẳng hạn: COM, LPT, GAME… đều có thể làm chức năng giao tiếp
Ở đây, ta chọn cổng LPT để đảm nhận các chức năng trên vì nó có một số đặc tính phù hợp với chức năng của bộ phận giao tiếp máy tính PC – vi điều khiển PIC16F84A
III.1.1 Những đặc tính cơ bản của một cổng LPT
Cổng LPT hay còn được gọi là cổng song song, cổng máy in của máy tính PC có
17 đường dẫn số, các đường này có thể tận dụng để trao đổi dữ liệu với tốc độ nhanh với các mạch điện ghép nối Điều cần chú ý là các ngõ vào và ngõ ra của cổng LPT đều là các đường dẫn tương thích TTL không được bảo vệ chống quá tải,
do đó khi tiến hành ghép nối cần hết sức thận trọng, ta có thể dễ dàng làm hỏng cổng song song do nhầm lẫn Ta có những quy tắc an toàn khi ghép nối sau:
- Thiết bị chỉ được phép đấu nối vào cổng song song khi máy tính ở trạng thái ngắt điện
- Các ngõ vào chỉ được phép tiếp nhận điện áp giữa 0V và 5V
- Các ngõ ra không được phép ngắn mạch hoặc đấu nối với các ngõ ra khác và các ngõ ra không được phép nối với các nguồn tín hiệu điện áp không biết rõ thông số
Từ đó, ta thấy rằng việc sử dụng cổng LPT để ghép nối với vi điều khiển họ PIC hoàn toàn phù hợp về mức điện thế tương thích TTL
Trước hết ta tìm hiểu tất cả các đường dẫn có thể sử dụng ở cổng LPT Hình III.2 giới thiệu cách sắp xếp các chân ở đầu nối 25 chân dùng cho cổng LPT của máy tính PC Khi mua các cáp 25 sợi, ta có thể gắp loại không hoàn toàn giống với cách sắp xếp chân đã được giới thiệu, vì vậy cách tốt nhất trước khi đưa cáp vào sử dụng nên kiểm tra lại cách đấu dây bằng đồng hồ đo điện