Tải bản đầy đủ (.pdf) (61 trang)

ỨNG DỤNG VI XỬ LÍ THIẾT KẾ VÀ CHẾ TẠO THIẾT BỊ ĐO LƯU LƯỢNG DÒNG CHẢY Họ và tên sinh viên: TRẦN QUỐC DÂN Ngành: ĐIỀU KHIỂN TỰ ĐỘNG Niên khóa: 2005 2009 Tháng 8

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.83 MB, 61 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH

KHĨA LUẬN TỐT NGHIỆP

ỨNG DỤNG VI XỬ LÍ THIẾT KẾ VÀ CHẾ TẠO
THIẾT BỊ ĐO LƯU LƯỢNG DÒNG CHẢY

Họ và tên sinh viên: TRẦN QUỐC DÂN
Ngành: ĐIỀU KHIỂN TỰ ĐỘNG
Niên khóa: 2005- 2009

Tháng 8/2009


ỨNG DỤNG VI XỬ LÍ THIẾT KẾ VÀ CHẾ TẠO THIẾT BỊ ĐO LƯU
LƯỢNG DỊNG CHẢY

Tác giả

TRẦN QUỐC DÂN

Khóa luận được đệ trình để đáp ứng yêu cầu cấp bằng Kỹ sư ngành
Điều Khiển Tự Động

Giáo viên hướng dẫn:
T.S Bùi Ngọc Hùng

Tháng 8 năm 2009

i




LỜI CẢM ƠN
Trong suốt thời gian học tại Trường Đại Học Nơng Lâm Thành Phố Hồ Chí
Minh, nhờ sự giúp đỡ của quý thầy cô về mọi mặt nên đề tài tốt nghiệp mới được hoàn
thành .
Em xin gởi lời biết ơn chân thành đến bộ môn Điều Khiển Tự Động cùng thầy
cơ trong Khoa Cơ Khí đã giảng dạy những kiến thức chuyên môn làm cơ sở để em
thực hiện tốt đề tài này. Đặc biệt, trong quá trình thực hiện đề tài này, em nhận được
sự giúp đỡ, hướng dẫn tận tình của giáo viên hướng dẫn đề tài T.S Bùi Ngọc Hùng.
Em xin gửi đến thầy lời cảm ơn chân thành .
Em xin chân thành cảm ơn các thầy cơ trong khoa, cùng các bạn đã đóng góp ý
kiến và kinh nghiệm q báu trong q trình thực hiện đề tài này.

TP.Hồ Chí Minh, tháng 8 năm 2009
Sinh viên thực hiện
Trần Quốc Dân

ii


TÓM TẮT
™ Ngày nay, đo lường và điều khiển được ứng dụng trong sản xuất cơng nghiệp
cũng như trong phịng thí nghiệm. Cùng với sự tiến bộ vượt bậc của công nghệ điện tử
và công nghệ thông tin, chúng ta có các thiết bị đo lường điện tử ngày càng chính xác
hơn, sử dụng thuận tiện hơn, hoạt động ở chế độ tự động hóa hồn tồn. Xuất phát từ
những nguyên nhân trên và để góp phần cũng cố những kiến thức đã được học, sinh
viên thực hiện đề tài “ Ứng dụng vi xử lý thiết kế và chế tạo thiết bị đo lưu lượng dòng
chảy” với các nội dung sau:
• Tìm hiểu tính năng và cách sử dụng vi điều khiển Atmega32.

• Tìm hiểu cấu tạo và ngun lý hoạt động các loại cảm biến đo lưu lượng.
• Tìm hiểu các phương pháp đo lưu lượng dịng chảy chất lỏng.
• Thiết kế và chế tạo mạch đo lưu lượng chất lỏng.
• Chế tạo một mơ hình đo lưu lượng dịng chất lỏng.


Thiết kế một giao diện điều khiển đo lưu lượng trên máy tính bằng ngơn

ngữ VisualBasic 6.0.
• Viết các chương trình vi điều khiển bằng ngơn ngữ BasCom.
™ Kết quả đã đạt được trong quá trình thực hiện đề tài:


Đã chế tạo được một thiết bị đo lưu lượng kiểu turbine so sánh với kiểu

phao với giá tr thang o 0ữ40 lớt/phỳt.
ã Thit k mt giao din điều khiển trên máy tính.
• Viết chương trình cho vi xử lí.

iii


MỤC LỤC
Trang tựa …………………………………………………………………………….i
Lời cảm ơn ………………………………………………………………………….ii
Tóm tắt ……………………………………………………………………………iii
Mục lục …………………………………………………………………………….iv
Danh sách hình …………………………………………………………………..viii
Danh sách bảng ……………………………………………………………………..x
CHƯƠNG 1. MỞ ĐẦU …………………………………….……………………..1

