Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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:
- Control close-loop.
- Can active follow program, this program programmed though interface
software SCAR (Software Control for Arm Robot).
- Include four clutches: sole (A), shoulder (B), elbow (C) and wrist (D).
- Supplied by 5V DC.
- Can run in two modes: Manual mode and Auto mode.
Controller board designed with PIC16F84A micro-controller, this is one of the
family. This chip can satisfy with some requires of project, it is
Trung PIC
tâmmicro-controller
Học liệu ĐH
Cần Thơ @ Tài liệu học tập và nghiên cứu
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 16 th 2002
Student, NGUYEN HUU CUONG
SVTH: Nguyễn Hữu Cường
Trang IV.1
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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.
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
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.
SVTH: Nguyễn Hữu Cường
Trang IV.2
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
ĐHCT, ngày 16 tháng 12 năm 2002
Sinh viên thực hiện
Nguyễn Hữu Cường
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
SVTH: Nguyễn Hữu Cường
Trang IV.3
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
CHƯƠNG I
GIỚI THIỆU ĐỀ TÀI
–¯—
I.1.
I.2.
Tổng quan về Robot.
Giới thiệu về đề tài.
I.1 TỔNG QUAN VỀ ROBOT
I.1.1 Một số đònh nghóa.
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
c đích
hoànliệu
thànhĐH
nhữnCần
g nhiệm
vụ đa@
dạnTài
g”. liệu học tập và nghiên cứu
Trung mụ
tâm
Học
Thơ
Đò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.
SVTH: Nguyễn Hữu Cường
Trang IV.4
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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
ng hoạ
t độnliệu
g.
Trung vù
tâm
Học
ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
- 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.
SVTH: Nguyễn Hữu Cường
Trang IV.5
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
Trung
GVHD: ThS. Phạm Văn Tấn
+ 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ự
nghó
và raĐH
quyếCần
t đònh Thơ
cho các@
ứngTài
xử tương
i nhữvà
ng tín
hiệu nhậcứu
n
tâm suy
Học
liệu
liệu thích
họcvớtập
nghiê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.
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:
I.1.3
a. Ứng dụng trong công nghiệp.
-
b.
c.
d.
e.
Đâ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.
Ứng dụng robot trong phòng thí nghiệm.
Ứng dụng robot trong các thao tác cần khuếch đại lực.
Ứng dụng robot trong nông nghiệp.
Ứng dụng robot trong không gian.
SVTH: Nguyễn Hữu Cường
Trang IV.6
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
f.
g.
h.
i.
GVHD: ThS. Phạm Văn Tấn
Ứng dụng robot trong tàu lặn.
Ứng dụng robot trong giáo dục.
Ứng dụng robot trong hỗ trợ người tần tật.
Ứ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ácHọc
phần cò
n lạiĐH
đượcCần
giới thiệ
u trong
tài nà
y là:học tập và nghiên cứu
Trung tâm
liệu
Thơ
@đềTài
liệu
- 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.
SVTH: Nguyễn Hữu Cường
Trang IV.7
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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
n đượ
c từ liệu
motorĐH
bằngCần
với dữThơ
liệu xung
hồi tiế
p ban
đầutập
, hệ thố
sẽ kết thúcứu
c
Trung nhậ
tâm
Học
@ Tài
liệu
học
vàngnghiên
quá trình điều khiển đối với motor đó.
Dữ liệu
điều khiển
Tín hiệu điều
khiển motor
Motor
Xung hồi tiếp
HI.1 Mô hình cơ sở tự động của hệ thống
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.
SVTH: Nguyễn Hữu Cường
Trang IV.8
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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 độ.
-
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
SVTH: Nguyễn Hữu Cường
Trang IV.9
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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
II.2
II.3
Giới thiệu sơ lược về vi điều khiển họ PIC.
Giới thiệu sơ lược về vi điều khiển PIC16F84A.
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ó
Trung nhiề
tâmu ứHọc
ĐH
Thơ
liệu học
ng dụnliệu
g trong
thựcCần
tế và vi
điều @
khiểTài
n PIC16F84A
cũntập
g thuộvà
c dònghiên
ng này. cứu
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)
SVTH: Nguyễn Hữu Cường
Trang IV.10
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
-
GVHD: ThS. Phạm Văn Tấn
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ý.
Trung tâm
Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
- 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.
SVTH: Nguyễn Hữu Cường
Trang IV.11
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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
EPROM
PIC16CXXX
PIC16LCXXX
ROM
PIC16CRXXX
PIC16LCRXXX
Flash
PIC16FXXX
PIC16LFXXX
y điệ
n áp ĐH Cần Thơ
EPROM
Flash
Trung tâm Dã
Học
liệu
@ Tài liệuROM
học tập và nghiên
cứu
Chuẩn
Trước khi
hoàn chỉnh
Được mở
thiết bò
rộng
Hoàn chỉnh kỹ
thuật
C
4.5-6.0V
CR
4.5-6.0V
F
4.5-6.0V
LC
3.0-6.0V
LCR
3.0-6.0V
LF
3.0-6.0V
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.
SVTH: Nguyễn Hữu Cường
Trang IV.12
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
-
GVHD: ThS. Phạm Văn Tấn
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
Trung
tâm
-
-
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ả
ng lưuĐH
trữ dữCần
liệu EEPROM
n 40liệu
năm. học tập và nghiên cứu
Họcnăliệu
Thơ @trêTài
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.
SVTH: Nguyễn Hữu Cường
Trang IV.13
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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
Loại đệm
Mô tả
ố
năng
OSC1/CLKIN 16
I
ST/CMOS( Ngõ vào dao động thạch anh. Ngõ
3)
vào của xung clock ngoại.
OSC2/CLKOU 15
O
Ngõ ra dao động thạch anh. Nối với
T
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
Trung tâm Học liệu ĐH Cần Thơ @ TàiRCliệu
cứu
là học
ngõ ratập
củavà
¼ nghiên
tần số xung
clock được đưa vào chân OSC1, có
chu kỳ bằng với chu kỳ lệnh.
4
I/P
ST
Ngõ vào xóa chính (Reset). Ngõ vào
MCLR
điện thế lập trình. Thực hiện RESET
mức thấp cho thiết bò.
PORTA là một cổng I/O hai chiều.
RA0
17
I/O
TTL
RA1
18
I/O
TTL
RA2
1
I/O
TTL
RA3
2
I/O
TTL
RA4/TOCKI
3
I/O
ST
Có thể được chọn để đưa xung clock
vào bộ đònh thời/đếm TMR0. Là ngõ
ra dạng ống mở.
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.
(1)
RB0/INT
6
I/O
TTL/ST
RBO/INT có thể được chọn làm
chân ngắt ngoại.
RB1
7
I/O
TTL
RB2
8
I/O
TTL
SVTH: Nguyễn Hữu Cường
Trang IV.14
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
RB3
RB4
RB5
RB6
9
10
11
12
I/O
I/O
I/O
I/O
GVHD: ThS. Phạm Văn Tấn
TTL
TTL
TTL
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
(2)
13
RB7
I/O
TTL/ST
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.
VDD
14
P
Cấp dương cực cho mức logic và các
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ứcliệu
bộ nhớ
chương
Trung tâm
Học
ĐH
Cầntrình
Thơ @ Tài liệu học tập và nghiên cứu
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
SVTH: Nguyễn Hữu Cường
Trang IV.15
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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.
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
SVTH: Nguyễn Hữu Cường
Trang IV.16
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
Trung 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.
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)
(1)
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.
Đò
a Tên gọi
chỉ
Bank 0
Bit7
Bit6
SVTH: Nguyễn Hữu Cường
Bit5
Bit4
Trang IV.17
Bit3
Bit2
Bit1 Bit0
Giá trò
khi cấp
nguồn
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
00
h
01
h
02
h
03
h
04
h
05
h
INDF
PORTA(
-
-
-
06
h
PORTB(
RB7
RB6
RB5
GVHD: ThS. Phạm Văn Tấn
TMR0
Dùng liệt kê FSR đònh đòa chỉ bộ nhớ dữ liệu (không phải
thanh ghi vật lý)
Bộ đếm/Xung thời gian thực 8 bit
PCL
8 bit thấp của bộ đếm chương trình (PC)
STATU
S(2)
FSR
4)
5)
IRP
RP1
RP0
TO
Z
DC
C
RA3
RA2
RA
1
RA
0
RB3
RB2
RB
1
RB0
/
INT
PD
Con trỏ 0 đòa chỉ gián tiếp bộ nhớ dữ liệu
RA4/
TOC
KI
RB4
---- ---xxxx
xxxx
0000
0000
0001
1xxx
xxxx
xxxx
---x
xxxx
xxxx
xxxx
07
Không dùng, đọc là 0
h
08 EEDAT Thanh ghi dữ liệu EEPROM
xxxx
h
A
xxxx
09 EEADR Thanh ghi đòa chỉ EEPROM
xxxx
xxxx
Trung htâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên
cứu
(1)
0A PCLAT
Đệm ghi cho 5 bit cao của PC
---0
h
H
0000
0B INTCO
GIE
EEIE TOI INTE RBIE TOIF INT RBI
0000
h
N
E
F
F
000x
Bank 1
Dùng liệt kê FSR đònh đòa chỉ bộ nhớ dữ liệu (không phải ---- ---80 INDF
h
thanh ghi vật lý)
81 OPTIO
RBP INTE TO TOSE PSA
PS2 PS1 PS0
1111
h
N
U
DG
CS
1111
82 PCL
8 bit thấp của bộ đếm chương trình (PC)
0000
h
0000
83 STATU
IRP
RP1
RP0
Z
DC
C
0001
TO
PD
(2)
h
S
1xxx
44 FSR
Con trỏ 0 đòa chỉ gián tiếp bộ nhớ dữ liệu
xxxx
h
xxxx
85 TRISA
Thanh ghi hướng dữ liệu PORTA
---1
h
1111
86 TRISB
Thanh ghi hướng dữ liệu PORTB
1111
h
1111
87
Không dùng, đọc là 0
h
SVTH: Nguyễn Hữu Cường
Trang IV.18
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
88
h
89
h
8A
h
8B
h
EECON
1
EECON
2
PCLAT
H
INTCO
N
-
WRE WRE WR RD
RR
N
Thanh ghi 2 điều khiển EEPROM (không phải thanh ghi
vật lý)
Đệm ghi cho 5 bit cao của PC (1)
GIE
-
EEIE
Ghi chú:
-
GVHD: ThS. Phạm Văn Tấn
TOI
E
EEIF
INTE
RBIE
TOIF INT
F
RBI
F
---0
x000
---- ------0
0000
0000
000x
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. PC LATH 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
chỉ đề
cập liệu
đến thanh
STATUS
y là thanh
đượtập
c sử và
dụngnghiên
nhiều trong
Trung tatâm
Học
ĐH ghi
Cần
Thơ vì@đâTài
liệu ghi
học
cứu
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.
R/W-0
IRP
R/W-0
RP1
R/W-0
RP0
SVTH: Nguyễn Hữu Cường
R-1
R-1
TO
PD
Trang IV.19
R/W-x
Z
R/W-x
DC
R/W-x
C
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
bit 7
bit 0
Ghi chú:
R:bit đọc được ;
1:bit được đặt;
W:bit ghi được;
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.
0: C:
bit nhớ
(cáĐH
c lệnhCần
ADDWF,
SUBWF,
o dấu). cứu
Trung bit
tâm
Học
liệu
ThơADDLW,
@ TàiSUBLW,
liệu học
tập khi
vàđảnghiên
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.
SVTH: Nguyễn Hữu Cường
Trang IV.20
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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 TT L và các bộ điều
khiển ngõ ra CMOS đầy đủ.
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
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à VSS.
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
RA0
RA1
RA2
RA3
RA4/TOC
KI
Bit
Bit
0
Bit
1
Bit
2
Bit
3
Bit
4
Loại đệm
TTL
Ngõ vào/Ngõ ra
TTL
Ngõ vào/Ngõ ra
TTL
Ngõ vào/Ngõ ra
TTL
Ngõ vào/Ngõ ra
ST
Chức năng
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
SVTH: Nguyễn Hữu Cường
Trang IV.21
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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.
Trung 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ú:
a)
b)
- 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à VSS.
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.
SVTH: Nguyễn Hữu Cường
Trang IV.22
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
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
Chức năng
đệm
RBO/IN Bit TTL/ST(1 Chân vào/ra hoặc ngõ vào ngắt ngoại
)
T
0
Phần mềm nội cho weak kéo lên lập trình
được.
RB1
Bit
TTL
Chân vào/ra.
1
Phần mềm nội cho weak kéo lên lập trình
được.
RB2
Bit
TTL
Chân vào/ra.
2
Phần mềm nội cho weak kéo lên lập trình
được.
TTL
Chân vào/ra.
RB3
Bit
3
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).
RB4
Bit
4
Phần mềm nội cho weak kéo lên lập trình
được.
RB5
Bit
TTL
Chân vào/ra (với ngắt khi thay đổi).
Phần @
mềm
nộiliệu
cho weak
o lê
n lậnghiên
p trình cứu
Trung tâm Học liệu5 ĐH Cần Thơ
Tài
học ké
tập
và
được.
RB6
Bit TTL/ST(2 Chân vào/ra (với ngắt khi thay đổi).
)
6
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.
(2
RB7
Bit TTL/ST Chân vào/ra (với ngắt khi thay đổi).
)
7
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)
SVTH: Nguyễn Hữu Cường
Trang IV.23
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
-
RC
GVHD: ThS. Phạm Văn Tấn
Đ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.
Trung
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ở
có thểThơ
được @
dùngTài
trongliệu
chế độ
HS,tập
cũngvà
tốt nghiên
trong chế độ
tâm Học liệu ĐHRsCần
học
cứu
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
47 – 100
47 – 100
XT
455 kHz
pF
pF
2.0
15 – 33 pF 15 – 33 pF
MHz
15 – 33 pF 15 – 33 pF
4.0
MHz
HS
8.0
15 – 33 pF 15 – 33 pF
MHz
15 – 33 pF 15 – 33 pF
10 MHz
Chú ý: Giá trò C1 và C2 cho trong bảng trên được kiểm tra chính xác. Nếu
điện dung lớn hơn sẽ làm tăng tính ổn đònh của bộ dao động, nhưng cũng làm tăng
thời gian khởi động. Các giá trò trên chỉ để hướng dẫn thiết kế. Mỗi mạch cộng
hưởng có đặc tính riêng, do đó người dùng phải tham khảo nhà sản xuất để có các
giá trò thích hợp cho các thành phần bên ngoài.
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ế V DD 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
SVTH: Nguyễn Hữu Cường
Trang IV.24
Chương trình cho vi điều khiển họ PIC
Điều khiển cánh tay robot bằng vi điều khiển họ PIC
GVHD: ThS. Phạm Văn Tấn
200 kHz
100 kHz
2 MHz
4 MHz
15 – 33 pF
15 – 33 pF
XT
100 – 150
100 – 150
pF
pF
15 – 33 pF
15 – 33 pF
15 – 33 pF
15 – 33 pF
HS
4 MHz
15 – 33 pF
15 – 33 pF
20 MHz 15 – 33 pF
15 – 33 pF
Chú ý: Mỗi thạch anh có đặc tính riêng, do đó người dùng phải tham khảo
nhà sản xuất để có các giá trò thích hợp cho các thành phần bên ngoài. Đối với điện
thế VDD > 4.5V, giá trò thích hợp nhất là C1 = C2 ≈ 30 pF.
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ở (R EXT), giá trò tụ điện (C EXT), 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
Trung tâm Học liệu ĐH Cần Thơ @ Tài liệu học tập và nghiên cứu
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: -55 0C đến +1250C
Nhiệt độ cất trữ: -650C đến +1500C
Điện thế các chân so với V SS (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 V SS: -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:
-
Dòng ra tối đa của chân V SS: 150mA
Dòng vào tối đa chân V DD: 100mA
Dòng kẹp ngõ vào, I IK (VI < 0 hoặc VI > VDD): ± 20mA
Dòng kẹp ngõ ra, I OK (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
-
PHP = VDD x{I DD − ∑ I OH }+ ∑ {(VDD − VOH )xI OH } + ∑ (VOL xI OL )
SVTH: Nguyễn Hữu Cường
Trang IV.25
Chương trình cho vi điều khiển họ PIC