AT89S52 CHIỀU CAO ĐIỀU CHỈNH LCD HIỂN THỊ THANG MÁY
Chuẩn bị bởi: Volkan Selçuk - Cảm ơn bạn
Bước Motors:
Động cơ bước là động cơ thay đổi vị trí góc trong các bước. Động cơ này, di chuyển theo các bước cụ thể, được điều khiển bằng cách gửi tín hiệu thích hợp tới các cuộn dây của nó. Ở bất kỳ kích thích nào, chuyển động của động cơ sẽ xác định góc bước. Tùy thuộc vào bản chất của động cơ bước góc, thường có giá trị là 1, 3, 5, 15, 45. Ví dụ, nó là cần thiết để bước động cơ 10 bước để di chuyển động cơ bước 300 với một góc 30 bước. Động cơ bước cần được cấp năng lượng tuần tự và theo thứ tự nhất định để xoay theo một hướng nhất định.
Bước cuộn dây động cơ
Động cơ bước thường là 4, 5 và 6 điểm. Trên thị trường, động cơ bước 5 bước được sử dụng rộng rãi. Trên đường đua thứ 5, một trong những đường ray được gọi là "động cơ V". + Nguồn cung cấp 12V hoặc mặt đất được áp dụng theo mức độ truyền động đã chọn (nếu động cơ là 6 điểm lần này, 2 điểm được kết hợp và kết nối với nguồn cung cấp 12V hoặc đầu vào mặt đất) 4 cáp còn lại đi vào cuộn dây động cơ. Để bước vào động cơ, cần phải gửi + 12V (hoặc mặt đất) đến cáp "V động cơ" và mặt đất (hoặc + 12V) cho các đầu nối với các cuộn dây theo một thứ tự nhất định.
Cách phổ biến nhất để lái một động cơ bước với công suất trung bình là sử dụng toàn bộ mạch ULN 2003. Toàn bộ mạch này chứa 7 bóng bán dẫn NPN và điốt. Từ vi điều khiển kết thúc, ULN 2003 áp dụng một logic '1' cho đầu vào của toàn bộ mạch, và từ đầu ra của toàn bộ mạch, logic '0' cần thiết để điều khiển động cơ thu được.
Có một vài cách khác nhau để kích thích động cơ bước. Chúng bao gồm:
Kích thích một pha (Cuộn đơn):
Kích thích một trong các cuộn dây động cơ được gọi là kích thích một pha. Kích thích phải là 0001, 00010, 0100, 1000 đối với nghịch đảo theo chiều kim đồng hồ là 1000, 0100, 0010, 0001.
Kích thích một trong các cuộn dây động cơ được gọi là kích thích một pha. Kích thích phải là 0001, 00010, 0100, 1000 đối với nghịch đảo theo chiều kim đồng hồ là 1000, 0100, 0010, 0001.
Các giá trị được áp dụng cho cuộn dây để kích thích một pha
Hai giai đoạn kích thích (Double Coil):
hai giai đoạn kích thích, động cơ quanh co là một hình thức kích thích được kích thích đồng thời với hai hàng. Trong sự kích thích này, đáp ứng trạng thái tạm thời của rotor nhanh hơn kích thích một pha, nhưng sức mạnh tăng gấp đôi.
hai giai đoạn kích thích, động cơ quanh co là một hình thức kích thích được kích thích đồng thời với hai hàng. Trong sự kích thích này, đáp ứng trạng thái tạm thời của rotor nhanh hơn kích thích một pha, nhưng sức mạnh tăng gấp đôi.
Các giá trị được áp dụng cho cuộn dây để kích thích hai pha
Kích thích nửa bước (Half Step): Trong
chế độ kích thích này, một pha và hai pha được kết hợp. Trong kích thích nửa bước, rôto tạo tín hiệu nửa bước cho mỗi tín hiệu kích thích. Ví dụ: Có thể giảm góc bước của động cơ với góc nhà máy là 2 ° x 1 °.
chế độ kích thích này, một pha và hai pha được kết hợp. Trong kích thích nửa bước, rôto tạo tín hiệu nửa bước cho mỗi tín hiệu kích thích. Ví dụ: Có thể giảm góc bước của động cơ với góc nhà máy là 2 ° x 1 °.
Các giá trị được áp dụng cho cuộn dây để kích thích nửa bước
Ví dụ về việc sử dụng
động cơ bước : Động cơ bước rất đắt để sử dụng trong các ứng dụng công nghiệp và điện tử. Đơn giản nhất, công nghệ này đã được áp dụng cho các ổ đĩa mềm và đĩa cứng trong máy tính của chúng tôi. Động cơ bước dịch tín hiệu logic được áp dụng cho đầu vào của chúng vào chuyển động quay. Động cơ bước mà bạn có thể xoay theo hướng và mức độ bạn muốn được sử dụng để điều khiển vị trí trong nhiều thiết bị nhờ vào các chuyển động nhạy cảm của chúng. Mặc dù nó trông giống như một công việc rất phức tạp từ bên ngoài, điều khiển động cơ bước với PC khá dễ dàng và thú vị.
động cơ bước : Động cơ bước rất đắt để sử dụng trong các ứng dụng công nghiệp và điện tử. Đơn giản nhất, công nghệ này đã được áp dụng cho các ổ đĩa mềm và đĩa cứng trong máy tính của chúng tôi. Động cơ bước dịch tín hiệu logic được áp dụng cho đầu vào của chúng vào chuyển động quay. Động cơ bước mà bạn có thể xoay theo hướng và mức độ bạn muốn được sử dụng để điều khiển vị trí trong nhiều thiết bị nhờ vào các chuyển động nhạy cảm của chúng. Mặc dù nó trông giống như một công việc rất phức tạp từ bên ngoài, điều khiển động cơ bước với PC khá dễ dàng và thú vị.
Bước chu kỳ ổ đĩa động cơ:
- 1 X ULN2003 tích hợp
- 1 X 1N4001 Diode
- Động cơ bước 1 x 12 Volt 5 cáp
Chúng tôi sử dụng ULN2003 tích hợp như một động cơ bước lái ULN2003, được sử dụng như một mạch ổ đĩa, có 7 NPN bóng bán dẫn và điốt nội bộ. Anh ta đang cứu chúng ta khỏi việc giao dịch với chân transistor.
Việc sử dụng nó khá dễ dàng. Như bạn có thể nhìn thấy từ bảng mạch, chúng tôi áp dụng +12 Volt để khởi động 9 và Ground để khởi động thứ 8. Sau đó, chúng tôi sẽ áp dụng giá trị +5 volt từ chân DATA cổng song song với chân 3 và 6. Ví dụ, khi chúng ta áp dụng + 5 Volts (điện áp logic) cho bội số 3, chân 14 sẽ được nối đất. Trong cùng một cách, chân sẽ là trái đất cho 4, 13 cho 5, 12 cho 6, và 11 cho 6.
ULN2003 Motor Driver kết nối chân tích hợp
ULN2003 Motor Driver tích hợp mạch điều khiển kết nối
5 động cơ bước có dây đã được sử dụng. Vì các nguyên tắc hoạt động là như nhau, việc thay đổi số lượng dây sẽ không thay đổi logic của chương trình. Một trong những dây cáp của động cơ bước 5 dây là cáp thông thường mà chúng tôi gọi là Vmotor. Điều quan trọng là phải tìm ra loại cáp nào. Đối với điều này, chúng tôi mang avometer đến OHM và đo đầu cáp theo cặp.
Cáp là cáp Vmotor thông thường có cùng điện trở giữa tất cả các dây dẫn. Như bạn có thể thấy, 4 cáp khác đi vào cuộn dây động cơ. Những 4 cáp cũng có một dòng. Nếu các dây này được kết nối theo thứ tự sai, động cơ sẽ chỉ lắc thay vì xoay. Như đã đề cập ở trên, chúng ta phải gửi trái đất với một thứ tự nhất định của các loại cáp kết nối với than khác, trong khi cho + 12 volt cho động cơ cho động cơ bước. Để gửi 4 tín hiệu trái đất cho cáp, +5 Volts phải được gửi để chân 3, 4, 5 và 6 của bộ tích hợp.
TEXT LCD (Màn hình Cristal lỏng):
Màn hình LCD văn bản 2 x 16
Hình này hiển thị Lcd văn bản 2 × 16. Nguyên tắc hoạt động và kết nối cuối của màn hình LCD được sử dụng ngày nay được chuẩn hóa. Đường dẫn dữ liệu giữa D0 và D7 cung cấp Lcd để đọc dữ liệu từ bên ngoài và gửi dữ liệu ra bên ngoài. Số 1 cho hoạt động của các thiết bị đầu cuối LCD (VSS) và số khung 2 thiết bị đầu cuối (VDD) +5 volt điều chỉnh độ sắc nét số điện áp cung cấp verilir.3 Lcd chân của (độ tương phản) được sử dụng. Ngoài thủ môn chọn (RS, đăng ký được chọn) cuối thông tin đầu vào 8-bit được gửi từ các dữ liệu, xác định rằng một mã ký tự hoặc lệnh. (RS = 0 dữ liệu - RS = 1 lệnh), đọc / ghi (R / W đọc / ghi) cuối LCD truyền dữ liệu hoặc trong màn hình LCD được sử dụng để đọc dữ liệu (R / W = 1-các dữ liệu đọc hoạt động. Nếu / W = 0, ghi dữ liệu được thực hiện.) Ủy quyền (E,
EA (External Accsess):
Mẹo này, là điểm 31 của vi điều khiển (AT89S52), hoạt động ở mức thấp. Nó được kết nối với điện áp hoặc khung điện áp 5 volt. Nếu được kết nối với +5 vôn, chương trình sẽ chạy từ bộ nhớ ngoài nếu các chương trình được kết nối với ROM bên trong.
Mẹo này, là điểm 31 của vi điều khiển (AT89S52), hoạt động ở mức thấp. Nó được kết nối với điện áp hoặc khung điện áp 5 volt. Nếu được kết nối với +5 vôn, chương trình sẽ chạy từ bộ nhớ ngoài nếu các chương trình được kết nối với ROM bên trong.
Đọc / Ghi (R / W) Ucu:
Được sử dụng để chuyển dữ liệu sang màn hình LCD hoặc đọc dữ liệu trên màn hình LCD. Nếu có mức logic '1' ở đầu cuối này, màn hình LCD sẽ đọc dữ liệu và nếu mức logic '0', màn hình LCD sẽ nhập dữ liệu. Nếu RS chỉ ra rằng dữ liệu là một lệnh hoặc ký tự, màn hình LCD sẽ hiển thị rằng ký tự đó là một bộ ký tự ASCII.
Được sử dụng để chuyển dữ liệu sang màn hình LCD hoặc đọc dữ liệu trên màn hình LCD. Nếu có mức logic '1' ở đầu cuối này, màn hình LCD sẽ đọc dữ liệu và nếu mức logic '0', màn hình LCD sẽ nhập dữ liệu. Nếu RS chỉ ra rằng dữ liệu là một lệnh hoặc ký tự, màn hình LCD sẽ hiển thị rằng ký tự đó là một bộ ký tự ASCII.
Authorization (Enable, E) đầu vào
là một chút đơn đầu vào cho phép màn hình LCD được thực hiện khều sau khi điều chỉnh quá trình cần thiết đang được thực hiện. Tất cả các thao tác trên màn hình LCD (các lệnh đọc và viết, vv ..) được thực hiện trên cạnh rơi xuống. Do đó, E '1' phải được đặt trước khi xử lý và sau đó là '0'. Bằng cách này, một cạnh thu được là thu được.
là một chút đơn đầu vào cho phép màn hình LCD được thực hiện khều sau khi điều chỉnh quá trình cần thiết đang được thực hiện. Tất cả các thao tác trên màn hình LCD (các lệnh đọc và viết, vv ..) được thực hiện trên cạnh rơi xuống. Do đó, E '1' phải được đặt trước khi xử lý và sau đó là '0'. Bằng cách này, một cạnh thu được là thu được.
AT89S52 Tính năng và xác nhận pin:
Các tính năng:
- CPU 8 bit cho các ứng dụng điều khiển
- Bộ xử lý logic
- 8051-dựa Low-Voltage CMOS 16MHz Controls / ra (I / O) cổng 4 8-bit đầu vào (32 điểm)
- 3 đơn vị Timer / counter
- Watchdog Timer
- 8 cấu hình phần cứng cắt với 2 mức ưu tiên
- UART, 2 DPTR,
- Bộ nhớ Flash 8K Byte (ISP), 256 Byte RAM trên chip
Cấu hình pin AT89S52

Vật liệu được sử dụng trong thực hiện:
- 1 động cơ bước 5 bước
- 1 bộ vi điều khiển AT89S52
- 1 piece ULN2003 gói stepper ổ đĩa động cơ transistor
- Màn hình LCD văn bản 1 x 2 x 16
- 5 nút
- 1 pha lê 11,0592MHz
- 1 tụ 10μF
- 1 mảnh điện trở 8.2K
- 4 miếng điện trở 10K
- 2 Tụ 22pF
Mã thực hành C:
Các mã nguồn này được viết bằng ngôn ngữ lập trình C sử dụng chương trình biên dịch Keil và các giải thích cần thiết được thực hiện cùng với các mã.
Các mã nguồn này được viết bằng ngôn ngữ lập trình C sử dụng chương trình biên dịch Keil và các giải thích cần thiết được thực hiện cùng với các mã.
Chương trình chính;
#include#include "T_LCD.h" #define stepmotor P2 #define UP P3_0 #define ASAGI P3_1 #define ENTERPRISE P3_3 #define RESET P3_2 mã char chưa ký hiệu bước [8] = {0x01,0x03,0x02,0x06,0x04,0x0C, 0x08,0x09}; 1, 2, 3, 4, 5, 6, 7, 8, 9, ; unsigned char yuks, vị trí; unsigned char c1 = 0, c2 = 0, c3 = 0; bit cắt ngắn = 0; / * Khai báo mẫu * / unsigned char position_bul (void); void di chuyển (unsigned char, unsigned char); void screen_graph (void); void arttir_azalt (unsigned char * number, unsigned char dgskn, unsigned char sub, unsigned char ust) { if (! DOWN) { while (lại từ trên xuống); if ((* number)> alt) * Số = (* số) -dgskn; khác * SA = trên; } if (! UP) { while (UP!); nếu ((* số) = Chức vụ) { adim_say = 4 * (chiều cao vị trí); Bấm = konum_bul (); for (i = âm bass + 1; i <(nhấn + adim_say + 1); i ++) { bước Stepmotor R = [(i% 8)]; Delay (100); } } khác { adim_say = 4 * (vị trí-Chiều cao); Bấm = konum_bul (); x = 8 * ((adim_say / 8) +1); for (i = bass-1 + x, i> (BAS-1 + (x-adim_say)); i--) { bước Stepmotor R = [(i% 8)]; Delay (100); } } } void screen_video (void) { Command (Delete); Command (ıkincisat); DataDizi ("Vị trí:", 0); c1 = địa điểm / 100; Dữ liệu (số [C1], 0); c2 = (địa điểm / 10) 10%; Dữ liệu (số [C2], 0); vị trí c3 = 10%; Dữ liệu (sai [c3], 0); veridiana (các "mm", 0); Command (birincisat); DataDizi ("Chiều cao: mm", 0); Command (ımlecger a); Command (ımlecger a); Command (ımlecger a); Command (ımlecger a); Command (ımlecger a); } void chính (void) { lcdac (); Command (Delete); Yukser = 0; position = 0; Stepmotor R = 0x03; // cung cấp vị trí ban đầu Command (ıkincisat); VeriDizi ("Volkan SELCUK", 0); Command (birincisat); DataDizi ("Chiều cao: mm", 0); Command (ımlecger a); Command (ımlecger a); Command (ımlecger a); Command (ımlecger a); Command (ımlecger a); while (1) { nếu (GIRIS &&! ngắt) { arttir_azalt (& tăng, 5,0,250); // Nhập giá trị theo mm -> 1 = Tăng giá trị lên 1 mm và nhập giá trị từ 0 đến 250 mm tức là từ 0 đến 25 cm. c1 = ALT / 100; Dữ liệu (số [C1], 0); c2 = (ALT / 10) 10%; Dữ liệu (số [C2], 0); Yukser c3 = 10%; Dữ liệu (sai [c3], 0); Command (ımlecger a); Command (ımlecger a); Command (ımlecger a); } khác { if (Yukser! = vị trí) { while (! đầu vào); phong trào (vị trí, tăng); position = Yukser; ekran_yaz (); } cut-off = 0; } } }
Chương trình con là một hàm được ghi lại dưới dạng tệp tiêu đề có phần mở rộng T_LCD h; Nếu chương trình chính là thực hiện thao tác liên quan đến màn hình LCD, thao tác được thực hiện bằng cách phân nhánh.
Chương trình mà chúng tôi đã viết ở trên cần thực hiện một số cài đặt ban đầu để màn hình LCD có thể hiển thị các ký tự mong muốn trên màn hình. Mở màn hình, thiết lập số lượng bit được sử dụng là thao tác đầu tiên phải được thực hiện cho hoạt động của màn hình LCD.
Hiển thị văn bản sẽ được sử dụng như là tiêu chuẩn trong các ứng dụng LCD, gửi lệnh, thiết lập các điều kiện bắt đầu của màn hình LCD, v.v. Hàm T_LCD sau đây đã được sử dụng để định nghĩa các thường trình như các hàm và gọi chúng khi cần thiết. Chức năng này được lưu dưới dạng tệp thư viện.
Chương trình con
/ ************************************************* *************** / / * T_LCD.H * / / ************************************************* *************** / / * Xác định các lệnh được sử dụng trên màn hình LCD * / #define Xóa 1 // Xóa màn hình #define BasaDon 2 // Di chuyển con trỏ đến góc trên cùng bên trái #define SolaYaz 4 // Địa chỉ được chỉ định bởi con trỏ đi xuống #define SagaYaz 6 // Con trỏ sẽ tăng địa chỉ được chỉ định #define ImlecGizle 12 // Mở chỉ báo, làm cho con trỏ hiển thị #define ImlecYanSon 15 // Nhấp nháy con trỏ khối #define ImlecGeri 16 // Di chuyển trở lại một ký tự trong con trỏ #define SlideSaga 24 // Trượt con trỏ một ký tự sang bên phải #define SlideSave 28 // Trượt sang trái một ký tự trong màn hình #define DisplayClose 8 // Đóng màn hình (dữ liệu sẽ không bị xóa) #define FirstSection 128 // Địa chỉ bắt đầu dòng đầu tiên của màn hình LCD // (địa chỉ DDRAM) #define SecondarySection 192 // Địa chỉ bắt đầu của dòng thứ hai #define KarakUretAdres 64 // Đặt địa chỉ của trình tạo ký tự // (địa chỉ CGRAM) / * Chức năng lựa chọn trên màn hình LCD * / #define CiftSatir8Bit 56 // giao diện 8 bit, 2 dòng, 5 * 7 pixel #define CiftSatir4Bit 48 // giao diện 8 bit, 1 dòng, 5 * 7 pixel #define TekSatir8Bit 40 // giao diện 4 bit, 2 dòng, 5 * 7 pixel #define TekSatir4Bit 32 // giao diện 4 bit, 1 dòng, 5 * 7 pixel / * Nhận dạng đầu vào LCD * / #define Dữ liệu P1 // Gán cổng cho các mục Dữ liệu LCD #define RS P3_7 // Đăng ký lựa chọn đầu vào RS = 0 lệnh, RS = 1 dữ liệu #define RW P3_6 // Đọc / ghi đầu vào Viết RW = 0, ghi RW = 1 #define EN P3_5 // Đăng nhập ủy quyền / * Chức năng trễ LCD * / void delay (dài int chắc chắn) { dài int i; cho (i = 1; i <= chắc chắn; i + +) {;} } / * Chức năng chờ sẵn sàng LCD * / void LcdHead () { Data = 0xFF; // Chuẩn bị nhận dữ liệu LCD RS = 0; // chế độ lệnh RW = 1; // Đọc trên màn hình LCD EN = 1; // cài đặt cạnh cắt cho phép Delay (200); // thời gian chờ đợi ngắn trong khi (Dữ liệu & 0x7F == 0x80); // kiểm tra bit bận. } / * Chức năng in lệnh LCD * / void Command (lệnh int) { lcdhaz là (); // Đợi cho đến khi màn hình LCD sẵn sàng RS = 0; // RS trong chế độ lệnh RW = 0; // Chế độ ghi RW WIDTH = 1; // cài đặt cạnh giảm đối với ủy quyền quy trình Data = lệnh; // Chuyển thông tin lệnh tới đầu vào dữ liệu LCD EN = 0; // cạnh giảm cho phép được cấp Delay (1000); // chậm trễ } / * Chức năng in ký tự đơn trên màn hình LCD * / void Dữ liệu (dữ liệu char, dài int nhanh) { lcdhaz là (); // Đợi cho đến khi màn hình LCD sẵn sàng RS = 1; // RS trong chế độ lệnh RW = 0; // Chế độ ghi RW WIDTH = 1; // xử lý cạnh nhàn rỗi để ủy quyền Data = dữ liệu; // Chuyển thông tin dữ liệu sang đầu vào dữ liệu LCD EN = 0; // cạnh giảm cho phép được cấp Chậm trễ (vận tốc); // Thời gian giữa hiển thị các ký tự trên màn hình } / * Chuỗi ký tự LCD (Chuỗi) Chức năng in * / void DataDizi (dữ liệu char [], dài int nhanh) { int i = 0; while (dữ liệu [i]! = 0) { lcdhaz là (); // Đợi cho đến khi màn hình LCD sẵn sàng RS = 1; // RS trong chế độ lệnh RW = 0; // Chế độ ghi RW WIDTH = 1; // xử lý cạnh nhàn rỗi để ủy quyền Data = dữ liệu [i]; // Chuyển thông tin dữ liệu sang đầu vào dữ liệu LCD EN = 0; // cạnh giảm cho phép được cấp i ++; // tăng mảng bằng 1 để nhận bit dữ liệu tiếp theo Chậm trễ (vận tốc); // thời gian giữa các ký tự xuất hiện } } / * Chức năng tạo cài đặt ban đầu cho LCD * / void LcdAc (void) { Command (ımlecgizl A); Command (ciftsatir8bit); Command (sagayaz); }
Keil và proteus ares thuộc về thang máy dự án: AT89S52 chiều cao điều chỉnh Lcd hiển thị thang máy
Tệp tải xuống danh sách LINK (ở định dạng TXT) link-3263.zip mật khẩu-pass: 320volt.com
Post a Comment