Nội dung đề tài: “ Ứng dụng họ vi điều khiển 8051 ghép nối 4 LED 7 thanh để hiển thị số đo nhiệt độ dùng vi mạch LM35, ADC0808, khoảng đo [-55 ÷ 125 ]°C ”. •Với yêu cầu của đề tài thì hệ thống gồm có. -Vi điều khiển AT89C51: Thiết bị chính dùng để điều khiển ADC0808 đọc chuyển đổi dữ liệu, sau đó xử lý tính toán và xuất dữ liệu ra LED 7 thanh. -ADC0808: Dùng để chuyển đổi tín hiệu điện áp thành tín hiệu số đưa vào vi điều khiển. -Vi mạch LM35: Đo giá trị nhiệt độ và chuyển thành các mức điện áp khác nhau tương ứng với sự tăng của nhiệt độ. -Mạch truyền thông chuẩn RS_232: Dùng IC Max232 để chuyển đổi mức logic giữa vi điều khiển và máy tính. -4 LED bảy thanh: Hiển thị giá trị nhiệt độ đo được từ cảm biến LM35 -2 loa cảnh báo: Cảnh báo khi có sự thay đổi của nhiệt độ khác với giá trị đặt. -2 nút ấn START, STOP: Bắt đầu và dừng quá trình đo nhiệt độ. •Phân tích giới hạn của đề tài. -Với nội dung chính của đề tài là để đo nhiệt độ nằm trong khoảng từ [-55°C ÷ 125 °C], không phải là ứng dụng lớn nên ta dùng vi điều khiển AT89C51 không cần ghép nối thêm bộ nhớ ngoài -Cảm biến nhiệt độ LM35 với dải nhiệt độ đo được từ -55 ÷ 150 °C, độ chính xác cao, sai số chỉ nằm trong khoảng 0.5°C ADC0808 với độ phân giải 8bit cho độ chính xác cao khi thực hiện quá trình chuyển đổi dữ liệu
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI — KHOA ĐIỆN — BÀI TẬP LỚN KỸ THUẬT VI XỬ LÝ ĐỀ TÀI: ỨNG DỤNG HỌ VI ĐIỀU KHIỂN 8051 GHÉP NỐI LED THANH ĐỂ HIỂN THỊ SỐ ĐO NHIỆT ĐỘ DÙNG VI MẠCH LM35 ADC0808 VỚI KHOẢNG ĐO [-55 ÷ 125]0C Giáo viên hướng dẫn Lớp Nhóm thực đề tài Thành viên nhóm : Ngyễn Thu Hà : Điện – K9 : Nhóm : Hoàng Thị Nhung Hoàng Thị Thu Nguyễn Thị Tuyết Hoàng Văn Tuấn Phan Hồng Sơn Hà Nội - 2017 Bài tập lớn Kỹ thuật vi xử lý Ứng dụng họ vi điều khiển 8051 ghép nối led để hiển thị số đo nhiệt độ dùng vi mạch lm35 adc0808 với khoảng đo [-55 ÷ 125]0C - Giáo Viên Bộ Môn: Cô: Nguyễn Thu Hà - Nhóm 3: Lớp Điện – K9 gồm: Hoàng Thị Nhung Hoàng Thị Thu Nguyễn Thị Tuyết Hoàng Văn Tuấn Phan Hồng Sơn Nhận xét giáo viên môn Bài tập lớn Kỹ thuật vi xử lý Mục Lục Lời nói đầu CHƯƠNG 1: PHÂN TÍCH U CẦU CƠNG NGHỆ 1.1.Phân tích giới hạn đặc điểm thiết bị 1.1.1.Tìm hiểu chung hệ thống .3 1.1.2 Các đặc điểm thiết bị .4 1.2.Vi mạch LM35 ADC0808 .10 1.2.1.Vi mạch LM35 10 1.2.2 Giới thiệu ADC0808 11 CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 15 2.1 Tính tốn lựa chọn thiết bị 15 2.1.1 Vi điều khiển 89C51 15 2.1.2 Vi mạnh LM 35 16 2.1.3 Led bảy 16 2.1.4 IC Max232 .20 2.2 Giao tiếp VĐK 8051 với LM35 ADC0808: 20 2.2.1 ADC0808 LM35 20 2.2.2 VĐK 8051 ADC0808 22 2.3Xây mạch nguyên lý thuyết minh 24 2.3.1.Mạch nguyên lý 24 2.3.2.Thuyết minh hoạt động: 27 2.4.Xây dựng thuật toán 27 2.4.1.Chương trình phục vụ ngắt 27 2.4.2 Chương trình khởi tạo đọc số liệu 28 2.4.3 Chương trình tính toán nhiệt độ 29 2.4.4 Chương trình hiển thị nhiệt độ dương 30 2.4.5 Chương trình hiển thị nhiệt độ âm .31 2.5.Chương trình điều khiển 32 CHƯƠNG 3: KẾT LUẬN .41 Tài liệu tham khảo: 42 Bài tập lớn Kỹ thuật vi xử lý Lời Nói Đầu Với tiến người, với phát triển khoa học kỹ thuật nghành công nghiệp phát triển mạnh mẽ, hệ thống ứng dụng đời, điều đặt yêu cầu cao chất lượng, độ xác Một hệ thống ứng dụng nhiều là: hệ thống đo điều khiển hiển thị led thanh.Các hệ thống ngày dần tự động hóa với kỹ thuật vi xử lý, vi điều khiển… ngày làm cho tự động dần trở nên tốt đảm bảo yêu cầu Trong q trình sản xuất nhà máy,xí nghiệp; q trình điều khiển nhiệt độ phịng, hội nghị, khu chung cư, việc đo khống chế nhiệt độ tự động yêu cầu cần thiết quan trọng Vì nắm bắt nhiệt độ làm việc hệ thống, dây chuyền sản xuất… giúp biết tình trạng làm việc theo yêu cầu có xử lý kịp thời để tránh hư hỏng giải cố sảy ra.Yêu cầu hệ thống phải đảm bảo xác, kịp thời nhanh, hệ thống làm việc ổn định có nhiễu tác động khác Bài tập lớn Kỹ thuật vi xử lý CHƯƠNG I: PHÂN TÍCH U CẦU CƠNG NGHỆ 1.1 Phân tích giới hạn đặc điểm thiết bị 1.1.1 Tìm hiểu chung hệ thống Nội dung đề tài: “ Ứng dụng họ vi điều khiển 8051 ghép nối LED để hiển thị số đo nhiệt độ dùng vi mạch LM35, ADC0808, khoảng đo [-55 ÷ 125 ]°C ” Với u cầu đề tài hệ thống gồm có - Vi điều khiển AT89C51: Thiết bị dùng để điều khiển ADC0808 đọc chuyển đổi liệu, sau xử lý tính tốn xuất liệu LED - ADC0808: Dùng để chuyển đổi tín hiệu điện áp thành tín hiệu số đưa vào vi điều khiển - Vi mạch LM35: Đo giá trị nhiệt độ chuyển thành mức điện áp khác tương ứng với tăng nhiệt độ - Mạch truyền thông chuẩn RS_232: Dùng IC Max232 để chuyển đổi mức logic vi điều khiển máy tính - LED bảy thanh: Hiển thị giá trị nhiệt độ đo từ cảm biến LM35 - loa cảnh báo: Cảnh báo có thay đổi nhiệt độ khác với giá trị đặt - nút ấn START, STOP: Bắt đầu dừng trình đo nhiệt độ Phân tích giới hạn đề tài - Với nội dung đề tài để đo nhiệt độ nằm khoảng từ [55°C ÷ 125 °C], khơng phải ứng dụng lớn nên ta dùng vi điều khiển AT89C51 khơng cần ghép nối thêm nhớ ngồi - Cảm biến nhiệt độ LM35 với dải nhiệt độ đo từ -55 ÷ 150 °C, độ xác cao, sai số nằm khoảng 0.5°C - ADC0808 với độ phân giải 8bit cho độ xác cao thực trình chuyển đổi liệu 1.1.2 Các đặc điểm thiết bị a.Đặc điểm vi điều khiển AT89C51 - Sơ đồ khối: Bài tập lớn Kỹ thuật vi xử lý Hình1.1: Sơ đồ khối AT89C51 PDIP P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST (RXD) P3.0 (TXD) P3.1 (INT0) P3.2 (INT1) P3.3 (T0) P3.4 (T1) P3.5 (WR)P3.6 (RD) P3.7 XTAL2 XTAL1 GND 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC P0.0(AD0) P0.1(AD1) P0.2(AD2) P0.3(AD3) P0.4(AD4) P0.5(AD5) P0.6(AD6) P0.7(AD7) EA/VPP ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P2.0 (A8) Bài tập lớn Kỹ thuật vi xử lý Hình 1.2: Sơ đồ chân AT89C51 Chức chân AT89C51 - AT89C51 có tất 40 chân có chức đường xuất nhập Trong có 24 chân có tác dụng kép (có nghĩa chân có chức năng), đường hoạt động đường xuất nhập đường điều khiển thành phần bus liệu bus địa a.Các Port: Port : - Port port có chức chân 32 – 39 8951 Trong thiết kế cỡ nhỏ khơng dùng nhớ mở rộng có chức đường IO Đối với thiết kế cỡ lớn có nhớ mở rộng, kết hợp bus địa bus liệu - Port 1: port IO chân 1-8 Các chân ký hiệu P1.0, P1.1, P1.2, … dùng cho giao tiếp với thiết bị cần Port khơng có chức khác, chúng dùng cho giao tiếp với thiết bị bên - Port : - Port port có tác dụng kép chân 21 - 28 dùng đường xuất nhập byte cao bus địa thiết bị dùng nhớ mở rộng -Port 3: - Port port có tác dụng kép chân 10 - 17 Các chân port có nhiều chức năng, cơng dụng chuyển đổi có liên hệ với đặc tính đặc biệt 8951 bảng sau: Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Tên RXT TXD INT0\ INT1\ T0 T1 WR\ RD\ Chức chuyển đổi Ngõ vào liệu nối tiếp Ngõ vào liệu nối tiếp Ngõ vào ngắt cứng thứ Ngõ vào ngắt cứng thứ Ngõ vào Timer/Counter thứ Ngõ vào Timer/Counter thứ Tín hiệu ghi liệu lên nhớ ngồi Tín hiệu đọc nhớ liệu Bảng 1.1: Chức Port3 Bài tập lớn Kỹ thuật vi xử lý Các ngõ tín hiệu điều khiển : Ngõ tín hiệu PSEN (Program store enable): - PSEN tín hiệu ngõ chân 29 có tác dụng cho phép đọc nhớ chương trình mở rộng thường nói đến chân 0E\ (output enable) Eprom cho phép đọc byte mã lệnh - PSEN mức thấp thời gian Microcontroller 8951 lấy lệnh Các mã lệnh chương trình đọc từ Eprom qua bus liệu chốt vào ghi lệnh bên 8951 để giải mã lệnh Khi 8951 thi hành chương trình ROM nội PSEN mức logic Ngõ tín hiệu điều khiển ALE (Address Latch Enable ) : - Khi 8951 truy xuất nhớ bên ngồi, port có chức bus địa bus liệu phải tách đường liệu địa Tín hiệu ALE chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp đường địa liệu kết nối chúng với IC chốt - Tín hiệu chân ALE xung khoảng thời gian port đóng vai trò địa thấp nên chốt địa hồn tồn tự động Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động chip dùng làm tín hiệu clock cho phần khác hệ thống Chân ALE dùng làm ngõ vào xung lập trình cho Eprom 8951 Ngõ tín hiệu EA\(External Access): - Tín hiệu vào EA\ chân 31 thường mắc lên mức mức Nếu mức 1, 8951 thi hành chương trình từ ROM nội khoảng địa thấp Kbyte Nếu mức 0, 8951 thi hành chương trình từ nhớ mở rộng Chân EA\ lấy làm chân cấp nguồn 21V lập trình cho Eprom 8951 Ngõ tín hiệu RST (Reset) : Ngõ vào RST chân ngõ vào Reset 8951 Khi ngõ vào tín hiệu đưa lên cao chu kỳ máy, ghi bên nạp giá trị thích hợp để khởi động hệ thống Khi cấp điện mạch tự động Reset Các ngõ vào dao động X1, X2: - Bộ dao động tích hợp bên 8951, sử dụng 8951 người thiết kế cần kết nối thêm thạch anh tụ hình vẽ sơ đồ Tần số thạch anh thường sử dụng cho 8951 12Mhz - Chân 40 (Vcc) nối lên nguồn 5V Bài tập lớn Kỹ thuật vi xử lý b.Led LED cấu tạo từ LED đơn xếp theo nét để biểu diễn chữ số kí tự đơn giản từ số đến A đến F LED dùng để số đẹp dễ nhìn Tùy vào kích thước số kí tự mà cấu tạo hay nhiều LED đơn Các LED đơn ghép đặt tên chữ a g có dấu chấm dot ( dấu chấm sáng tắt tùy theo yêu cầu) cấu tạo LED đơn Qua người ta cần bit tương ứng với LED đơn để điều khiển thị số từ đến kí tự từ A đến F Hình 1.3: Led c Mạch truyền thông chuẩn R_232 Giới thiệu Được xây dựng phục vụ chủ yếu việc ghép nối điểm – điểm hai thiết bị đầu cuối (DTE, Data Terminal Equipment).mặc dù tính hạn chế chuẩn RS232 có từ lâu đời nên sử dụng rộng rãi Ngày máy tính cá nhân có vài cổng RS232( cổng com) sử dụng nối thiết bị ngoại vi với máy tính khác Ưu điểm giao diện nối tiếp RS232 + Khả chống nhiễu cổng nối tiếp cao + Thiết bị ngoại vi tháo lắp máy tính cấp điện + Các mạch điện đơn giản nhận điện áp nguồn ni qua cơng nối tiếp Những đặc điểm cần lưu ý chuẩn RS232 + Trong chuẩn RS232 có mức giới hạn (logic 1) +-15V Hiện cố định trở kháng tải phạm vi từ-7000Ω- 3000Ω + Mức logic có điện áp nằm khoảng -3V đến -15V, mức logic từ -3V đến 15V + Tốc độ truyền nhận liệu cực đại 100kbps ( ngày lớn hơn) + Các lối vào phải có điện dung nhỏ 2500pF + Trở kháng tải phải lớn 3000 ôm phải nhỏ 7000 ôm Bài tập lớn Kỹ thuật vi xử lý + Độ dài cáp nối máy tính thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232 không vượt qua 15m không sử model + Các giá trị tốc độ truyền liệu chuẩn : 50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400 56600,1 15200 bps Quá trình dữ liệu - Quátrình truyền liệu Truyền liệu qua cổng nối tiếp RS232 thực không đồng Do nên thời điểm có bit truyền (1 kí tự) Bộ truyền gửi bit bắt đầu (bit start) để thơng báo cho nhận biết kí tự gửi đến lần truyền bit tiếp the Bit bắt đầu mức Tiếp theo bit liệu (bits data) gửi dạng mã ASCII( 5,6,7 hay bit liệu) Sau Parity bit ( Kiểm tra bit chẵn, lẻ hay không) cuối bit dừng - bit stop 1, 1,5 hay bit dừng - Tốc độ Baud Đây tham số đặc trưng RS232 Tham số đặc trưng cho q trình truyền liệu qua cổng nối tiếp RS232 tốc độ truyền nhận liệu hay gọi tốc độ bit Tốc độ bit định nghĩa số bit truyền thời gian giây hay số bit truyền thời gian giây Tốc độ bit phải thiết lập bên phát bên nhận phải có tốc độ ( Tốc độ vi điều khiển máy tính phải chung tốc độ truyền bit) Ngoài tốc độ bit cịn tham số để mơ tả tốc độ truyền tốc độ Baud Tốc độ Baud liên quan đến tốc độ mà phần tử mã hóa liệu sử dụng để diễn tả bit truyền cịn tơc độ bit phản ánh tốc độ thực tế mà bit truyền.Vì phần tử báo hiệu mã hóa bit nên hai tốc độ bit tốc độ baud phải đồng Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 56000, 115200 … Trong thiết bị họ thường dùng tốc độ 19200, Khi sử dụng chuẩn nối tiếp RS232 yêu cầu sử dụng chuẩn thời gian chuyển mức logic không vượt 4% thời gian truyền bit Do vậy, tốc độ bit cao thời gian truyền bit nhỏ thời gian chuyển mức logic phải nhỏ Điều làm giới hạn tốc Baud khoảng cách truyền - Bit chẵn lẻ hay Parity bit Đây bit kiểm tra lỗi đường truyền Thực chất trình kiểm tra lỗi truyền liệu bổ xungthêm liệu truyền để tìm sửa số lỗi q trình truyền Do chuẩn RS232 sử dụng kỹ thuật kiểm tra chẵn lẻ Một bit chẵn lẻ bổ sung vào liệu truyền để ch thấy số lượng bit "1" gửi trongmột khung truyền chẵn hay lẻ Bài tập lớn Kỹ thuật vi xử lý S RUN=0 Xóa cờ tràn Đ Dem = Khởi tạo đọc số liệu S Bật loa cảnh báo to thấp T>40 C Đ Tắt loa cảnh báo t0 thấp Tắt loa cảnh báo t0 cao S T>1000 C Đ Bật loa cảnh báo to cao Tính tốn nhiệt độ giải mã HEXTOBCD S T- 55< ? Đ Hiển thị nhiệt độ âm Reti 2.4.2 Chương trình khởi tạo đọc số liệu Khởi tạo đọc số liệu 28 Hiển thị to dương Bài tập lớn Kỹ thuật vi xử lý STOP=0 S Đ Đếm = Đếm +1 Đếm =0 Đ S START = ALE = OE = ADDX kênh = Ret ALE =1 START =1 ALE=0 START =0 OE =1 Đọc liệu OE =0 S Đ EOC=1 S 2.4.3 Chương trình tính tốn nhiệt độ Tính tốn nhiệt độ 29 EOC =0 Đ Bài tập lớn Kỹ thuật vi xử lý T = D*(500/255) S T=T- 55 > Đ Ret 2.4.4 Chương trình hiển thị nhiệt độ dương Hiển thị t° dương 30 T = 55 - T Bài tập lớn Kỹ thuật vi xử lý Tra mã R5 = R5 – R6 = Num S R5 = Đ R5 = A & 7FH (cho dấu chấm sáng) S S R6 = Đ Lấy mã chữ (C) Hiển thị Dn n=n+1 Quay trái quét Num = Num - S Ret Num = Đ Num = R0 = Dấu_C Quét = 0FBH 2.4.5 Chương trình hiển thị nhiệt độ âm Hiển thị t° âm 31 R6 = Đ Lấy mã dấu (°) Bài tập lớn Kỹ thuật vi xử lý Tra mã R5 = R5 – R6 = Num Đ S R5 = R5 = A & 7FH (cho dấu chấm sáng) S S R6 = Đ R6 = Đ Lấy mã chữ (C) Lấy mã dấu (°) R6 = Đ Lấy mã dấu (-) Hiển thị Dn n=n+1 Quay trái quét Num = Num - S Ret Num = Đ Num = R0 = Dấu_C Quét = 0FBH 2.5.Chương trình điều khiển ;============================================================= ; Khai báo biến phục vụ tính tốn ;============================================================= XH equ 50h XL equ 51h YH equ 52h YL equ 53h ZH equ 54h 32 Bài tập lớn Kỹ thuật vi xử lý ZL equ 55h TH_L equ 56h TH_H equ 57h DU_T equ 58h DU_H equ 59h Z0 equ 5ah Z1 equ 5bh Z2 equ 5ch Z3 equ 5dh Z4 equ 5fh ZOV equ 60h XL1 equ 61h XH1 equ 62h ;============================================================= ; Khai báo biến số hiển thị ;============================================================= dvi equ 61h dau_C equ 62h dau_DO equ 63h chuc equ 64h tram equ 65h nghin equ 66h chuc_nghin equ 67h num equ 68h quet equ 69h dem equ 6ah led equ p0 ;============================================================= ; Khai báo kết nối với ADC0808 ;============================================================= ADC0808_DATA equ p3 ADC0808_ADDA bit p2.0 ADC0808_ADDB bit p2.1 ADC0808_ADDC bit p2.2 ADC0808_START bit p2.4 ADC0808_EOC bit p2.5 ADC0808_OE bit p2.6 ;============================================================= ; Khai báo kết nối với nút nhấn ;============================================================= STOP bit p1.0 RUN bit p1.1 ;============================================================= ; Khai báo kết nối với LOA ;============================================================= LOA_THAP bit p2.3 33 Bài tập lớn Kỹ thuật vi xử lý LOA_CAO bit p2.7 ;============================================================= ; Chương trình ;============================================================= org 0000h start: jmp main org 002bh jmp NgatT2 main: mov p3,#0ffh clr ea mov sp,#2fh mov t2con,#00h mov th2,#0ech ; Trễ 5ms mov tl2,#78h mov rcap2h,th2 mov rcap2l,tl2 mov quet,#0fbh mov num,#6 mov r0,#dau_C mov dem,#0 mov r5,#4 clr LOA_CAO clr LOA_THAP setb RUN setb STOP jb RUN,$ jnb RUN,$ ; Chờ buông nút nhấn mov dem,#0 setb tr2 ; Cho timer2 bắt đầy đếm setb et2 ; Cho phép timer2 ngắt setb ea ; Cho phép ngắt toàn cục jmp $ ; Đợi ngắt ;============================================================= ; Chương trình phục vụ ngắt Timer2 ;============================================================= NgatT2: jb RUN,M1 jnb RUN,$ ; Chờ buông nút nhấn mov dem,#0 M1: clr tf2 ; Xóa cờ tràn Timer2 lcall KhoiTaoVaDocSoLieu ; 5ms đọc số liệu lần ; Thiết lập LOA cảnh báo nhiệt độ thấp kêu -mov a,XL 34 Bài tập lớn Kỹ thuật vi xử lý mov b,#30 subb a,b ; Kiểm tra xem có phải 4°C jc N10 ; Nhảy đến nhãn N10 cho LOA kêu clr LOA_THAP ; Tắt LOA cảnh báo nhiệt độ thấp > 4°C jmp N11 N10: setb LOA_THAP ; Bật LOA cảnh báo nhiệt độ thấp 100°C jmp N13 N12: clr LOA_CAO ; Tắt LOA cảnh báo nhiệt độ cao T