SỬ DỤNG LẬP TRÌNH C ĐỂ ĐO TỐC ĐỘ ĐỘNG CƠ QUA 89C51 HIỂN THỊ LED 7 ĐOẠN(SỬ DỤNG LẬP TRÌNH C ĐỂ ĐO TỐC ĐỘ ĐỘNG CƠ QUA 89C51 HIỂN THỊ LED 7 ĐOẠNSỬ DỤNG LẬP TRÌNH C ĐỂ ĐO TỐC ĐỘ ĐỘNG CƠ QUA 89C51 HIỂN THỊ LED 7 ĐOẠNSỬ DỤNG LẬP TRÌNH C ĐỂ ĐO TỐC ĐỘ ĐỘNG CƠ QUA 89C51 HIỂN THỊ LED 7 ĐOẠNSỬ DỤNG LẬP TRÌNH C ĐỂ ĐO TỐC ĐỘ ĐỘNG CƠ QUA 89C51 HIỂN THỊ LED 7 ĐOẠN)
Ths nguyen thu Mục lục Lời mở đầu Chương :tìm hiểu 89C51RD2 thiết bị liên quan 1.1 1.2 1.3 1.4 1.5 1.6 1.7 giới thiệu tổng quan 89C51 Giới thiệu encoder Giới thiệu LED tụ điện điện trở Thạch anh dao động điện trở treo Ths nguyen thu Lời mở đầu Ngày với ứng dụng không ngừng khoa học kĩ thuật ,thế giới thay đổi khơng ngừng Trong với phát triển không ngừng ngành kĩ thuật vi xử lý vi điều khiển giúp cho thực nhiều công việc khác phục vụ cho nhu cầu người Nó mang đến cho thấy độ xác cao ,tốc độ xử lý nhanh,gọn nhẹ Một ứng dụng quan trọng vi điều khiển việc đo tốc độ động sử dụng encoder ,đây ứng dụng sử dụng rộng rãi thực tế với việc kết nối 89C51 với encoder hiển thị led bảy đồng thời sử dụng mạch truyền thơng chuẩn RS_232,có sử dụng them thiết bị cảnh báo nút bật tắt Chính hữu ích việc sử dụng 89C51 cho ứng dụng mà nhóm chúng em nhận đề tài để mong sâu nghiên cứu kĩ ứng dụng chúng Với lượng kiến thức có hạn khơng thể che lấp hết sai xót khuyết điểm q trình làm đề tài chúng em kính mong góp ý giúp đỡ chúng em nhiều HÀ NỘI,ngày tháng ,2017 Ths nguyen thu Chương giới thiệu tổng quan thiết bị 1.1 giới thiệu tổng quan 89C51 AT89C51 vi điều khiển Atmel sản xuất, chế tạo theo cơng nghệ CMOS có đặc tính sau: +,4 Kbyte ROM (Flash Programmable and Erasable Read Only Memory), có khả thực 1000 chu kì ghi xóa +,Tần số hoạt động 0-24 MHz +,3 mức khóa nhớ lập trình +,128 Kbyte RAM nội +,4 port xuất/nhập bit +,2 đếm định thời Timer/counter 16 BIT +, Nguồn ngắt +,Giao tiếp nối tiếp phần cứng +, 64 KB vùng nhớ mã + 64 KB vùng nhớ liệu + Cho phép xử lý bit + 210 vị trí nhớ định vị bit + chu kỳ máy (4 µs thạch anh 12MHz) cho hoạt động nhân chia Ths nguyen thu Hình 1.1 Cấu trúc chung họ 89C51 Các chức 89C51 +,chân EA/ chân 31 thường đặt mức cao (+5v).Nếu mức cao 89C51 thi hành chương trình từ ROM khoảng địa thấp Nếu mức thấp ,chương trình thi hành từ nhớ mở rộng +,Chân PSEN chân tín hiệu chân 29 Nó tín hiệu điều khiển cho phép chương trình mở rộng ,chân PSEN thường nối với chân OE/ (output enable ) nhớ để đọc bytes mã lệnh Hãy nhớ : bình thường chân /PSEN thả trống ( No Connect).Chỉ cho /EA mức thấp lúc đó: /PSEN mức thấp thời gian lấy lệnh Các mã nhị phân chương trình lấy từ EPROM qua bus liệu chốt vào ghi lệnh 8951 để giải mã lệnh /PSEN mức thụ động (mức cao) thi hành chương trình ROM nội 8951 89C51 hoạt động với nguồn 5V nối với chân 40 vi điều khiển ,chân 20 nối với nguồn CỔNG VÀO RA Tất vi điều khiển 8051 có cổng vào /ra bit thiết lập cổng vào Như có 32 chân vào cho phép kết nối với thiết bị ngoại vi : Port ;Port port có chức chân 32 – 39 89C51 : +,chức xuất /nhập :dùng cho thiết kế nhỏ Tuy nhiên dùng với chức chân phải nối với điện trở kéo lên , + dùng làm ngõ vào port phải set với mức logic trước Ths nguyen thu +,chức địa /dữ liệu đa hợp :khi dùng cho thiết kế lớn port vừa có chức bus liệu ,vừa bus địa giúp mở rộng địa nhớ Port (chân – 8) có chức I/O,khơng dùng cho mục đích khác (chỉ 8032/8052/8952 dùng thêm P1.0 P1.1 cho định thời thứ 3).Tại Port có điện trở kéo lên khơng cần điện trở ngồi Khi dùng làm ngõ ngồi cần set port lên mức logic Port 2: Port (chân 21 – 28) port có chức năng: + Chức I/O (xuất / nhập) + Chức địa chỉ: dùng làm bit địa cao cần nhớ ngồi có địa 16 bit Khi đó, Port khơng dùng cho mục đích I/O + Khi dùng làm ngõ vào, Port phải set mức logic trước Port 3: Port (chân 10 – 17) port có chức năng: + Chức I/O Khi dùng làm ngõ vào, Port phải set mức logic trước + Chức khác: mô tả sau: Bit Tên Chức chuyển đổi P3.0 RXT Ngõ vào liệu nối tiếp P3.1 TXD Ngõ xuất liệu nối tiếp P3.2 INT0\ Ngõ vào ngắt cứng thứ P3.3 INT1\ Ngõ vào ngắt cứng thứ P3.4 T0 Ngõ vào TIMER/COUNTER thứ P3.5 T1 Ngõ vào TIMER/COUNTER thứ P3.6 WR\ Tín hiệu ghi liệu lên nhớ ngồi P3.7 RD\ Tín hiệu đọc nhớ liệu Bảng 1.1 Chức chân port 1.2 Giới thiệu encoder ,encorder thiết bị điện dùng để biến đổi vị trí góc trục quay từ giá trị analog sang mã digital.Đĩa quay bánh xe , trục động cơ,hoặc thiết bị quay cần xác định vi trí góc +,encoder xem thiết bị dùng để chuyển đổi Ths nguyen thu Phân loại encoder +,absolute encoder +, incremental encoder Nguyên lý encoder +,Nguyên lý encoder Đó đĩa xoay tròn Trên đĩa có lỗ (rãnh).Người ta dùng đèn led để chiếu lên mặt đĩa Khi đĩa quay ,chỗ khơng có lỗ ,đèn led khơng chiếu xun qua ,chỗ có lỗ đèn led chiếu xun qua Khi phía mặt bên đĩa ,người ta đặt mắt thu để thu tín hiệu Với tín hiệu đèn led chiếu qua ,người ta ghi nhận đèn led có chiếu qua chỗ có lỗ hay khơng Khi trục quay, giả sử đĩa có vòng có 100 lỗ, lần mắt thu nhận 100 tín hiệu đèn led, có nghĩa đĩa quay vòng.Tuy nhiên vấn đề đặt để xác định xác vị chí đĩa quay làm để xác định xác đĩa quay quay theo chiều ?đó vấn đề cần làm rõ Nhận thấy điều rằng, encoder tuyệt đối có lợi cho trường hợp góc quay nhỏ, động khơng quay nhiều vòng Khi đó, việc xử lý encoder tuyệt đối trở nên dễ dàng cho người dùng hơn, cần đọc giá trị biết vị trí góc trục quay Tuy nhiên, động quay nhiều vòng, điều khơng có lợi, đó, phải xử lý để đếm số vòng quay trục Ngồi ra, bạn thấy đó, thiết kế encoder tuyệt đối, cần nhiều vòng lỗ, dẫn tới giới hạn kích thước encoder, việc gia cơng xác lỗ nhỏ thực Chưa kể việc thiết kế dãy đèn led mắt thu ảnh hưởng lớn Ths nguyen thu đến kích thước giới hạn Các bạn thấy ,cứ lần quay qua lỗ ,thì encoder tang đơn vị biến đếm Tuy nhiên biết encoder quay hết vòng Vì người ta đưa lỗ định vị để đếm số vòng quay encoder Tuy nhiên vấn đề chung ta biết encoder quay theo chiều ? cho dù quay theo chiều tín hiệu encoder xung đơn lẻ xoay theo hai chiều giống Ths nguyen thu Chính người ta đặt them vòng lỗ vòng lỗ thứ lỗ định vị 1.3 Giới thiệu LED Led đoạn có cấu tạo bao gồm led đơn xếp theo hình phía có thêm led đơn hình tròn nhỏ thể dấu chấm tròn góc dưới, bên phải led - led đơn led có Anode (cực +) Cathode (cực -) nối chung với vào điểm đưa chân để kết nối với mạch điện cực lại led đơn led đoạn cực led đơn góc dưới, bên phải led đoạn đưa thành chân riêng để điều khiển cho led sáng tắt theo ý muốn - Nếu led đoạn có Anode (cực +) chung, đầu chung nối với +Vcc, chân lại dùng để điều khiển trạng thái sáng tắt led đơn, led sáng tín hiệu đặt vào chân mức - Nếu led đoạn có Cathode (cực -) chung, đầu chung nối xuống Ground (hay Mass), chân lại dùng để điều khiển trạng thái sáng tắt led đơn, led sáng tín hiệu đặt vào chân mức Bảng 1.2 Các hệ mã thông dụng: Ths nguyen thu Mã led cho anod chung ,muốn sáng ta xuất chân catot LED đơn mức Mã LED có catot chung ,muốn sáng ta xuất chân anod LED đơn có mức logic 1: Ths nguyen thu 1.4 tụ điện Tụ điện loại linh kiện điện tử thụ động tạo hai bề mặt dẫn điện ngăn cách điện môi Khi có chênh lệch điện hai bề mặt, bề mặt xuất điện tích điện lượng trái dấu.[1] Sự tích tụ điện tích hai bề mặt tạo khả tích trữ lượng điện trường tụ điện Khi chênh lệch điện hai bề mặt điện xoay chiều, tích luỹ điện tích bị chậm pha so với điện áp, tạo nên trở kháng tụ điện mạch điện xoay chiều Về mặt lưu trữ lượng, tụ điện có phần giống với ắc qui Mặc dù cách hoạt động chúng hồn tồn khác nhau, chúng lưu trữ lượng điện Ắc qui có cực, bên xảy phản ứng hóa học để tạo electron cực chuyển electron sang cực lại Tụ điện đơn giản hơn, khơng thể tạo electron - lưu trữ chúng Tụ điện có khả nạp xả nhanh Đây ưu so với ắc qui 10 Ths nguyen thu tím thạch anh coi đá quý tháng hai loại ưa chuộng họ thạch anh Hình 1.4 Ảnh tinh thể thạch anh 1.7 điện trở treo Các điện trở treo thay điện trở chân ,sử dụng điện trở treo giúp cho việc thiết kế mạch trở lên đơn giản hơn, điện trở treo chân thực chất điện trở có giá trị với với đầu điện trở nối với đầu chung đưa chân Khi nhìn điện trở treo đầu có dấu chấm tròn ,thì chân ngồi phía chân chung Thông thương chân nối với Vcc 13 Ths nguyen thu Hình 1.5 ảnh điện trở treo 1.8 cổng truyền thông RS232 A, Ngày thiết bị đo lường, điều khiển phải giao tiếp với máy tính để quan sát thơng số chế độ hoạt động thiết bị nào? Chuẩn giao tiếp coi đơn giản dễ dùng cổng RS232 Hầu thiết bị giao tiếp với máy tính thơng qua chuẩn Hình 1.6 ảnh chuẩn truyền thơng RS232 Vấn đề giao tiếp PC vi điều khiển quan trọng ứng dụng điều khiển, đo lường Ghép nối qua cổng nối tiếp RS232 kỹ thuật sử dụng rộng rãi để ghép nối thiết bị ngoại vi với máy tính.Nó chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều thiết bị , chiều dài kết nối lớn cho phép để đảm bảo liệu 12.5 đến 25.4m, tốc độ 20kbit/s tốc độ 115kbit/s với số thiết bị đặc biệt Ý nghĩa chuẩn truyền thông nối tiếp nghĩa thời điểm có bit gửi dọc theo đường truyền Có hia phiên RS232 lưu hành thời gian tương 14 Ths nguyen thu đối dài RS232B RS232C Nhưng phiên RS232B cũ dùng RS232C dùng tồn thường gọi tên ngẵn gọn chuẩn RS232 Các máy tính thường có cổng nối chuẩn RS232C gọi cổng Com Chúng dùng ghép nối cho chuột, modem, thiết bị đo lường Trên main máy tính có loại chân lại 25 chân tùy vào đời máy main máy tính Việc thiết kế giao tiếp với cổng RS232 tương đối dễ dàng, đặc biệt chọn chế độ hoạt động không đồng tốc độ truyền liệu thấp - Ư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) +-12V Hiện cố định trở kháng tải phạm vi từ 3000 ôm - 7000 ôm + Mức logic có điện áp nằm khoảng -3V đến -12V, mức logic từ +-3V đến 12V + 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 + Độ 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,115200 bps B, Sơ đồ ghép nối RS232 Có nhiều mạch giao tiếp RS232 vi điều khiển hay thiết bị khác Dưới mạch giao tiếp thường dùng 1) Mạch chuẩn giao RS232 dùng IC Max232 Max232 IC chuyên dùng cho giao tiếp RS232 thiết bị ngoại vi Max232 IC hãng Maxim Đây IC chay ổn định sử dụng phổ biến mạch giao tiếp chuẩn RS232 Giá thành Max232 phù hợp (12K hay 10K) tích 15 Ths nguyen thu hợp hai kênh truyền cho chuẩn RS232 Dòng tín hiệu thiết kế cho chuẩn RS232 Mỗi đầu truyền cổng nhận tín hiệu bảo vệ chống lại phóng tĩnh điện ( 15KV) Ngồi Max232 thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ Mạch giao tiếp sau : Hình 1.7 ảnh ghép nối RS232 dùng IC MAX232 Chương :xây dựng lưu đồ thuật tốn Tính tốn lựa chọn thiết bị - Hệ thống gồm có vi điều khiển 89C51RD2, mạch truyền thông chuẩn RS_232(vi mạch MAX232), led thanh, cảmbiến đo tốc độ động cơ, loa cảnh báo ngưỡng cao, thấp, nút ấn RUN and STOP - Dùng transistor NPN phục vụ cho trình quét led - Dùng chiết áp để thay đổi điện áp cấp nguồn cho động để thay đổi tốc độ động 16 Ths nguyen thu Xây dựng mạch nguyên lý Theo yêu cầu toán hiển thị số đo tốc độ động dùng encoder lên led nên ta sử dụng mạch nguyên lý hình Thuyết minh hoạt động mạch: Sau cấp nguồn mạch động cơ, ấn RUN động bắt đầu chạy vi điều khiển thực đo tốc độ động hiển thị lên mà hình led Cứ 1s vi điều khiển cập nhật tốc độ động lần Chu trình kết thúc ấn nút STOP, hệ thống lưu lại giá trị cuối đo Xây dựng thuật toán Kết mô #include #define RUN P1_6 17 Ths nguyen thu #define STOP P1_7 #define Outled P0 #define true #define false #define THx 15536/256 #define TLx 15536%256 sbit E0 = P1^0; sbit E1 = P1^1; sbit E2 = P1^2; sbit E3 = P1^3; sbit L0 = P2^0; sbit L1 = P2^1; sbit L2 = P2^2; sbit L3 = P2^3; sbit L4 = P2^1; sbit L5 = P2^2; sbit L6 = P2^3; sbit L7 = P2^7; sbit Sp = P1^5; bit chuki=false; unsigned char k; unsigned int Soxung,Demxung,Vong,n,tam,cuoi; unsigned char time=0; unsigned char CharCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x8 0,0x90};//for number 0->9 void Sys_init(); void Display(unsigned int dem); 18 Ths nguyen thu void NGAT0(void) interrupt { Demxung++; //L7=!L7; } void ngat_time1(void) interrupt { time++ ;//tang bien dem thoi gian if(Demxung>0) L7=!L7; else if(Demxung==0) {L7=1;chuki=true;} if(time==20)//TIME = 1s chuan { TR1=0; //dung bo dinh thoi chuki=true; //bao het thoi gian dem xung time=0; } TH1=THx;TL1=TLx;//dat cho lan sau } void delay_us(unsigned long int d) { for(n=0;n=999)//hien thi so gia tri hien thi > 9999 { L0=L1=L2=L3=0; 19 Ths nguyen thu E0=0; Outled=CharCode[dem/1000]; delay_us(1); E0=1; P0=0XFF; E1=0; Outled=CharCode[(dem%1000)/100]; delay_us(1); E1=1; P0=0XFF; E2=0; Outled=CharCode[(dem%100)/10]; delay_us(1); E2=1; P0=0XFF; E3=0; Outled=CharCode[dem%10]; delay_us(1); E3=1; P0=0XFF; } else if((dem99)) //hien thi so gia tri hien thi