MẠCH CẢM BIẾN MÀU AT89S52 VỚI ADC0808
cảm biến màu đỏ LD y này surface'll đọc bạn đến gần hơn với bề mặt của màu sắc, màu vàng, màu xanh đọc. Nó hoạt động dựa trên thực tế là các bề mặt trên các bề mặt khác nhau phản chiếu ánh sáng đỏ, vàng và xanh dương khác nhau. 3 đèn LED cho phát ra ánh sáng được phản xạ từ bề mặt, LDR để đọc các giá trị điện trở do những đèn LED, màn hình LCD để xem đó là đọc LED, chiết và điện trở của các giá trị khác nhau để điều chỉnh cài đặt độ sáng của màn hình LCD, AT89S52 vi điều khiển được làm từ và ADC.
LDR được lấy từ thông tin tương tự để dịch digital analog thông tin ADC0808 để chuyển đổi kỹ thuật số mạch yaptım.ayn dự án kullandım.b tích hợp với một tổ chức phi tích hợp tính năng ADC vi điều khiển đã được thực hiện một cách dễ dàng hơn với một bộ điều khiển với một bên ADC nội bộ.
Các yếu tố đã sử dụng
- 3x Siêu sáng led
- Điện trở 3 × 220 ohm
- Điện trở 820 ohm
- 1k điện trở
- LDR
- AT89S52 vi điều khiển
- Màn hình LCD 2 dòng 16 ký tự
- Tụ điện 2x20p, 1x10pf
- 12MHz chryristal
- 10k chiết áp
- L7805 tích hợp
- ADC 0808
Dynamics Work
Bộ dao động XT được kết nối với bộ vi điều khiển 18 và 19 của mạch. Dao động tạo ra xung cần thiết để bộ điều khiển hoạt động. Các đèn LED được đo được kết nối trực tiếp với nguồn. Các đầu ra của Adc 0808 được kết nối với cổng P1 của micrô. ADC0808 thông tin kỹ thuật số, trong đó đầu vào analog giá trị kỹ thuật số 8-bit sau aktarılıyor.b döniştürül sau cổng P1 của các giá trị số được xử lý trong một chương trình mà sẽ được gửi đến LCD trong đó màu sắc được phát hiện.
Trong trường hợp của mạch proteasured , một chiết áp tuyến tính đã được sử dụng thay cho LDR trong đó không có LDR . Việc chuyển đổi giá trị số của điện áp sang IN7 (đầu vào đầu vào tương tự) của ADC 0808 được thực hiện như sau;
Vì ADC cuối cùng là một yếu tố kỹ thuật số, nó chỉ tạo ra 1 và 0 thông tin trên một đơn vị thời gian trên các cổng.
Nói cách khác, chúng ta không thể nói rằng các giá trị giữa 0-5v là nhạy cảm. ADC chuyển đổi thông tin đến thành một giá trị từ 0-255 và thông tin đến có độ phân giải 256. Đối với ứng dụng này, 8 bit của ADC là đủ.
Ví dụ, nếu 2.1c được trao cho ADC, giá trị đọc từ cổng này sẽ là 107-108 (2,1 * 256/5).
Theo các giá trị điện trở của LDR, các giá trị điện áp tới đầu cuối ADC được chuyển đổi thành các giá trị số theo cách này.
Theo các giá trị đo được, giá trị số của các điện áp tới đầu ADC được chọn tại các khoảng thời gian này.
Kalt = 36, Kuster = 60; mạch nha = 64, phải = 88; muối = 114, sust = 152 (kalt = giới hạn dưới đỏ, kust = giới hạn trên màu đỏ).
Mã chương trình Keil
Trong chương trình sau, nó được xác định cổng nào của vi điều khiển sẽ được kết nối với màn hình LCD bằng cách sử dụng tập tin tiêu đề lcd.h. Đồng thời, các chức năng cần thiết được xác định trong tập tin này để điều khiển màn hình LCD. Các biến trong chương trình được định nghĩa ở đầu chương trình bằng cách sử dụng lệnh define.
Khi chương trình bắt đầu hoạt động, trong khi (1) đi vào vòng lặp vô hạn, P3 được định nghĩa là một biến dữ liệu và P1 được chèn vào biến dữ liệu thông tin xuất phát từ Pr1: Start = 1; start = 0; các lệnh để khởi động ADC 0808 trong vòng tròn. Khi bộ ADC bắt đầu hoán đổi, IN7 chuyển đổi giá trị điện áp tương tự đến bộ đếm tín hiệu tương tự thành giá trị số 8 bit.
Giá trị này được lưu trữ trong cổng P1, tức là biến dữ liệu Sau khi nhập hoạt động vào chu kỳ if của biến người dùng, tên màu tương ứng với phạm vi đó được gửi đến màn hình LCD. Đầu vào dao động của ADC 0808 được cung cấp bởi một bộ dao động được kết nối với đầu 10 dây. Khi logic bit EOC là 1 trong chương trình, OE được ủy quyền và đầu vào tương tự được truyền kỹ thuật số.
#include#include "lcd.h" #include #define data P3 #define bắt đầu P2_3 #define EOC P2_4 #define OE P2_5 void chính (void) { lcdac (); Command (xóa); Nhường = 0xFF; while (1) { Command (128); Veridizi ("màu quét:", 0); start = 1; // Bắt đầu cuộc trò chuyện start = 0; while (! EOC) {;} O = 1; Command (192); if (data> 36 && data <60 font="">60> Veridizi ("đỏ", 100); else if (dữ liệu> 64 && dữ liệu <88 font="">88> Veridizi ("màu xanh", 100); else if (data> 114 && data <152 font="">152> Veridizi ("sari", 100); khác Veridizi ("lỗi", 100); O = 0; }}
Đặc điểm của các yếu tố được sử dụng trong mạch
Trong ứng dụng này, tôi sử dụng mô hình LCD song song HD ++ / (= tôi sử dụng.
Pin 1 được gọi là VSS và không đi đến GND.
Pin 2 được gọi là VDD và là pin hỗ trợ nguồn 5V.
Pin 3 được gọi là VLC và chiết áp được kết nối để quyết định độ sáng.
Pin 4 được gọi là RS và nó được kết nối với pin này để mang lại hướng dẫn hoặc dữ liệu trên màn hình.
Pin 5 được gọi là R / W và kiểm soát xem màn hình LCD đang gửi hay nhận.
Pin 6 được gọi là Bật. Khi mức thấp này cao hay thấp một lần nữa, màn hình LCD đọc 4-5 hoặc 7-14.
Pin 7-14 là đường truyền dữ liệu và được gọi là DB0-DB7. Họ gửi các bit dữ liệu chính đến màn hình LCD và kiểm soát nơi chúng được ghi trên màn hình.
Pin 15 và 16 chỉ tương ứng với đèn nền trên màn hình, + 5V và GND đến 3,8 Ohm giữa pin 15 và + 5V.
Tiêu đề tập tin cần thiết để gửi ký tự hoặc giá trị cho LCD
Xóa # define 1 #define basadon 2 #define solayaz 4 #define sagayaz 6 #define cursor 12 #define imlecyanson 15 #define cursor 16 #define SaveSaga 24 #define rollback 28 #define screenCap 8 #define Nguyên tắcNumber 128 #define secondname 192 #define color cast 64 #define complexsat 8bit 56 #define composite_4bit 48 #define teksatir8bit 40 #define teksatir4bit 32 #define Dữ liệu P1 #define RS P2_2 #define RW P2_1 #define EN P2_0 void delay (dài int chắc chắn) { dài int i; cho (i = 1; i <= chắc chắn; i + +) {; } } void lcdhazir () { Data = 0xFF; RS = 0; RW = 1; WIDTH = 1; chậm trễ (200); while (Dữ liệu & 0x7f == 0x80); } void Command (lệnh int) { lcdhaz là (); RS = 0; RW = 0; WIDTH = 1; Data = lệnh; EN = 0; chậm trễ (1000); } void Data (dữ liệu char, long int hiz) { lcdhaz là (); RS = 1; RW = 0; WIDTH = 1; Data = dữ liệu; EN = 0; chậm trễ (vận tốc); } void Veridizi (dữ liệu char [], long int hiz) { int i = 0; while (dữ liệu [i]! = 0) { lcdhaz là (); RS = 1; RW = 0; WIDTH = 1; Data = dữ liệu [i]; EN = 0; i ++; chậm trễ (vận tốc); } } void lcdac (void) { Command (imlecgizl A); Command (ciftsatir8bit); Command (sagayaz); }
Tính năng quan trọng nhất của adc là độ phân giải bit, độ phân giải bit cho biết số bit tương ứng với giá trị tương tự, một quảng cáo 8 bit chia đầu vào tương tự thành 256 phần, ví dụ: mẫu.
Trong một quảng cáo 8 bit, kích thước của mỗi bước là 5/256 = 0,01953125. Giá trị này tương ứng với giá trị số 00000000. Giá trị này được tăng lên mỗi lần tăng 1 bit của giá trị số.
Khi đầu vào tương tự đạt đến 5 vôn (nếu nguồn cung cấp của chúng tôi chính xác là 5 vôn), đầu ra sẽ là một chữ số thập phân 128, tức là giá trị số 11111111. Khi một nửa số này được áp dụng cho đầu vào 2.5 volt, 128 được lấy từ đầu ra, tức là 10.000.000.
Giá trị lớn nhất của điện áp được lấy mẫu cho đầu cuối Vref (+) được áp dụng cho giá trị âm của điện áp được lấy mẫu trong đầu cuối Vref (-). các đầu cuối là các đầu cuối điều khiển của ADC.
Để ADc có thể thực hiện chuyển đổi,
- Thông thường, một logic ngắn 1 được gửi đến bit bắt đầu, đó là logic 0.
- Lựa chọn kênh analog được thực hiện sẽ thay đổi.
- Trong quá trình chuyển đổi kỹ thuật số của tín hiệu analog tương tự, logic o là hợp lý 1 khi chu trình kết thúc, vì vậy nó phải đợi cho đến khi kết thúc chu kỳ (EOC = 1).
- Với EOC của 1, chốt OE, thường ở mức logic 0, phải được đặt thành logic 1 trong một thời gian ngắn. Thông tin cuộc gọi bận được chuyển đến đầu ra kỹ thuật số.
Dự án được chuẩn bị bởi: Hakan Yöyün Tập tin Progenin AT89S52 Bộ cảm biến màu với ADC0808
Tải xuống tệp LINK danh sách (ở định dạng TXT) link-3590.zip mật khẩu-pass: 320volt.com Cảm ơn bạn
Post a Comment