CHƯƠNG 2. TỔNG QUAN ………………………………………………………3
2.1 Tìm hiểu chung về lưu lượng và các phương pháp đo lưu lượng …………….3
2.1.1 Giới thiệu chung về lưu lượng ……………………………………………..3
2.1.1.1 Lưu lượng thể tích …………………………………………………….3
2.1.1.2

Lưu lượng khối lượng ………………………………………………..3

2.1.2 Các phương pháp đo lưu lượng ……………………………………………4
2.2 Lưu lượng phao…………………………………………………………………4
2.2.1 Cấu tạo …………………………………………………………………….4
2.2.2 Nguyên tắc hoạt động ……………………………………………………..5
2.3 Cảm biến đo lưu lượng ………………………………………………………5
2.3.1 Lựa chọn cảm biến ………………………………………………………..5
2.3.2 Cấu tạo ……………………………………………………………………..6
2.3.3 Nguyên tắc hoạt động …………………………………………………….6
2.4 Vi xử lý Atmega32 …………………………………………………………….7
2.4.1 Giới thiệu chung …………………………………………………………..7
2.4.2 Đặc tính ……………………………………………………………………7
2.4.3 Mơ tả các chân …………………………………………………………….8
2.4.4 Sơ đồ khối ………………………………………………………………….9
2.4.5 Cấu trúc nhân AVR ………………………………………………………10
2.4.5.1 Giới thiệu …………………………………………………………….10
2.4.5.2 Cấu trúc tổng quát ……………………………………………………11
2.4.5.3 Thanh ghi trạng thái …………………………………………………..11
iv


2.4.5.4 Các thanh ghi chức năng chung ………………………………………11
2.4.5.5 Con trỏ ngăn xếp ……………………………………………………..11

2.4.6 Điều khiển ngắt và Reset………………………………………………….11
2.4.7 Bộ nhớ Atmega32…………………………………………………………12
2.4.8 Cổng vào ra ………………………………………………………………12
2.4.9 Bộ định thời ……………………………………………………………..12
2.4.10 USART…………………………………………………………………….13
2.5 Hiển thị LCD …………………………………………………………………13
2.5.1 Cấu tạo ……………………………………………………………………13
2.5.2 Nguyên tắc hiển thị kí tự lên LCD …………………………………………14
2.5.3 Sơ đồ chân …………………………………………………………………14
2.6 Giao tiếp máy tính qua cổng COM ………………………………………….15
2.6.1 Cấu tạo…………………………………………………………………….15
2.6.2 Sơ đồ chân ………………………………………………………………..16
2.7

Cổng nối tiếp Max232 ………………………………………………………17

2.7.1 Cấu tạo……………………………………………………………………17
2.7.2 Sơ đồ chân ………………………………………………………………..17
2.8 Mạch nạp cho vi xử lí ………………………………………………………..19
CHƯƠNG 3. NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU ……………21
3.1 Thời gian và địa điểm nghiên cứu đề tài………………………………………21
3.1.1 Địa điểm tiến hành đề tài………………………………………………….21
3.1.2 Phân bố thời gian tiến hành đề tài ……………………………………….21
3.2 Đối tượng và thiết bị nghiên cứu …………………………………………….21
3.2.1 Đối tượng nghiên cứu …………………………………………………….21
3.2.2 Thiết bị nghiên cứu ……………………………………………………….21
3.3 Phương pháp thực hiện đề tài ………………………………………………..22
3.3.1 Lựa chọn phương pháp thiết kế hệ thống đo lường ……………………..22
3.3.2 Phương pháp thực hiện phần cơ khí ………………………………………22
3.3.3 Phương pháp thực hiện phần điện-điện tử ……………………………….22

3.3.4 Phương pháp thực hiện phần mềm ……………………………………….22
3.4 Phương tiện thực hiện đề tài …………………………………………………23
v


CHƯƠNG 4. KẾT QUẢ VÀ THẢO LUẬN……………………………………24
4.1

Thiết kế máy ………………………………………………………………..24
4.1.1 Chọn mơ hình chung ……………………………………………………25
4.1.2 Ngun lý hoạt động…………………………………………………….25

4.2

Thực hiện phần cơ khí………………………………………………………25
4.2.1 Chế tạo hộp điều khiển ………………………………………………….25
4.2.2 Chế tạo mơ hình để đo lưu lượng ……………………………………….26

4.3

Thực hiện phần điện – điện tử………………………………………………26
4.3.1 Mạch nguồn ……………………………………………………………27
4.3.1.1 Yêu cầu mạch nguồn ………………………………………………..27
4.3.1.2 Thiết kế mạch nguồn ………………………………………………27
4.3.2 Mạch cảm biến ………………………………………………………….28
4.3.3 Mạch vi điều khiển ……………………………………………………..28
4.3.4 Mạch giao tiếp ………………………………………………………….29
4.3.4.1 Cổng LPT ……………………………………………………………29
4.3.4.2 Cổng COM


