I.1 Caáu Taïo 1.Caáu taïo phaàn tónh (stato) Goàm voû maùy, loûi saét vaø daây quaán. a) Voû maùy: Thöôøng laøm baèng gang. Ñoái vôùi maùy coù coâng suaát lôùn (1000 kw), thöôøng duøng theùp taám haøn laïi thaønh voû. Voû maùy coù taùc duïng coá ñònh vaø khoâng duøng ñeå daãn töø. b) Loûi saét: Ñöôïc laøm baèng caùc laù theùp kyõ thuaät ñieän daøy 0,35 mm ñeán 0,5 mm gheùp laïi. Loûi saét laø phaàn daãn töø . Vì töø tröôøng ñi qua loûi saét laø töø tröôøng xoay chieàu, nhaèm giaûm toån hao do doøng ñieän xoaùy gaây neân, moãi laù theùp kyõ thuaät ñieän ñeàu coù phuû lôùp sôn caùch ñieän. Maët trong cuûa loûi theùp coù xeû raûnh ñeå ñaët daây quaán . c) Daây quaán : Daây quaán ñöôïc ñaët vaøo caùc raûnh cuûa loûi saét vaø caùch ñieän toát vôùi loûi saét. Daây quaán stato goàm coù ba cuoän daây ñaët leäch nhau 120¬¬¬¬ o ñieän. 2. Caáu taïo phaàn quay (Roto) a) Truïc :
Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức Group Điện Tử Ứng Dụng Đầu tiên bạn phải có Keil uVision: Mở Keil tạo project mới: http://facebook.com/masoi.hd masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức http://facebook.com/masoi.hd Group Điện Tử Ứng Dụng masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức http://facebook.com/masoi.hd Group Điện Tử Ứng Dụng masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức http://facebook.com/masoi.hd Group Điện Tử Ứng Dụng masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức http://facebook.com/masoi.hd Group Điện Tử Ứng Dụng masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức Group Điện Tử Ứng Dụng Vậy xong bước tạo project :D Đầu tiên khai báo thư viện cho đã: #include Bây ta viết hàm tạo trễ ms: Hàm sau: void delay(unsigned char tre) { while(tre ) { unsigned char i=123; while(i ) }; } Bước ta viết hàm tắt tất LED, hàm gọi quét LED để khắc phục hiệu ứng bóng ma(LED không tắt hẳn mà sáng mờ) Hàm sau: void xoa() { P0=P1=P2=P3=0xFF; } Vậy xong bước chuẩn bị :D Bây ta xét phần cứng Cube 5x5x5 chút nhé: Đại đa số phần cứng phổ biến sau: http://facebook.com/masoi.hd masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức http://facebook.com/masoi.hd Group Điện Tử Ứng Dụng masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức Group Điện Tử Ứng Dụng Ta thấy cột 1-8 tương ứng P1_0 – P1_7; cột 9-16 : P3_0 – P3_7; 17- 24: P2_0 – P2_7; cột 25 : P0_6; hang 1-5: P0_0 – P0_4; Dựa phần cứng để lập trình nhé! Như trước biết cách lập trình gán cột, hàng vào chân 8051 phép gán sbit P1^0 = cot1;… không dùng cách mà dùng hoàn toàn mã hexa :D Cách lấy mã hexa keil C sau: http://facebook.com/masoi.hd masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức Group Điện Tử Ứng Dụng Ta dễ dàng điều khiển port mức logig (bỏ tích) (tích chọn) thu mã hexa cần thiết vùng khoanh đỏ :D Chẳng hạn muốn cột 1, cột 3, cột 6, cột hàng sang ta cần cho P1_0, P1_2, P1_5, P1_7 P0_0 http://facebook.com/masoi.hd masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức Group Điện Tử Ứng Dụng mức thấp: ta thu được: P0=0xFE; P1=0x5A; Quá đơn giản không Ở ta lấy mã hex hàng dùng phương pháp quét LED để tạo hiệu ứng hoàn chỉnh! Để dễ hiểu minh họa sau: ví dụ bạn muốn hiển thị trái tim lớp khối LED này: Ta thấy hàng thứ có LED cột sáng ta có: P0=0xFE;P1=0xFB;P2=0xFF;P3=0xFF; http://facebook.com/masoi.hd masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức Group Điện Tử Ứng Dụng Tương tự hàng thứ 2: P0=0xFD;P1=0xF1;P2=0xFF;P3=0xFF; …… Cho đến hàng thứ Rồi ta tập hợp mã hexa port vào mảng: P0: {0xFE,0xFD…} P1:{0xFB,0xF1 } P2:{0xFF,0xFF…} P3:{0xFF,0xFF…} Vậy xong phần lấy mã hex nhé! Bây ta bắt đầu viết hiệu ứng: - Cách viết thứ nhất: Đầu tiên ta khai báo mảng cho hàng cột 25, thằng nằm chung port unsigned char code hang[2][5]={{0xFE,0xFD,0xFB,0xF7,0xEF,},{0xBE,0xBD,0xBB,0xB7,0xAF}}; //5 mã đầu đặt mức thấp cho hàng, năm mã sau mức thấp cho hàng + cột 25; dung chung cho tất chương trình Chương trình viết sau: void hieuung() { unsigned char i,j,k; unsigned char code cot[3][40]={ { 0xFE,0x7D,0xBB,0xD7,0xEF, 0x7D,0xBA,0xD7,0xEF,0xFF, 0xBB,0x55,0xEE,0xFF, 0xFF, 0xD7,0xAB,0x7D,0xFE,0xFF, 0xEF,0xD7,0xBB,0x7D,0xFE, 0xFF,0xEF,0xD7,0xBA,0x7D, 0xFF,0xFF,0xEE,0x55,0xBB, 0xFF ,0xFE,0x7D,0xAB,0xD7, }, { 0xFE,0x7D,0xBB,0xD7,0xEF, 0x7D,0xBA,0xD7,0xEF,0xFF, 0xBB,0x55,0xEE,0xFF, 0xFF, 0xD7,0xAB,0x7D,0xFE,0xFF, 0xEF,0xD7,0xBB,0x7D,0xFE, http://facebook.com/masoi.hd masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức Group Điện Tử Ứng Dụng 0xFF,0xEF,0xD7,0xBA,0x7D, 0xFF,0xFF,0xEE,0x55,0xBB, 0xFF ,0xFE,0x7D,0xBB,0xD7, }, { 0xEE,0x55,0xBB,0xFF,0xFF, 0x55,0xAA,0xFF,0xFF,0xFF, 0xBB,0x55,0xEE,0xFF, 0xFF, 0xFF,0xBB,0x55,0xEE,0xFF, 0xFF,0xFF,0xBB,0x55,0xEE, 0xFF,0xFF,0xFF,0xAA,0x55, 0xFF,0xFF,0xEE,0x55,0xBB, 0xFF,0xEE,0x55,0xBB,0xFF, } }; for(i=0;i[...]... ngôn ngữ C cho 8051 nhé! Tiếp theo thì tạo file hex để nạp chip chắc các bạn đều biết rồi nhỉ http://facebook.com/masoi.hd masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức http://facebook.com/masoi.hd Group Điện Tử Ứng Dụng masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức http://facebook.com/masoi.hd Group Điện Tử Ứng Dụng masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5... Từ cách viết này các bạn đã hiểu các giá trị của trong lệnh if cảu cách trên lấy đâu ra chưa hãy xem mảng của port 0 (mảng đầu tiên ấy) - Cách viết thứ 3: Cách viết này chả khác gì cách viết thứ 2 chỉ khác là ta dung từng mảng 1 chiều cho từng port thôi Chương trình chúng ta như sau: void hieuung() { unsigned char i,j,k; http://facebook.com/masoi.hd masoi.hd@gmail.com Hướng Dẫn Viết Code Cube 5x5x5.. .Hướng Dẫn Viết Code Cube 5x5x5 Hoàng Anh Đức Group Điện Tử Ứng Dụng Tương tự hàng thứ 2: P0=0xFD;P1=0xF1;P2=0xFF;P3=0xFF; …… Cho đến hàng thứ 5 Rồi ta sẽ tập hợp các mã hexa của từng port vào một mảng: P0: {0xFE,0xFD…} P1:{0xFB,0xF1 } P2:{0xFF,0xFF…} P3:{0xFF,0xFF…} Vậy là xong phần lấy mã hex rồi nhé! Bây giờ ta bắt đầu viết hiệu ứng: - Cách viết thứ nhất: Đầu tiên ta khai báo một mảng cho hàng... mình dung quét LED hết nhé! Đến phần main thì cứ gọi chương trình con ra là chạy thôi unsigned char i; void main() { while(1) // vòng lặp vô tận! { for(i=0;i