CƠ SỞ LÝ THUYẾT
Một số định nghĩa
Trong đời sống và sản xuất, việc nắm bắt thông tin từ các hệ thống thiết bị là rất quan trọng Để điều chỉnh và kiểm soát các thiết bị, chúng ta cần đánh giá định lượng các thông số như nhiệt độ, áp suất và độ ẩm Do đó, việc áp dụng các phương pháp đo lường chính xác cho các đại lượng vật lý này là điều cần thiết.
- Đo lường: là quá trình đánh giá định lượng đại lượng cần đo để có kết quả bằng số so với đơn vị đo
- Đo lường học: là ngành kỹ thuật nghiên cứu về các phương pháp để đo các đại lượng khác nhau về mẫu và đơn vị đo
- Kỹ thuật đo lường: là ngành kỹ thuật nghiên cứu và ứng dụng các thành quả của đo lường học vào phục vụ sản xuất và đời sống
Cảm biến đóng vai trò quan trọng trong kỹ thuật đo lường, chuyển đổi các đại lượng vật lý thành đại lượng điện tương ứng ở đầu ra Đại lượng điện này cung cấp thông tin cần thiết liên quan đến đại lượng cần đo.
Cảm biến là thiết bị phản ứng với đại lượng cần đo, không mang tính chất điện mà cung cấp đặc trưng điện như điện tích, điện áp, dòng điện hoặc trở kháng, được ký hiệu là s.
Các thông số đặc trưng của cảm biến
1.2.1 Độ nhạy của cảm biến
Thông thường người ta chế tạo cảm biến sao cho có sự liên hệ tuyến tính giữa biến thiên đầu ra s và biến thiên đầu vào m
Trong đó S là độ nhạy của cảm biến, vậy S = s m
Nhà sản xuất cung cấp giá trị độ nhạy S của cảm biến tương ứng với các điều kiện làm việc cụ thể Đơn vị đo độ nhạy phụ thuộc vào nguyên lý hoạt động của cảm biến và các đại lượng liên quan.
Khi thiết kế và sử dụng cảm biến, việc đảm bảo độ nhạy của chúng không thay đổi hoặc ít phụ thuộc vào các yếu tố bên ngoài là rất quan trọng.
- Giá trị đại lượng cần đo và tần số thay đổi của nó
- Thời gian sử dụng (độ già hóa)
- Ảnh hưởng của các đại lượng vật lí khác của môi trường xung quanh
Các bộ lọc cảm biến và dụng cụ đo lường không chỉ đo đại lượng cần thiết mà còn bị ảnh hưởng bởi nhiều yếu tố vật lý khác, dẫn đến sai số giữa giá trị đo và giá trị thực Sai số tuyệt đối, ký hiệu là Δx, thể hiện độ lệch giữa giá trị đo được và giá trị thực x, từ đó có thể xác định sai số tương đối của cảm biến.
Sai số của bộ cảm biến là ước tính, do không thể xác định chính xác giá trị thực của đại lượng cần đo Trong việc đánh giá sai số cảm biến, người ta thường phân loại thành hai loại: sai số hệ thống và sai số ngẫu nhiên.
Sai số hệ thống không phụ thuộc vào số lần đo liên tiếp và có thể không đổi hoặc thay đổi chậm theo thời gian Nguyên nhân chính của sai số hệ thống thường là do hiểu biết sai lệch và không đầy đủ về hệ đo, cũng như điều kiện sử dụng không tốt Các yếu tố này cần được xem xét để giảm thiểu sai số trong quá trình đo lường.
+ Sai số do giá trị đại lượng chuẩn không đúng
+ Sai số do đặc tính của cảm biến
+ Sai số do điều kiện và chế độ sử dụng
+ Sai số do xử lý kết quả đo
Sai số ngẫu nhiên là loại sai số có biên độ và dấu không xác định, với sự xuất hiện không thể đoán trước Mặc dù một số nguyên nhân gây ra sai số ngẫu nhiên có thể dự đoán, nhưng độ lớn của chúng lại không thể xác định trước Các nguyên nhân này có thể bao gồm nhiều yếu tố khác nhau ảnh hưởng đến quá trình đo lường.
+ Sai số do tính không xác định của thiết bị
+ Sai số do tín hiệu ngẫu nhiên
+ Sai số do các đại lượng ảnh hưởng
Để giảm thiểu sai số ngẫu nhiên trong quá trình đo lường, có thể áp dụng nhiều biện pháp hiệu quả như ổn định nhiệt độ và độ ẩm môi trường, sử dụng giá đỡ chống rung, điều chỉnh điện áp nguồn, chọn bộ chuyển đổi tương tự số với độ phân giải phù hợp, che chắn và nối đất thiết bị điện, cũng như sử dụng bộ lọc tín hiệu Bên cạnh đó, việc vận hành đúng cách cũng góp phần quan trọng trong việc giảm thiểu sai số này.
1.2.3 Độ chính xác và độ chính xác lặp lại
- Độ chính xác là đặc trưng của thiết bị cho ra kết quả đo gần với giá trị thực của đại lượng cần đo
- Độ chính xác lặp lại là miền giá trị đầu ra có thể nhận được khi cảm biến đo cùng một giá trị đầu vào nhiều lần
1.2.4 Độ phân giải Độ phân giải đối với mỗi cảm biến là sự thay đổi lớn nhất của giá trị đo mà không làm giá trị đầu ra của cảm biến thay đổi Nói cách khác là giá trị được đo có thể thay đổi bằng độ lớn của độ phân giải mà không làm thay đổi giá trị đầu ra của cảm biến
Bộ cảm biến tuyến tính trong một giải đo xác định rằng độ nhạy S không phụ thuộc vào giá trị của đại lượng đo Mặc dù bộ cảm biến lý tưởng có đầu ra tuyến tính chính xác với đại lượng đo, nhưng thực tế không có đầu đo nào hoàn hảo như vậy.
Khi sử dụng cảm biến không tuyến tính trong mạch đo, cần hiệu chỉnh các thiết bị để đảm bảo rằng tín hiệu điện đầu ra tỷ lệ thuận với sự thay đổi của đại lượng đo đầu vào Quá trình điều chỉnh này được gọi là tuyến tính hóa.
1.2.6 Độ nhanh, thời gian hồi đáp
Độ nhanh của cảm biến là yếu tố quan trọng để đánh giá khả năng theo kịp biến thiên của đại lượng đo Cảm biến có độ nhanh cao là lý tưởng, đặc biệt trong các thiết bị chuyển đổi tốc độ cao như robot và máy công cụ điều khiển số.
Thời gian hồi đáp của cảm biến là khoảng thời gian từ khi tín hiệu đo biến thiên được ghi nhận cho đến khi tín hiệu đầu ra được phát ra Do đó, cảm biến có tốc độ nhanh hơn sẽ có thời gian hồi đáp ngắn hơn.
1.2.7 Giới hạn sử dụng cảm biến
Trong quá trình hoạt động, cảm biến phải chịu tác động của lực cơ khí và nhiệt độ Nếu những tác động này vượt quá ngưỡng cho phép, đặc tính hoạt động của cảm biến sẽ bị thay đổi Do đó, việc hiểu rõ và tuân thủ các giới hạn này là rất quan trọng khi sử dụng cảm biến.
Vùng làm việc danh định của cảm biến là khoảng giá trị mà nó hoạt động hiệu quả trong điều kiện sử dụng bình thường Các giới hạn của vùng này được xác định bởi các ngưỡng mà các đại lượng đo và các đại lượng vật lý liên quan có thể đạt tới mà không ảnh hưởng đến các đặc trưng làm việc của cảm biến.
Vùng không gây hư hỏng là khi các giá trị đo và các đại lượng liên quan vượt quá ngưỡng vùng làm việc danh định nhưng vẫn nằm trong phạm vi an toàn Trong trường hợp này, các đặc trưng của cảm biến có thể bị thay đổi, nhưng những thay đổi này là thuận nghịch Khi các giá trị trở về vùng danh định, các đặc trưng của cảm biến sẽ phục hồi về giá trị ban đầu.
Các đặc trưng của kĩ thuật đo lường
1.3.1 Đại lượng đo (hay tín hiệu đo) a Theo tính chất thay đổi của đại lượng đo
Đại lượng đo ngẫu nhiên tiền định là đại lượng mà chúng ta đã biết trước quy luật thay đổi của nó theo thời gian Tuy nhiên, để xác định đầy đủ, cần đo các thông số như biên độ, tần số và góc pha.
Đại lượng đo ngẫu nhiên là những giá trị có sự biến đổi không theo quy luật theo thời gian Mỗi giá trị của tín hiệu được lấy đều mang tính ngẫu nhiên.
Hầu hết các tín hiệu đo lường thực tế đều mang tính ngẫu nhiên Tuy nhiên, trong một số trường hợp, chúng ta có thể giả định rằng trong suốt quá trình đo, đại lượng được đo có thể là tín hiệu thay đổi chậm hoặc giữ ổn định theo những quy luật đã được xác định.
Khi đại lượng đo ngẫu nhiên thay đổi với tần số cao, các phương pháp đo thông thường không còn hiệu quả, do đó cần áp dụng phương pháp đo lường thống kê Việc biến đổi tín hiệu đo cũng là một yếu tố quan trọng trong quá trình này.
Tín hiệu đo liên tục, hay còn gọi là tín hiệu tương tự, là quá trình biến đổi tín hiệu đo thành dạng tín hiệu tương tự khác Các thiết bị đo tương tự được sử dụng để thực hiện việc này, giúp đảm bảo độ chính xác và tính liên tục trong quá trình đo lường.
Đại lượng đo rời rạc, hay còn gọi là số, là quá trình chuyển đổi tín hiệu đo thành tín hiệu số Điều này liên quan đến việc sử dụng các thiết bị đo số, phù hợp với bản chất của đại lượng đo.
- Đại lượng đo năng lượng: là đại lượng đo mà bản thân nó mang năng lượng như sức điện động, điện trường, từ trường, công suất,…
- Đại lượng đo thông số: là các thông số của mạch điện như điện trở, điện cảm, điện dung hoặc các đại lượng đo vị trí, kích thước
- Đại lượng đo phụ thuộc thời gian: chu kì, tần số, góc pha
Các đại lượng không điện cần phải được chuyển đổi thành tín hiệu điện thông qua bộ chuyển đổi đo lường sơ cấp để thực hiện việc đo lường bằng phương pháp điện.
Thông tin đo lường luôn liên quan chặt chẽ đến môi trường mà đại lượng được đo Khi thực hiện đo, cần đảm bảo rằng các yếu tố môi trường không ảnh hưởng đến thiết bị đo, đồng thời thiết bị đo cũng không được tác động đến đại lượng cần đo.
Thiết bị kỹ thuật này được sử dụng để gia công tín hiệu, biến đổi thông tin đo lường thành dạng dễ hiểu cho người quan sát Chúng sở hữu các tính chất đo lường học, ảnh hưởng trực tiếp đến kết quả và sai số của phép đo.
Giới thiệu về vi điều khiển
1.4.1 Khái quát về vi điêu khiển
Năm 1976, Intel đã ra mắt bộ vi điều khiển 8748, đánh dấu sự khởi đầu cho họ vi điều khiển MCU-48 Vi mạch 8747 được thiết kế với hơn 17.000 transistor, bao gồm CPU, 1kbyte bộ nhớ ROM, 64KB RAM, một bộ đếm/định thời 8 bit và 27 chân vào/ra.
Vi điều khiển (MCU) là một máy tính thu nhỏ tích hợp trên một chip, có khả năng hoạt động cùng với các linh kiện phụ trợ bên ngoài Kể từ sau dòng vi điều khiển 8748, nhiều nhà sản xuất như Intel, Atmel và Siemens đã giới thiệu các bộ vi điều khiển mới phục vụ cho các ứng dụng nhúng.
Vi điều khiển là một cấu trúc nhỏ gọn, bao gồm các linh kiện điện tử có kích thước micro hoặc nano Những linh kiện này được kết hợp với nhau và kết nối với các thiết bị bên ngoài thông qua các chân vi điều khiển.
Kiến trúc máy tính và kiến trúc vi điều khiển có nhiều điểm tương đồng, vì vậy việc tìm hiểu về kiến trúc máy tính sẽ giúp bạn hiểu rõ hơn về kiến trúc vi điều khiển Hai kiến trúc vi điều khiển phổ biến hiện nay là kiến trúc Von Neumann và kiến trúc Harvard Sự khác biệt chính giữa chúng nằm ở cách tổ chức bộ nhớ dữ liệu và bộ nhớ chương trình: kiến trúc Von Neumann kết hợp cả hai loại bộ nhớ này, dẫn đến việc sử dụng đường truyền chung, trong khi kiến trúc Harvard tách biệt bộ nhớ dữ liệu và bộ nhớ chương trình.
Kiến trúc Von Neumann tối ưu hóa việc sử dụng tài nguyên bộ nhớ, trong khi kiến trúc Harvard mang lại tốc độ xử lý nhanh hơn Ngoài ra, dung lượng đường truyền dữ liệu và đường truyền lệnh điều khiển (chương trình) có thể khác nhau, tạo ra những ưu điểm riêng cho mỗi kiến trúc.
Tập lệnh được hiểu là tập hợp mã lệnh nhị phân, cho phép các đơn vị xử lý trung tâm (CPU) nhận diện và thực hiện các tác vụ Dữ liệu mà CPU xử lý chủ yếu là các số nhị phân, do đó, tập lệnh thực hiện những chức năng quan trọng trong quá trình xử lý thông tin.
- Tính toán các con số nhị phân
- Các lệnh để chuyển các giá trị ra thành tín hiệu điện tử ở chân linh kiện
- Các lệnh di chuyển các giá trị giữa các thanh ghi
- Các lệnh điều khiển con trỏ chương trình c Chức năng
Hiện nay, có nhiều loại vi điều khiển với nhiều tính năng tích hợp dưới dạng phần cứng Tuy nhiên, cốt lõi của mọi ứng dụng tự động vẫn là điều khiển động cơ và đọc cảm biến Động cơ đóng vai trò quan trọng trong việc chuyển đổi điện năng thành cơ năng, vì vậy việc thiết kế cảm biến để quan sát là rất cần thiết.
1.4.2 Các bộ vi điều khiển a Các bộ vi điều khiển và các bộ xử lý nhúng
Trong bài viết này, chúng ta sẽ thảo luận về nhu cầu sử dụng các bộ vi điều khiển và so sánh chúng với các bộ vi xử lý như Pentium và các dòng 86 khác Vai trò của các vi điều khiển trong các sản phẩm nhúng sẽ được xem xét kỹ lưỡng Bên cạnh đó, chúng tôi cũng sẽ cung cấp một số tiêu chuẩn và hướng dẫn cách lựa chọn bộ vi điều khiển phù hợp.
Bộ vi xử lý (VXL) ở đây là các bộ vi xử lý công dụng chung như họ Intell 86
Các bộ vi xử lý như 8086, 80286, 80386, Pentium, và họ Motorola 6800 (68000, 68010, 68020, 68030) không tích hợp RAM, ROM hay các cổng vào ra trên chip Do đó, chúng được phân loại là các bộ vi xử lý công dụng chung.
Khi ta sử dụng một bộ vi xử lý công dụng chung chẳng hạn như Pentium hay
Bộ vi xử lý 68040 yêu cầu bổ sung RAM, ROM, cổng vào ra và bộ định thời ngoài để hoạt động, mặc dù điều này làm cho hệ thống trở nên cồng kềnh và tốn kém Tuy nhiên, sự linh hoạt trong việc tùy chỉnh số lượng RAM, ROM và cổng vào ra theo nhu cầu thiết kế là một lợi thế Ngược lại, bộ vi điều khiển tích hợp tất cả các thành phần như CPU, RAM, ROM, cổng vào ra và bộ định thời trên cùng một chip, khiến cho việc bổ sung thêm bộ nhớ hay cổng vào ra trở nên không khả thi Sự cố định này làm cho bộ vi điều khiển trở thành lựa chọn lý tưởng cho các ứng dụng có ngân sách và không gian hạn chế, như trong trường hợp bộ điều khiển TV từ xa, nơi không cần đến công suất tính toán cao.
Khi lựa chọn bộ vi điều khiển, cần cân nhắc kỹ lưỡng về không gian chiếm dụng, công suất tiêu thụ và giá thành trên mỗi đơn vị, đặc biệt trong các ứng dụng yêu cầu thao tác vào – ra để đọc tín hiệu và điều khiển các bit Các yếu tố này thường quan trọng hơn so với công suất tính toán, đặc biệt là với các bộ vi điều khiển như 486 hoặc 8086.
Các bộ vi điều khiển 8 bit chính bao gồm 6811 của Motorola, 8051 của Intel và Pic 16 của Microchip, mỗi loại đều sở hữu một tệp lệnh và thanh ghi riêng Ngoài ra, còn có các bộ vi điều khiển 16 bit và 32 bit từ nhiều nhà sản xuất chip khác nhau Khi lựa chọn bộ vi điều khiển, có ba tiêu chuẩn quan trọng cần xem xét.
- Đáp ứng nhu cầu tính toán của bài toán một cách hiệu quả về mặt giá thành và đầy đủ chức năng có thể nhìn thấy được
- Có sẵn các công cụ phát triển phần mềm chẳng hạn như các trình biên dịch, trình hợp ngữ và gỡ rối
- Nguồn các bộ vi điều khiển có sẵn nhiều và tin cậy [5].
Họ vi điều khiển 8051
1.5.1 Tóm tắt về họ vi điều khiển 8051
Vào năm 1981, hãng Intel giới thiệu một số bộ vi điều khiển được gọi là
Bộ vi điều khiển 8051, được tích hợp trên một chip, bao gồm 128 byte RAM, 4K byte ROM, hai bộ định thời, một cổng nối tiếp và 4 cổng 8 bit, được xem là một “hệ thống trên chip” vào thời điểm ra mắt Là bộ xử lý 8 bit, 8051 chỉ có thể xử lý dữ liệu 8 bit, và dữ liệu lớn hơn sẽ được chia nhỏ Mặc dù có khả năng hỗ trợ ROM trên chip lên đến 64 Kbyte, các phiên bản xuất xưởng ban đầu chỉ có 4 Kbyte Sự phổ biến của 8051 gia tăng khi Intel cho phép các nhà sản xuất khác tạo ra các biến thể miễn là mã chương trình vẫn tương thích với phiên bản gốc Điều này dẫn đến sự ra đời của nhiều phiên bản 8051 với tốc độ khác nhau, nhưng tất cả đều giữ tính tương thích với lệnh của 8051 ban đầu, cho phép chương trình viết cho một phiên bản có thể chạy trên bất kỳ phiên bản nào khác.
1.5.2 Đặc tính vi điều khiển 8051
Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051 Hãng Intel ký hiệu nó như là MCS51.
Bảng 1.1 Các đặc tính của 8051 đầu tiên Đặc tính Số lượng
1.5.3 Sơ đồ khối của họ 8051
Hình 1.1 Sơ đồ khối bên trong của 8051
- Interrupt control: Điều khiển ngắt
- Other registes: Các thanh ghi khác
- CPU: Đơn vị điều khiển trung tâm
- Bus control: Điều khiển Bus
- I/O ports: Các ports vào/ra
- Serial port: Port nối tiếp
- Address/data: Địa chỉ/dữ liệu [2].
1.5.4 Thành viên họ vi điều khiển 8051 a Bộ vi điều khiển 8052
Bộ vi điều khiển 8052 là một phiên bản nâng cấp của 8051, sở hữu tất cả các đặc tính của 8051 nhưng được trang bị thêm 128 byte RAM và một bộ định thời nữa Cụ thể, 8052 có tổng cộng 256 byte RAM, 3 bộ định thời và 8 Kbyte ROM trên chip, thay vì 4 Kbyte như phiên bản 8051.
Bảng 1.2 So sánh các đặc tính của các thành viên họ 8051 Đặc tính 8051 8052 8031
ROM trên chíp 4K byte 8K byte
Bảng 1.2 cho thấy rằng 8051 là một tập con của 8052, điều này có nghĩa là mọi chương trình được viết cho 8051 đều có thể chạy trên 8052, nhưng không phải tất cả chương trình trên 8052 đều tương thích với 8051 Ngoài ra, bộ vi điều khiển 8031 cũng là một phần quan trọng trong hệ thống vi điều khiển.
Chip 8031 là một biến thể của họ vi điều khiển 8051, được coi là phiên bản không có ROM tích hợp, vì nó có 0 Kbyte ROM trên chip Để sử dụng chip này, cần bổ sung ROM ngoài chứa chương trình cho 8031 thực hiện Việc kết nối 8031 với bộ nhớ và cổng vào-ra, chẳng hạn như chip 8255, là cần thiết để giải quyết vấn đề này Ngoài ra, có nhiều phiên bản 8031 với tốc độ khác nhau từ các nhà sản xuất khác nhau.
Chip 8751 có 4 Kbyte bộ nhớ UV-EPROM tích hợp Để phát triển với chip này, cần có bộ đốt PROM và bộ xóa UV-EPROM để xóa nội dung bộ nhớ trước khi lập trình lại Điều này là do ROM trên chip 8751 sử dụng công nghệ UV.
EPROM yêu cầu 20 phút để xóa 8751 trước khi lập trình lại, điều này đã thúc đẩy nhiều nhà sản xuất phát triển các phiên bản FLASH ROM và UV-RAM của 8751 từ nhiều hãng khác nhau Bộ vi điều khiển AT8951 từ công ty cũng là một trong những lựa chọn thay thế.
Chip 8051 phổ biến, như AT89C51, tích hợp ROM trên chip dưới dạng bộ nhớ Flash, lý tưởng cho phát triển nhanh chóng nhờ khả năng xóa trong vài giây, so với 20 phút của 8751 Điều này giúp giảm thiểu nhu cầu sử dụng bộ đốt ROM hỗ trợ Flash mà không cần bộ xóa ROM Tuy nhiên, việc lập trình lại bộ nhớ Flash yêu cầu xóa toàn bộ nội dung ROM, quá trình này được thực hiện bởi bộ đốt PROM, do đó không cần bộ xóa riêng biệt Atmel đang nghiên cứu phiên bản AT89C51 có khả năng lập trình qua cổng COM của máy tính IBM PC để loại bỏ nhu cầu sử dụng bộ đốt PROM.
Kết luận chương 1
Trong chương này, chúng ta đã khám phá lý thuyết cơ bản về đo lường cảm biến, các thông số đặc trưng của cảm biến, cũng như những đặc điểm của kỹ thuật đo lường Ngoài ra, chương còn cung cấp cái nhìn tổng quan về vi điều khiển và họ vi điều khiển 8051.
CÁC LINH KIỆN CHÍNH SỬ DỤNG TRONG MẠCH
Vi điều khiển 89S52
AT89S52 là một vi điều khiển với các tính năng nổi bật như 8Kbyte bộ nhớ EPROM có thể lập trình và xóa nhanh, 128 byte RAM, 32 chân I/O, 3 timer/counter 16 bit, và 6 vectơ ngắt với cấu trúc 2 mức ngắt Nó cũng bao gồm một cổng nối tiếp bán song công, mạch dao động tạo xung Clock và bộ dao động ON-CHIP.
- 8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá
- Tần số hoạt động từ: 0Hz đến 24 MHz
- 3 mức khóa bộ nhớ lập trình
- 64KB vùng nhớ mã ngoài
2.1.2 Sơ đồ và chức năng chân của 89S52
Hình 2.1 Sơ đồ chân của 89S52
Port 0, từ chân 32 đến chân 39 (P0.0 đến P0.7), có hai chức năng chính Trong các thiết kế nhỏ không sử dụng bộ nhớ mở rộng, Port 0 được dùng cho nhiệm vụ xuất/nhập Tuy nhiên, trong các thiết kế lớn hơn có bộ nhớ ngoài, Port 0 hoạt động như bus địa chỉ và bus dữ liệu đa hợp.
- Port 1: Từ chân 1 đến chân 8 (P1.0 _ P1.7) Port 1 là port IO dùng cho giao tiếp với thiết bị bên ngoài nếu cần
Port 2, từ chân 21 đến chân 28 (P2.0 đến P2.7), là một cổng có chức năng kép, được sử dụng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ cho các thiết bị sử dụng bộ nhớ mở rộng.
- Port 3: Từ chân 10 đến chân 17 (P3.0 _ P3.7) Port 3 là port có tác dụng kép
Các chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các đặc tính đặc biệt của 89S52 như ở bảng sau:
Bảng 2.1 Chức năng các chân của port 3
Bit Tên Chức năng P3.0 RXD Dữ liệu nhận cho Port nối tiếp P3.1 TXD Dữ liệu truyền cho Port nối tiếp P3.2 INT0 Ngắt bên ngoài 0
P3.3 INT1 Ngắt ngoài 1 P3.4 T0 Ngõ vào của Timer/counter0 P3.5 T1 Ngõ vào của Timer/counter1 P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài
P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài
- PSEN (Program store enable): Chân cho phép bộ nhớ chương trình
PSEN là tín hiệu ngõ ra cho phép đọc bộ nhớ chương trình mở rộng, thường được kết nối với chân OE của Eprom để đọc các byte mã lệnh Khi 89S52 lấy lệnh, PSEN ở mức thấp, và các mã lệnh được đọc từ Eprom qua bus dữ liệu, sau đó được chốt vào thanh ghi lệnh bên trong 89S52 để giải mã Trong quá trình thi hành chương trình từ ROM nội, PSEN sẽ ở mức cao.
- ALE (Address Latch Enable): Chân cho phép chốt địa chỉ
Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 hoạt động như bus địa chỉ và dữ liệu, do đó cần tách biệt các đường dữ liệu và địa chỉ Tín hiệu ALE tại chân thứ 30 kết hợp với IC chốt, tạo ra một xung trong khoảng thời gian Port 0 đảm nhận vai trò địa chỉ thấp, giúp chốt địa chỉ tự động hoàn toàn.
- EA (External Access): Chân truy xuất ngoài
Chân tín hiệu vào EA (chân 31) của 89S52 có hai trạng thái: mức 1 hoặc mức 0 Khi ở mức 1, 89S52 thực hiện chương trình từ bộ nhớ ROM nội, trong khi ở mức 0, nó thực thi chương trình từ bộ nhớ ROM ngoại Ngoài ra, chân EA cũng được sử dụng làm chân cấp nguồn 21V khi lập trình cho Eprom trong 89S52.
Khi ngõ vào tín hiệu đạt mức cao ít nhất 2 chu kỳ máy, các thanh ghi bên trong sẽ được nạp giá trị thích hợp để khởi động hệ thống Đồng thời, khi cấp điện, mạch cần phải tự động reset.
- Các ngõ vào bộ dao động X1, X2:
Bộ tạo dao động tích hợp trong 89S52 cho phép người dùng dễ dàng chỉ cần kết nối thêm thạch anh và các tụ điện Tần số của thạch anh có thể được điều chỉnh tùy theo nhu cầu sử dụng của từng người.
2.1.3 Tổ chức bộ nhớ bên trong 89S52
Bộ nhớ trong của 89S52 bao gồm hai loại chính là ROM và RAM RAM của 89S52 được cấu thành từ nhiều thành phần, bao gồm phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi, cùng với các thanh ghi chức năng đặc biệt.
AT89S52 sử dụng cấu trúc bộ nhớ Harvard với vùng bộ nhớ riêng biệt cho chương trình và dữ liệu Mặc dù có khả năng lưu trữ chương trình và dữ liệu bên trong, AT89S52 vẫn hỗ trợ kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu bên ngoài.
Bảng 2.2 Bản đồ bộ nhớ Data bên trong Chip 89S52 được tổ chức như sau:
RAM đa dụng có địa chỉ từ 30h đến 7Fh có thể truy xuất mỗi lần 8 bit bằng cách dùng chế độ định địa chỉ trực tiếp hay gián tiếp
- RAM địa chỉ hóa từng bit
Vùng địa chỉ từ 20h đến 2Fh, với kích thước 16 byte, có khả năng hoạt động như RAM đa dụng, cho phép truy xuất dữ liệu mỗi lần 8 bit Ngoài ra, nó cũng hỗ trợ truy xuất từng bit thông qua các lệnh xử lý bít.
Vùng địa chỉ từ 00h đến 1Fh được chia thành 4 bank thanh ghi: bank 0 (00h – 07h), bank 1 (08h – 0Fh), bank 2 (10h – 17h) và bank 3 (18h – 1Fh), với các thanh ghi tương ứng từ R0 đến R7 Sau khi khởi động, hệ thống sẽ tự động chọn sử dụng bank 0.
Trong hệ thống có 4 bank thanh ghi, chỉ một bank thanh ghi có thể được truy xuất bởi các thanh ghi R0 đến R7 tại một thời điểm Việc thay đổi bank thanh ghi được thực hiện thông qua thanh ghi trạng thái chương trình (PSW).
* Chức năng từng bit trạng thái chương trình
- Cờ Cary CY(Carry Flag):
Cờ nhớ được sử dụng trong các phép toán học để xác định tình trạng tràn hoặc mượn C cụ thể là 1 nếu phép cộng xảy ra tràn hoặc phép trừ có mượn, trong khi C sẽ là 0 nếu phép cộng không tràn và phép trừ không có mượn.
- Cờ Carry phụ AC(Auxiliary Cary Flag):
Khi thực hiện phép cộng các giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC sẽ được thiết lập nếu kết quả 4 bit thấp nằm trong khoảng từ 0AH đến 0FH Nếu không, AC sẽ bằng 0.
Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng
- Những bit chọn bank thanh ghi truy xuất:
RS1 và RS0 quyết định dãy thanh ghi tích cực Chúng được xóa sau khi reset hệ thống và được thay đổi bởi phần mềm khi cần thiết
Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng là Bank 0, Bank1, Bank2 và Bank3
- Cờ tràn OV(Over Flag):
Cờ tràn được set sau một lệnh cộng hoặc trừ nếu có sự tràn toán học
Cảm biến nhiệt độ DS18B20
2.2.1 Đặc điểm kỹ thuật của DS18B20
DS1820 là sản phẩm của công ty Dallas (Hoa Kỳ), nổi bật với việc phát triển bus một dây và các cảm biến một dây Cảm biến DS1820 có dạng vỏ TO-92 với 3 chân, thường được sử dụng trong nhiều ứng dụng, trong khi dạng vỏ SOIC với 8 chân chuyên dụng cho việc đo nhiệt độ bề mặt, bao gồm cả nhiệt độ da người.
Hình 2.7 Sơ đồ chân của DS1820
Các đặc điểm kỹ thuật của cảm biến DS1820 có thể kể ra một cách tóm tắt như sau:
- Sử dụng giao diện một dây nên chỉ cần có một chân ra để truyền thông
Độ phân giải đo nhiệt độ là 9 bit, với dải đo từ -55°C đến 125°C và bước nhảy 0,1°C Độ chính xác có thể đạt tới 0,5°C thông qua việc hiệu chỉnh phần mềm.
Các ứng dụng đo lường đa điểm rất thích hợp với việc sử dụng nhiều đầu đo nối trên một bus, được gọi là bus một dây (1-wire bus).
- Không cần thêm linh kiện bên ngoài
- Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng, từ 3,0 V đến 5,5 V một chiều và có thể được cấp thông qua đường dẫn dữ liệu
- Dòng tiêu thụ tại chế độ nghỉ cực nhỏ
- Thời gian lấy mẫu và biến đổi thành số tương đối nhanh, không quá 200ms
Mỗi cảm biến có mã định danh 64 bit duy nhất được lưu trữ trong bộ nhớ ROM trên chip, với giá trị nhị phân được khắc bằng tia laze Đầu đo nhiệt độ DS1820 cung cấp dữ liệu nhiệt độ dưới dạng mã nhị phân 9 bit Thông tin được truyền và nhận qua giao diện 1-wire, chỉ cần hai đường dẫn: một cho tín hiệu và một cho dây đất, giúp kết nối vi điều khiển với điểm đo Nguồn nuôi cho các thao tác ghi/đọc/chuyển đổi có thể lấy từ đường tín hiệu, không cần thêm dây cấp điện riêng.
Vi mạch đo nhiệt độ DS1820 được trang bị mã số định danh duy nhất, cho phép nhiều vi mạch cùng kết nối vào một bus 1-wire mà không bị nhầm lẫn, giúp lắp đặt nhiều cảm biến nhiệt độ tại nhiều vị trí khác nhau một cách dễ dàng và tiết kiệm chi phí Theo tiêu chuẩn 1-wire, độ dài tối đa của bus có thể lên đến 300 m và số lượng cảm biến kết nối không bị giới hạn Để nâng cao độ phân giải trên 9 bit, cần thực hiện các phép tính bổ sung bằng phần mềm dựa trên dữ liệu từ các thanh ghi nhiệt độ, COUNT REMAIN và COUNT PER C trong nhóm thanh ghi nháp.
Cảm biến nhiệt độ DS1820 được trang bị một mã 64 bit duy nhất, được lưu trữ trong bộ nhớ ROM từ khi sản xuất thông qua kỹ thuật laze Mã 64 bit này có ý nghĩa cụ thể, được giải thích chi tiết trong bảng 2.3.
Bảng 2.3 Nội dung dãy mã 64 bit trên bộ nhớ ROM
8-bit CRC 48-bit Serial Number 8-bit Family Code 10h
Như vậy dãy mã được chia ra thành 3 nhóm, trong đó:
- 8 bit đầu tiên là mã định danh họ một dây, mã của DS1820 là 10h
- 48 bit tiếp theo là mã số xuất xưởng duy nhất, nghĩa là mỗi cảm biến
DS1820 chỉ có một số mã
Byte mã kiểm tra CRC (cyclic redundancy check) có ý nghĩa quan trọng trong việc xử lý dữ liệu 8 bit, được tính từ 56 bit đầu tiên của dãy mã trên ROM Để truy cập cảm biến một dây DS1820, cần sử dụng hai nhóm lệnh: lệnh ROM và lệnh chức năng Sau khi thiết bị chủ, thường là vi điều khiển, phát hiện xung presence pulse, nó sẽ xuất ra lệnh ROM Có 5 loại lệnh ROM, mỗi lệnh dài 8 bit, và thiết bị chủ phải cung cấp lệnh ROM phù hợp trước khi gửi lệnh chức năng để giao tiếp với cảm biến DS18b20.
DS18b20 có 3 chân chức năng chính:
1 Chân GND: Chân nối đất
2 Chân DQ: Chân trao đổi dữ liệu, đồng thời là chân cấp nguồn cho toàn bộ hoạt động của IC nếu chân VCC không sử dụng Khi kết nối với vi điều khiển thì cần phải có điện trở kéo lên khoảng 4.7k
3 Chân VCC: Chân cấp nguồn [7]
2.2.2 Các bước trao đổi dữ liệu giữa vi điều khiển và DS18b20
Quá trình khởi tạo giữa vi điều khiển và cảm biến DS18b20 bắt đầu bằng một xung reset từ vi điều khiển Sau đó, DS18b20 gửi xung presence để xác nhận sự hiện diện của cả hai thiết bị, từ đó khởi động quá trình trao đổi dữ liệu.
Các lệnh điều khiển ROM hoạt động với mã serial 64 bits và được phát ra sau quá trình khởi tạo, giúp vi điều khiển nhận biết số lượng và loại thiết bị trên bus Có tổng cộng 5 lệnh điều khiển ROM.
Khi hệ thống hoạt động, vi điều khiển sử dụng lệnh để kiểm tra mã ROM của tất cả thiết bị trên bus, giúp xác định số lượng và loại thiết bị Nếu chỉ có một thiết bị trên bus, lệnh Read_ROM có thể được sử dụng thay cho lệnh Search_ROM Sau mỗi lần thực hiện lệnh Search_ROM, cần quay lại quá trình khởi tạo để reset hệ thống.
Lệnh cho phép đọc 8 byte mã khắc laser trên ROM, bao gồm 8 bit mã định danh linh kiện (10h), 48 bit số xuất xưởng và 8 bit kiểm tra CRC Lưu ý rằng lệnh này chỉ được sử dụng khi trên bus có một cảm biến DS1820; nếu không, sẽ xảy ra xung đột dữ liệu giữa các thiết bị.
Lệnh này cho phép bộ điều khiển bus chọn ra một cảm biến DS1820 cụ thể trong số nhiều cảm biến cùng nối vào bằng cách gửi đi một chuỗi 64 bit ROM Chỉ cảm biến DS1820 có 64 bit ROM trùng khớp với chuỗi vừa gửi sẽ phản hồi các lệnh tiếp theo, trong khi các cảm biến không trùng khớp sẽ chờ một xung reset Lệnh này được áp dụng cho cả trường hợp có một cảm biến một dây và nhiều cảm biến một dây.
Lệnh này cho phép thiết bị điều khiển truy cập trực tiếp vào các lệnh bộ nhớ của DS18B20 mà không cần gửi chuỗi mã 64 bit ROM, giúp tiết kiệm thời gian chờ đợi Tuy nhiên, phương pháp này chỉ hiệu quả khi trên bus chỉ có một cảm biến.
Tiến trình thực hiện lệnh này tương tự như lệnh Search ROM, nhưng cảm biến DS1820 chỉ phản hồi khi có điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng Điều kiện cảnh báo được xác định khi giá trị nhiệt độ đo được lớn hơn giá trị TH và nhỏ hơn giá trị TL, là hai ngưỡng nhiệt độ cao nhất và thấp nhất đã được thiết lập trong bộ nhớ của cảm biến Sau khi lệnh này được thực hiện, vi điều khiển cần khởi động lại quá trình.
3 Lệnh chức năng bộ nhớ
Cảm biến độ ẩm hs1101
Hs1101 là loại cảm biến độ ẩm, độ chính xác +-2% Dãy nhiệt độ từ -40 đến
100 o C Cảm biến hs1101 được dùng phổ biến trong cuộc sống, ngoài ra nó còn kết hợp với cảm biến ds18b20 dùng đo nhiệt độ [7].
Hình2.8 Hình ảnh của HS1101 2.3.2 Nguyên lý làm việc của hs1101
Cảm biến HS1101 là một cảm biến điện dung, hoạt động dựa trên nguyên lý rằng điện dung của nó sẽ thay đổi khi độ ẩm môi trường thay đổi Để đo độ ẩm, người ta thiết kế mạch đo điện dung cho HS1101, thường kết hợp với IC NE555 Khi giá trị điện dung của HS1101 thay đổi, tần số đầu ra của IC NE555 cũng sẽ thay đổi theo Do đó, bằng cách đo tần số đầu ra, ta có thể xác định được điện dung của HS1101 và từ đó tính toán độ ẩm.
Hình 2.9 Sơ đồ ghép nối hs1101 vói IC 555
IC 555
Hình 2.10 Hình ảnh của IC 555
IC thời gian 555, được giới thiệu vào năm 1971 bởi công ty Signetics Corporation với hai dòng sản phẩm SE555 và NE555, là loại máy thời gian đầu tiên và cung cấp giải pháp ổn định với chi phí thấp cho các nhà thiết kế mạch điện tử Sau 10 năm, một số nhà sản xuất đã ngừng sản xuất loại IC này do cạnh tranh và các lý do khác, nhưng nhiều công ty khác vẫn tiếp tục phát triển và sản xuất các dòng IC 555 mới.
555 hiện nay được sử dụng khá phổ biến ở các mạch tạo xung, đóng cắt hay là những mạch dao động khác
+ Điều chế được độ rộng xung (PWM)
+ Điều chế vị trí xung (PPM) (Hay dùng trong thu phát hồng ngoại)
Hình 2.11 Sơ đồ chân của IC 555
IC NE555 gồm có 8 chân
+ Chân số 1(GND): cho nối GND để lấy dòng cấp cho IC hay chân còn gọi là chân chung
Chân số 2 (TRIGGER) là đầu vào có điện áp thấp hơn mức so sánh, được sử dụng như một chân chốt hoặc ngõ vào cho tần số áp Mạch so sánh sử dụng transistor PNP với điện áp chuẩn đạt 2/3 Vcc.
Chân số 3 (OUTPUT) là chân dùng để lấy tín hiệu ra logic, với trạng thái tín hiệu được xác định theo mức 0 và 1 Mức 1 tương ứng với điện áp cao gần bằng Vcc, trong khi mức 0 tương đương với 0V Tuy nhiên, trong thực tế, mức 0 này không hoàn toàn là 0V mà nằm trong khoảng từ 0.3V đến 0.75V.
Chân số 4 (RESET) được sử dụng để định mức trạng thái ra Khi chân 4 nối với masse, ngõ ra sẽ ở mức thấp Ngược lại, khi chân 4 được kết nối với mức áp cao, trạng thái ngõ ra sẽ phụ thuộc vào mức áp trên chân 2 và 6 Để tạo dao động trong mạch, chân này thường được nối với VCC.
+ Chân số 5(CONTROL VOLTAGE): Dùng làm thay đổi mức áp chuẩn trong
IC 555 thường sử dụng các điện trở ngoài hoặc biến áp để kết nối chân GND Mặc dù chân này có thể không cần nối, nhưng để giảm thiểu nhiễu, người ta thường kết nối chân số 5 với GND qua tụ điện có giá trị từ 0.01uF đến 0.1uF Các tụ điện này giúp lọc nhiễu và duy trì điện áp ổn định.
+ Chân số 6(THRESHOLD): là một trong những chân đầu vào so sánh điện áp khác và cũng được dùng như 1 chân chốt
Chân số 7 (DISCHAGER) hoạt động như một khóa điện tử, được điều khiển bởi tín hiệu từ chân 3 Khi chân 3 ở mức áp thấp, khóa này sẽ đóng lại, và khi chân 3 ở mức cao, khóa sẽ mở ra Chân 7 cũng tự nạp và xả điện cho mạch R-C khi IC 555 được sử dụng như một tầng dao động.
Chân số 8 (Vcc) là chân cung cấp điện áp và dòng cho IC hoạt động; nếu thiếu chân này, IC sẽ không hoạt động Điện áp được cấp cho chân Vcc nằm trong khoảng từ 2V đến 18V.
Tìm hiểu về LCD 16x2
Màn hình LCD (Liquid Crystal Display) là thiết bị hiển thị sử dụng tinh thể lỏng để điều chỉnh ánh sáng, mang lại hình ảnh sắc nét và tiết kiệm điện Với thiết kế phẳng, LCD được ưa chuộng trong nhiều ứng dụng vi điều khiển nhờ khả năng hiển thị đa dạng ký tự, dễ dàng tích hợp vào mạch qua nhiều giao thức khác nhau, tiêu tốn ít tài nguyên hệ thống và có giá thành hợp lý.
2.5.2 Sơ đồ chân của LCD 16x2
Hình 2.13 Sơ đồ chân của LCD 16x2
Bảng 2.4 Bảng chức năng các chân của LCD 16x2
Chân Kí hiệu I/O Chức năng
3 Vee - Chỉnh độ tương phản
4 RS I Nhập lệnh/dữ liệu
Kết luận chương 2
Trong chương này, chúng ta đã khám phá cấu tạo, thông số kỹ thuật và nguyên lý hoạt động của các linh kiện như vi điều khiển AT89S52, cảm biến nhiệt độ DS18B20, cảm biến độ ẩm HS1101, IC 555 và màn hình hiển thị LCD Những kiến thức này sẽ giúp chúng ta củng cố nền tảng trước khi tiến hành tính toán, thiết kế và chế tạo mạch.
THIẾT KẾ CHẾ TẠO MẠCH
Sơ đồ khối của mạch
Hình 3.1 Sơ đồ khối của mạch 3.1.1 Khối vi điều khiển
Khối này dùng vi điều khiển 89S52:
Hình 3.2 khối vi điều khiển
Khối cảm biến Khối vi xử lý Khối hiện thị Khối hiển thị
Khối nguồn là phần trung tâm của mạch, có nhiệm vụ nhận và xử lý tín hiệu từ các khối cảm biến, từ đó điều khiển hiển thị trên LCD.
3.1.2 Khối cảm biến a Khối cảm biến nhiệt độ
Hình 3.3 Sơ đồ khối cảm biến nhiệt độ
Khối này có chức năng xác định nhiệt độ môi trường sau đó gửi tín hiệu cho khối vi điều khiển để xử lý
Bên trong cảm biến DS18b20, có một bộ chuyển đổi nhiệt độ sang giá trị số, với dữ liệu được lưu trữ trong các thanh ghi của bộ nhớ scratchpad Độ phân giải nhiệt độ có thể được cấu hình ở các chế độ 9 bits, 10 bits, 11 bits, và 12 bits, với chế độ mặc định là 12 bits Để bắt đầu quá trình đọc nhiệt độ và chuyển đổi từ giá trị tương tự sang giá trị số, vi điều khiển sẽ gửi lệnh Convert T [44h] Sau khi quá trình chuyển đổi hoàn tất, giá trị nhiệt độ sẽ được lưu trong hai thanh ghi nhiệt độ trong bộ nhớ scratchpad, và IC sẽ trở về trạng thái nghỉ.
Nhiệt độ lưu bên trong DS18b20 được tính ở nhiệt độ Celcius nếu tính ở nhiệt độ Fahrenheit cần phải xây dựng thêm bảng chuyển đổi nhiệt độ
Giá trị nhiệt độ được lưu trữ trong bộ nhớ với kích thước 2 bytes (16 bits), trong đó bit cao nhất (S) xác định dấu của giá trị Nếu S = 0, giá trị nhiệt độ là dương, còn nếu S = 1, giá trị nhiệt độ là âm Các số âm được lưu trữ theo dạng bù 2.
Cấu hình độ phân giải 12 bits sử dụng tất cả các bit, trong khi độ phân giải 11 bits không sử dụng bit 0 Tương tự, với cấu hình 10 bits, bit 1 và bit 0 không được sử dụng, và ở độ phân giải 9 bits, các bit 2, 1 và 0 cũng không được sử dụng.
Nhiệt độ được lưu trữ trong hai thanh ghi bộ nhớ sẽ được so sánh với các thanh ghi ngưỡng nhiệt độ TH và TL, mà người dùng đã quy định và không thay đổi khi mất điện Khối cảm biến độ ẩm cũng đóng vai trò quan trọng trong hệ thống này.
Hình 3.4 Khối cảm biến độ ẩm
Cảm biến HS1101 là một cảm biến điện dung, hoạt động dựa trên nguyên lý rằng điện dung của nó sẽ thay đổi khi độ ẩm môi trường thay đổi Để đo độ ẩm, người ta thiết kế mạch đo điện dung cho HS1101, thường kết hợp với IC NE555 Sự thay đổi giá trị điện dung của HS1101 sẽ dẫn đến sự thay đổi tần số đầu ra của IC 555, do đó chỉ cần đo tần số đầu ra để xác định điện dung của HS1101 và từ đó suy ra độ ẩm.
Cách thức tính độ ẩm:
Ta có công thức tính tần số như sau:
Ta có công thức liên hệ giữa độ ẩm và điện dung
C = C@55%*( 1.25*10 -7 RH 3 – 1.36*10 -5 RH 2 + 2.19*10 -3 RH + 9*10 -1 ) (3.2) Trong đó:
- C@55%= 180pF( tài liệu của hãng)
- C chính là điện dung đo được
Từ mối quan hệ trên ta có thể tính được giá trị độ ẩm qua tần số [4]
Khối hiện thị có chức năng nhận tín hiệu điều khiển từ vi điều khiển để hiển thị giá trị nhiệt độ, độ ẩm
Ta lựa chọn LCD 16x2 để hiện thị vì nó có nhiều ưu điểm như:
- Màn hình phẳng, cho hình ảnh sáng chân thật, tiết kiệm điện
- Có khả năng hiện thị kí tự đa dạng, trực quan, dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau
- Tốn rất ít tài nguyên hệ thống và giá thành rẻ.
Sơ đồ nguyên lý
Hình 3.6 Sơ đồ nguyên lý của mạch điện
Mạch đo nhiệt độ và độ ẩm sử dụng cảm biến DS18B20 và HS1101 Khi cấp nguồn, cảm biến DS18B20 ghi nhận sự thay đổi nhiệt độ và lưu trữ vào thanh ghi scratchpad Vi điều khiển đọc giá trị nhiệt độ từ DS18B20 và hiển thị trên LCD Cảm biến độ ẩm HS1101 kết hợp với IC 555, khi độ ẩm thay đổi, giá trị điện dung của HS1101 cũng thay đổi, dẫn đến sự thay đổi tần số đầu ra của IC 555 Vi điều khiển sẽ tính toán tần số đầu ra này để xác định độ ẩm.
555 rồi so sánh kết quả và điều khiển cho LCD hiển thị giá trị độ ẩm.
Sơ đồ mạch in
Hình 3.7 Sơ đồ mạch in
Lưu đồ thuật toán
Hình 3.8 Lưu đồ thuật toán toàn mạch
Ngắt Timer : Tạo chu kì tính và hiển thị
Tính toán, hiển thị LCD: + Nhiệt độ : Ds18b20 + Độ ẩm từ xung của HS1101 kết hợp NE555
Chờ tại while(1) cuối CT
3.4.2 Lưu đồ đo nhiệt độ
Hình 3.9 Lưu đồ đo nhiệt độ
+ Hàm ghi dữ liệu vào ds18b20
+ Hàm đọc dữ liệu ra từ ds18b20
Thiết lập hàm xử lí đọc giá trị nhiệt độ từ ds18b20
I