…..……………………………………………………29

4.3.5 Mạch nút nhấn ………………………………………………………….30
4.3.6 Mạch hiển thị ………………………………………………………….30
4.4

Phần mềm …………………………………………………………………..30
4.4.1 Chương trình trên vi xử lí ……………………………………………….30
4.4.1.1 Lưu đồ giải thuật …………………………………………………….30
4.4.1.2 Chương trình Bascom ……………………………………………….32
4.4.2 Chương trình trên máy tính …………………………………………….35
4.4.2.1 Giao diện điều khiển …………………………………………………35
4.4.2.2 Chương trình Visual Basic …………………………………………..36

4.5 Thi cơng, hiệu chỉnh và chạy thử nghiệm ……………………………………37
4.5.1 Thi công………………………………………………………………….37
4.5.2 Hiệu chỉnh máy …………………………………………………………38
4.5.3 Chạy thử nghiệm máy ………………………………………………….38
4.5.3.1 Mục đích khảo nghiệm …………………………………………….38
4.5.3.2 Dụng cụ khảo nghiệm …………………………………………….38
vi


4.5.3.3 Bố trí khảo nghiệm ………………………………………………..38
4.6 Kết quả khảo nghiệm và thảo luận ………………………………………….39
4.6.1 Kết quả thảo luận ……………………………………………………….39
4.6.1.1 Kết quả khảo nghiệm đối với cảm biến lưu lượng ………………….39
4.6.1.2 Kết quả khảo nghiệm đối với lưu lượng kế ………………………..41
4.6.1.3 Kết quả của phép đo dùng cảm biến lưu lượng và lưu lượng kế …...43
4.6.2 Thảo luận


……………………………………………………………..44

CHƯƠNG 5. KẾT LUẬN VÀ ĐỀ NGHỊ …………………………………….45
TÀI KIỆU THAM KHẢO
PHỤ LỤC

vii


DANH SÁCH HÌNH
Hình 2.1: Cấu tạo bên trong của lưu lượng phao ……………………………………5
Hình 2.2: Lưu lượng phao thực tế …………………………………………………...5
Hình 2.3: Cảm biến lưu lượng kiểu turbine ……………………………………….6
Hình 2.4: Sơ đồ nối dây cảm biến …………………………………………………..6
Hình 2.5: Sơ đồ mơ tả nguyên lý hoạt động của cảm biến lưu lượng ……………….7
Hình 2.6: Sơ đồ chân Atmega32 ………………………………………………………….8
Hình 2.7 : Cấu trúc tổng quát của AVR …………………………………………………10

Hình 2.8: Thanh ghi trạng thái ……………………………………………………11
Hình 2.9: Kích thước bên trong LCD ……………………………………………14
Hình 2.10: Sơ đồ khối LCD ………………………………………………………14
Hình 2.11: LCD thực tế …………………………………………………………….14
Hình 2.12: LCD ngun lý ………………………………………………………..14
Hình 2.13: Sơ đồ bố trí chân của phích cắm RS232 của máy tính PC ……………16
Hình 2.14: Sơ đồ chân Max232 ……………………………………………………17
Hình 2.15: Mạch nạp vi xử lí ……………………………………………………..19
Hình 2.16: Mạch vi xử lí nạp chương trình ……………………………………….19
Hình 2.17: Giao diện chương trình nạp cho vi xử lí ………………………………20
Hình 3.1: Sơ đồ hệ thống đo lường ……………………………………………….22

Hình 4.1: Mơ hình của máy đo lưu lượng ………………………………………..24
Hình 4.2: Hộp điều khiển …………………………………………………………25
Hình 4.3: Sơ đồ bố trí linh kiện ……………………………………………………26
Hình 4.4: Sơ đồ nguyên lý mạch tổng thể …………………………………………27
Hình 4.5: Sơ đồ nguyên lý mạch nguồn ………………………………………….27
Hình 4.6: Sơ đồ nguyên lý mạch cảm biến ……………………………………….28
Hình 4.7: Sơ đồ nguyên lý mạch vi điều khiển …………………………………..28
Hình 4.8: Sơ đồ nguyên lý cổng LPT ……………………………………………..29
Hình 4.9: Sơ đồ nguyên lý cổng COM ……………………………………………29
Hình 4.10: Sơ đồ nguyên lý mạch nút nhấn ………………………………………30
Hình 4.11: Sơ đồ nguyên lý mạch hiển thị

………………………………………30
viii


