ứng dụng vi điều khiển thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng led 7 đoạn

24 433 0
ứng dụng vi điều khiển thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng led 7 đoạn

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 – Giới thiệu tổng quan về họ Vi điều khiển 8051 AT89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượng cao, công suất thấp với 4 KB PEROM (Flash Programeable and erasable read only memory). Các đặc điểm của 8951 được tóm tắt như sau: 4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghi xóa tới 1000 chu kỳ Tần số hoat động từ 0 Hz đến 24 MHz 3 mức khóa bộ nhớ lập trình 2 bộ TimerCounter 16 bit 128 Byte RAM nội 4 Port xuấtnhập (IO) 8 bit Giao tiếp nối tiếp 64 KB vùng nhớ mã ngoài

Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn Phần I – Cơ sở lý thuyết Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn – Giới thiệu tổng quan họ Vi điều khiển 8051 AT89C51 vi điều khiển bit, chế tạo theo công nghệ CMOS chất lượng cao, công suất thấp với KB PEROM (Flash Programeable and erasable read only memory) Các đặc điểm 8951 tóm tắt sau: - 4KB nhớ, lập trình lại nhanh, có khả ghi xóa tới 1000 chu kỳ - Tần số hoat động từ Hz đến 24 MHz - mức khóa nhớ lập trình - Timer/Counter 16 bit - 128 Byte RAM nội - Port xuất/nhập (I/O) bit - Giao tiếp nối tiếp - 64 KB vùng nhớ mã - 64 KB vùng nhớ liệu - Xử lý Boolean (hoạt động bit đơn) - 210 vị trí nhớ định vị bit - 4μs cho hoạt động nhân chia Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn a – Sơ đồ khối sơ đồ chân AT89C51 INT1\ INT0\ SERIAL PORT TEMER0 TEMER1 TEMER2 8032\8052 128 byte RAM 8032\8052 INTERRUPT CONTROL OTHER REGISTER ROM 0K: 8031\8032 4K:8951 8K:8052 128 byte RAM TEMER2 8032\8052 TEMER1 TEMER1 CPU BUS CONTROL I/O PORT OSCILATOR EA\ RST ALE\ PSEN\ P0 P P P Address\Data SERIAL PORT TXD RXD Hình – Sơ đồ khối AT89C51 Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn Hình – Sơ đồ chân AT89C51 b – Chức chân AT89C51 + Port (P0.0 – P0.7 hay chân 32 – 39): Ngoài chức xuất nhập ra, port bus đa hợp liệu địa (AD0 – AD7), chức sử dụng AT89C51 giao tiếp với thiết bị ngồi có kiến trúc bus Hình – Port Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn + Port (P1.0 – P1.7 hay chân – 8): có chức xuất nhập theo bit byte Ngoài ra, chân P1.5, P1.6, P1.7 dùng để nạp ROM theo chuẩn ISP, chân P1.0 P1.1 dùng cho Timer Hình – Port + Port (P2.0 – P2.7 hay chân 21 – 28): port có cơng dụng kép Là đường xuất nhập byte cao bus địa thiết kế dùng nhớ mở rộng Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn Hình – Port + Port (P3.0 – P3.7 hay chân 10 – 17): chân port ngồi chức xuất nhập cịn có số chức đặc biệt sau: Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tên RXD TXD INT0 INT1 T0 T1 WR RD Chức chuyển đổi Dữ liệu nhận cho port nối tiếp Dữ liệu truyền cho port nối tiếp Ngắt bên Ngắt bên Ngõ vào Timer/Counter Ngõ vào Timer/Counter Xung ghi nhớ liệu Xung đọc nhớ liệu ngồi Hình – Port + RST (Reset – chân 9): mức tích cực chân mức 1, để reset ta phải đưa mức (5V) đến chân với thời gian tối thiểu chu kỳ máy (tương đương 2µs thạch anh 12MHz Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn + XTAL 1, XTAL 2: AT89S52 có dao động chip, thường nối với dao động thạch anh có tần số lớn 33MHz, thôn thường 12MHz + EA (External Access): EA thường mắc lên mức cao (+5V) mức thấp (GND) Nếu mức cao, vi điều khiển thi hành chương trình từ ROM nội Nếu mức thấp, chương trình thi hành từ nhớ mở rộng + ALE (Address Latch Enable): ALE tín hiệu để chốt địa vào ghi bên nửa đầu chu kỳ nhớ Sau đường port dùng để xuất nhập liệu nửa chu kỳ sau nhớ + PSEN (Program Store Enable): PSEN điều khiển phép nhớ chương trình mở rộng thường nối với đến chân /OE (Output Enable) EPROM phép đọc bytes mã lệnh PSEN mức thấp thời gian đọc lệnh Các mã nhị phân chương trình đọc từ EPROM qua Bus chốt vào ghi lệnh vi điều khiển để giải mã lệnh Khi thi hành chương trình ROM nội, PSEN mức thụ động (mức cao) + Vcc, GND: AT89S52 dùng nguồn chiều có dải điện áp từ 4V – 5.5V cấp qua chân 40 (Vcc) chân 20 (GND) – Giới thiệu IC ADC0804 Các chuyển đổi ADC thuộc thiết bị sử dụng rộng rãi để thu liệu Các máy tính số sử dụng giá trị nhị phân, giới vật lý đại lượng dạng tương tự (liên tục) Nhiệt độ, áp suất (khí chất lỏng), độ ẩm vận tốc Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn số đại lượng vật lý giới thực mà ta gặp ngày Một đại lượng vật lý chuyển dòng điện điện áp qua thiết bị gọi biến đổi Các biến đổi coi cảm biến Mặc dù có cảm biến nhiệt, tốc độ, áp suất, ánh sáng nhiều đại lượng tự nhiên khác chúng cho tín hiệu dạng dịng điện điên áp dạng liên tục Do vậy, ta cần chuyển đổi tương tự số cho vi điều khiển đọc chúng Một chip ADC sử dụng rộng rãi phổ biến ADC0804 Hình – Sơ đồ chân ADC0804 Chip ADC0804 chuyển đổi tương tự số thuộc họ ADC800 hãng National Semiconductor Chip nhiều hãng khác sản xuất Chip có điện áp ni +5V v độ phân giải bit Ngồi độ phân giải thời gian chuyển đổ i tham số quan trọng đánh giá ADC Thời gian chuyển đổi định nghĩa thời gian mà ADC cần để chuyển đầu vào tương tự thành số nhị phân Đối với Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn ADC0804 thời gian chuyển đổi phụ thuộc vào tần số đồng hồ đ ược cấp tới chân CLK CLK IN không bé 110µs Các chân khác ADC0804 có chức sau: + CS (Chip select): Chân số 1, chân chọn Chip, đầu vào tích cực mức thấp sử dụng để kích hoạt Chip ADC0804 Để truy cập ADC0804 th ì chân phải mức thấp + RD (Read): Chân số 2, tín hiệu vào, tích cực mức thấp Các chuyển đổi đầu vào tương tự thành số nhị phân giữ ghi RD sử dụng để có liệu chyển đổi tới đầu ADC0804 Khi CS = có xung cao xuống thấp áp đến chân RD liệu dạng số bit đưa tới chân liệu (DB0 – DB7) + WR (Write): Chân số 3, chân vào tích c ực mức thấp dùng để báo cho ADC biết bắt đầu trình chuyển đổi Nếu CS = WR tạo xung cao xuống thấp ADC0804 bắt đầu trình chuyển đổi giá trị đầu vào tương tự Vin số nhị phân bit Khi việc chuyển đổi hồn tất chân INTR ADC hạ xuống thấp + CLK IN CLK R: CLK IN (chân số 4), chân vào nối tới đồng hồ ngo ài sử dụng để tạo thời gia n Tuy nhiên ADC0804 c ũng có tạo xung đồng hồ ri êng Để dùng đồng hồ riêng chân CLK IN CLK R (chân s ố 19) nối với tụ điện v điện trở (như hình vẽ) Khi tần số xác định biểu thức: F = 1/ 1.1RC Với R = 10 kΩ, C = 150 pF tần số f = 606 kHz thời gian chuyển đổi l 110 µs Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn + Ngắt INTR (Interupt): Chân số 5, chân tích c ực mức thấp Bình thường chân trạng thái cao v việc chuyển đổi ho àn tất xuống thấp để báo cho CPU biết l liệu chuyển đổi sẵn sàng để lấy Sau INTR xuống thấp, cần đặt CS = gửi xung cao xuống thấp tới chân RD để đưa liệu + Vin (+) Vin (-): Chân số chân số 7, đầu vào tương tự vi sai, V in = Vin(+) – Vin(-) Thông thường Vin(-) nối tới đất Vin(+) dùng làm đầu vào tương tự chuyển đổi dạng số + Vcc: Chân số 20, chân nguồn ni +5V Chân cịn dùng làm điện áp tham chiếu đầu vào Vref/2 để hở + Vref/2: Chân số 9, chân điện áp đầu vào dùng làm điện áp tham chiếu Nếu chân hở điện áp đầu vào tương tự cho ADC0804 nằm dải đến +5V Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến V in khác với dải đến +5V 10 Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn Chân V ref/2 dùng để thực điện áp đầu khác đến +5V Vref/2 (V) Hở 2.0 1.5 1.28 1.0 0.5 Vin (V) Kích thước bước (mV) 0–5 0–4 0–3 – 2.56 0–2 0–1 5/256 = 19.53 4/256 = 15.62 3/256 = 11.71 2.56/256 = 10 2/256 = 7.81 1/256 = 3.90 Bảng – Quan hệ điện áp V ref/2 với Vin + D0 - D7: D0 - D7, chân số 18 – 11, chân d ữ liệu số (D7 bit cao MSB D0 bit thấp LSB) Các chân đệm ba trạng thái liệu chuyển đổi truy cập chân CS = chân RD đưa xu ống mức thấp Để tính điện áp đầu ta tính theo cơng thức sau: Dout = Vin / Kích thước bc Với Dout l đầu liệu số (dạng thập phân) Vin l điện áp đầu vo tơng tự vμ kích thước bước lμ sù thay ®ỉi nhá nhÊt ®ược tÝnh lμ (2 × Vref/2) chia cho 256 ®èi víi ADC bÝt – Giới thiệu cảm biến LM35 Đây cảm biến nhiệt tích hợp xác cao hãng National Semiconductor Điện áp đầu tỉ lệ tuyến tính với nhiệt độ theo thang độ Celsius Điện áp ngõ thay đổi 10mv (điện áp bước) cho thay đổi 1C Chúng khơng u cầu cân chỉnh ngồi 11 Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn LM35 có dạng: TO-46, SO-8, TO-92, TO-220 Nhưng thường dùng dạng TO-92 hình Hình – Sơ đồ chân LM35 dạng TO-92 Đặc điểm LM35: 12 Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn + Điện áp nguồn từ -0.2V đến +35V + Điện áp từ -1V đến +6V + Dải nhiệt độ đo từ -55°C đến +150°C + Điện áp đầu thay đổi 10mV có thay đổi 1°C Phần II – Nội dung – Lưu đồ thuật tốn chương trình 13 Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn Bắt đầu Nhiệt độ vào t° LM35 chuyển t° → Điện áp u ADC chuyển u → bit nhị phân Khống chế = 20 a=3 a= Ngắt INT0 a= a= Ngắt INT1 có Ngắt INT1 khơng khơng Khống chế – – có Khống chế + + Hiển thị nhiệt độ khống chế t1 t1> t° t1< t° t1? t1 = t° Led đỏ Led vàng Led xanh Kết thúc 14 Hiển thị t° Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn – Phần lập trình mơ a – Phần lập trình #include #include sbit led0=P2^0; sbit led1=P2^1; sbit led2=P2^2; sbit led3=P2^3; sbit led_do=P2^4; //nhiet moi truong < nhiet khong che sbit led_vang=P2^5; //nhiet moi truong = nhiet khong che sbit led_xanh=P2^6; //nhiet moi truong > nhiet khong che sbit led_trang=P2^7; sbit adc_intr=P3^5; sbit adc_wr=P3^6; sbit adc_rd=P3^7; int ngat0,tong,i; unsigned char chuc,donvi,nhiet_do,dien_ap,khong_che; unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(unsigned int n) //ham tre { unsigned int j; 15 Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đoạn for(j=0;j=0 && nhiet_do t° t1< t° t1? t1 = t° Led đỏ Led vàng Led xanh Kết thúc 14 Hiển thị t° Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ. .. chuc=nhiet_do/10; donvi=nhiet_do%10; led0 =1; led1 =led2 =led3 =0; P0=M[chuc]; delay(100); led1 =1; led0 =led2 =led3 =0; P0=M[donvi]; 16 Ứng dụng vi điều khiển thiết kế đo khống chế nhiệt độ hiển thị led đo? ??n delay(100);

Ngày đăng: 09/10/2014, 20:37

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan