Năm 2011
MỤC LỤC
Lời nói đầu 3
CHƯƠNG 1 . PHÂN TÍCH BÀI TOÁN .4
1.1.Khảo sát và phân tích bài toán 4
1.1.1. Đặt vấn đề . 4
1.1.2. Giới thiệu bài toán. 4
1.1.3. Mục đích . 5
1.1.4. Các công nghệ sản phẩm hiệncó mặt trên thị trường .6
1.2. Lựa chọn giải pháp 8
1.2.1.Giải pháp công nghệ 8
1.2.2 .Giải pháp thiết kế 9
1.2.3.Các yêu cầu 10
1.2.4.Giới hạn cho hệ thống 10
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG .12
2.1. Sơ đồ tổng quát 12
2.2. Sơ đồ đặc tả hệ thống 13
2.3. Sơ đồ Call graph .14
2.4. Sơ đồ nguyên lý mạch 15
2.5.Các module trong hệ thống .18
2.5.1.Module điều khiển trung tâm .18
2.5.2.Module hiển thị .19
2.5.3.Module đo áp suất .20
2.5.4.Module khối nguồn 21
2.5.5.Module khối giao tiếp bàn phím .22
2.6. Sơ đồ thuật toán hệ thống 23
2.7. Nguyên lý hoạt động 24
2.8.Lựa chọn các linh kiện 25
2.8.1. Khối vi điều khiển 25
2.8.2. Khối hiển thị .42
2.8.3. Khối đo áp suất 48
2.8.4. Khối bàn phím .52
2.8.5. Khối nguồn 53
2.8.6. Các loại linh kiện khác 54
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG .56
3.1.Xây dựng phần cứng 56
3.2.Xây dựng phần mềm 60
71 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 4893 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế hệ thống đo và cảnh báo áp suất, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
KHOA ĐIỆN TỬ
BỘ MÔN: KỸ THUẬT MÁY TÍNH
ĐỒ ÁN MÔN HỌC
MÔN HỌC
HỆ THỐNG NHÚNG
Nhóm sinh viên : Lại Văn Hải
Dương Thị Lệ
Đinh Văn Đoàn
Lớp : K43ĐĐK
Giáo viên hướng dẫn : Ths.Nguyễn Văn Huy
Thái Nguyên – 2011
Nhận xét của giáo hướng dẫn
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Thái Nguyên, Ngày Tháng Năm 2011
Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
Nhận xét của giáo viên chấm
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
Thái Nguyên, Ngày Tháng Năm 2011
Giáo Viên chấm
(Ký ghi rõ họ tên)
MỤC LỤC
Lời nói đầu
Ngày nay, các hệ thống nhúng trở nên phổ biến và đóng vai trò quan trọng trong đời sống con người. Ví dụ quanh ta có rất nhiều sản phẩm nhúng như lò vi sóng, nồi cơm điện, điều hòa, điện thoại di động, ô tô, máy bay, tàu thủy, các đầu đo, cơ cấu chấp hành thông minh, robot v.v... ta có thể thấy hiện nay hệ thống nhúng có mặt ở mọi lúc mọi nơi trong cuộc sống của chúng ta.
Qua môn học hệ thống nhúng , chúng em đã hiểu thêm về các hệ thống nhúng trong thực tế, về đặc điểm, tính ưu việt cũng như tính ứng dụng của chúng đối với con người. Với mong muốn làm rõ các kiến thức đã học và giới thiệu các ứng dụng cơ bản của hệ thống nhúng, nhóm chúng em đưa ra mô hình thiết kế hệ thống đo và cảnh báo áp suất. Một sản phẩm rất quen thuộc và cần thiết trong đời sống.
Do thời gian thực hiện và kiến thức còn hạn chế nên còn nhiều sai sót trong quá trình thực hiện đề tài, rất mong được sự bổ sung đóng góp của các thầy cô và các bạn.
Chúng em xin chân thành cảm ơn các thầy cô trong khoa điện tử bộ môn kỹ thuật máy tính, cảm ơn thầy Ths. Nguyễn Văn Huy đã tận tình hướng dẫn và giúp đỡ chúng em thực hiện hoàn thành đề tài này.
Trân trọng và chân thành cám ơn!
Nhóm thực hiện đề tài:
Lại Văn Hải
Dương Thị Lệ
Đinh Văn Đoàn
CHƯƠNG 1. PHÂN TÍCH BÀI TOÁN
1.1. Khảo Sát Và Phân Tích Hệ Thống.
1.1.1. Đặt vấn đề.
Ngày nay cùng với sự phát triển của các ngành khoa học kỹ thuật, kỹ thuật điện tử mà trong đó là kỹ thuật số đóng vai trò quan trọng trong mọi lĩnh vực khoa học kỹ thuật, quản lí, công nghiệp tự động hóa, cung cấp thông tin…. do đó chúng ta phải nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp phần vào sự phát triển nền khoa học kỹ thuật thế giới nói chung và trong sự phát triển kỹ thuật điện tử nói riêng.
Xuất phát từ môn học hệ thống nhúng của bộ môn kỹ thuật máy tính, chúng em được nghiên cứu về cấu tạo và nguyên lý hoạt động của các vi điều khiển như: bộ vi điều khiển 8051, hay các loại Pic...nhờ đó chúng em nghiên cứu làm mô hình mạch về cảnh báo áp suất với các chức năng như đo áp suất và đưa ra cảnh báo khi áp suất ở mức cao hoặc thấp hơn mức cho phép để ứng dụng vào các hệ thống điều khiển tự động.
Từ những điều đã được thấy đó và khả năng của chúng em, chúng em muốn làm một điều gì nhỏ để góp phần vào việc giúp cho sự an toàn của người lao động cũng như giảm bớt được phần nào về sự thiệt hại về kinh tế cho các nhà máy xí nghiệp. Nên chúng em quyết định thiết kế ra mô hình này. Nó rất có ý nghĩa đối với chúng em vì đã làm được một phần nhỏ cho hệ thống báo động trong các nhà máy xí nghiệp…
1.1.2. Giới thiệu bài toán.
Hệ thống cảnh báo áp suất là hệ thống mà khi áp suất tăng quá cao hay vượt quá một ngưỡng cho phép nào đó thì hệ thống sẽ phát ra một tín hiệu cảnh báo (có thể bằng còi,đèn,âm thanh…) có tác dụng báo động khi xảy ra sự cố.
Hệ thống cảnh báo áp suất dùng để:.
Đo và hiển thị áp suất của môi trường một thời điểm bất kỳ trong khoảng từ Pmin đến Pmax nào đó.
Báo động khi áp suất của môi trường ở trong một khoảng nào đó mà ta đã chọn.
Hiện nay nhu cầu sử dụng hệ thống này là rất lớn, hệ thống được ứng dụng rất nhiều trong thực tế như : Hệ thống được sử dụng trong việc đo và cảnh báo áp suất cho một nhà máy, một xí nghiệp… giám sát đo áp suất của các lò nung, trong các đường ống của các nhà máy, lốp oto…
1.1.3. Mục đích.
Đo áp suất là một trong những chức năng đo cơ bản nhất trong bất cứ ngành công nghiệp nào. Từ một nhà máy lọc dầu đến một chiếc xe ủi đất, việc đo áp suất khí nén, lưu chất thủy lực, chất lỏng trong các quy trình, hơi nước hoặc vô số các môi trường trung gian khác là chuyện xảy ra hàng ngày và đóng vai trò then chốt đối với tất cả các cách thức điều khiển. Kết quả là, ở đâu ta cũng bắt gặp các thiết bị đo áp suất, và có vô số các lựa chọn. Vì vậy việc chúng em muốn thiết kế ta hệ thống đo và cảnh báo áp suât dùng để đo áp suất, đưa ra cảnh báo để từ đó chúng ta có thể biết được áp suất ở những nơi mà chúng ta cần đo và có thể đưa ra các biện pháp khắc phục…
1.1.4. Các sản phẩm hiện có bán trên thị trường:
a, Thiết bị kiểm soát áp suất và nhiệt độ bánh xe:
Sản phẩm công nghệ cao RoadSnoop là của hãng sản xuất lốp xe Nokian (Phần Lan). Bộ dụng cụ gồm 4 đầu đo được gắn ở mặt ngoài các vành bánh xe (trong lòng lốp) và mặt hiển thị thông tin đặt trong salon. Phần tử đo truyền tín hiệu vào ca-bin thông qua sóng radio.
Khi áp suất hơi trong bánh xe sụt giảm hoặc nhiệt độ lốp cao tới mức báo động, đầu đo sẽ gửi sóng cảnh báo đến thiết bị hiển thị đồng bộ để trong salon hoặc điệnthoại đi động trong xe (nếu được cài đặt để tiếp nhận song này).
b,Phần nhận tín hiệu trong xe
a,Phần tử đo trong lòng lốp gắn trên vành bánh
Hình 1.1. thiết bị kiểm soát áp suất bánh xe
Khi áp suất hơi trong bánh xe sụt giảm hoặc nhiệt độ lốp cao tới mức báo động, đầu đo sẽ gửi sóng cảnh báo đến thiết bị hiển thị đồng bộ để trong salon hoặc điện thoại đi động trong xe (nếu được cài đặt để tiếp nhận sóng này).
Trong các cải tiến tiếp theo, hệ thống có thể thực hiện chức năng kiểm soát toàn bộ thông số của bánh xe, độ mòn lốp và xác định vị trí chính xác của nó trên mặt đường. Những thông tin này hỗ trợ lái xe rất nhiều trong việc tránh hỏng hóc và tai nạn.
Thiết bị sử dụng pin xạc với hệ thống chuyển đổi và tích điện từ động năng của bánh xe. Nhà sản xuất đảm bảo rằng thiết bị này có thể đồng hành cùng chiếc xe qua 150.000 km hay 10 năm, với điều kiện xe không nằm yên trong ga-ra.
Ưu Điểm:
Hệ thống cảnh báo áp suất lốp xe cho ta biết được tình trạng về áp suất cũng như mức độ an toàn về lốp xe khi sử dụng xe.và từ đó ta có thể đưa ra phương pháp để khắc phục hiệu chỉnh để phù hợp với yêu cầu của người sử dụng.
Nhược Điểm:
Do các cảm biến được lắp trên cả 4 bánh của xe và các cảm biến này phải tương thích với nhau nên khi thay lốp ta cần phải thay lốp có cảm biến tương thích với cảm biến của lốp.
Sau khi thay lốp mới chúng ta cần phải khởi động lại hệ thống thì máy tính mới nhận ra được vị trí của lốp mới.
b, thiết bị đo áp suất đường ống trong các nhà máy.
Các thiết bị đo áp suất đường ống trong các nhà máy có rất nhiều loại như: testo 511, 512, 556, 560,….
Testo 521
Theo dõi dây chuyền sản xuất
Thiết bị dùng với cảm biến bên trong. Dùng đo và giá, sát áp suất các hệ thống thông gió, các đường ống…
Ưu điểm: gọn nhẹ, tiện lợi và dễ sử dụng…
Nhược điểm: giá thành cao,…
1.2. Lựa Chọn Giải Pháp
1.2.1. Giải pháp công nghệ:
Với mục đích của nhóm chúng em là thiết kế ra hệ thống đo và đưa ra cảnh báo áp suất của các đường ống trong các nhà máy xí nghiệp khi mà áp suất vượt quá hay thấp hơn mức cho phép. Cùng với đó là mức độ của áp suất được đo và hiển thị trên màn hình LCD.
Giới hạn đo của hệ thống đo áp suất mà nhóm chúng em thiết kế là có khả năng đo được áp suất nằm trong khoảng từ 15Kpa đến 115Kpa. Và áp suất sau khi đo sẽ được hiển thị trên màn hình LCD, đưa ra cảnh báo trên chuông và LED.
1.2.2. Giải pháp thiết kế.
Việc lựa chọn giải pháp thường được xem xét trên nhiều phương diện nhưng quan trọng là giải pháp có khả thi không? Có phù hợp với với thực tế và thỏa mãn yêu cầu về kinh tế?
Qua tìm hiểu, tham khảo một số tài liệu trên internet, nhóm chúng em đã quyết định lựa chọn bộ vi điều khiển PIC16F877A, cảm biến áp suất MPX4115 bởi nó đáp ứng tốt nhất các yêu cầu của đề tài. Cụ thể là:
Các thiết bị này có sẵn trên thị trường , giá thành rẻ, đảm bảo độ tin cậy làm việc, độ chính xác, tính liên tục khi làm việc, đáp ứng được công suất tinh toán…
Có sẵn các công cụ phát triển phần mềm chẳng hạn như trình biên dịch trình hợp ngữ và gỡ rối.
Nguồn các bộ vi xử lý co sẵn nhiều và tin cậy.
Để làm được mạch này nhóm chúng em thiết kế ra gồm 4 phần chính sau:
Bộ phận điều chỉnh : gồm có các phím điều khiển
Bộ phận vi điều khiển
Sensor
Bộ phận hiển thị
Bộ phận các phím điều chỉnh:
phím điều chỉnh ổn định giảm áp suất
phím điều chỉnh tự động tăng áp suất
Bộ phận hiển thị gồm:
Màn hình LCD hiển thị áp suất
Các Led báo trạng thái của áp suất
Bộ phận vi điều khiển
Vi điều khiển
Khối nguồn nuôi(sừ dụng nguồn 5v)
Khối dao động (sử dụng thạch anh)
Hệ thống chuông cảnh báo.
Hệ thống đo và cảnh báo áp suất với bộ não VĐK 18F77A và các linh kiện khác: LCD hiển thị, IC ổn áp7805, cảm biến áp suất MPX4115.
Pic 18F77A có các ưu điểm: tính năng và tốc độ đáp ứng được yêu cầu kĩ thuật trong ứng dụng không đòi hỏi cao;giá thành thấp. Có hỗ trợ lập trình điều khiển bằng cả hợp ngữ và C...
Cảm biến MPX4115 là cảm biến chuyên dụng, cho khả năng đo chính xác về áp suất.
LCD hiển thị một cách rõ ràng.
IC ổn áp 7805 được sử dụng rộng rãi trong các bộ nguồn.
Vì vậy giải pháp thiết kế hệ thống đo và cảnh báo áp suất dùng các linh kiện trên có rất nhiều ưu thế. Đồng thời đảm bảo được yêu cầu về kinh tế.
Trong thực tế hiện nay hệ thống đo và cảnh báo áp suất là một sản phẩm rất gần gũi với mọi người, được sử dụng rất rộng rãi.
1.2.3. Các yêu cầu
Với sản phẩm đo và cảnh báo áp suất đòi hỏi các yêu cầu:
Hiển thị đúng giá trị áp suất trong môi trường cần đo.
Điều chỉnh và thay đổi được ngưỡng cảnh báo.
Đảm bảo đúng có thể hoạt động ngay cả khi mất điện(nhờ nguồn nuôi phụ).
Khả năng thực thi: Thời gian đáp ứng, độ chính xác…
Đảm bảo về kích thước và trọng lượng cho phép.
Độ an toàn, khả năng chống lại sự phá hoại hay xâm nhập…
1.2.4. Giới hạn cho hệ thống.
Sử dụng nguồn điện 5V.
Làm việc liên tục.
Kích thước phù hợp với người sử dụng.
Hệ thống nhỏ gọn.
Hệ thống có khả năng làm việc khi mất nguồn cấp (có nguồn dự trữ).
Chi phí cho hệ thống không quá 600.000đ. Với thời gian sử dụng có thể sử dụng được trong khoảng 10 năm.
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG
2.1. Sơ Đồ Mô Hình Tổng Quát Của Hệ Thống
Khối nguồn
Khối
xử
lý
trung
tâm
Khối hiển thị
Thiết bị
chấp hành
Khối cảm biến
Khối
tương tác điều khiển
Hình 2.1: Sơ đồ tổng quát của hệ thống
Khối cảm biến nhận áp suất từ môi trường biến đổi thành điện áp và đưa đến khối xử lý trung tâm.
Khối xử lý trung tâm sau khi nhận được tín hiệu từ khối cảm biến thì sẽ tính toán để biến đổi thành điện áp để đưa ra cho khối hiển thị để hiển thị lên màn hình và đồng thời nếu tín hiệu sau khi biến đổi nằm trong phạm vi cảnh báo thì khối xử lý trung tâm sẽ gửi tín hiệu đến khối chấp hành. Khối chấp hành sau khi nhận được tín hiệu sẽ tác gửi báo động.
Khối tương tác điều khiển chính là bộ bàn phím dùng để điều chỉnh mức ngưỡng cho phép tác động của khối chấp hành thông qua khối xử lý trung tâm.
Khối nguồn cung cấp nguồn cho bộ VĐK và cac khối khác trong sơ đồ
2.2. Sơ Đồ Đặc Tả Hệ Thống:
Đợi tín hiệu
Kiểm tra ban đầu
Kích hoạt
Kiểm tra
Ngừng kích hoạt
Hiển thị
Pmax
Tín hiệu
min≤p≤max
Tín hiệu
P<min
hoặc p>max
Hình 2.2: Sơ đồ đặc tả hệ thống
Với: + P: là áp suất
+min: là áp suất ngưỡng thấp
+max: là áp suất ngưỡng cao
2.3. Sơ Đồ Call Graph Hệ Thống:
Vi xử lý, vi điều khiển
Chương trình chuyển đổi ADC
Chương trình kết nối bàn phím
Chương trình đo áp suất
Chương trình hiển thị LCD
ADC
Bàn phím
Cảm biến
LCD
Hình 2.3: Sơ đồ quan hệ giữa các module phần cứng và phần mềm trong hệ thống cảnh báo nhiệt độ
2.4. Sơ Đồ Nguyên Lý Mạch.
a, sơ đồ.
Hình 2.4:Sơ đồ nguyên lý mạch mô phỏng bằng proteus
b, nguyên tắc hoạt động.
Chân 1 được nối với mạch reset. Khi nhấn SW1 thì bộ vi điều khiển sẽ được khởi động lại từ đầu.
Chân 13-14 được nối song song với thạch anh 12Mhz. Mạch có nhiệm vụ tạo dao động cho vi điều khiển.
Từ chân RD2 và RD3 lần lượt được nối với RS, E của LCD. Có nhiệm vụ điều khiển hoạt động của LCD.
RD4=>RD7 lần lượt được nối với đầu vào dữ liệu từ D4=> D7 của LCD. Có chức năng điều khiển hiển thị LCD theo nhiệt độ đo được.
Chân 2(VDD) của LCD đươc nối với nguồn;chân VSS, RW được nối với mát
.
Hình 2.5: Sơ đồ chân của LCD LM016L
*Ngyên tắc:
Khi khởi động hệ thống, cảm biến áp suất MPX4115 sẽ biến đổi đầu vào là áp suất môi trường thành tín hiệu điện áp. Tín hiệu này được đưa vào vi điều khiển qua chân AN0 (analog của ADC) của PIC16f877A; trong pic đã tích hợp sẵn bộ chuyển đổi tương tự sang số à tín hiệu điện áp được chuyển đổi sang tín hiệu số và được xuất ra cổng từ RD4->RD7 và được hiển thị lên màn hình LCD.
Khi áp suất tăng quá một giới hạn cho phép thì phát tín hiệu cảnh báo làm cho led sáng.
Các nút bấm : nút 1; nút 2; nút 3; nút 4 cho phép ta điều chỉnh áp suất đặt (áp suất cảnh báo):
Khi ta nhấn nút 1 thì hiển thị áp suất đặt ở ngưỡng cao hiện tại và chờ các phím khác được nhấn.
Khi ta nhấn nút 4 thì hiển thị áp suất đặt ở ngưỡng thấp hiện tại.
Khi nút 2 được nhấn cho phép ta tăng áp suất đặt.
Khi nút 3 được nhấn cho phép ta giảm áp suất đặt.
Công thức biên đổi trong ADC:
Ta dùng adc của pic la 10bit à max= 1023, Vref=Vcc.
Mà áp suất biến đổi trong khoảng từ 15 đến 115KPa.
Ta có công thức tính áp suất như sau:
P=kq*100/1023+15
Kq: là giá trị đầu ra của ADC dưới dạng thập phân.
2.5. Các Module Trong Hệ Thống
2.5.1. Module khối điều khiển trung tâm.
a, sơ đồ:
Hình 2.6: khối điều khiển trung tâm
b, nguyên tắc hoạt động.
Khối điều khiển trung tâm sử dụng vi điều khiển PIC18F77A, qua chương trình đã lập trình được nạp cho chip, vi điều khiển sẽ điều khiển việc đọc, ghi các trị số áp suất lên khối hiển thị là LCD.
Bộ dao động thạch anh có tác dụng tạo xung nhịp với tần số 12MHz cho VĐK hoạt động. Hai đầu này được nối vào 2chân XTAL1 và XTAL2 của VĐK.
Bộ RESET có tác dụng đưa vi điều khiển về trạng thái ban đầu. Khi nút Reset được ấn điện áp +5V từ nguồn được nối vào chân Reset của vi điều khiển được chạy thẳng xuống đất lúc này điện áp tại chân vi điều khiển thay đổi đột ngột về 0, VĐK nhận biết được sự thay đổi này và khởi động lại trạng thái ban đầu cho hệ thống.
2.5.2. Module Hiển Thị.
a, sơ đồ.
Hình 2.7: khối hiển thị
b, nguyên tắc hoạt động.
Sử dụng màn hình LCD (LM016L) để hiển thị áp suất mà cảm biến đo được, LCD sẽ hiển thị được tất cả các ký tự trong bảng mã ASCII. Ta chỉ có thể hiển thị là một sâu ký tự thì hiển thị được nếu là số chỉ hiển thị dược từng số ví thế phải chia các thành phần trăm, chục đơn vị của áp suất ra rồi hiển thị từng phần.
Chọn các chân D4-D7 làm chân nhận dữ liệu của LCD.
Cổng D(RD2-RD7) của VDK làm cổng ra để đưa dữ liệu ra LCD.
Các led D1, D2, D3 để báo trạng thái áp suất mà cảm biến nhận được. D1 sáng khi áp suất vượt quá ngưỡng cao Pmax. D2 sáng khi áp suất thấp hơn ngưỡng dưới Pmin. D3 sáng khi áp suất nằm trong khoảng từPmin đến Pmax.
Các cực dương của led được nối với chân RC0-RC2 (lá các cổng ra) khi áp suất vượt quá ngưỡng cao Pmax thì VDK đưa mức logic 1 ra chân RC0 led D1 sáng tương tự với các trạng thái còn lại.
2.5.3. Module Đo Áp Suất.
a, sơ đồ.
Hình 2.8: khối cảm biến
b, nguyên tắc hoạt động.
Sử dụng cảm biến áp suất MPX4115 để đo áp suất. Áp suất mà cảm biến đo được sẽ được biến đổi ra thành điện áp để đưa vào VĐK. Thông qua bộ biến đổi ADC của VĐK thì VĐK sẽ tính toán ra áp suất.
2.5.4. Module Khối Nguồn.
a, sơ đồ.
Hình 2.9: sơ đồ khối nguồn
b, nguyên tắc hoạt động.
Điện áp lưới 220V qua MBA được biến đổi thành điện áp 15V. Và thông qua bộ biến đổi cầu DIODE được biến đổi thành nguồn 1 chiều (DC) và sau đó tiếp tục được biến đổi thành điện áp chuẩn 5V nhờ IC7805 để cung cấp nguồn cho cảm biến.
Tụ C có tác dụng lọc nhiễu để ổn định điện áp đầu ra.
2.5.5. Module Khối Giao Tiếp Phím Bấm.
a, sơ đồ.
Hình 2.10: sơ đồ khối bàn phím
b, nguyên tắc hoạt động.
Các nút bấm dùng dể chọn chế độ hoạt động của cảm biến.
Các nút bấm được đưa vào các chân RB0, RB1, RB2, RB3(các chân này dùng để chọn mức ngưỡng cho cảm biến).
Khi một nút nào đó được bấm thì trạng thái của chân đó ở mức 1 và VDK sẽ chọn chế độ hoạt động và suất tín hiệu đầu ra để chọn ngưỡng cao hay thấp cho cảm biến.
Nút 1 dùng để chọn ngưỡng trên, nút 4 dùng để chọn ngưỡng dưới và nút 2, 3 dùng để tăng giảm các mức ngưỡng cho cảm biến.
2.6. Sơ Đồ Thuật Toán Của Hệ Thống:
· sơ đồ.
Khởi động
Khởi tạo ngưỡng max,min
Đ
S
Chương trình chính
Nút1=1
Nút3=1
Nút2=1
Nút4=1
Nút2=1
Kqmax
Nút3=1
Max=max-1
Max=max+1
Min=min+1
Min=min-1
Cảnh báo
Hiển thị LCD
S
Đ
Đ
Đ
S
S
Đ
S
Max=max
Min=min
S
S
Đ
Đ
Hình 2.11: Lưu đồ thuật toán chương trình chính
Với: + LCD: là màn hình hiển thị.
S: là sai; Đ: đúng
2.7. Nguyên Lý Hoạt Động.
Sau khi cấp nguồn khởi động cho hệ thống thì các giá trị ngưỡng sẽ được khởi tạo và đưa vào chương trình chính.
Lúc này nếu nút 1 được ấn thì tức là ta điều chỉnh ngưỡng cao cho hệ thống. để điều chỉnh tăng giảm ngưỡng ta sử dụng các nút 2 và nút 3. Nếu nút 2 được ấn thì giá trị ngưỡng cao lúc này đang được tăng lên. Nếu nút 3 được ấn thì giá trị ngưỡng cao sẽ giảm xuống.
Nếu nút 4 được ấn thì tương ứng với quá trình điều chỉnh ngưỡng thấp. Và cũng tương tự như vậy ta sử dụng các nút 2 và 3 để tăng giảm các giá trị ngưỡng.
Trong quá trình điều chỉnh ngưỡng thì các giá trị ngưỡng khi ta điều chỉnh sẽ được hiển thị ra màn hình LCD.
Nếu nút 1 và nút 4 đều không được ấn thi lúc này hệ thống sẽ thực hiện quá trình đo áp suất. Nếu áp suất đo được có giá trị cao hơn giá trị ngưỡng cao hoặc thấp hơn giá trị ngưỡng thấp thì hệ thống sẽ đưa ra cảnh báo và hiển thị lên màn hình giá trị áp suất mà nó đo được. Nếu áp suất đo được có giá trị nằm trong giới hạn cho phép tức là nằm trong khoàng từ (min ÷ max) thì kết quả đo được sẽ cho hiển thị ra màn hình LCD.
Sau khi hiển thị ra LCD thì chương trình lại quay trở về chương trình chính để thực hiện lại các bước như trên.
2.8. Lựa Chọn Linh Kiện.
Khối điều khiển.
lựa chọn sử dụng PIC16F877A
Trong môn học “ kỹ thuật vi xử lý & vi điều khiển ” cùng với “ môn hệ thống nhúng ”, chúng em được học thì họ vi điều khiển 8051 là một họ vi điều khiển điển hình, phổ biến, dễ sử dụng và lập trình, rất phù hợp với sinh viên mới bắt đầu làm quen đến lập trình cho vi điều khiển. Tuy nhiên, cũng trong quá trình nghiên cứu và thí nghiệm với các chip điều khiển thuộc họ 8051 ( điển hình là 89C51, 89052…), em nhận thấy nó có những nhược điểm cơ bản sau đây :
Bộ nhớ Ram nội có dung lượng thấp, chỉ có 128 bytes. Điều nàý gây trở ngại lớn khi thực hiện các dự án lớn với vi điều khiển 8051. Để khắc phục ta phải mở rộng thêm làm hạn chế số chân dành cho các ứng dụng của vi điều khiển.
Số lượng các bộ giao tiếp với ngoại vi được tích hợp sẵn trong 8051 ít, không có các bộ ADC, PWM, truyền dữ liệu song song…. Khi muốn sử dụng các chức năng này, ta phải sử dụng thêm các IC bên ngoài, gây tốn kém và khó thực hiện vì dễ bị nhiễu nếu không biết cách chống nhiễu tốt.
Ngoài ra còn một số hạn chế khác như số lượng Timer của 8051 ít, chỉ có 2 Timer. Chính điều này làm cho giải thuật khi viết chương trình gặp khó khăn.
Những nhược điểm căn bản trên của 8051, chúng em đã quyết định không dùng vi điều khiển này cho đề tài “điều khiển áp suất” của mình.
Với kỳ vọng dựa trên nền tảng kiến thức tiếp thu được khi học vi điều khiển 8051, em rất muốn tự bản thân tìm hiểu một họ vi điều khiển mới mạnh hơn, đầy đủ tính năng hơn để trước mắt là phuc vụ tốt cho đồ án , luận văn, sau nữa là cho các dự án trong tương lai nếu chúng em có dịp sử dụng vi điều khiển trong dự án của mình.
Trong quá trình tím kiếm một họ vi điều khiển mới thõa yêu cầu như chúng em đã trình bày trên. Chúng em nhận thấy PIC của hãng Microchip là một lựa chọn lý tưởng.
Chỉ cần xem xét qua các port và chức năng của các port mà chúng em đã trình bày ở mục c, ta cũng dễ dàng nhận ra những ưu điểm vượt trội của vi điều khiển này so với 8051.
Vi điều khiển PIC16F877A
a, Sơ đồ chân và sơ đồ nguyên lý của PIC16F877A
Sơ đồ chân
Hình 2.12: sơ đồ các chân của PIC16F877A
+ Sơ đồ nguyên lý
Hình 2.13: sơ đồ nguyên lý PIC16F877A
b, Nhận xét
Từ sơ đồ chân và sơ đồ nguyên lý ở trên, ta rút ra các nhận xét ban đầu như sau :
PIC16F877A có tất cả 40 chân
40 chân trên được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2 chan thạch anh và một chân dùng để RESET vi điều khiển.
5 port của PIC16F877A bao gồm :
PORTB : 8 chân
PORTD : 8 chân
PORTC : 8 chân
PORTA : 6 chân
PORT E : 3 chân
c, Khái quát về chức năng của các port trong vi điều khiển PIC16F877A
PORTA
PORTA gồm có 6 chân. Các chân của PortA, ta lập trình để có thể thực hiện được chức năng “hai chiều” : xuất dữ liệu từ vi điều khiển ra ngoại vi và nhập dữ liệu từ ngoại vi vào vi điều khiển.
Việc xuất nhập dữ liệu ở PIC16F877A khác với họ 8051. Ở tất cả các PORT của PIC16F877A, ở mỗi thời điểm chỉ thực hiện được một chức năng :xuất hoặc nhập. Để chuyển từ chức năng này nhập qua chức năng xuất hay ngược lại, ta phải xử lý bằng phần mềm, không như 8051 tự hiểu lúc nào là chức năng nhập, lúc nào là chức năng xuất.
Trong kiến trúc phần cứng của PIC16F877A, người ta sử dụng thanh ghi TRISA ở địa chỉ 85H để điều khiển chức năng I/O trên. Muốn xác lập các chân nào của PORTA là nhập (input) thì ta set bit tương ứng chân đó trong thanh ghi TRISA. Ngược lại, muốn chân nào là output thì ta clear bit tương ứng chân đó trong thanh ghi TRISA. Điều này hoàn toàn tương tự đối với các PORT còn lại
Ngoài ra, PORTA còn có các chức năng quan trọng sau :
Ngõ vào Analog của bộ ADC : thực hiện chức năng chuyển từ Analog sang Digital
Ngõ vào điện thế so sánh
Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng : thực hiện các nhiệm vụ đếm xung thông qua Timer0…
Ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port)
PORTB
PORTB có 8 chân. Cũng như PORTA, các chân PORTB cũng thực hiện được 2 chức năng : input và output. Hai chức năng trên được điều khiển bới thanh ghi TRISB. Khi muốn chân nào của PORTB là input thì ta set bit tương ứng trong thanh ghi TRISB, ngược lại muốn chân nào là output thì ta clear bit tương ứng trong TRISB.
Thanh ghi TRISB còn được tích hợp bộ điện trở kéo lên có thể điều khiển được bằng chương trình.
PORTC
PORTC có 8 chân và cũng thực hiện được 2 chức năng input và output dưới sự điều khiển của thanh ghi TRISC tương tự như hai thanh ghi trên.
Ngoài ra PORTC còn có các chức năng quan trọng sau :
Ngõ vào xung clock cho Timer1 trong kiến trúc phần cứng
Bộ PWM thực hiện chức năng điều xung lập trình được tần số, duty cycle: sử dụng trong điều khiển tốc độ và vị trí của động cơ v.v….
Tích hợp các bộ giao tiếp nối tiếp I2C, SPI, SSP, USART
PORTD
PORTD có 8 chân. Thanh ghi TRISD điều khiển 2 chức năng input và output của PORTD tương tự như trên. PORTD cũng là cổng xuất dữ liệu của chuẩn giao tiếp song song PSP (Parallel Slave Port).
PORTE
PORTE có 3 chân. Thanh ghi điều khiển xuất nhập tương ứng là TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP.
d, Tìm hiểu về vi điều khiển PIC16F877A
Cấu trúc phần cứng của PIC16F877A
PIC là tên viết tắt của “ Programmable Intelligent computer” do hãng General Instrument đặt tên cho con vi điều khiển đầu tiên của họ. Hãng Micrchip tiếp tục phát triển sản phầm này và cho đến hàng đã tạo ra gần 100 loại sản phẩm khác nhau.
PIC16F887A là dòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứng dụng thực tế. Đây là dòng PIC khá dễ cho người mới làm quen với PIC có thể học tập và tạo nền tản về họ vi điều khiển PIC của mình.
Cấu trúc tổng quát của PIC16F877A như sau :
8K Flash Rom
368 bytes Ram
256 bytes EFPROM
5 port vào ra với tín hiệu điều khiển độc lập
2 bộ định thời Timer0 và Timer2 8 bit
1 bộ định thời Timer1 16 bit có thể hoạt động ở cả chế độ tiết kiệm năng lượng với nguồn xung clock ngoài
2 bộ Capture/ Compare/ PWM
1 bộ biến đổi Analog -> Digital 10 bit, 8 ngõ vào
2 bộ so sánh tương tự
1 bộ định thời giám sát (Watch Dog Timer)
1 cổng song song 8 bit với các tín hiệu điều khiển
1 cổng nối tiếp
15 nguồn ngắt
Hình 2.14:Sơ đồ khối vi điều khiển 16F877A
Tổ chức bộ nhớ PIC16F877a
+ Bộ nhớ chương trình
Hình 2.15: bộ nhớ chương trình
Bộ nhớ chương trình PIC16F877A
Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ Flash, dung lượng 8K word (1 word chứa 14bit) và được phân thành nhiều trang như hình trên.
Để mã hóa được địa chỉ 8K word bộ nhớ chương trình, thanh ghi đếm chương trình PC có dung lượng 13 bit.
Khi vi điều khiển reset, bộ đếm chương trình sẽ trỏ về địa chỉ 0000h. Khi có ngắt xảy ra thì thanh ghi PC sẽ trỏ đến địa chỉ 0004h.
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.
Bộ nhớ dữ liệu
Bộ nhớ dữ liệu của PIC16F877A được chia thành 4 bank. Mỗi bank có dụng lượng 128 byte.
Nếu như 2 bank bộ nhớ dữ liệu của 8051 phân chia riêng biệt : 128 byte đầu tiên thuộc bank1 là vùng Ram nội chỉ để chứa dữ liệu, 128 byte còn lại thuộc bank 2 là cùng các thanh ghi có chức năng đặc biệt SFR mà người dùng không được chứa dữ liệu khác trong đây thì 4 bank bộ nhớ dữ liệu của PIC16F877A được tổ chức theo cách khác.
Mỗi bank của bộ nhớ dữ liệu PIC16F877A bao gồm cả các thanh ghi có chức năng đặc biệt SFR nằm ở các các ô nhớ địa chỉ thấp và các thanh ghi mục đích dùng chung GPR nằm ở vùng địa chỉ còn lại của mỗi bank thanh ghi. Vùng ô nhớ các thanh ghi mục đích dùng chung này chính là nơi người dùng sẽ lưu dữ liệu trong quá trình viết chương trình. Tất cả các biến dữ liệu nên được khai báo chứa trong vùng địa chỉ này.
Trong cấu trúc bộ nhớ dữ liệu của PIC16F877A, các thanh ghi SFR nào mà thường xuyên được sử dụng (như thanh ghi STATUS) sẽ được đặt ở tất cả các bank để thuận tiện trong việc truy xuất. Sở dĩ như vậy là vì, để truy xuất một thanh ghi nào đó trong bộ nhớ của 16F877A ta cần phải khai báo đúng bank chứa thanh ghi đó, việc đặt các thanh ghi sử dụng thường xuyên giúp ta thuận tiên hơn rất nhiều trong quá trình truy xuất, làm giảm lệnh chương
Hình 2.16: Sơ đồ bộ nhớ dữ liệu của PIC16F877A
Dựa trên sơ đồ 4 bank bộ nhớ dữ liệu PIC16F877A ta rút ra các nhận xét như sau :
Bank0 gồm các ô nhớ có địa chỉ từ 00h đến 77h, trong đó các thanh ghi dùng chung để chứa dữ liệu của người dùng địa chỉ từ 20h đến 7Fh. Các thanh ghi PORTA, PORTB, PORTC, PORTD, PORTE đều chứa ở bank0, do đó để truy xuất dữ liệu các thanh ghi này ta phải chuyển đến bank0. Ngoài ra một vài các thanh ghi thông dụng khác ( sẽ giới thiệu sau) cũng chứa ở bank0.
Bank1 gồm các ô nhớ có địa chỉ từ 80h đến FFh. Các thanh ghi dùng chung có địa chỉ từ A0h đến Efh. Các thanh ghi TRISA, TRISB, TRISC, TRISD, TRISE cũng được chứa ở bank1.
Tương tự ta có thể suy ra các nhận xét cho bank2 và bank3 dựa trên sơ đồ trên.
Cũng quan sát trên sơ đồ, ta nhận thấy thanh ghi STATUS, FSR… có mặt trên cả 4 bank. Một điều quan trọng cần nhắc lại trong việc truy xuất dữ liệu của PIC16F877A là : phải khai báo đúng bank chứa thanh ghi đó. Nếu thanh ghi nào mà 4 bank đều chứa thì không cần phải chuyển bank.
* Một vài thanh ghi chức năng đặc biệt SFR
Thanh ghi STATUS: thanh ghi này có mặt ở cả 4 bank thanh ghi ở các địa chỉ 03h, 83h, 103h và 183h : chứa kết quả thực hiện phép toán của khối ALU, trạng thái reset và các bit chọn bank cần truy xuất trong bộ nhớ dữ liệu.
Thanh ghi OPTION_REG : có mặt ở bank2 và bank3 có địa chỉ 81h và 181h. Thanh ghi này cho phép đọc và ghi, cho phép điều khiển chức năng pull_up của các chân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0
Thanh ghi INTCON : có mặt ở cả 4 bank ở địa chỉ 0Bh,8Bh,10Bh,18Bh. Thanh ghi cho phép đọc và ghi, chứa các bit điều khiển và các bit báo tràn timer0, ngắt ngoại vi RB0/INT và ngắt khi thay đổi trạng thái tại các chân của PORTB.
Thanh ghi PIE1 :địa chỉ 8Ch, chứa các bit điều khiển chi tiết các ngắt của các khối chức năng ngoại vi.
Thanh ghi PIR1 : địa chỉ 0Ch, chứa cờ ngắt của các khối chức năng ngoại vi, các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1.
Thanh ghi PIE2 : địa chỉ 8Dh, chứa các bit điều khiển các ngắt của các khối chức năng CCP, SSP bú, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM.
Thanh ghi PIR2: địa chỉ 0Dh, chứa cờ ngắt của các khối chức năng ngoại vi, các ngắ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 : địa chỉ 8Eh, chứa các cờ hiệu cho biết trạng thái các chế độ reset của vi điều khiển.
Thanh ghi W(work) và tập lệnh của PIC16F877A
+Thanh ghi W
Đây là thanh ghi rất đặc biệt trong PIC16F877A. Nó có vai trò tương tự như thanh ghi Accummulator của 8051, tuy nhiên tầm ảnh hưởng của nó rộng hơn rất nhiều.
Tập lệnh của PIC16F877A có tất cả 35 lệnh thì số lệnh có sự “góp mặt” của thanh ghi W là 23 lệnh. Hầu hết các lệnh của PIC16F877A đều liên quan đến thanh ghi W. Ví dụ như, trong PIC chúng ta không được phép chuyển trực tiếp giá trị của một thanh ghi này qua thanh ghi khác mà phải chuyển thông qua thanh ghi W.
Thanh ghi W có 8 bit và không xuất hiện trong bất kỳ bank thanh ghi nào của bộ nhớ dữ liệu của 16F877A. Mỗi dòng lệnh trong PIC16F877a được mô tả trong 14 bit. Khi ta thực hiện một lệnh nào đó, nó phải lưu địa chỉ của thanh ghi bị tác động (chiếm 8 bit) và giá trị một hằng số k nào đó (thêm 8 bit nữa) là 16 bit, vượt quá giới hạn 14 bit. Do vậy ta không thể nào tiến hành một phép tính toàn trực tiếp nào giữa 2 thanhghi với nhau hoặc giữa một thanh ghi với một hằng số k.
Hầu hết các lệnh của PIC16F877A đều phải liên quan đến thanh ghi W cũng vì lý do đó. Khi thực hiện mộtdòng lệnh nào đó, thì PIC sẽ không phải tốn 8 bit để lưu địa chỉ của thanh ghi W trong mã lệnh ( vì được hiểu ngầm). Có thể xem thanh ghi W là thanh ghi trung gian trong quá trình viết chương trình cho PIC16F877A.
e, Các vấn đề về Timer
PIC16F877A có tất cả 3 timer : timer0 (8 bit), timer1 (16 bit) và timer2 (8 bit)
Timer0
Hình 2.17: Sơ đồ khối của Timer0
Cũng giống như 8051, Timer0 của 16F877A cũng có 2 chức năng : định thời và đếm xung. 2 chức năng trên có thể được lựa chọn thông qua bit số 5 TOCS của thanh ghi OPTION.
Ngoài ra, ta cũng có thể lựa chọn cạnh tích cực của xung clock, cạnh tác động ngắt…thông qua thanh ghi trên.
Timer0 được tích hợp thêm bộ tiền định 8 bit (prescaler), có tác dụng mở rộng “dung lượng” của Timer0. Bộ prescaler này có thể được điều chỉnh bởi các 3 bit PS2:PS0 trong thanh ghi OPTION. Nó có thể có giá trị 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:128, 1:256 tùy thuộc vào việc thiết lập các giá trị 0 ,1 cho 3 bit trên.
Bộ tiền định có giá trị 1:2 chẳng hạn ,có nghĩa là : bình thường không sử dụng bộ tiền định của Timer0 (đồng nghĩa với tiền định tỉ lệ 1:1) thì cứ khi có tác động của 1 xung clock thì timer0 sẽ tăng thêm một đơn vị. Nếu sử dụng bộ tiền định 1:4 thì phải mất 4 xung clock thì timer0 mới tăng thêm một đơn vị. Vô hình chung, giá trị của timer0 (8 bit) lúc này không còn là 255 nữa mà là 255*4=1020.
Các thanh ghi liên quan đến Timer0 bao gồm :
TMR0 : chứa giá trị đếm của Timer0
INTCON : cho phép ngắt hoạt động
OPTION_REG : điều khiển prescaler
Timer1
Hình 2.18: Sơ đồ khối của Timer1
Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong hai thanh ghi 8 bit TMR1H:TMR1L. Cờ ngắt của Timer1 là bit TMR1IF, bit điều khiển của Timer1 là TRM1IE.
Cặp thanh ghi của TMR1 sẽ tăng từ 0000h lên đến FFFFh rồi sau đó tràn về 0000h. Nếu ngắt được cho phép, nó sẽ xảy ra khi khi giá trị của TMR1 tràn từ FFFFh rồi về 0000h, lúc này TMR1IF sẽ bật lên.
Timer1 có 3 chế độ hoạt động :
Chế độ hoạt động định thời đồng bộ : Chế độ được lựa chọn bởi bit TMR1CS. Trong chế độ này xung cấp cho Timer1 là Fosc/4, bit T1SYNC không có tác dụng.
Chế độ đếm đồng bộ : trong chế độ này, giá trị của timer1 sẽ tăng khi có xung cạnh lênh vào chân T1OSI/RC1. Xung clock ngoại sẽ được đồng bộ với xung clock nội, hoạt động đồng bộ được thực hiện ngay sau bộ tiền định tỉ lệ xung (prescaler).
Chế độ đếm bất đồng bộ :chế độ này xảy ra khi bit T1SYNC được set. Bộ định thời sẽ tiếp tục đếm trong suốt quá trình ngủ của vi điều khiển và có khả năng tạo một ngắt khi bộ định thời tràng và làm cho Vi điều khiển thoát khỏi trạng thái ngủ.
Timer2 : là bộ định thời 8 bit bao gồm một bộ tiền định (prescaler), một bộ hậu định Postscaler và một thanh ghi chu kỳ viết tắt là PR2. Việc kết hợp timer2 với 2 bộ định tỉ lệ cho phép nó hoạt động như một bộ đinh thời 16 bit. Module timer2 cung cấp thời gian hoạt động cho chế độ điều biến xung PWM nếu module CCP được chọn.
Hình 2.19: Sơ đồ khối của Timer2
2.8.2. Khối Hiển Thị.
Màn hình LCD LM016L:
Hình 2.20: màn hình hiển thị LCDLM016L
Giống như led 7 thanh, LCD là một thiết bị ngoại vi dùng để giao tiếp với người dùng, so với led 7 thanh thì LCD có ưu điểm là hiển thị được tất cả các kí tự trong bảng mã ascci, trong khi đó led 7 thanh chỉ hiển thị được một số kí tự, nhưng LCD lại có nhược điểm là giá thành cao và khoảng cách nhìn gần.
* Chức năng của các chân LCD :
Chân
Kí Hiệu
Mức Logic
I/O
Chức Năng
1
Vss
-
-
Nguồn (GND)
2
Vcc
-
-
Nguồn (+5V)
3
Vee
-
-
Chỉnh độ tương phản
4
RS
0/1
I
0=Nhập lệnh
1=Nhập dữ liệu
5
R/W
0/1
I
0=Ghi dữ liệu
1=Đọc dữ liệu
6
E
1,1 0
I
Tín hiệu cho phép
7
DB0
0/1
I/O
Bít dữ liệu 0
8
DB1
0/1
I/O
Bít dữ liệu 1
9
DB2
0/1
I/O
Bít dữ liệu 2
10
DB3
0/1
I/O
Bít dữ liệu 3
11
DB4
0/1
I/O
Bít dữ liệu 4
12
DB5
0/1
I/O
Bít dữ liệu 5
13
DB6
0/1
I/O
Bít dữ liệu 6
14
DB7
0/1
I/O
Bít dữ liệu 7
15
Lamp-
-
-
Đèn LCD
16
Lamp+
-
-
Đèn LCD
+ Các chân Vcc, Vss và Vee
Chân Vcc cấp dương nguồn 5V, chân Vss nối đất, chân Vee được dùng để điều khiển độ tương phản của màn hình LCD.
RS ( Register select): Khi ở mức thấp, chỉ thị được truyền đến LCD như xoá màn hình, vị trí con trỏ ….Khi ở mức cao, kí tự được truyền đến LCD.
R/W (Read/Write): Dùng để xác định hướng của dữ liệu được truyền giữa LCD và vi điều khiển. Khi nó ở mức thấp dữ liệu được ghi đến LCD và khi ở mức cao, dữ liệu được đọc từ LCD. Nếu chúng ta chỉ cần ghi dữ liệu lên LCD thì chúng ta có thể nối chân này xuống GND để tiết kiệm chân + E (Enable). Cho phép ta truy cập/xuất đến LCD thông qua chân RS và R/W.Khi chân E ở mức cao (1) LCD sẽ kiểm tra trạng thái của 2 chân RS và R/W và đáp ứng cho phù hợp. Khi dữ liệu được cấp đến chân dữ liệu thì một xung mức cao xuống thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân dữ liêu. Xung này phải rộng tối thiểu là 450ns. Còn khi chân E ở mức thấp (0), LCD sẽ bị vô hiệu hoá hoặc bỏ qua tín hiệu của 2 chân RS và R/W.
+ Các chân D0 - D7
Đây là 8 chân dữ liệu 8 bít, được dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD. Các kí tự được truyền theo mã tương ứng trong bảng mã ascii. Cũng có các mã lệnh mà có thể được gửi đến LCD để xoá màn hình hoặc đưa con trỏ về đầu dòng hoặc nhấp nháy con trỏ.
LCD có 2 chế độ giao tiếp, chế độ 4 bit (chỉ dùng 4 chân D4 đến D7 để truyền dữ liệu) và chế độ 8 bit (dùng cả 8 chân dữ liệu từ D0 đến D7), ở chế độ 4 bit, khi truyền 1 byte, chúng ta sẽ truyền nửa cao của byte trước, sau đó mới truyền nửa thấp của byte.
Trước khi truyền các kí tự ra màn hình LCD ta cần thiết lập cho LCD như chọn chế độ 4 bit hoặc 8 bit, 1 dòng hay 2 dòng, bật/tắt con trỏ… Dưới đây là bảng tập lệnh của LCD :
* Bảng Tập Lệnh Của LCD
Mã (Hex)
Lệnh đến thanh ghi của LCD
1
Xóa màn hình hiển thị
2
Trở về đầu dòng
4
Giả con trỏ (dịch con trỏ sang trái)
5
Tăng con trỏ (dịch con trỏ sang phải)
6
Dịch hiển thị sang trái
7
Dịch hiển thị sang phải
8
Tắt con trỏ, tắt hiển thị
A
Tắt hiển thị, bật con trỏ
C
Bật hiển thị, tắt con trỏ
E
Bật hiển thị, nhấp nháy con trỏ
F
Tắt con trỏ, nhấp nháy con trỏ
10
Dịch vị trí con trỏ sang trái
14
Dịch vị trí con trỏ sang phải
18
Dịch toàn bộ vị trí hiển thị sang trái
1C
Dịch toàn bộ vị trí hiển thị sang phải
80
Ép con trỏ vũ đầu dòng thứ nhất
C0
Ép con trỏ vũ đầu dòng thứ hai
38
Hai dòng va ma trận 5x7
Để đọc thanh ghi lệnh,ta phải đặt RS=0 và R/W =1 và xung cao xuống thấp cho bít E.Sau khi đọc thanh ghi lệnh,nếu bit D7(cờ bận )ở mức cao thì LCD bận, không có thông tin hay lệnh nào được xuất đến nó.Khi D7=0 mới có thể gửi lệnh hay dữ liệu đến LCD.Nên kiểm tra bit cờ bận trước khi ghi thông tin lên LCD.
Ngoài LCD hiển thị thì chúng em còn dùng các loại LED phát quang để hiển thị khi áp suất thay đổi..
2.8.3. Khối cảm biến.
Đây là cảm biến chúng em sử dụng trong đề tài
Hình 2.21: cảm biến MPX4115
Đo áp suất dùng cảm biến MPX4115. Tín hiệu từ cảm biến tạo ra các xung vuông có tần số thay đổi phụ thuộc sự biến đổi áp suất của môi trường bên ngoài. Do đó các xung vuông này được đưa vào bộ vi xử lý để đếm số xung trong khoảng thời gian cho phép từ đó có thể tính được giá trị áp suất của môi trường bên ngoài. Đây chính là phương pháp mà người ta sử dụng để đo áp suất trong các hệ thông của các nhà máy để đưa ra cảnh báo…
Các thông số của cảm biến MPX4115 như sau:
+Điện áp định mức : 5V±0.25(DC)
+Dòng định mức : 7mA(DC)
+Thời gian đáp ứng :1ms
+0kpa ≈0.145psi
*nguyên lý hoạt động của cảm biến áp suất.
Có nhiều loại cảm biến áp suất khác nhau.mỗi loại cảm biến có nguyên lý hoạt động khác nhau.ở đây chúng em xin trình bày về cảm biến mà chúng em sử dụng: MPX4115
mô hình 1:
Từ mô hình này ta thấy khi điện áp biến đổi từ 0.2675 đến 4.7669V tương đương với áp suất biến đổi từ 15 đến 115Kpa. Quan hệ giữa sự biến đổi của điện áp và áp suất là quan hệ tuyến tính. Từ đó ta có thể xây dựng được công thức tìm ra áp suất.
Sơ đồ các chân:
Từ mô hình này ta có thể biết được cách đấu nối các chân của cảm biến trong mạch khi sử dụng (style1).
Chân 1 đấu với nguồn ngoài
Chân 2 nối đất
Chân 3 nối với nguồn 5V
Ta có thể đấu theo 3 cách đâu như trên: style1, style2, style3.
Sơ đồ đấu các chân:
Dải áp suất đo.
Dải áp suất mà cảm biến có thể đo dược là từ 15 đến 115Kpa.
2.8.4. Bàn phím.
Bàn phím được sử dụng trong rất nhiều các thiết bị, để giúp người sử dụng lựa chọn các chức năng của thiết bị. Có thể nói giao tiếp bàn phím là một ứng dụng khá quan trọng.
Phím bấm thông dụng nhất có cấu tạo gồm 2 đầu tiếp xúc, mỗi khi chúng ta bấm phím, 2 đầu này sẽ chạm vào nhau (xem hình vẽ ở sơ đồ bên dưới).
Hình 2.22: nút bấm
Ngoài ra còn nhiều loại phím bấm khác, và cấu tạo cũng khác, có thể là phím bấm thường đóng, khi ta bấm phím thì 2 đầu tiếp xúc không thông nhau.
Hoặc cũng có loại phím bấm cảm ứng, dựa trên sự thay đổi điện trở của màng điện trở, hoặc dựa trên sự thay đổi điện dung hay điện cảm mỗi khi có tay người chạm vào.
2.8.5. Khối nguồn.
Máy biến áp 220v/15v
Nguyên lý hoạy động
· Gọi Np, Up, Ip và Ns,Us,Is lần lượt là số vòng dây, hiệu điện thế, dòng điện trong mạch điện sơ cấp và thứ cấp
- Dòng điện chạy qua dây dẫn cuốn sơ cấp tạo ra từ thông
Dòng điện được tạo ra trong cuộn dây sơ cấp khi nối với hiệu điện thế sơ cấp, và 1 từ thông biến thiên trong lõi sắt. Từ thông biến thiên này móc vòng qua quấn dây thứ cấp và cảm ứng trên cuốn dây thứ cấp một hiệu diện thế,nếu nối kín mạch tạo ra một dòng điện:
và
Nếu ΦS = ΦP thì ,
ngoài ra
(máy biến thế lí tưởng).
*ví dụ
Điện áp lưới điện 220v,0.5A
Điện áp sau biến áp 24v ,4.58A
2.8.6. Các loại linh kiện khác.
+ Thạch anh dao động :
· Thạch anh có thể được sử dụng chế tạo các thiết bị tạo ra xung nhịp để ứng dụng trong ngành điện tử, cũng có thể dùng để tạo các tần số mẫu để hiệu chỉnh. Trong mạch chúng em sử dụng thạch anh X1-12MHZ
· X1 : là thạch anh tạo dao động , tần số dao động được ghi trên thân của thach anh, khi thạch anh được cấp điện thì nó tự dao động ra sóng hình sin.thạch anh thường có tần số dao động từ vài trăm KHz đến vài chục MHz.
+ Tranzitor
· Transistor là một linh kiện bán dẫn thường được sử dụng như một thiết bị khuếch đại hoặc một khóa điện tử. Tranzitor là khối đơn vị cơ bản xây dựng nên cấu trúc mạch ở máy tính điện tử và tất cả các thiết bị điện tử hiện đại khác. Vì đáp ứng nhanh và chính xác nên các tranzitor được sử dụng trong nhiều ứng dụng tương tự và số, như khuếch đại, đóng cắt, điều chỉnh điện áp, điều khiển tín hiệu, và tạo dao động.Tranzitor cũng thường được kết hợp thành mạch tích hợp (IC),có thể tích hợp tới một tỷ tranzitor trên một diện tích nhỏ.
Hình 2.23: Một số tranzito
· Cũng giống như điốt, tranzito được tạo thành từ hai chất bán dẫn điện. Khi ghép một bán dẫn điện âm nằm giữa hai bán dẫn điện dương ta được một PNP tranzito. Khi ghép một bán dẫn điện dương nằm giữa hai bán dẫn điện âm ta được một NPN tranzito.
· Các loại Tranzito chúng em dùng trong mạch: 2N2907, 2N2926, 2N3019, 2N3415
+Các loại điện trở...
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG
3.1. Xây Dựng Phần Cứng
Hệ thống sẽ gồm năm khối như đã phân tích ở chương hai, ta sẽ có sơ đồ nguyên lý và mạch mô phỏng như sau.
· mạch mô phỏng một số hình ảnh chạy thử.
a, đo áp suất và hiển thị trên màn hình.
Hình 3.1: hình ảnh mô phỏng chạy thử
b, đo áp suât, điều chỉnh ngưỡng, hiển thị màn hình và đưa ra cảnh báo.
+Điều chỉnh ngưỡng thấp
Hình 3.2
+Cảnh báo ở ngưỡng thấp
Hình 3.3
+điều chỉnh ngưỡng cao.
Hình 3.4
+đưa ra cảnh báo ở ngưỡng cao.
Hình 3.5
3.2. Xây Dựng Phần Mềm
Việc thiết kế phần mềm cho hệ thống chính là việc xây dựng chương trình điều khiển nạp vào Vi điều khiển. Trước tiên phải có sơ đồ thuật toán điều khiển để xử lý các vấn đề về nguyên tắc hoạt động của mạch.
Các vấn đề đặt ra là :
Hiển thị và đưa ra cảnh báo áp suât.
Cài đặt ngưỡng cảnh báo áp suất
Chương trình:
// YEU CAU BAI TOAN
//DO VA HIEN THI AP SUAT TRONG KHOẢNG GIỚI HẠN NÀO ĐÓ. NẾU AP SUAT ĐO NẰM NGOAI GIOI HAN THI DUA RA CANH BAO
//CAM BIEN DUNG LA LA MPX4115 VOI GIOI HAN DO TU 15 TOI 115KP
// DIEN AP RA VOI 15 KP THI Vs=0.2675
//DIEN AP RA VOI 115KP THI Vs=4.76693
//DUNG ADC 10 BIT
#include
#device *=16 adc=10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#include
#define ht input(pin_a4)
#define nut1 input(pin_b0)
#define nut2 input(pin_b1)
#define nut3 input(pin_b2)
#define nut4 input(pin_b3)
int8 tram,chuc,donvi;
int16 kq ;
int8 max=100,min=20;
void convert_bcd(int16 x,float z)
{
float k;int8 b;
tram=x/100; //hang tram
chuc=(x/10)%10; //tach hang tram va hang chuc
donvi=(x%10); // hang doi vi
}
void main()
{
set_tris_a(0xFF);
set_tris_b(0xFF);
setup_adc_ports(AN0_VREF_VREF);
setup_adc(ADC_CLOCK_INTERNAL);
set_tris_c(0x00);
output_c(0x00);
LCD_init();
LCD_putcmd(0x01);
printf(LCD_putchar,"apsuatla:");
while(1)
{
if (nut1)
{
output_low(pin_c2);
if(nut2) max=max+1;
delay_ms(10);
if(nut3)max=max-1;
delay_ms(10);
tram=max/100; //hang tram
chuc=(max/10)%10; //tach hang tram va hang chuc
donvi=(max%10); // hang doi vi
LCD_putcmd(0x01);
printf(LCD_putchar,"as nguong cao");
LCD_putcmd(0xC0);
LCD_putchar(tram+0x30);
LCD_putchar(chuc+0x30);
LCD_putchar(donvi+0x30);
delay_ms(500);
LCD_putcmd(0x01);
printf(LCD_putchar,"ap suat la");
}
else
if (nut4)
{
output_low(pin_c2);
if(nut2) min=min+1;
delay_ms(10);
if(nut3)min=min-1;
delay_ms(10);
tram=min/100; //hang tram
chuc=(min/10)%10; //tach hang tram va hang chuc
donvi=(min%10); // hang doi vi
LCD_putcmd(0x01);
printf(LCD_putchar,"as nguong thap");
LCD_putcmd(0xC0);
LCD_putchar(tram+0x30);
LCD_putchar(chuc+0x30);
LCD_putchar(donvi+0x30);
delay_ms(500);
LCD_putcmd(0x01);
printf(LCD_putchar,"ap suat la");
}
else
{
kq=(float)read_adc();
kq=(float)kq*100/1023+15;
if(kq<min)
{
LCD_putcmd(0x01);
printf(LCD_putchar,"ap suat rat thap");
convert_bcd(kq,kq);
LCD_putcmd(0xC0);
LCD_putchar(tram+0x30);
LCD_putchar(chuc+0x30);
LCD_putchar(donvi+0x30);
printf(LCD_putchar,"kpa");
output_high(pin_c1);
output_low(pin_c2);
delay_ms(2500);
}
else
if(kq>max)
S{
LCD_putcmd(0x01);
printf(LCD_putchar,"ap suat rat cao");
convert_bcd(kq,kq);
LCD_putcmd(0xC0);
LCD_putchar(tram+0x30);
LCD_putchar(chuc+0x30);
LCD_putchar(donvi+0x30);
printf(LCD_putchar,"kpa");
output_high(pin_c0);
output_low(pin_c2);
delay_ms(2500);
}
else
{
output_high(pin_c2);
convert_bcd(kq,kq);
LCD_putcmd(0xC0);
LCD_putchar(tram+0x30);
LCD_putchar(chuc+0x30);
LCD_putchar(donvi+0x30);
printf(LCD_putchar,"kpa");
}
}
}
}