Hình 4.12: Giao điều khiển trên Visual Basic ……………………………………35
Hình 4.13: Mơ hình thi cơng ………………………………………………………37
Hình 4.14: Sơ đồ bố trí thí nghiệm ……………………………………………….38
Hình 4.15: Biểu đồ biểu diễn lưu lượng cảm biến và lưu lượng phao ……………44
Hình 2.18: Cấu trúc của Vi điều khiển …………………………………………….47
Hình 2.19: Cấu trúc bên trong của vi điều khiển Atmega32 …………………………….48

ix


DANH SÁCH BẢNG
Bảng 2.1: Chức năng các chân của Module LCD16x2 ……………………………15
Bảng 2.2: Sơ đồ chân cổng COM và cổng LPT ……………………………………16
Bảng 2.3: Các thông sô kỹ thuật của Max232 ……………………………………..18

Bảng 4.1: Bảng kết quả khảo nghiệm của cảm biến lưu lượng ………………….39
Bảng 4.2: Bảng kết quả khảo nghiệm của lưu lượng phao ………………………..41
Bảng 4.3: Bảng kết quả trung bình của cảm biến lưu lượng và lưu lượng kế …….43
Bảng 2.4: Reset và bảng vector ngắt ……………………………………………..49

x


Chương 1
MỞ ĐẦU
1.1 Tổng quan về đề tài
Hiện nay, trên thế giới có rất nhiều phương pháp đo lưu lượng dịng chảy. Trong
đó, có phương pháp đo lưu lượng cổ điển như đo lưu lượng bằng cảm biến lưu lượng
phao. Bên cạnh cịn có mốt số phương pháp mới như đo lượng lượng bằng cảm biến
turbine, quạt. Đa số các thiết bị đo lưu lượng đều phải nhập ngoại. Đặc biệt là các thiết
bị đo lường số phải nhập ngoại, giá thành cao. Do đó, qua thời gian nghiên cứu và học
tập, sinh viên thực hiện đã ứng dụng vi xử lí vào đề tài đo lưu lượng dịng chảy chất
lỏng dựa trên nguyên tắc turbine.
1.2 Giới hạn đề tài
Do bước đầu thiết kế đề tài nên còn nhiều hạn chế nhất định.Vì thế, sinh viên thực
hiện đề tài chỉ chú trọng nghiên cứu những vấn đề chính sau :
• Thiết bị chỉ đo lưu lượng chất lỏng.
• Dãi thang đo nhỏ, chỉ vài m3/h.
• Nghiên cứu về tính năng của vi điều khiển Atmega32.
• Hệ thống được điều khiển bằng phần mềm trên máy tính phần mềm này có giao
diện trực quan, dàng sử dụng thiết kế thiết kế bằng ngơn ngữ Bascom với sự trợ
giúp của chương trình Visual Basic .
• Viết chương trình xử lý tín hiệu từ cảm biến để hiển thị kết quả lên màn hình
bằng ngơn ngữ Bascom .
• Thiết kế phần cứng .

1.3 Mục đích nghiên cứu
• Đồ án này giúp sinh viên thực hiện tìm hiểu ứng dụng của vi điều khiển AVR
Atmega32, thiết kế giao diện bằng ngôn ngữ Visual Basic 6.0, ngơn ngữ lập trình
Bascom cho AVR.

1


• Đồ án cịn giúp sinh viên thực hiện tìm hiểu cách đo lượng chất lỏng và các
phương pháp đo lưu lượng chất lỏng.
• Tạo ra một sản phẩm cụ thể làm mơ hình nghiên cứu, có tính ứng dụng: một giao
diện điều khiển trên máy tính, một mơ hình cơ khí có khả năng đo lưu lượng của
nước.

2


Chương 2
TỔNG QUAN
2.1 Tìm hiểu chung về lưu lượng và phương pháp đo lưu lượng
2.1.1 Giới thiệu chung về lưu lượng
Như chúng ta đã biết, trong công nghệ lưu lượng dịng vật chất là một đại lượng
rất cần thiết cơng nghệ, đặc biệt là cơng nghệ hố chất và thực phẩm. Nó là một đại
lượng cần được biết, được đo và được điều khiển phù hợp. Chính vì thế trong một thiết
bị, một dây chuyền sản xuất đều có những thiết bị đo lưu lượng.
Lưu lượng được chia ra làm hai loại:
2.1.1.1 Lưu lượng thể tích
o Là lượng vật chất tính theo thể tích di chuyển qua trong một đơn vị thời
gian.
Qv = V/T

