Trong đời sống hằng ngày, Vi xử lý điều khiển được ứng dụng vào các thiết bị dân dụng như ti vi, máy điều hòa nhiệt độ, lò vi ba, máy giặt … Qua đó làm các thiết bị này trở nên đa chức n
Trang 1Năm 1971, với sự ra đời của vi xử lý đã làm cho kỹ thuật số phát triển nhảy vọtđồng thời những ứng dụng của nó trong cuộc sống cũng ngày càng đa dạng hơn Sự
ra đời của các vi mạch lập trình như Vi điều khiển, Vi xử lý, Vi mạch số lập trình
… đã tạo ra một bước ngoặt trong lĩnh vực điều khiển Chúng làm cho lĩnh vựcđiều khiển bằng cơ khí thô sơ có độ chính xác và an toàn kém được thế bằng nhữngthiết bị điều khiển tự động với độ chính xác cao hơn, an toàn hơn Nhờ đó, năngsuất lao động cũng không ngừng được nâng cao Trong đời sống hằng ngày, Vi xử
lý điều khiển được ứng dụng vào các thiết bị dân dụng như ti vi, máy điều hòa nhiệt
độ, lò vi ba, máy giặt … Qua đó làm các thiết bị này trở nên đa chức năng hơn, dễdàng sử dụng hơn, tiện nghi hơn
Với những ứng dụng rộng rãi như trên, thiết nghĩ việc tìm hiểu về Vi điều khiển
và những ứng dụng của nó là rất cần thiết Trong khuôn khổ hạn hẹp của đề tài,nhóm sinh viên chỉ tìm hiểu một ứng dụng nhỏ của Vi điều khiển đó là thiết kế vàthi công cân điện tử
1.2 Mục đích nghiên cứu :
Mục đich trước hết khi thực hiện đè tai này là hoàn tất chương trình môn
học, đủ điều kiệ ra trường
quả ứng dụng của vi điều khiển nhằm tạo ra sản phẩm Những thiết bị ứng
Trang 2Chương 1:Dẫn nhập
kiểm tra lại những kiến thức đã học ở trường, đòng thời phát huy tính sángtạo, khả năng giải quyết một vấn đè theo yêu cầu đặt ra Và đây cũng là dịp
để chúng em tự khẳng định mình trước khi ra trường để tham gia vào cáchoạt động sản xuất của xã hội
1.3 Đối tượng và phạm vi nghiên cứu:
1.3.1 Đối tượng nghiên cứu:
Đồ án tốt nghiệp thực chất là quá trình tổng kết những kiến thức mà sinh viên
đã tích lũy được trong suốt quá trình học tập tại trường để từ đó có sự đánh giáchính xác nhất Do đó việc xác định rõ đối tượng cần nghiên cứu của đề tài là mộtviệc làm hết sức quan trọng
Vì vậy nhóm sinh viên xác định đối tượng nghiên cứu chủ yếu của đề tài nàylà:
Vi điều khiển AT89S52, loadcell, ADC, LCD và viết chương trình
Mạch khuếch đại tín hiệu từ loadcell sử dụng Opamp
Mạch giao tiếp ADC, LCD với vi điều khiển
Mạch nguồn cung cấp ±5V, ±12V
1.3.2 Phạm vi nghiên cứu:
Do điều kiện và thời gian có hạn nên nhóm thực hiện đề tài chỉ giải quyết một
số vấn đề sau:
Tìm hiểu cơ bản về vi điều khiển pic 16f877a
Tìm hiểu cơ bản về loadcell, ADC 7109, LCD 16*2Thiết kế mạch khuếch đại tín hiệu sử dụng Opamp
Hiển thị trên LCD
Đề tài không giải quyết được những vấn đề sau:
Chưa giao tiếp với cái thiết bị khác như máy vi tính
Trang 3Chương 1:Dẫn nhập
1.4 Ý nghĩa khoa học và thực tiễn của đề tài :
1.4.1 Ý nghĩa khoa học :
Qua đề tài này, nhóm thực hiện nắm được các vấn đề sau:
Hiểu được phần nào vi điều khiển pic 16f877aHiểu được phương thức hoạt động của ADC , loadcell
Hiểu được cách xử lý tín hiệu tương tự, tín hiệu số
1.4.2 Ý nghĩa thực tiễn:
Đề tài sau khi thi công xong có thể;
Cân được khối lượng vật tối đa 5kg, sai số 1gram
Làm mô hình học tập
1.5 Tình hình nghiên cứu:
Hiện nay trong thực tế các cân điện tử sử dụng EPROM, có khả năng giao tiếpvới máy vi tính
Trang 4Chương 2: Giới thiệu về Loadcell
CHƯƠNG 2 : GIỚI THIỆU VỀ LOADCELL
2.1 NGUYÊN LÝ HOẠT ĐỘNG CỦA MỘT LOADCELL:
Bộ phận chính của Loadcell là những tấm điện trở mỏng loại dán Tấm điện trở
là một phương tiện để biến đổi một biến dạng bé thành sự thay đổi tương ứng trongđiện trở Có hai loại điện trở dán dùng để cảm biến lực dịch chuyển: loại liên kết(bonded) và loại không liên kết (unbonded)
Tấm điện trở liên kết dùng để đo độ biến dạng ở một vị trí xác định trên bề mặtcủa bộ phận đàn hồi Điện trở này được dán trực tiếp vào điểm cần đo biến dạng củavật đàn hồi Biến dạng này được truyền trực tiếp vào tấm điện trở và làm nó thayđổi giá trị điện trở tương ứng
Cảm biến dùng điện trở loại không liên kết sử dụng để đo lượng di động nhỏ.Một lượng di động do mối liên kết bằng cơ khí tạo nên sẽ làm thay đổi điện trở làmcảm biến Lượng di động cũng thường được tạo nên bằng lực tác động vào một bộphận đàn hồi
Vì thế tấm điện trở không liên kết sẽ đo toàn bộ lượng dịch chuyển của bộphận đàn hồi còn tấm điện trở liên kết đó biến dạng tại một điểm xác định trên bềmặt của bộ phận đàn hồi
Lấy vi phân hai vế ta được :
S
dS L
dL d R
Trang 5Chương 2: Giới thiệu về Loadcell
(D là đường kính dây) suy ra:
Thông thường các giá trị trên nằm trong khoảng G = 2÷4; L = 0,5÷4 cm;R= 50÷1000
L
R G
Dựa vào các công thức tính ứng suất của bộ phận đàn hồi được xác định bằng
tỷ lệ giữa lực (P) trên một đơn vị diện tích (A) :
Trang 6Chương 2: Giới thiệu về Loadcell
giữa sự thay đổi điện trở dưới tác dụng của lực P Quan hệ này sẽ thay đổi tùy theocách bố trí điện trở và hình dạng của bộ phận đàn hồi
Trong các cách lấy tín hiệu ra từ cảm biến mang đặc tính tổng trở, mạch lấy tínhiệu ra tối ưu nhất là mạch cầu Đây là một phương pháp để đo sự thay đổi nhỏtrong điện trở của một phần tử mà giá trị điện áp ra tỷ lệ với sự thay đổi của điện trởkhi có khối lượng (hay lực) đặt vào cảm biến
Hoạt động của mạch cầu có hai trường hợp: mạch cầu cân bằng và mạch cầukhông cân bằng Ở mạch cầu cân bằng điện trở của cảm biến được xác định từ giátrị ba điện trở đã biết trước Ở cách đo không cân bằng, sự thay đổi điện trở cảmbiến từ một giá trị cơ sở tạo nên một sự sai lệch nhỏ giữa hai điện áp của ngõ ramạch cầu Sử dụng bộ khuếch đại để khuếch đại sai lệch này lên để dễ dàng xử lý.Điện trở cảm biến có thể được gắn vào một nhánh của mạch cầu Wheatstonekhông cân bằng như sau:
Hình 2.1 Mạch cầu Wheatstone không cân bằng
R bal
Mục đích của cầu không cân bằng là tạo ra một điện áp tỷ lệ với sự sai lệch
hai hệ số và như sau:
Trang 7Chương 2: Giới thiệu về Loadcell
bal
bal X
R
R
R
1 3
3
R R
R R
1
Do đó điện áp ngõ ra của mạch cầu:
dc X
b a
R R
R R
R R R R R R R R
3
1 2 3 2 1 2 1
3
1
R
R R R R R
R R R
bal X
bal X a
V R
R R R
13 3
Khi đó (3) trở thành :
Trang 8Chương 2: Giới thiệu về Loadcell
dc bal
bal
bal X
bal X a
b
R
R R R R
R R R
R
R R R R R
R R R
1 3 3
3
1 1
bal X
bal bal X
R R R
R R R R
R
R R R R
R R
1 3
1 3
1 1
1 1
3
3
R R
R R
R R
Và
bal
bal X
bal
bal X
Trang 9Chương 2: Giới thiệu về Loadcell
3
3 1
3
1 3
3 3
1 3
1 3
1 3
bal
bal X bal
bal
bal bal
bal X
bal
bal X
R R R
R R R R R R
R R R
R R R R R R R R R
R R
R R R R
Vì sai lệch khá nhỏ nên (5) có thể viết lại là:
R
R R R
R R R
4 4 3
bởi khối lượng (hay lực) tác dụng lên
xếp chồng và cách tính tượng tự như trên, ta được biểu thức:
R R R V
V
S
bal S dc
dc ab
so với R Do đó có thể bỏ qua được nhiễu
Cách dùng bốn cảm biến bố trí trên 4 nhánh cầu được ứng dụng rộng rãi trongcác loadcell thực tế Thông thường 4 cảm biến này được bố trí trên hai mặt củaloadcell, và như vậy sẽ có hai cảm biến điện trở bị giãn ra và 2 cảm biến điện trở sẽ
co lại khi có lực tác dụng
Sự thay đổi của điện áp ra theo biến dạng của các điện trở này có thể được tínhnhư sau:
Trang 10Chương 2: Giới thiệu về Loadcell
Hình 2.2a : Sơ đồ mạch tương đươngHai điện trở R1 và R2 thường được dùng trong mục đích cộng các tín hiệu từcác loadcell lại với nhau R1 là tải
Sơ đồ tương đương Thevenin cho mạch trên được vẽ như sau:
Hình 2.2b : Sơ đồ tương đương Thevenin
4
4 2
2 3
3 1
1
S
S S
S S
S S
S
R
R R
R R
R R
0
Vì thế điện áp ngõ ra sẽ thay đổi theo sự thay đổi giá trị của các điện trở này
Trang 11Chương 2: Giới thiệu về Loadcell
Có nhiều kiểu hình dạng loadcell cho những ứng dụng khác nhau Do đó cáchkết nối loadcell vào hệ thống cũng khác nhau trong từng trường hợp
Thông số kỹ thuật của từng loại loadcell được cho trong catalogue của mỗiloadcell và thường có các thông số như sau: tải trọng danh định, điện áp ra danhđịnh (giá trị này có thể là từ 2mV/V đến 3mV/V hoặc hơn tùy loại loadcell), tầmnhiệt độ hoạt động, điện áp cung cấp, điện trở ngõ ra, mức độ chịu được quá tải …(Với giá trị điện áp ra danh định là 2mV/V thì với nguồn cung cấp là 10V thì điện
áp ra sẽ là 20mV ứng với khối lượng tối đa)
Tùy ứng dụng cụ thể mà cách chọn loại loadcell có thông số và hình dạng khácnhau
Hình dạng loadcell có thể đặt cho nhà sản xuất theo yêu cầu ứng dụng riêng Sauđây là hình dạng của một số loại loadcell có trong thực tế
Hình 2.3: Một số loại loadcell thực tế
Trang 12Chương 2: Giới thiệu về Loadcell
2.2.1 Ưu và khuyết điểm của loadcell:
Trước đây, hầu hết các thiết bị cân trong công nghiệp sử dụng Load Cell cảmbiến sức căng, biến đổi thành tín hiệu điện (gọi là Load Cell tương tự) Tín hiệu nàyđược chuyển thành thông tin hữu ích nhờ các thiết bị đo lường như bộ chỉ thị Một hệ thống cân dùng load cell tương tự điển hình thông thường bao gồmmột hoặc một vài Load Cell nối song song với nhau qua một hộp nối (Junction Box)như hình vẽ
Hình 2.4 Sơ đồ hệ thống cân dùng load cell tương tự điển hình
Mỗi Load Cell tải một đầu ra độc lập, thường 1 đến 3 mV/V Đầu ra kết hợpđược tổng hợp dựa trên kết quả của đầu ra từng Load Cell Các thiết bị đo lườnghoặc bộ hiển thị khuyếch đại tín hiệu điện đưa về, qua chuyển đổi ADC, vi xử lývới phần mềm tích hợp sẵn thực hiện tính toán chỉnh định và đưa kết quả đọc đượclên màn hình Đa phần các thiết bị hay bộ hiển thị hiện đại đều cho phép giao tiếpvới các thiết bị ngoài khác như máy tính hoặc máy in
Những Load Cell này dựa trên nguyên lý cầu điện trở cân bằng Wheatstone.Giá trị lực tác dụng tỉ lệ với sự thay đổi điện trở cảm ứng trong cầu điện trở, và do
đó trả về tín hiệu điện áp tỉ lệ Ưu điểm chính của công nghệ này là xuất phát từ yêucầu thực tế, với những tham số xác định trước, sẽ có các sản phẩm thiết kế phù hợpcho từng ứng dụng của người dùng Ở đó các phần tử cảm ứng có kích thước và
Trang 13Chương 2: Giới thiệu về Loadcell
hình dạng khác nhau phù hợp với yêu cầu của ứng dụng Các dạng phổ biến: dạngkéo (shear), dạng uốn (bending), dạng nén (compression)…
Tuy nhiên, khó khăn gặp phải ngay từ buổi đầu của các hệ thống này là tínhiệu điện áp đầu ra của load cell rất nhỏ (thường không quá 30mV) Những tín hiệunhỏ như vậy dễ bị ảnh hưởng của nhiều loại nhiễu trong công nghiệp như:
Nhiễu điện từ: Sinh ra bởi quá trình truyền phát các tín hiệu điện trong môitrường xung quanh, truyền phát tín hiệu vô tuyến điện trong không gianhoặc do quá trình đóng cắt của các thiết bị chuyển mạch công suất lớn…
Sự thay đổi điện trở dây cáp dẫn tín hiệu: Do thay đổi thất thường của nhiệt
độ môi trường tác động lên dây cáp truyền dẫn
Do đó, để hệ thống chính xác thì càng giảm sai lệch giữa Load Cell với thiết bị
đo lường càng thấp càng tốt Cách giải quyết thông thường vẫn dùng là giảm thiểudung sai đầu ra của Load Cell Tuy nhiên giới hạn của công nghệ không cho phépvượt quá con số mong muốn quá nhỏ Trong khi nối song song nhiều Load Cell vớinhau, mỗi Load Cell tải với một đầu ra độc lập với các Load Cell khác trong hệthống, do đó để đảm bảo giá trị đọc nhất quán, ổn định và không phụ thuộc vào vịtrí, hệ thống yêu cầu chỉnh định đầu ra với từng Load Cell riêng biệt Công việc nàyđòi hỏi tốn kém về thời gian, đặc biệt với những hệ thống yêu cầu độ chính xác caohoặc trong các ứng dụng khó tạo tải kiểm tra như cân tank, cân xilô…
Tín hiệu ra chung của một hệ nhiều Load Cell dựa trên cơ sở đầu các tín hiệu
ra trung bình của từng Load Cell Điều đó gây nên dễ xảy ra hiện tượng có LoadCell bị lỗi mà không được nhận biết Một khi đã nhận ra thì cũng khó khăn trongviệc xác định Load Cell nào lỗi, hoặc khó khăn trong yêu cầu sử dụng tải kiểm tra,hay yêu cầu sử dụng các thiết bị đo lường như đồng hồ volt-ampe với độ chính xáccao, đặc biệt trong điều kiện nhà máy đang hoạt động liên tục
Thực tế còn rất nhiều yếu tố khác liên quan đến độ chính xác của hệ thống cânnhư:
- Quá trình chỉnh định hệ thống
- Nhiễu rung và ồn
Trang 14Chương 2: Giới thiệu về Loadcell
- Do tác dụng chuyển hướng lực trong các cơ cầu hình ống
- Quá trình phân tích dò tìm lỗi
- Thay thế các thành phần trong hệ thống cân hoặc các hệ thống liênquan
- Đi dây cáp tín hiệu dài
- Môi trường hoạt động quá kín
… Không thể tính toán được trước các yếu tố ảnh hưởng này để có thể mô hình hóatrong quá trình phân tích và thiết kế Trong khi đó điều kiện làm việc ở mỗi nơi rấtkhác nhau, thiết bị đo ở các xa cảm biến, tín hiệu truyền dẫn yếu dễ bị tiêu hao vànhiều loại nhiễu tác động, đặc biệt với môi trường làm việc khắc nghiệt trong nhàmáy và xí nghiệp Tín hiệu đưa về đến thiết bị đo lường khó phản ảnh trung thực giátrị thực tế
Trong khi đó, các bộ hiển thị hiện nay thường dùng hệ vi xử lý tốc độ thấp,năng lực tính toán không cao, ít thiết bị tích hợp các thuật toán xử lý chỉnh định các
số liệu thu thập về, hoặc nếu có còn ở mức độ đơn giản Do các bộ hiển thị sử dụngvới nhiều loại Load Cell khác nhau nên các thuật toán chỉnh định chỉ mang tínhtương đối, không triệt để, đặc biệt là chưa có thiết bị nào tích hợp tính năng bù sailệch do nhiệt độ Chức năng lọc nhiễu điện từ trường cho tín hiệu đo của các thiết bịnày còn rất kém Một yếu điểm nữa là tần số lấy mẫu thấp, do đó không thể áp dụngtrong các ứng dụng mà lực tác dụng biến đổi nhanh (cân động) như các hệ thốngcân băng liên tục,…
Tuy nhiên, từ cuối những năm 1970, các nhà chế tạo Load Cell đã khám phákhả năng có thể kết hợp giữa công nghệ điện tử hiện đại với các thành phần đo cơbản, và khái niệm Load Cell số ra đời Ban đầu, khi khái niệm Load Cell số mới rađời, nhiều người hiểu lầm là các Load Cell số có các phần tử điện tiêu hao thấp cóthể được sử dụng để chuyển đổi một load cell chất lượng thấp lên một Load Cellchất lượng cao Thực tế thì ngược lại, mỗi Load Cell số đơn giản cũng mang trong
nó một cấu trúc khá phức tạp Thứ nhất, phải có một load cell cơ bản với độ chính
Trang 15Chương 2: Giới thiệu về Loadcell
xác, độ ổn dịnh và khả năng lặp lại rất cao trong mọi điều kiện làm việc Thứ hai,phải có một bộ chuyển đổi tương tự-số (ADC) 16 đến 20 bit tốc độ cao để chuyểnđổi tín hiệu điện tương tự sang dạng số Thứ ba, phải có hệ vi mạch xử lý để thựchiện điều khiển toàn bộ quá trình chuyển đổi từ tín hiệu lực đo được thành dữ liệu
số thể hiện trung thực nhất và giao tiếp với các thiết bị khác để trao đổi thông tin.Tham khảo cấu trúc một load cell số trên hình 2 5
Hình 2.5 Cấu trúc một loadcell số
Tín hiệu điện áp từ cầu điện trở của load cell chính xác cao được đưa đến đầuvào của mạch tích hợp sẵn, bao gồm cả phần khuyếch đại, bộ giải điều chế, mộtADC tốc độ cao 20 bit và bộ lọc số Một cảm biến nhiệt độ tích hợp sẵn được sửdụng để đo nhiệt độ thực của Load Cell phục vụ cho việc bù sai số do nhiệt độ Dữliệu từ ADC, cảm biến nhiệt độ cùng với các thuật toán trong phần mềm và một sốphần cứng bổ sung tích hợp sẵn có chức năng tối ưu hóa xử lý các sai số do khôngtuyến tính, bù sai đường đặc tính, khả năng phục hồi trạng thái và ảnh hưởng củanhiệt độ… được vi xử lý tốc độ cao xử lý Dữ liệu kết quả đầu ra được truyền đi xaqua cổng giao tiếp theo một giao thức nhất định Các module điện tử này có thể
Trang 16Chương 2: Giới thiệu về Loadcell
được đặt ngay trong Load Cell, Load Cell cable hoặc trong hộp junction box Cácđặc tính tới hạn của từng Load Cell được đặt trong EEPROM nằm trong module củaLoad Cell đó, điều đó cũng có nghĩa là mọi vấn đề xử lý sai số được thực hiện ngaytại Load Cell, với chính Load Cell đó, cũng có nghĩa là phép bù các sai số đượcthực hiện khá triệt để
Một hệ thống số điển hình bao gồm một số các load cell số nối với máy tính,PLC hoặc thiết bị đo như bộ hiển thị Bên trong hệ thống, mỗi Load Cell độc lập cóthể được nhận dạng bằng địa chỉ làm việc của nó Địa chỉ làm việc đó có thể đượccài đặt do người lập trình thông qua một hoặc nhiều địa chỉ cung cấp bởi nhà máy.Thông thường địa chỉ “0” được sử dụng như là một địa chỉ làm cho tất cả các LoadCell trả lời, trong khi các số nối tiếp của load cell có thể được sử dụng để yêu cầumột địa chỉ xác định
Các Load Cell số hoạt động trên một chương trình điều khiển kiểuMaster/Slave, ở đó định nghĩa một thiết bị (thường là PC hoặc indicator) là mastertrên mạng Có hai chế độ hoạt động chính: Master giám sát tất cả các quá trìnhtruyền phát bằng cách giao tiếp với từng slave một cách tuần tự, hoặc master gửi dữliệu yêu cầu các slave trả lời theo địa chỉ tuần tự Chế độ thứ nhất có ưu điểm trong
sự mềm dẻo và nắm bắt lỗi, trong khi chế độ hai hướng đến tốc độ giao tiếp Hầuhết các load cell số kết nối theo chuẩn RS485 hoặc RS422 Cả hai kiểu giao thứcđều có các đặc tính tương tự nhau và cung cấp một môi trường multi-drop Việcgiao tiếp giữa các thiết bị nối trên mạng dựa trên giao thức quy định bởi nhà sảnxuất
Có lẽ điểm khác biệt quan trọng nhất giữa hệ thống Load Cell tương tự và số
là mặc dù nối với nhau nhưng mỗi load cell số hoạt động như là một thiết bị độclập
Load Cell số cho phép với trong nhiều ứng dụng khác nhau Dưới đây là 4 môhình ứng dụng điển hình
Khái quát lại, hệ thống cân dùng Load Cell số có một số ưu điểm nổi bật sau:
- Với đầu ra số, hệ thống có được:
Trang 17Chương 2: Giới thiệu về Loadcell
- Tín hiệu ra số “khỏe”, rất ít bị ảnh hưởng của nhiễu điện từ hoặc thayđổi nhiệt độ thất thường trên đường dây cable dẫn
- Khoảng cách dây cáp dẫn có thể kéo dài đến 1200m
- Dễ dàng thay thế Load Cell
- Dữ liệu số có thể xử lý trực tiếp bằng máy tính, PLC hoặc trên bộ hiểnthị khi cần
- Mỗi Load Cell là một thiết bị hoạt động độc lập trong hệ thống, do đó
2.2.2 Một số ưu điểm khác :
- Với hệ thống yêu cầu độ chính xác vừa và thấp có thể tự động chỉnh định
mà không cần tải chết
- Load Cell có thể thay thế mà không cần chỉnh định lại
- Các thiết bị theo chuẩn RS485/422 đều có thể tham gia vào hệ thống
- Nhiều hệ thống có thể kết nối và điều khiển bởi một trạm Chỉ đơn giản là
mở rộng đường dây cable Tiết kiệm phần cứng Phần mềm dễ dàng pháttriển
Trang 18Chương 3: Giới thiệu vi điều khiển PIC 16F877A
CHƯƠNG 3: GIỚI THIỆU VI ĐIỀU KHIỂN PIC
16F877A
3 Vi điều khiển pic 16F877a
3.Vi điều khiển pic 16F877a
Hình 3.1:Chân vi điều khiển PIC 16F877A
Hình 3.2: PIC16F877A
Đây là vi điều khiển thuộc họ 16Fxxx với tập lệnh gồm 35 lệnh có độ dài
14 bit Mỗi lệnh được thực thi trong một chu kỳ xung clock Tốc độ hoạt động tối
đa cho phép là 20MHz với một chu kỳ lệnh là 200ns Bộ nhớ chương trình là8Kx14bit, bộ nhớ dữ liệu là 368x8byte RAM và bộ nhớ dữ liệu EEPROM với dunglượng 256x8byte Số PORT I/O là 5 với 33 pin I/O
Các đặc tính ngoại vi bao gồm các khối chức năng sau: Timer 0: bộ đếm 8bit bộ chia tần 8 bit Timer 1: bộ đếm 16 bit bộ chia tần số, có thể thực hiện chứcnăng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độsleep Timer 2: bộ đếm 8 bit bộ chia tần số, bộ postcaler Hai bộ Capture/sosánh/điều chế độ xung Các chuẩn giao tiếp nối tiếp SPP (Synchronouns Serial
Trang 19Chương 3: Giới thiệu vi điều khiển PIC 16F877A
Port), SPI và I2C Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ Cổng giao tiếpsong song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bênngoà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 đó có 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 được1.000.000 lần Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm Khả năng tựnạp chương trình với sự điều khiển của phần mềm Nạp được chương trình ngaytrên mạch điện ICSP (In Cỉcuit Serial Programming) thông qua 2 chân WatchdogTimer với bộ dao động trong Chức năng bảo mật mã chương trình Chế độ Sleep,
có thể hoạt động nhiều dạng Oscillator khác nhau
Trang 20Chương 3: Giới thiệu vi điều khiển PIC 16F877A
3.1 Sơ đồ khối vi điều khiển PIC 16F877A:
Hình 3.3: Sơ đồ khối vi điều khiển PIC16F877A
Trang 21Chương 3: Giới thiệu vi điều khiển PIC 16F877A
3.2 Tổ chức bộ nhớ:
Hình 3.4: Bộ nhớ chương trình
Bộ nhớ chương trình: Bộ nhớ chương trình của vi điều khiển PIC
16F877A là bộ nhớ flash, dung lượng bộ nhớ 8K word (1word =14 bit) và đượcphân thành nhiều trang Như vậy bộ nhớ chương trình có khả năng chứa được8*1024=8192 lệnh Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộđếm chương trình có dung lượng 13 bit (PC<12:0>) Khi vi điều khiển được reset,
bộ đếm sẽ chỉ địa chỉ 0000h (Resetvector) Khi ngắt xảy ra, bộ đếm chương trình sẽchỉ đến địa chỉ 0004h (Interrupvector) Bộ nhớ chương trình không bao gồm bộ nhớstack và không được địa chỉ hóa bới bộ đếm chương trình
Trang 22Chương 3: Giới thiệu vi điều khiển PIC 16F877A
Bộ nhớ dữ liệu: bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia làm
nhiều bank Đối với PIC 16F877A bộ nhớ dữ liệu chia làm 4 bank Mỗi bank códung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFR (SpecialFunction Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chungGPR (General Purpose Register) nằm ở vùng địa chỉ còn lại của bank Các thanhghi SFR thương xuyên được sử dụng sẽ được đặt ở tất cả các bank của bộ nhớ dữliệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh chương trình
Hình 3.5: Sơ đồ bộ nhớ dữ liệu
3.3 Thanh ghi, Port :
Các thanh ghi chức năng đặc biệt:
Trang 23Chương 3: Giới thiệu vi điều khiển PIC 16F877A
Thanh ghi STATUS (03h,83h,103h,183h) :thanh ghi chứa kết quả thực hiệnphép toán của khối ALU, trạng thái reset và các bit chọn bank truy xuất trong bộnhớ dữ liệu
Thanh ghi OPTION_REG (81h,181h) :thanh ghi này cho phép đọc, ghi vàđiều khiển chức năng pull_up của các chân trong Port B, xác lập các tham số vềxung tác động của ngắt ngoại vi và bộ đếm Timer 0
Thanh ghi INCON (0Bh,8Bh,10Bh,18Bh) :thanh ghi cho phép đọc, ghi, chứacác bit điều khiển và các bit cờ hiệu khi timer 0 bị tràn, ngắt ngoại vi RB0/INT vàngắt interrup_on_change tại các chân của Port B
Thanh ghi PIE1 (8Ch) :chứa các bit điều khiển chi tiết các ngắt của khốichức năng ngoại vi
Thanh ghi PIR1 (0Ch) :chứa cờ ngắt của các khối chức năng ngoại vi, cácngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1
Trang 24Chương 3: Giới thiệu vi điều khiển PIC 16F877A
Thanh ghi PIE2 (8Dh) :chứa các bít điều khiển các ngắt của các khối chứcnăng CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM
Thanh ghi PIR2 (0Dh) : chứa cờ ngắt của các khối chức năng ngoại vi, cácngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2
Thanh ghi PCON (8Eh) :chứa các cờ hiệu cho biết trạng thái các chế độ resetcủa vi điều khiển
Các Port của Pic :
* PORTA :
PortA bao gồm 6 chân I/O, để là input thì ghi giá trị vào thanh ghi TrisA sẽquy định các chân của Port (nếu là 1 thì input, là 0 thì output) Riêng chân RA4được tích hợp chức năng là chân cung cấp xung clock cho timer 0 Những chânkhác đa hợp với ngõ vào analog của ADC và chân vào điện thế so sánh của bộ sosánh Comparator
Các thanh ghi SFR liên quan đến PortA :
PortA (05h) :chứa các pin trong PortA
TrisA (85h) :điều khiển xuất nhập
Cmcon (9Ch) :thanh ghi điều khiển bộ so sánh
Cvrcon (9Dh) : thanh ghi điều khiển bộ so sánh điện áp
Adcon1 (9Fh) : thanh ghi điều khiển bộ ADC
* PORTB :
Trang 25Chương 3: Giới thiệu vi điều khiển PIC 16F877A
PortB bao gồm 8 chân I/O, để là input thì ghi giá trị vào thanh ghi TrisB sẽquy định các chân của Port (nếu là 1 thì input, là 0 thì output) Một số chân sử dụngtrong quá trình nạp chương trình cho vi điều khiển PortB liên quan tới ngắt ngoại vi
và bộ timer 0 PortB còn được tích hợp chức năng điện trở kéo lên được điều khiểnbởi chương trình
Các thanh ghi SFR liên quan đến PortB :
PortB (06h, 106h) :chứa các pin trong PortB
TrisB (86h, 186h) :điều khiển xuất nhập
Option_reg (82h, 181h) :điều khiển ngắt ngoại vi và bộ timer 0
* PORTC :
PortC bao gồm 8 chân I/O, để là input thì ghi giá trị vào thanh ghi TrisC sẽquy định các chân của Port (nếu là 1 thì input, là 0 thì output) PortC chứa các chânchức năng của bộ so sánh, bộ timer 1, bộ PWM, các chuẩn giao tiếp nối tiếp I2C,SPI, SSP, USART
Các thanh ghi SFR liên quan đến PortC :
PortC (07h) :chứa các pin trong PortC
TrisB (87h) :điều khiển xuất nhập
* PORTD :
PortD bao gồm 8 chân I/O, để là input thì ghi giá trị vào thanh ghi TrisD sẽquy định các chân của Port (nếu là 1 thì input, là 0 thì output) PortD còn là cổngxuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port)
Các thanh ghi SFR liên quan đến PortD :
PortD (08h) :chứa các pin trong PortD
TrisB (88h) :điều khiển xuất nhập
* PORTE :
PortE bao gồm 3 chân I/O, để là input thì ghi giá trị vào thanh ghi TrisE sẽquy định các chân của Port (nếu là 1 thì input, là 0 thì output) PortE chứa các chânngõ vào analog, còn có các chân điều khiển chuẩn giao tiếp PSP (Parallel SlavePort)
Trang 26Chương 3: Giới thiệu vi điều khiển PIC 16F877A
Các thanh ghi SFR liên quan đến PortE :
PortD (09h) :chứa các pin trong PortE
TrisB (89h) :điều khiển xuất nhập và thiết lập thông số cho chuấn giao tiếpPSP
Adcon1 :thanh ghi điều khiển khối ADC
3.1 Giao tiếp nối tiếp
- USART (Universal Synchronous Asynchronous Receiver Transmitter) là một
trong hai chuẩn giao tiếp nối tiếp.USART còn được gọi là giao diện giao tiếp nốitiếp SCI
(Serial Communication Interface) Có thể sử dụng giao diện này cho các giao tiếpvới các
thiết bị ngoại vi, với các vi điều khiển khác hay với máy tính Các dạng của giaodiện USART ngoại vi bao gồm:
Ở dạng bất đồng bộ, BRG còn được điều khiển bởi bit BRGH ( TXSTA<2>) Ởdạng đồng bộ tác động của bit BRGH được bỏ qua Tốc độ baud do BRG tạo rađược tính theo công thức sau:
Trong đó X là giá trị của thanh ghi RSBRG ( X là số nguyên và 0<X<255)
Các thanh ghi liên quan đến BRG bao gồm:
TXSTA (địa chỉ 98h): chọn chế độ đòng bộ hay bất đồng bộ ( bit SYNC) và chọnmức
Trang 27Chương 3: Giới thiệu vi điều khiển PIC 16F877A
tốc độ baud (bit BRGH)
RCSTA (địa chỉ 18h): cho phép hoạt động cổng nối tiếp (bit SPEN)
RSBRG (địa chỉ 99h): quyết định tốc độ baud
- USART bất đồng bộ: Ở chế độ truyền này USART hoạt động theo chuẩn NRZ
(None-Return-to-Zero), nghĩa là các bit truyền đi sẽ bao gồm 1 bit Start, 8 hay 9 bit
dữ liệu (thông thường là 8 bit) và 1 bit Stop Bit LSB sẽ được truyền đi trước Cáckhối truyền và nhận data độc lập với nhau sẽ dùng chung tần số tương ứng với tốc
độ baud cho quá trình dịch dữ liệu (tốc độ baud gấp 16 hay 64 lần tốc độ dịch dữliệu tùy theo giá trị của bit BRGH), và để đảm bảo tính hiệu quả của dữ liệu thì haikhối truyền và nhận phải dùng chung một định dạng dữ liệu
Các thanh ghi liên quan đến quá trình truyền dữ liệu bằng giao diện USART bất đồng bộ:
Thanh ghi INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép tất cả các ngắt.Thanh ghi PIR1 (địa chỉ 0Ch): chứa cờ hiệu TXIF
Thanh ghi PIE1 (địa chỉ 8Ch): chứa bit cho phép ngắt truyền TXIE
Thanh ghi RCSTA (địa chỉ 18h): chứa bit cho phép cổng truyền dữ liệu (hai pinRC6/TX/CK và RC7/RX/DT)
Thanh ghi TXREG (địa chỉ 19h): thanh ghi chứa dữ liệu cần truyền
Thanh ghi TXSTA (địa chỉ 98h): xác lập các thông số cho giao diện
Thanh ghi SPBRG (địa chỉ 99h): quyết định tốc độ baud
- USART đồng bộ:
Giao diện USART đồng bộ được kích hoạt bằng cách set bit SYNC Cổng giao tiếpnối tiếp vẫn là hai chân RC7/RX/DT, RC6/TX/CK và được cho phép bằng cách setbit SPEN USART cho phép hai chế độ truyền nhận dữ liệu là Master mode vàSlave mode Master mode được kích hoạt bằng cách set bit CSRC (TXSTA<7>),Slave mode được kích hoạt bằng cách clear bit CSRC Điểm khác biệt duy nhấtgiữa hai chế độ này là Master mode sẽ lấy xung clock đồng bộ từ bộ tao xung baudBRG còn Slave mode lấy xung clock đồng bộ từ bên ngoài qua chân RC6/TX/CK
Trang 28Chương 3: Giới thiệu vi điều khiển PIC 16F877A
Điều này cho phép Slave mode hoạt động ngay cả khi vi điều khiển đang ở chế độsleep
Các thanh ghi liên quan đến quá trình truyền dữ liệu bằng giao diện USART đồng
bộ Master mode:
Thanh ghi INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép tất cả các ngắt.Thanh ghi PIR1 (địa chỉ 0Ch): chứa cờ hiệu TXIF
Thanh ghi PIE1 (địa chỉ 8Ch): chứa bit cho phép ngắt truyền TXIE
Thanh ghi RCSTA (địa chỉ 18h): chứa bit cho phép cổng truyền dữ liệu (hai pinRC6/TX/CK và RC7/RX/DT)
Thanh ghi TXREG (địa chỉ 19h): thanh ghi chứa dữ liệu cần truyền
Thanh ghi TXSTA (địa chỉ 98h): xác lập các thông số cho giao diện
Thanh ghi SPBRG (địa chỉ 99h): quyết định tốc độ baud
Cổng giao tiếp song song psp (parallel slave port)
Ngoài các cổng nối tiếp và các giao điện nối tiếp được trình bày ở phần trên, vi điềukhiển pic16F877A còn được hỗ trợ một cổng giao tiếp song song và chuẩn giao tiếpsong song thông qua portd và porte do cổng song song chỉ hoạt động ở chế độ slavemode nên vi điều khiển khi giao tiếp qua giao diện này sẽ chịu sự điều khiển củathiết bị bên ngoài thông qua các pin của porte, trong khi dữ liệu sẽ được đọc hoặcghi theo dạng bất đồng bộ thông qua 8 pin của portd
- Các thanh ghi liên quan đến psp bao gồm:
thanh ghi portd (địa chỉ 08h): chứa dữ liệu cần đọc hoặc ghi
thanh ghi porte (địa chỉ 09h): chứa giá trị các pin porte
thanh ghi trise (địa chỉ 89h): chứa các bit điều khiển porte và psp
thanh ghi pir1 (địa chỉ 0ch): chứa cờ ngắt pspif
thanh ghi pie1 (địa chỉ 8ch): chứa bit cho phép ngắt psp
thanh ghi adcon1 (địa chỉ 9fh): điều khiển khối adc tại porte
Các đặc tính của Oscillator
Pic16F877A có khả năng sử dụng một trong 4 loại oscillator, đó là:
Trang 29Chương 3: Giới thiệu vi điều khiển PIC 16F877A
LP: (low power crystal)
XT: thạch anh bình thường
HS: (high-speed crystal)
RC: (resistor/capacitor) dao động do mạch rc tạo ra đối với các loại oscillator lp,
hs, xt, Oscillator được gắn vào vi điều khiển thông
qua các pin osc1/clki và Osc2/Clko
đối với các ứng dụng không cần các loại oscillator tốc độ cao, ta có thể sử dụngmạch dao động rc làm nguồn cung cấp xung hoạt động cho vi vi điều khiển tần sốtạo ra phụ thuộc vào các giá trị điện áp, giá trị điện trở và tụ điện, bên cạnh đó là sựảnh hưởng của các yếu tố như nhiệt độ, chất lượng của các linh kiện
các linh kiện sử dụng cho mạch rc oscillator phải bảo đảm các giá trị sau:
3 k < rext < 100 k
cext >20 pf
3.4 Các chế độ Reset
Có nhiều chế độ reset vi điều khiển, bao gồm:
Power-on Reset POR (Reset khi cấp nguồn hoạt động cho vi điều khiển)
Reset trong quá trình hoạt động
Từ chế độ sleep
WDT reset (reset do khối WDT tạo ra trong quá trình hoạt động)
WDT wake up từ chế độ sleep
Brown-out reset (BOR)
- Power-on reset (POR): Đây là xung reset do vi điều khiển tạo ra khi phát hiệnnguồn cung cấp VDD Khi hoạt động ở chế độ bình thường, vi điều khiển cần đượcđảm bảo các thông số về dòng điện, điện áp để hoạt động bình thường Nhưng nếucác tham số này không được đảm bảo, xung reset do POR tạo ra sẽ đưa vi điềukhiển về trạng thái reset và chỉ tiếp tục hoạt động khi nào các tham số trên đượcđảm bảo