Nguyễn Văn Minh
LỜI NÓI ĐẦU
Ngày nay, các bộ vi điều khiển đang có ứng dụng ngày càng rộng rãi,
thâm nhập ngày càng nhiều vào trong các lĩnh vực của kĩ thuật cũng như
đời sống xã hội. Hầu hết các thiết bị từ đơn giản như các thiết bị trong gia
đình cho đến các thiết bị tinh vi như máy tính hay máy công nghiệp đều có
sự xuất hiện của các bộ vi điều khiển.
Động cơ điện một chiều là loại động cơ được sử dụng rất phổ biến
trong các ứng dụng thông thường cũng như các ứng dụng phức tạp. Để một
động cơ làm việc một cách hiệu quả thì đòi hỏi phải có cách điều khiển tốt.
Xuất phát từ thực tế đó chúng em đã tập chung nghiên cứu về ứng
dụng của vi điều khiển, động cơ điện một chiều và cách “điều khiển động
cơ điện một chiều” dưới sự hướng dẫn của thầy Phạm Xuân Hiển.
Do kinh nghiệm chưa nhiều, kiến thức chuyên môn chưa thực sự sâu
nên đồ án của chúng em không thể tránh khỏi những thiếu xót. Chúng em rất
mong được sự đóng góp của thầy cô cùng các bạn sinh viên để đề tài của
chúng em được hoàn thiện hơn.
Hưng yên tháng 12 năm 2014
Nhóm sinh viên thự hiện
Nguyễn Văn Minh
Chương 1: GIỚI THIỆU ĐỀ TÀI
Đặt vấn đề
Với xu thế khoa học kĩ thuật ngày càng phát triển mạnh mẽ, nhất là
trong các lĩnh vực như thông tin viễn thông, điện tử công nghiêp, nhiều
thiết bị, linh kiện mới ra đời đã dần thay thế cho các thiết bị, linh kiện trước
đó có phần hạn chế.
Sự vi mạch hóa đã đem lại những lợi ích to lớn cho cuộc sống của con
người. Hầu hết khi xử lý dữ liệu, điều khiển người ta đều chọn xử lý trên
nền tảng số học và đại số logic, với sự trợ giúp của các hệ vi điều khiển.
Động cơ điện một chiều là một loại thiết bị được sử dụng rất nhiều
trong sinh hoạt thường ngày. Chúng có những ứng dụng rất lớn, từ những
chiếc radio đến vô tuyến rồi đến những thiết bị hiện đại như máy tính đều có
sự hiện diện của động cơ điện một chiều. Nhưng nếu không điều khiển được
thì chúng sẽ không thể phát huy được hết chức năng của nó. Vì vậy việc điều
khiển động cơ điện một chiều là hết sức quan trọng.
Trong lĩnh vực điều khiển động cơ điện một chiều, ta có thể sử dụng
kết hợp với vi điều khiển nhằm đơn giản hóa mạch điều khiển và đơn giản
hóa việc điều khiển.
1.1. Đặc điểm, yêu cầu của đồ án
Với khẳ năng có hạn cũng như thời gian hạn chế, hơn nữa là chỉ đi sâu
vào nghiên cứu một loại vi điều khiển đang có ứng dụng thực tế cao và phổ
biến là vi điều khiển PIC 16F877A, vì vậy đồ án phải đạt được các yêu cầu
và đặc điểm sau:
Nguyễn Văn Minh
Có thể điều khiển được động cơ điện một chiều
Có tính an toàn, thẩm mỹ và có tính ứng dụng thực tế cao.
Dễ dàng mở rộng vấn đề cho đề tài
1.2. Phương pháp thiết kế
Từ những yêu cầu, đặc điểm của đề tài, chúng em đã chọn ra phương
án thực hiện như sau:
i. Tham khảo ý kiến của giáo viên hướng dẫn, bạn bè và thu thập
những tài liệu liên quan.
ii. Đề ra phương án thi công có tính khả thi xét trên các mặt kinh
tế và kĩ thuật.
iii. Thực hiện theo phương án và kế hoạch dưới sự chỉ đạo của
giáo viên hướng dẫn.
1.3. Phương pháp thu thập dữ liệu
- Sử dụng những tài liệu, những vấn đề do giáo viên hướng dẫn cung
cấp.
- Tham khảo những ý kiến của các giáo viên trong khoa và của bạn
bè.
- Thu thập những thông tin cần thiết trên mạng internet (một số trang
web điển hình như: diendandientu.com; dientuvietnam.net;
PICvietnam.com; ).
1.4. Trình tự thiết kế
Nguyễn Văn Minh
Sau khi bắt tay vào thực hiện đề tài, chúng em đã tuân thủ các bước
thiết kế sau:
- Thu thập dữ liệu.
- Phân tích dữ liệu.
- Đề ra các phương án và lựa chọn phương án tối ưu.
- Thi công.
- Kiểm tra và đưa ra kết luận.
1.5. Mở rộng đề tài
Vì đây chỉ giới hạn là một đồ án môn học nên trong quá trình thực
hiện, đề tài vẫn gặp phải một số hạn chế như chưa điều khiển được vòng kín,
chưa hiển thị được tốc độ động cơ,
Vì vậy hướng mở rộng đề tài của chúng em đó là thiết kế một bộ điều
khiển hoàn chỉnh, có phản hồi vòng kín, có hiển thị tốc độ động cơ, tự động
điều khiển tốc độ,
Nguyễn Văn Minh
Chương 2. CƠ SỞ LÝ THUYẾT
Cơ sở phần cứng
Vi điều khiển
Khái niệm
Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường
được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là
một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp
(khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối
ngoại vi như bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương
tự và tương tự sang số, Ở máy tính thì các mô đun thường được xây dựng
bởi các chíp và mạch ngoài.
Vi điều khiển thường được dùng để xây dựng các hệ thống nhúng. Nó
xuất hiện khá nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi
sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động,
v.v.
1.1. Mô tả
Hầu hết các vi điều khiển ngày nay được xây dựng dựa trên kiến trúc
Havard, kiến trúc này định nghĩa bốn thành phần cần thiết của một hệ thống
nhúng. Những thành phần này là lõi CPU, bộ nhớ chương trình (thông
thường là ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), một hoặc vài bộ
định thời và các cổng vào/ra để giao tiếp với các thiết bị ngoại vi và các môi
Nguyễn Văn Minh
trường bên ngoài - tất cả các khối này được thiết kế trong một vi mạch tích
hợp. Vi điều khiển khác với các bộ vi xử lý đa năng ở chỗ là nó có thể hoạt
động chỉ với vài vi mạch hỗ trợ bên ngoài.
1.2. Các họ vi điều khiển thông dụng
1.2.1. Họ vi điều khiển AMCC (do tập đoàn "Applied Micro
Circuits Corporation" sản xuất). Từ tháng 5 năm 2004, họ vi
điều khiển này được phát triển và tung ra thị trường bởi IBM.
• 403 PowerPC CPU
• PPC 403GCX
• 405 PowerPC CPU
• PPC 405EP
• PPC 405GP/CR
• PPC 405GPr
• PPC NPe405H/L
• 440 PowerPC Book-E CPU
• PPC 440GP
• PPC 440GX
Nguyễn Văn Minh
• PPC 440EP/EPx/GRx
• PPC 440SP/SPe
1.2.2. Họ vi điều khiển Atmel
• Dòng Atmel AT91 (Kiến trúc ARM THUMB)
• Dòng AT90, Tiny & Mega – AVR (Atmel Norway design)
• Dòng Atmel AT89 (Kiến trúc Intel 8051/MCS51)
• Dòng MARC4
1.2.3. Họ vi điều khiển Cypress MicroSystems
• CY8C2xxxx (PSoC)
1.2.4. Họ vi điều khiển Freescale Semiconductor. Từ năm 2004,
những vi điều khiển này được phát triển và tung ra thị
trường bởi Motorola.
• Dòng 8-bit
68HG05 (CPU05)
68HG08 (CPU08)
68HG11 (CPU11)
• Dòng 16-bit
68HC12 (CPU12)
68HC16 (CPU16)
Freescale DSP56800 (DSP controller)
• Dòng 32-bit
Freescale 683XX (CPU32)
MPC500 MPC 860 (PowerQUICC)
MPC 8240/8250 (PowerQUICC II)
MPC 8540/8555/8560 (PowerQUICC III)
1.2.5. Họ vi điều khiển Fujitsu
• F²MC Family (8/16 bit)
• FR Family (32 bit)
• FR-V Family (32 bit RISC)
1.2.6. Họ vi điều khiển Inlel
• Dòng 8-bit
8Xc42
MCS8
MCS51
8061
Nguyễn Văn Minh
8xC261
• Dòng 16-bit
80186/88
MCS96
MXS296
• Dòng 32-bit
386EX
I960
1.2.7. Họ vi điều khiển Microchip
12-bit instruction PIC
14-bit instruction PIC
PIC 16F84
16-bit instruction PIC
dsPIC
1.2.8. Họ vi điều khiển National Semiconductor
COP8
CR16
1.2.9. Họ vi điều khiển STMicroelectronics
ST 62
ST7
1.2.10. Họ vi điều khiển Philips Semiconductors
LPC2000
LPC900
LCP700
Động cơ điện một chiều
Động cơ điện một chiều là động cơ điện hoạt động với dòng điện một
chiều. Động cơ điện một chiều ứng dụng rộng rãi trong các ứng dụng dân
dụng cũng như công nghiệp. Thông thường động cơ điện một chiều chỉ chạy
ở một tốc độ duy nhất khi nối với nguồn điện, tuy nhiên vẫn có thể điều
Nguyễn Văn Minh
khiển tốc độ và chiều quay của động cơ với sự hỗ trợ của các mạch điện tử
cùng phương pháp PWM.
Động cơ điện một chiều trong dân dụng thường là các dạng động cơ
hoạt động với điện áp thấp, dùng với những tải nhỏ. Trong công nghiệp,
động cơ điện một chiều được sử dụng ở những nơi yêu cầu moment mở máy
lớn hoặc yêu cầu thay đổi tốc độ trong phạm vi rộng.
Cấu tạo
Cấu tạo của động cơ gồm có 2 phần: stato đứng yên và rôto quay so với
stato. Phần cảm (phần kích từ-thường đặt trên stato) tạo ra từ trường đi trong
mạch từ, xuyên qua các vòng dây quấn của phần ứng (thường đặt trên rôto).
Khi có dòng điện chạy trong mạch phần ứng, các thanh dẫn phần ứng sẽ chịu
tác động bởi các lực điện từ theo phương tiếp tuyến với mặt trụ rôto, làm cho
rôto quay. Chính xác hơn, lực điện từ trên một đơn vị chiều dài thanh dẫn là
tích có hướng của vectơ mật độ từ thông B và vectơ cường độ dòng điện I.
Một phần quan trọng của động cơ điện một chiều là bộ phận chỉnh
lưu, nó có nhiệm vụ là đổi chiều dòng điện trong cuộn rotor trong khi
chuyển động quay của rotor là liên tục. Thông thường bộ phận này là bộ
phận gồm có một bộ cổ góp và một bộ chổi than tiếp xúc với cổ góp. Đây
cũng chính là nhược điểm chính của động cơ điện một chiều: cổ góp làm cho
Nguyễn Văn Minh
cấu tạo phức tạp, đắt tiền, kém tin cậy và nguy hiểm trong môi trường dễ nổ,
khi sử dụng phải có nguồn điện một chiều kèm theo hoặc bộ chỉnh lưu.
1.3. Nguyên lý hoạt động
Trên hình 2 mô tả nguyên lý làm việc của động cơ một chiều. Khi cho
điện áp một chiều U vào hai chổi điện A và B, trong dây quấn phần ứng có
dòng điện. Các thanh dẫn ab và cd mang dòng điện nằm trong từ trường sẽ
chịu lực tác dụng tương hổ lên nhau tạo nên momen tác dụng lên rotor, làm
rotor quay. Chiều lực tác dụng được xác định theo qui tắc bàn tay trái (hình
2a).
Khi phần ứng quay được nữa vòng, vị trí thanh dẫn ab, cd đổi chỗ
nhau, nhờ có phiến góp đổi chiều dòng điện, nên dòng điện một chiều biến
đổi thành dòng điện xoay chiều đưa vào dây quấn phần ứng, giữ cho chiều
lực tác dụng không đổi, do đó lực tác dụng lên rotor cũng theo một chiều
nhất định, đảm bảo động cơ có chiều quay không đổi (hình 2b).
Nguyễn Văn Minh
Phương trình cơ bản của động cơ điện một chiều:
E= K. Φ.ω
V= E+R
ư
.I
ư
M= K .Φ .I
ư
Trong đó:
Φ : từ thông trên mỗi cực (Wb)
I
ư
: dòng điện phần ứng (A)
V : điện áp phần ứng (V)
R
ư
: điện trở phần ứng (Ω)
Ω : tốc độ động cơ (rad/s)
M : momen động cơ (Nm)
K : hằng số, phụ thuộc cấu trúc động cơ
Nguyễn Văn Minh
Phương pháp điều khiển tốc độ động cơ
Thông thường, tốc độ quay của một động cơ điện một chiều tỷ lệ với
điện áp đặt vào nó, và ngẫu lực quay tỷ lệ với dòng điện. Điều khiển tốc độ
của động cơ có thể bằng cách điều khiển các điểm chia điện áp của bình ắc
quy, điều khiển bộ cấp nguồn thay đổi được, dùng điện trở hoặc mạch điện
tử Chiều quay của động cơ có thể thay đổi được bằng cách thay đồi chiều
nối dây của phần kích từ, hoặc phần ứng, nhưng không thể được nếu thay
đổi cả hai. Thông thường sẽ được thực hiện bằng các bộ công tắc tơ đặc biệt
(Công tắc tơ đổi chiều).
Điện áp tác dụng có thể thay đổi bằng cách xen vào mạch một điện trở
nối tiếp hoặc sử dụng một thiết bị điện tử điều khiển kiểu chuyển mạch lắp
bằng Thyristor, transistor hoặc loại cổ điển hơn nữa bằng các đèn chỉnh lưu
hồ quang Thủy ngân. Trong một mạch điện gọi là mạch băm điện áp, điện áp
trung bình đặt vào động cơ thay đổi bằng cách chuyển mạch nguồn cung cấp
thật nhanh. Khi tỷ lệ thời gian "on" trên thời gian "off" thay đổi sẽ làm thay
đổi điện áp trung bình. Tỷ lệ phần trăm thời gian "on" trong một chu kỳ
chuyển mạch nhân với điện áp cấp nguồn sẽ cho điện áp trung bình đặt vào
động cơ.
Nguyễn Văn Minh
Phương pháp PWM
Như vậy với điện áp nguồn cung cấp là 100V, và tỷ lệ thời gian ON là
25% thì điện áp trung bình là 25V. Trong thời gian "Off", điện áp cảm ứng
của phần ứng sẽ làm cho dòng điện không bị gián đoạn, qua một diode gọi là
diode phi hồi, nối song song với động cơ. Tại thời điểm này, dòng điện của
mạch cung cấp sẽ bằng không trong khi dòng điện qua động cơ vẫn khác
không và dòng trung bình của động cơ vẫn luôn lớn hơn dòng điện trong
mạch cung cấp, trừ khi tỷ lệ thời gian "on" đạt đến 100%. Ở tỷ lệ 100% "on"
này, dòng qua động cơ và dòng cung cấp bằng nhau. Mạch đóng cắt tức thời
này ít bị tổn hao năng lượng hơn mạch dùng điện trở. Phương pháp này gọi
là phương pháp điều khiển kiểu điều biến độ rộng xung (pulse width
modulation, or PWM), và thường được điều khiển bằng vi xử lý. Đôi khi
người ta còn sử dụng mạch lọc đầu ra để làm bằng phẳng điện áp đầu ra và
giảm bớt tạp nhiễu của động cơ.
Nguyễn Văn Minh
Vì động cơ điện một chiều kiểu nối tiếp có thể đạt tới mô men quay cực
đại từ khi vận tốc còn nhỏ, nó thường được sử dụng để kéo, chẳng hạn đầu
máy xe lửa hay tàu điện. Một ứng dụng khác nữa là để khởi động các loại
động cơ xăng hay động cơ điezen loại nhỏ. Tuy nhiên nó không bao giờ
dùng trong các ứng dụng mà hệ thống truyền động có thể dừng (hay hỏng),
như băng truyền. Khi động cơ tăng tốc, dòng điện phần ứng giảm (do đó cả
trường điện cũng giảm). Sự giảm trường điện này làm cho động cơ tăng tốc
cho tới khi tự phá hủy chính nó. Đây cũng là một vấn đề với động cơ xe lửa
trong trường hợp mất liên kết, vì nó có thể đạt tốc độ cao hơn so với chế độ
làm việc định mức. Điều này không chỉ gây ra sự cố cho động cơ và hộp số,
mà còn phá hủy nghiêm trọng đường ray và bề mặt bánh xe vì chúng bị đốt
nóng và làm lạnh quá nhanh. Việc giảm từ trường trong bộ điều khiển điện
tử được ứng dụng để tăng tốc độ tối đa của các phương tiện vận tải chạy
bằng điện. Dạng đơn giản nhất là dùng một bộ đóng cắt và điện trở làm yếu
từ trường, một bộ điều khiển điện tử sẽ giám sát dòng điện của động cơ và sẽ
chuyển mạch, đưa các điện trở suy giảm từ vào mạch khi dòng điện của
động cơ giảm thấp hơn giá trị đặt trước. Khi điện trở được đưa vào mạch, nó
sẽ làm tăng tốc động cơ, vượt lên trên tốc độ thông thường ở điện áp định
mức. Khi dòng điện tăng bộ điều khiển sẽ tách điện trở ra, và động cơ sẽ trở
về mức ngẫu lực ứng với tốc độ thấp.
Nguyễn Văn Minh
Một phương pháp khác thường được dùng để điều khiển tốc độ động cơ
một chiều là phương pháp điều khiển theo kiểu Ward-Leonard. Đây là
phương pháp điều khiển động cơ một chiều (thường là loại kích thích song
song hay hỗn hợp) bằng cách sử dụng nguồn điện xoay chiều, mặc dù nó
không được tiện lợi như những sơ đồ điều khiển một chiều. Nguồn điện
xoay chiều được dùng để quay một động cơ điện xoay chiều, thường là một
động cơ cảm ứng, và động cơ này sẽ kéo một máy phát điện một chiều. Điện
áp ra của phần ứng máy phát một chiều này được đưa thẳng đến phần ứng
của động cơ điện một chiều cần điều khiển. Cuộn dây kích từ song song của
cả máy phát điện và động cơ điện một chiều sẽ được kích thích độc lập qua
các biến trở kích từ. Có thể điều khiển tốc độ động cơ rất tốt từ tốc độ = 0
đến tốc độ cao nhất với ngẫu lực phù hợp bằng cách thay đổi dòng điện kích
thích của máy phát và động cơ điện một chiều. Phương pháp điều khiển này
đã được xem là chuẩn mực cho đến khi nó bị thay thế bằng hệ thống mạch
rắn sử dụng Thyristor. Nó đã tìm được chỗ đứng ở hầu hết những nơi cần
điều khiển tốc độ thật tốt, từ các hệ thống thang nâng hạ người trong các
hầm mỏ, cho đến những máy công nghiệm cà các cần trục điện. Nhược điểm
chủ yếu của nó là phải cần đến ba máy điện cho một sơ đồ (có thể lên đến 5
trong các ứng dụng rất lớn vì các máy DC có thể được nhân đôi lên và điều
khiển bằng các biến trở chỉnh đồng thời). Trong rất nhiều ứng dụng, hợp bộ
Nguyễn Văn Minh
động cơ - máy phát điện thường được duy trì chạy không tải, để tránh mất
thời gian khởi động lại.
Mặc dù các hệ thống điều khiển điện tử sử dụng Thyristor đã thay thế
hầu hết các hệ thống Ward Leonard cỡ nhỏ và trung bình, nhưng một số hệ
thống lớn (cỡ vài trăm mã lực) vẫn còn đắc dụng. Dòng điện kích từ nhỏ hơn
nhiều so với dòng điện phần ứng, cho phép các Thyristor cỡ trung bình có
thể điều khiển một động cơ lớn hơn rất nhiều, so với điều khiển trực tiếp.
Thí dụ, trong một ứng dụng, một bộ Thyristor 300 A có thể điều khiển một
máy phát điện. Dòng điện ngõ ra của máy phát này có thể lên đến 15.000 A,
với cùng dòng này, nếu điều khiển trực tiếp bằng thyristor thì có thể rất khó
khăn và giá thành cao.
2. Cách ly quang (opto)
Nguyễn Văn Minh
Opto hay còn gọi là cách ly quang là linh kiện tích hợp có cấu tạo gồm
1 led và 1 photo diot hay 1 photo transitor. Được sử dụng đẻ các ly giữa các
khối chênh lệch nhau về điện hay công suất nhu khối có công suất nhỏ với
khối điện áp lớn.
Đầu vào của opto là 5V (Dòng nhỏ khoảng 100mA-500mA) tùy loại
Opto còn đầu ra của nó điến áp lớn hơn nhiều! Opto có tác dụng cách ly
hoàn toàn hai khối công suất để 2 khối này không ảnh hưởng đến nhau. Và
hay được dùng trong các mạch điều khiển dùng Vi xử lý.
Nguyên tắc hoạy động : Khi được cung cấp đủ dòng và áp thì LED sẽ
phát sáng. Ánh sáng này được chiếu tới một transistor quang hay một photo
diode và làm cho photo transistor (hay photo diode) được kích mở.
I. Cơ sở phần mềm – ngôn ngữ lập trình C
1. Giới thiệu
C là một ngôn ngữ cấp cao do Dennis Richie thiết kế tại phòng thí
nghiệm Bell Telephone vào năm 1972, khi viết hệ điều hành Unix. C có
Nguyễn Văn Minh
nguồn gốc sâu sa từ ngôn ngữ BCPL do Martin Richards đề xuất vào năm
1967 và từ ngôn ngữ B do Ken Thompson phát triển từ ngôn ngữ BCPL vào
năm 1970.
Lúc đầu, C được thiết kế để lập trình trong môi trường của hệ điều hành
Unix nhằm mục đích hỗ trợ cho các công việc lập trình phức tạp. Nhưng về
sau, với những nhu cầu phát triển ngày một tăng của công việc lập trình, C
đã vượt qua khuông khổ của phòng thí nghiệm Bell và nhanh chóng hội
nhập vào thế giới lập trình đề rồi được các nhà lập trình sử dụng một cách
rộng rãi. Sau đó, các công ty sản xuất phần mềm lần lượt đưa ra những phiên
bản hỗ trợ cho việc lập trình bằng ngôn ngữ C và chuẩn ANSI C cũng được
khai sinh từ đó.
Ngôn ngữ C có những đặc điểm cơ bản như sau:
Tính cô đọng: C chỉ có 32 từ khoá chuẩn và 40 toán tử chuẩn
Tính cấu trúc: C có một tập hợp những chỉ thị của lập trình có cấu
trúc: lựa chọn, lặp à rõ ràng, dễ hiểu.
Tính tương thích: C có bộ tiền xử lí và một thư viện chuẩn vô cùng
phong phú à chuyển từ máy này sang máy khác, chương trình viết
bằng C vẫn tương thích
Tính linh động: C rất uyển chuyển về ngữ pháp, chấp nhận nhiều
cách thể hiện
Nguyễn Văn Minh
Biên dịch: C cho phép biên dịch nhiều tập tin chương trình riêng rẽ
à các đối tượng và liện kết các đối tượng lại với nhau à Một
chương trình thống nhất
2. Các khai báo và một số lệnh cơ bản trong C
2.1. Khai báo
• Khai báo hằng: const <kiểu dữ liệu> <tên hằng>=<giá trị>
• Khai báo biến: <kiểu dữ liệu> <danh sách biến>
2.2. Một số lệnh cơ bản
i. Cấu trúc if else
if <điều kiện>
<công việc 1> ;
else
<công việc 2;
ii. Cấu trúc switch…case
switch <biểu thức>
{
case <giá trị 1> :
<nhóm lệnh 1>; [break ;]
case <giá trị 2>:
<nhóm lệnh 2>; [break ;]
case <giá trị 3>:
<nhóm lệnh 3>; [break ;]
…………….
default: <nhóm lệnh khác>;
Nguyễn Văn Minh
• Lệnh lặp
i. Cấu trúc: for
for(<biểu thức1>;<biểu thức 2>;<biểu thức 3>) <câu lệnh>
o <biểu thức 1>: Khởi tạo biến đếm
o <biểu thức 2>: Kiểm tra điều kiện của vòng lặp
o <biểu thức 2>: Điều khiển biến đếm của vòng lặp
ii. Cấu trúc: while
while <điều kiện>
{
<khối lệnh>;
}
iii. Cấu trúc: do…while
do
{ <khối lệnh>; }
while <điều kiện>;
Nguyễn Văn Minh
Chương 3. VI ĐIỀU KHIỂN PIC16F877A
PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch
là “máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho
vi điều khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết
bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên
cứu phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày
nay.
1. Lý do sử dụng vi điều khiển PIC cho đề tài
Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051,
Motorola 68HC, AVR, ARM, Ngoài họ 8051 được hướng dẫn một cách
căn bản ở môi trường đại học, bản thân người viết đã chọn họ vi điều khiển
PIC để mở rộng vốn kiến thức và phát triển các ứng dụng trên công cụ này
vì các nguyên nhân sau:
- Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam.
- Giá thành không quá đắt.
- Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập.
- Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ
vi điều khiển mang tính truyền thống: họ vi điều khiển 8051.
- Số lượng người sử dụng họ vi điều khiển PIC. Hiện nay tại Việt
Namcũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi.
Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng
Nguyễn Văn Minh
dụng như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển
thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp
khó khăn,…
- Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình,
nạp chương trình từ đơn giản đến phức tạp,…
- Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này
không ngừng được phát triển.
2. Vi điều khiển PIC 16F877A
2.1. Sơ đồ
2.1.1. Sơ đồ chân
Nguyễn Văn Minh
2.1.2. Sơ đồ khối
Nguyễn Văn Minh
Nguyễn Văn Minh
2.2. Một vài thông số về vi điều khiển PIC16F877A
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ
dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ
hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ
chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu
EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O.
Các đặc tính ngoại vi bao gồmcác khối chức năng sau:
• Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.
• Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức
năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển
hoạt động ở chế độ sleep.
• Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
• Hai bộ Capture/so sánh/điều chế độ rông xung.
• Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI
và I2C.
• Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
• Cổng giao tiếp song song PSP (Parallel Slave Port) với các
chân điều khiển RD, WR, CS ở bên ngoài.
Các đặc tính Analog:
• 8 kênh chuyển đổi ADC 10 bit.
• Hai bộ so sánh.
Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
• Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
• Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
• Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.