Trong đó:
Qv: là lưu lượng thể tích (m3/h)
V: là thể tích của vật chất ( m3)
T: là thời gian mà thể vật chất chuyển động qua
o Đơn vị thường dùng là m3/s, m3/phút, m3/h, cubic foot/hour (CFH hay
S*CFH), cubic foot/minute (CFM hay SCFM), cubic foot/second (CFS hay SCFS),
gallon per hour (GPH hay SGPH), gallon per minute (GPM hay SGPM), gallon per
second (GPS hay SGPS),...
2.1.1.2 Lưu lượng khối lượng
o là lượng vật chất tính bằng khối lượng chuyển qua trong một đơn vị thời
gian.
Qm = m/T
Trong đó:
Qm : là lưu lượng khối lượng vật chất (kg/h)
m: là khối lượng vật chất chuyển động qua (kg )
3


T: là thời gian mà lưu lượng khối lượng vật chất chuyển động qua.
o Đơn vị tính bằng kg/s, kg/phút, kg/h, ppm,....
2.1.2 Các phương pháp đo lưu lượng
Các hãng sản xuất ln ln đi tìm phương án thiết kế và sản xuất các loại thiết
bị với dải đo lớn, độ chính xác cao và hạ giá thành sản phẩm. Vì thế đã ra đời rất nhiều
loại lưu lượng kế, tuy nhiên, các thiết bị đó thường được dựa trên các ngun lý cơ bản
sau:
• Đối với kênh kín (ống dẫn):
o Đo dòng theo phương pháp chênh lệch áp (dựa vào phương trình
Bernoulli).
o Đo dịng theo phương pháp tiết diện dịng thay đổi.
o Đo dịng theo ngun tắc điện từ.

• Đối với dòng kênh hở (mương, máng, rãnh, ống dẫn nhưng dịng vật chất
khơng chốn đầy):
o Đo dịng nhờ đập chảy tràn
o Đo dòng chiều sâu cuối cùng
o Đo dòng dựa vào phương trình Bernoulli.
2.2 Lưu lượng phao
Ngày nay có rất nhiều phương pháp đo lượng dòng chảy chất lỏng. Một trong
những số đó là phương pháp lưu lượng cổ điển dùng cảm biến lưu lượng phao. Dưới
đây là cấu tạo và nguyên lý hoạt động của cảm biến lưu lượng phao:
2.2.1 Cấu tạo
Cảm biến lưu lượng phao có cấu tạo khá đơn giản: làm bằng vật liệu nhựa tổng
hợp, bên trong có một cái phao có thể dịch chuyển lên xuống, bên ngồi có khắc các
vạch tương ứng với giá trị thang đo.

4


Hình 2.1: cấu tạo bên trong

Hình 2.2: Lưu lượng phao thực tế

của lưu lượng phao
2.2.2 Nguyên tắc hoạt động
Lưu lượng phao hoạt động dựa trên nguyên lý chênh lệch áp suất. Khi lưu lượng
dòng chảy của chất lỏng qua ống thì dịng chảy sẽ đẩy phao trong lưu lượng kế dâng
lên. Trên lưu lượng kế có khắc các vạch, mỗi vạch tương ứng với một giá trị đoPhao
dâng lên tới mức nào đó thì tương ứng với lưu lượng đo được.
2.3 Cảm biến lưu lượng
2.3.1 Lựa chọn cảm biến
Để đo lưu lượng tức thời (l/ph) và lưu lượng nước tích lũy (lít) của dịng nước

chảy trong ống, có thể dùng nhiều loại cảm biến lưu lượng như: lưu lượng kế turbine,
lưu lượng kế khối lượng, lưu lượng kế điện từ, lưu lượng kế siêu âm…Thực tế hoạt
động của hệ SCADA tại một số doanh nghiệp ngành nước, nhận thấy sử dụng thiết bị
đo lưu lượng kiểu turbine là thích hợp và tin cậy hơn cả. Dưới đây, sẽ giới thiệu loại
cảm biến này:

5


Hình 2.3: Cảm biến lưu lượng kiểu turbine
2.3.2 Cấu tạo
Cảm biến lưu lượng turbine được mắc nối theo kiểu NPN
Dây đỏ (red) nối với nguồn 5V
Dây trắng (white ) nối Port PB.1 của vi điều khiển
Dây đen (black) nối mass

Hình 2.4: Sơ đồ nối dây cảm biến
2.3.3 Nguyên tắc hoạt động
Khi nước chảy trong ống qua turbine sẽ làm quay cánh quạt tạo ra xung. Tùy theo
tốc độ dòng nước chảy ta sẽ nhận được số xung tương ứng. Xung được đưa về khối xử
lý để xử lí và tính tốn sẽ hiển thị lên màn hình lưu lượng tức thời. Bộ truyền tín hiệu
và hiển thị có màn hình và các phím để hiển thị và cài đặt, kiểm tra, vận hành.
6


Hình 2.5: Sơ đồ mơ tả ngun lý hoạt động của cảm biến lưu lượng
2.4 Giới thiệu về vi điều khiển Atmega32
Ngày này vi xử lí được ứng dụng rất rộng rãi. Đặc biệt là trong các thiết bị đo
lường số .Ở đây sinh viên thực hiện đã ứng dụng Atmega32 vào đề tài này nhằm mục
đích đo lưu lượng dòng chảy chất lỏng.

2.4.1 Giới thiệu chung
Atmega32 là vi điều khiển 8 bit thuộc họ CMOS tiêu thụ năng lượng thấp dựa
trên nền tảng của AVR có cấu trúc RISC được cải tiến .Với tập lệnh bao gồm các lệnh
mạnh, Atmega có thể hồn thành một triệu lệnh trong một giây ở tần số 1MHz cho
phép người thiết kế hệ thống tối ưu hóa việc sử dụng năng lượng mà vẫn đảm bảo
được tốc độ xử lý.
Đi kèm với AVR là một tập lệnh phong phú cùng với 32 thanh ghi làm việc đa
năng . Tất cả 32 thanh ghi được kết nối trực tiếp đến bộ xử lý số học và logic (ALU),
cho phép truy cập hai thanh ghi độc lập chỉ bằng một lệnh trong một chu trình máy.
Cấu trúc này giúp cho AVR có tốc độ xử lý nhanh gấp 10 lần so với các vi điều khiển
có cấu trúc CISC thơng thường (chẳng hạn như 8051) ở cùng tần số.
2.4.2 Đặc tính
• Hiệu xuất và tốc độ xử lý cao, tiêu thụ năng lượng thấp.
• Có cấu trúc RISC cải tiến.
• Bộ nhớ được phân chia thành nhiều phần, có khả năng lưu giữ tốt trong thời
gian dài. Bộ nhớ Flash có thể ghi xóa 10.000 lần.
7


• Cấu trúc ngoại vi:
o Hai bộ Timer/ Counter 8 bit có bộ chia trước (Prescaler) và có chế độ hoạt
động so sánh .
o Một bộ Timer/Counter 16 bit có bộ chia trước (Prescaler) và có chế độ hoạt
động : so sánh (compare), thu nhận (Capture).
o Có bốn kênh điều xung tự động (OCR0, OCR1A, OCR1B, OCR2_ tương
ứng với các Timer: Timer0, Timer1, Timer2).
o Có 1 bộ ADC 10 bit gồm 8 kênh ngõ vào có thể lựa chọn các ngõ vào tùy ý
với độ lợi có thể lập trình được.
o USART nối tiếp lập trình được .
o Giao tiếp nối tiếp SPI Master/Slave .

o Có bộ so sánh tương tự (analog) On-chip.
• I/O và Packages
o 32 đường vào ra lập trình được (Port A, B, C, D).
o Packeges dạng 40 chõn DIP.
ã in ỏp lm vic
o 2.7 ữ 5.5 V đối với ATMEGA 32L.
o 4.5 ÷ 5.5 V đối với ATMEGA 32.
2.4.3 Mơ tả các chân

Hình 2.6: Sơ đồ chân Atmega32
8


• VCC : Cung cấp nguồn.
• GND : Nối mass.
• Port A (PA.0…PA.7) : Là các ngõ vào tương tự đến bộ ADC. Khi không sử
dụng là chức năng ngõ vào tương tự của bộ ADC thì PORT A cịn là một ngõ xuất
nhập (I/O) 8 bit 2 chiều.
• Port B (PB.0…PB.7) :Là một ngõ xuất nhập (I/O) 8 bit 2 chiều với các điện
trở kéo lên ở bên trong .
• Port C (PC.0…PC.7): à một ngõ xuất nhập (I/O) 8 bit 2 chiều với các điện trở
kéo lên ở bên trong.
• Port D (PD.0…PD.7):Port D là một ngõ xuất nhập (I/O) 8 bit 2 chiều với các
điện trở kéo lên ở bên trong.
• RESET : Ngõ vào Reset. Chân Reset của ATMEGA 32 tích cực mức
thấp.Xung Reset dài hơn 50nS sẽ Reset AVR ngay cả khi mạch dao động khơng hoạt
động .
• XTAL1 : Ngõ vào đến bộ khuếch đại đảo và là ngõ vào mạch tạo dao động
bên trong.
• XTAL2 : Ngõ ra từ mạch khuếch đại đảo.

• AVCC : là chân cung cấp nguồn áp cho PortA và bộ chuyển đổi A/D. Nên
nối chân này với VCC bên ngồi, cả khi bộ ADC khơng được sử dụng.Nếu như bộ
ADC được sử dụng, nên nối nó lên VCC thơng qua một mạch lọc thơng thấp.
• ARFF : là chân ngõ vào cung cấp điện áp tham chiếu cho bộ chuyển đổi A/D
.Đối với hoạt động của ADC thì phải cung cấp 1 điện áp nằm trong khoảng từ AGND
đến AVCC đến ngõ vào chân AREF.
2.4.4 Sơ đồ khối
Các khối bên trong bao gồm :
• Khối khuếch đại thúc cho các Port A, B, C, D, khối thanh ghi dữ liệu Port và
khối điều khiển hướng cho các Port.
• Khối chuyển đổi tín hiệu tương tự sang số ADC.
• Khối thời gian và điều khiển (Timing and control ).
• Khối điều khiển lập trình (programming control ).
9


• Khối thanh ghi con trỏ ngăn xếp Stack Pointer (SP): có chức năng quản lý bộ
nhớ ngăn xếp để lưu trữ các dữ liệu tạm thời trong quá trình sử lý dữ liệu .
• Bộ nhớ SRAM dùng để lưu trữ các dữ liệu phục vụ cho chương trình và dùng
làm bộ ngăn xếp để lưu trữ các dữ liệu tạm thời và lưu trữ địa chỉ khi thực hiện các
chương trình con hay các chương trình con phục vụ ngắt.
• Khối thanh ghi bộ đếm chương trình Program Counter (PC): có chức năng
quản lý bộ nhớ chương trình.Khi thanh ghi PC trỏ đến lệnh nào thì lệnh đó được thực
hiện .
• Khối bộ nhớ chương trình Program Flash .
• Khối thanh ghi đa năng và các thanh ghi X, Y, Z.
• Khối ALU có chức năng thực hiện các lệnh xử lý tốn học và logic .
• Thanh ghi trạng thái Status Register
• Khối điều khiển ngắt Interrupt .
• Khối bộ nhớ EEPROM cho phép lưu trữ các dữ liệu mà khi mất thì dữ liệu

vẫn cịn, số lần cho phép ghi xóa lên đến 100.000 lần .
2.4.5 Cấu trúc nhân AVR
2.4.5.1 Giới thiệu
CPU của AVR có chức năng bảo đảm sự hoạt động chính xác của các chương
trình. Do đó nó phải có khả năng truy cập bộ nhớ, thực hiện các q trình tính tốn,
điều khiển các thiết bị ngoại vi và quản lý ngắt.

Hình 2.7 : Cấu trúc tổng quát của AVR
10


2.4.5.2 Cấu trúc tổng quát
AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương trình
và dữ liệu. Các lệnh được thực hiện chỉ trong một chu kỳ xung clock. Bộ nhớ chương
trình được lưu trong bộ nhớ Flash.
2.4.5.3 Thanh ghi trạng thái (Status Register – SREG)
Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của khối ALU sau các
phép tính số học và logic. Thanh ghi trạng thái không tự động lưu giữ khi đang có ngắt
sảy ra và lưu trở lại khi quay trở lại chương trình ngắt. Điều này phải được thực hiện
bằng phần mềm .
2.4.5.4 Các thanh ghi chức năng chung

Hình 2.8: Thanh ghi trạng thái
Đa số các lệnh trong tập lệnh đều có thể truy xuất trực tiếp các thanh ghi này,
và đa số các lệnh được thực hiện trong 1 chu trình máy .
2.4.5.5 Con trỏ ngăn xếp Stack Pointer (SP)
Con trỏ ngăn xếp là một thanh ghi 16 bit nhưng cũng có thể được xem như hai
thanh ghi chức năng đặc biệt 8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là
$3E. Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp.
2.4.6 Điều khiển ngắt và Reset

AVR cung cấp một số nguồn ngắt khác nhau. Những ngắt này và Reset đều có
một vector chương trình riêng trong vùng bộ nhớ chương trình. Tất cả các ngắt được
gán với 1 bit cho phép ngắt độc lập và bit này phải được ghi mức 1 cùng với bit cho
phép ngắt toàn cục (bit I) trong thanh ghi trạng thái SREG để cho phép ngắt sảy ra.

11


2.4.7 Bộ nhớ Atmega32
AVR có 2 khơng gian bộ nhớ chính là bộ nhớ dữ liệu SRAM và bộ nhớ chương
trình Flash. Ngồi ra Atmega 32 cịn có thêm bộ nhớ EEPROM để lưu trữ dữ liệu .
2.4.7.1 Bộ nhớ chương trình (Bộ nhớ Flash)
Bộ nhớ Flash 32KB của ATMEGA 32 dùng để lưu trữ chương trình.
2.4.7.2 Bộ nhớ dữ liệu SRAM
Vùng bộ nhớ dữ liệu có địa chỉ thấp có 2144 ơ nhớ của bộ nhớ dữ liệu dùng để
định địa chỉ cho file thanh ghi, bộ nhớ I/O và bộ nhớ dữ liệu SRAM nội.
2.4.7.3 Bộ nhớ dữ liệu EEPROM
EEPROM là bộ nhớ dữ liệu có thể ghi xóa ngay trong lúc vi điều khiển đang
hoạt động và không bị mất dữ liệu khi nguồn điện cung cấp bị cắt. EEPROM có thể
ghi xóa 100000 lần. EEPROM được xem như là một bộ nhớ vào ra được đánh địa chỉ
độc lập với SRAM.
2.4.8 Cổng vào ra (I/O)
Vi điều khiển ATMEGA 32 có 4 cổng (Port) vào ra 8 bit là: Port A, Port B, Port C,
Port D tương ứng với 32 đường vào ra.Các cổng vào ra của AVR là cổng vào ra 2
chiều có thể định hướng .Tất cả các cổng vào ra của AVR đều có tính đọc – chỉnh sữa
– ghi (Read - Modify – Write ) khi sử dụng chúng như các cổng vào ra thông thường.
Tất cả các chân của cổng ( Port ) đều có điện trở kéo lên (pull-up) riêng ta có thể cho
phép hay khơng cho phép điện trở kéo lên này hoạt động.
2.4.9 Bộ định thời (Timer /Counter)
Atmega32 có 2 Timer /Counter 8 bit (Timer/Counter0 vàTimer/Counter2) và 1

Timer /Counter 16 bit (Timer /Counter1).
2.4.9.1 Timer/Counter0
Timer /Counter0 là bộ định thời /bộ đếm 8 bit có nhiều cơng dụng đa năng .
Các tính năng chính bao gồm :
• Là 1 kênh đếm riêng biệt .
• Tự động xóa bộ định thời khi đạt đến giá trị so sánh.
• Điều xung Glitch-free ,Phase Correct.
• Bộ phát tần số.
• Bộ đếm sự kiện bên ngoài .
12


• Bộ tạo xung clock có thể đặt trước 10 bit.
• Tạo ra các ngắt tràn và ngắt so sánh .
2.4.9.2 Timer/Counter1
Là 1 Timer/Counter 16 bit cho phép thực hiện chương trình với thời gian chính
xác, phát sóng và đo thời gian tín hiệu .Các tính năng chính bao gồm :
• Thiết kế đúng 16 bit (nghĩa là cho phép PWM 16 bit).
• Hai bộ so sánh ngõ ra độc lập .
• Các thanh ghi đơi so sánh ngõ ra (được đệm ).
• Một bộ thu nhận tín hiệu ngõ vào .
• Bộ triệt nhiễu tự kích ngõ vào.
• Tự động xóa bộ định khi thỏa giá trị so sánh (tự động nạp lại).
• Điều xung Glitch-free ,Phase Correct.
• Điều chỉnh chu kỳ PWM.
• Máy phát tần số .
• Đếm sự kiện bên ngồi .
• 4 nguồn ngắt độc lập (TOV1,OCF1A,OCF1B và ICF1).
2.4.9.3 Timer/Counter2
Timer/Counter2 là 1 Timer/Counter 8 bit, có chế độ hoạt động và cá thanh ghi

tương tự như Timer/Counter0 .
2.4.10 USART (Universal Synchronous Serial Receiver and Transmitter)
Bộ truyền và nhận nối tiếp đồng bộ và bất đồng bộ USART là một thiết bị giao
tiếp nối tiếp có tính linh hoạt cao.
2.5 Hiển thị LCD
Để hiển thị các giá trị đo, hiển thị các thao tác trên máy, ta dùng màn hình LCD. Có
rất nhiều LCD sử dụng như LCD graphic, LCD16x2, LCD20x4,…Trong đó màn hình
LCD16x2 có giá rẻ và được sử dụng phổ biến nhất.
2.5.1 Cấu tạo
LCD 16x2 có tất cả 16 chân gồm có 16 cột , 2 hàng .Dùng để hiên thị các giá trị
đo hay các thao tác.

13


Hình 2.9: Kích thước bên trong LCD

Hình 2.10: Sơ đồ khối LCD
2.5.2 Nguyên tắc hiển thị kí tự lên LCD
Một chương trình hiển thị kí tự lên LCD sẽ gồm 4 bước sau:
• Xóa tồn bộ màn hình.
• Đặt chế độ hiển thị.
• Đặt vị trí con trỏ.
• Hiển thị ký tự.
2.5.3 Sơ đồ chân

Hình 2.11: LCD thực tế

Hình 2.12: LCD nguyên lý


14


×