Nghiên cứu, thiết kế, chế tạo điều tốc cho các trạm thủy điện

Theo các thông tin, tài liệu từcác công ty, tổ chức nước ngoài về thủy điện nhỏ

như: Hãng TANAKA (Nhật bản), Trung tâm khu vực Châu á - Thái bình dương về

thủy điện nhỏ(Hàng Châu-Trung Quốc), SHP network. cho thấy điều tốc điều chỉnh

phụtải (Electronic Load Control - ELC) đã được sửdụng rộng rãi trong các trường

hợp như đã phân tích ở trên. Chúng tôi đã có các tài liệu vềELC của Srilanca, Niu-Dilan và Nhật Bản. Loại thứnhất hoàn toàn sửdụng kỹthuật Analog, phù hợp với tổ

máy thuỷ điện cực nhỏ. Thiết bịcủa hãng PowerFlow (Niu-Dilan) sửdụng linh kiện

PLD (Programable Logic Device), phù hợp với các trạm thuỷ điện nhỏ. Cũng sửdụng

cho các trạm thuỷ điện nhỏ, thiết bịcủa TANAKA (Nhật Bản) lại sửdụng vi xửlý.

Trong quá trình thực hiện đềtài, chúng tôi đã nhập một sốbộthiết bịnhưvậy từnước

ngoài đểkhảo sát. Sau khi xem xét thiết bịtrong phòng thí nghiệm và tại hiện trường,

chúng tôi đã có một sốnhận xét sau:

- Thiết bịcó kích thước gọn nhẹ, hoàn toàn phù hợp với các trạm thủy điện nhỏvà

cực nhỏvềlắp đặt, sửdụng, bảo dưỡng thay thế;

pdf120 trang | Chia sẻ: lethao | Lượt xem: 1523 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Nghiên cứu, thiết kế, chế tạo điều tốc cho các trạm thủy điện, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
được sử dụng. Mặt khác, có một đặc điểm liên quan tới máy phát điện, đó là các tổ máy cực nhỏ ngày nay có xu hướng sử dụng máy phát điện từ động cơ không đồng bộ (Asynchro-motor). Xu hướng này làm cho thiết kế máy phát đơn giản, giá thành thấp, thích hợp với các trường hợp không có yêu cầu cao về chất lượng dòng điện (Chỉ dùng thắp sáng, đun nấu). Trong trường hợp này, dòng điện phát ra có tần số không ổn định, do nguyên lý “không đồng bộ” của động cơ, vì vậy chỉ có thể điều khiển theo điện áp. Tuy nhiên, kỹ thuật analog có một nhược điểm lớn là sự “trôi dạt” điểm công tác do ảnh hưởng của môi trường ngoài như nhiệt độ, độ ẩm, dẫn đến thay đổi thông số của thiết bị, điều này đã hạn chế việc ứng dụng các linh kiện và thiết bị analog. Thứ hai, sử dụng kỹ thuật số cho phép khắc phục nhược điểm của kỹ thuật analog. Kỹ thuật số dựa trên nền tảng cơ bản là kỹ thuật xung số, vì vậy trong trường hợp này điều khiển theo tần số phù hợp hơn cả. Điều khiển theo tần số sẽ có chất lượng cao do có thể đo đếm rất chính xác sự biến động dù rất nhỏ của tần số, thời gian đo lường tần số nhanh hơn đo điện áp (qua kỹ thuật ADC). Trừ khi sử dụng máy phát “không đồng bộ”, thiết bị sử dụng kỹ thuật số có thể áp dụng cho tổ máy thuỷ điện có công suất vừa, nhỏ và cực nhỏ. Ứng dụng kỹ thuật số có thể theo hai khuynh hướng: Linh kiện PLD (Programable Logic Control) hoặc Vi xử lý. Sử dụng linh kiện PLD sẽ làm giá thành thiết bị rẻ hơn so với vi xử lý, nhưng chất lượng điều khiển kém hơn do cấu tạo của linh kiện. Hiện nay, với sự phát triển mạnh mẽ của công nghệ điện tử - tin học, các bộ vi xử lý được tích hợp nhiều tính năng điều khiển trên cùng một vi mạch (On-chip) NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 50 như: Timer, bộ thuật toán số học, các khối nhân/chia...v.v.., tốc độ xung nhịp của chúng cũng được tăng lên đáng kể, các linh kiện ngoại vi cũng được phát triển rộng rãi, nên một bộ vi xử lý cho phép thực hiện “đồng thời” nhiều nhiệm vụ khác nhau do số lượng các đường vào ra lớn, tốc độ xử lý nhanh, kết hợp với sự phát triển về thuật toán điều khiển. Việc sử dụng một bộ điều khiển để thực hiện đa chức năng có thể thấy ở mọi lĩnh vực, mọi ứng dụng trong kỹ thuật và đời sống. III.1.2.3 Phương án thiết kế thiết bị Tham khảo thiết bị của các hãng nước ngoài và xem xét khả năng áp dụng trong nước, nhóm đề tài lựa chọn thiết kế bộ điều tốc điều chỉnh phụ tải (ELC) cho dải công suất 20 - 200 kW như sau: (11) Phương thức điều khiển Điều khiển theo góc pha, với số khối tải giả là 2. Đây là phương thức điều khiển thông dụng hiện nay, giá thành rẻ nhất. (12) Tham số điều khiển Với dải công suất này, không sử dụng máy phát “không đồng bộ”, nên tham số điều khiển sẽ là tần số. (13) Điều khiển 1 pha / 3 pha Chọn kiểu điều khiển kiểu 1 pha. Với thiết kế điều khiển 1 pha, mạch điều khiển sẽ có kích thước nhỏ. Khi cần thiết, ghép 3 bộ điều khiển 1 pha sẽ thành bộ điều khiển sử dụng cho máy phát 3 pha. (14) Lựa chọn chức năng - Là thiết bị điều tốc điều chỉnh phụ tải; - Là thiết bị bảo vệ, có khả năng bảo vệ khi quá tốc, tốc độ thấp, đóng máy khi có sự cố; - Có các đầu vào bao gồm các giá trị thiết lập thông số PI, thời gian lấy mẫu; - Các đầu vào cấp năng lượng cho thiết bị, đầu vào đo giá trị tần số; - Có các đầu ra xung điều khiển tải giả; NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 51 - Có đầu ra kiểu rơ le điều khiển đóng máy sự cố. (15) Kiểu linh kiện Với phương thức điều khiển và các chức năng lựa chọn như trên, xử dụng vi xử lý họ 8051, cụ thể là 89C2051. III.2 THIẾT KẾ PHẦN CỨNG III.2.1 CPU Sử dụng CPU loại 89C2051, một loại linh kiện vi xử lý trong họ MSC-51, có dung lượng bộ nhớ tương tự linh kiện 8051 chuẩn (RAM: 128 Bytes, ROM: 2 KB), nhưng có kích thước gọn hơn. Với dung lượng bộ nhớ ROM là 2 KB, cho phép chứa chương trình điều khiển lớn (khoảng 1000 lệnh), có khả năng tăng thêm các chức năng trong tương lai (Hiện tại, chương trình điều khiển chỉ chiếm gần 1 KB bộ nhớ ROM). Với tổ chức bộ nhớ trong, toàn bộ các port bên ngoài được sử dụng hoàn toàn cho các chức năng đo lường điều khiển. Hơn nữa, sử dụng hoàn toàn bộ nhớ trong cho phép tăng tốc độ truy cập tính toán cũng như bảo vệ được bí mật (bản quyền) của phần mềm điều khiển. Hình 40 - CPU và các giao tiếp chính CPU - 89C2051 hoạt động với tần số 12 MHz, như vậy xung nhịp vi xử lý là 1 MHz, mỗi chỉ thị lệnh sẽ thực hiện trong 1 - 2 µs, đủ nhỏ để tiến hành các thao tác xử lý, tính toán và thực hiện “đồng thời” các chức năng khác nhau. NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 52 Toàn bộ cổng P1 sử dụng để đọc các công tắc số mã nhị phân (8 bits) cùng với các chân P3.5 và P3.7 điều khiển phân kênh đọc vào (MUX-DEMUX). Giá trị tần số được nhập vào tại chân P3.2 Các chân P3.0, P3.1 sử dụng để điều khiển rơ le trong trường hợp tần số vượt ngoài khoảng cho phép. Các chân P3.3, P3.4 sử dụng để điều khiển 2 khối tải giả. III.2.2 KHỐI ĐO LƯỜNG TẦN SỐ Việc đo tần số được tiến hành bằng phần mềm, vì vậy mạch phần cứng chỉ là mạch biến đổi tín hiệu hình sin thành tín hiệu xung vuông cùng tần số, và được nối với chân P3.2. Sử dụng chức năng thứ 2 của chân này (Ngắt ngoài INT0), nhờ sự biến đổi sườn xuống của tín hiệu xung tại chân tương ứng, sẽ kích hoạt ngắt IE0 để thực hiện sự tính toán tần số nguồn điện. Mạch điện thực hiện chức năng biến đổi dạng tín hiệu như hình 18, mạch điện này đảm bảo xác định chính xác điểm “0” của tín hiệu hình sin, rất quan trọng khi điều khiển góc cắt tải. Hình 41 - Mạch biến đổi tín hiệu tần số III.2.3 CÁC CÔNG TẮC THIẾT LẬP GIÁ TRỊ VẬN HÀNH Khác với điều tốc điều khiển lưu lượng, các thông số của tổ máy thuỷ điện trong trường hợp này hầu như không thay đổi trong quá trình vận hành, nên việc thiết lập NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 53 thông số hoạt động chỉ phải đặt một lần. Đó là hệ số của thuật điều khiển PI, thời gian lấy mẫu tín hiệu. Các công tắc xác định chế độ hoạt động là các công tắc mã nhi phân. Với 8 bit giá trị của chúng, ta có thể mã hoá 256 giá trị tính toán. Toàn bộ các giá trị của các công tắc trên được phân ra 3 kênh 8 bit, được điều khiển dồn kênh (MUX-DEMUX), để đọc vào CPU qua cổng P1. Hình 42 - Mạch đọc các giá trị công tắc NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 54 III.2.4 KHỐI ĐIỀU KHIỂN TẢI Các tín hiệu điều khiển (tín hiệu ra) triac hoặc thyristor được thiết kế cách ly bằng biến áp xung. Mỗi một đường ra của biến áp xung được thiết kế có thể sử dụng thyristor hoặc triac, tuỳ theo yêu cầu từng tổ máy thuỷ điện. Hình 43 - Mạch điều khiển Triac và Thyristor III.2.5 . ĐIỀU KHIỂN KIỂU RƠ LE Có 2 tín hiệu điều khiển (tín hiệu ra) được thiết kế kiểu rơ le, giúp cho người sử dụng lựa chọn giá trị điện áp ra điều khiển phù hợp với thiết bị của từng trường hợp. Hai đường này sẽ đóng rơ le trong trường hợp tần số dòng điện nằm ngoài khoảng cho phép (40 - 60 Hz). III.2.6 KHỐI CẤP NGUỒN Khối nguồn có nhiệm vụ cấp nguồn (5 V) cho thiết bị, cho các rơ le trung gian (12 V). Hình 44 - Khối cung cấp nguồn NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 55 III.3. XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN. III.3.1 LỰA CHỌN NGÔN NGỮ Có một vài ngôn ngữ lập trình cho họ 8051, như: C51, ASM51, BASIC51... Sử dụng ngôn ngữ nào cũng đạt được mục đích như nhau, tùy thuộc vào khả năng của người lập trình. Chúng tôi lựa chọn ngôn ngữ Assembler, với bộ biên dịch Macro- Assember 51 của Intel Corp. Theo chúng tôi, có một số ưu điểm sau: - Trình biên dịch miễn phí được tải từ nhiều địa chỉ trên Internet.(Hoặc dường như là miễn phí) - Ngôn ngữ ASM cho phép người lập trình khả năng uyển chuyển trong bố trí chương trình; Có thể tính toán chính xác về thời gian thực hiện lệnh trong các thuật toán; Chương trình ngắn gọn nhất... - Có nhiều các bài toán mẫu có thể sử dụng được. III.3.2. SƠ ĐỒ KHỐI TÍNH TOÁN CHÍNH Phần mềm gồm có một số modul quan trọng sau: - Đọc các giá trị đặt đầu vào. - Đọc các thông số đo lường về tần số. - Tính toán thông số điều khiển, PI, PR. - Điều khiển thiết bị. Trong các modul trên, quan trọng nhất là modul tính toán thông số điều khiển và modul điều khiển thiết bị. III.3.2.1 Lưu đồ thuật toán toàn bộ chương trình Thuật toán điều khiển chương trình thực hiện “quét vòng” các bước chương trình. Đây là kỹ thuật điều khiển thông dụng khi xử dụng vi xử lý. (Xem hình 45), Chương trình chi tiết xem phụ lục 2. NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 56 Hình 45 - Lưu đồ thuật toán toàn bộ chương trình III.3.2.2 Đo tần số và tính toán giá trị điều khiển Tần số của một đại lượng tuần hoàn là số chu kỳ tín hiệu trong khoảng thời gian 1 giây. Ta có thể đo được tần số của tín hiệu theo 2 cách sau đây: - Đếm số chu kỳ của tín hiệu cần đo trong một thời gian xác định (đếm tần số). - Đếm số chu kỳ của một tín hiệu chuẩn đã biết trong 1 chu kỳ tín hiệu cần đo (đo chu kỳ). NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 57 (16) Nguyên lý đo chu kỳ Để đo được chu kỳ của một tín hiệu ta cần có một tín hiệu chuẩn mà chu kỳ đã biết và ta sẽ đếm số chu kỳ này trong 1 hoặc vài chu kỳ của tín hiệu cần đo. Giả sử bộ đếm đếm được n xung chuẩn, chu kỳ cần đo là Tx = 2n.T n f nTT fx x 22 11 === (24) Trường hợp đếm trong m chu kỳ tín hiệu cần đo, thì Tx = (2n/m).T n mf nT m T fx x 22 1 === (25) Sai số phép đo Giả thiết rằng chu kỳ đúng của tín hiệu là Tx = 2nT, sai số của phép đo là δ, kết quả phép đo là 2(n ± δ). Chu kỳ đo được là Tx’= 2(n ± δ)T. Sai số về tần số là: )(2 . )(2)(2 1 2 1' δ δ δ δ δ ± ±=± ±=±−=−=∆ nn f TnnTnnT fff xx (26) Trong kỹ thuật xung, sai số δ = ±1 (do 2 tín hiệu không cùng pha với nhau), vì vậy, sai số về tần số là )1(2)(2 . ±=± ±=∆ nn f nn ff δ δ (27) Nếu sai số cho phép của tần số là εcp, thì ∆f ≤ εcp , suy ra )1(2 )1(2 ±≤→≤± nn f nn f cp cp εε (28) Thay xf fn .2 = , ta có: )1 .2 ( ±≤ xxcp f f f ff ε (29) )1 2 (11 ±≤ xxcp f f fε (30) Vậy, giá trị của tần số chuẩn là: cp xcpx fff ε ε .2 2 ±≥ (31) Nếu lựa chọn giá trị của tần số chuẩn theo công thức trên, ta sẽ đảm bảo được sai số của phép đo nhỏ hơn giá trị cho phép. Chú ý rằng công thức trên đây áp dụng cho phép đo nửa chu kỳ. Nếu phép đo sẽ đếm cả chu kỳ tín hiệu cần đo (khi áp dụng Vi xử lý), thì công thức trên sẽ là: cp xcpx fff ε ε .2 ±≥ (32) NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 58 Ví dụ: Giá trị cần đo fx xoay quanh 50 Hz, εcp = 2%, tần số chuẩn là: )(50000.250 02,0 50.02,050.2.2 22 Hz ff f cp xcpx ±=±=±≥ ε ε Chọn tần số chuẩn f = 250 KHz. Số đếm đúng khi đo giá trị fx = 50 Hz là: )(2500 000004,0.2 01,0 2 Xung T Tn x === Do sai số, giá trị đếm được là 2501 xung, sai số của giá trị tần số là: 02,0019,0 2501.2500.2 250000 )1(2 <==±=∆ nn ff (17) Nguyên lý đếm tần số Theo phương pháp này, ta tiến hành đếm số chu kỳ của tín hiệu cần đo trong 1 khoảng thời gian xác định. Sơ đồ nguyên lý tương tự phương pháp trên, chỉ khác ở chỗ đảo vai trò của các tín hiệu: Dùng 1 tần số F đã biết có giá trị nhỏ để đo một tần số lớn hơn Fx. Giả sử bộ đếm đếm được n xung , chu kỳ cần đo là Tx = T/2n fn T nfx ..22 == (33) Sai số phép đo Sai số của phương pháp đếm xung là ±1, do đó ta thấy: - Sai số tuyệt đối của phép đo là: TT n T nf x 2)1(22 =+−=∆ (34) Trường hợp đếm trong cả chu kỳ chuẩn thì T f x 1=∆ - Sai số tương đối: Tff f xx x . 2=∆=ε (35) Suy ra công thức tính độ rộng xung mở cổng theo sai số tương đối cho phép εcp và thang đo fx: xf T . 2 ε≥ (36) Ví dụ: Vẫn sử dụng ví dụ ở phương pháp đo chu kỳ.(fx = 50 Hz, εcp = 2%) )(2 50.02,0 2 . 2 s f T x ==≥ ε (37) NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 59 Chọn T = 2,5 s, sai số tương đối là: 0,020.016 5,2.50 2 . 2 <=== Tf x ε (18) Đánh giá và lựa chọn phương pháp - Phương pháp đo chu kỳ thích hợp khi đo các tần số tương đối nhỏ hơn so với tần số chuẩn. Nếu tần số cần đo lớn, để đảm bảo sai số tương đối cho phép, ta phải chia tần số xung muốn đo, vì thế lại gặp sai số do chia tần số. - Phương pháp đếm tần số tiện lợi hơn khi đo các tín hiệu có tần số lớn. Nếu tần số cần đo lớn, để đảm bảo sai số cho phép, chu kỳ chuẩn T phải lớn, tức là thời gian để đọc được kết quả sẽ lâu hơn. Khi sử dụng cấu trúc Counter/Timer trong các bộ vi xử lý, đều có thể thực hiện được cả 2 phương pháp trên; Đối với dải tần số dòng điện công nghiệp (0 - 60 Hz), lựa chọn phương pháp thứ nhất sẽ cho kết quả chính xác và thời gian đo lường ngắn (là yếu tố rất quan trọng trong điều khiển). III.3.2.3 Tính toán giá trị điều khiển ra PI Theo kinh nghiệm, thuật điều khiển được lựa chọn là PI. Thiết bị là một hệ thống điều khiển số (Digital control system), có sơ đồ như hình 23, 24 dưới đây. Hình 46 - Sơ đồ điều khiển Sơ đồ tính toán: NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 60 Hình 47 - Sơ đồ tính toán thực tế Trong đó bộ điều khiển PID có hàm truyền: ] 1 1[ 2 )( − ++= Z ZTKKzD IP (38) Chuyển qua miền tần số: W K KwD IP +=)( (39) III.4 CHẾ TẠO HOÀN CHỈNH BỘ ĐIỀU TỐC. Trên cơ sở mạch nguyên lý, nhóm đề tài đã thiết kế chế tạo hoàn chỉnh thiết bị điều khiển và ứng dụng điều khiển tua bin xung kích 2 lần, công suất 30 kW. NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 61 Hình 48 - Sản phẩm đã hoàn thiện III.5 ĐỀ XUẤT NÂNG CAO CHẤT LƯỢNG THIẾT BỊ - Tiếp tục bổ sung chức năng phân phối tải giữa 3 pha. - Nghiên cứu sử dụng bộ vi xử lý cao cấp hơn để chế tạo bộ ELC 3 pha. B¸o c¸o khoa häc §Ò tµi KC07- 04 ViÖn khoa häc thuû lîi 62 III.6 BẢN VẼ NGUYÊN LÝ NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 63 Hình 49. Sơ đồ mạch điện. NC, thiÕt kÕ, chÕ t¹o ®iÒu tèc cho c¸c tr¹m thuû ®iÖn nhá ®Ò tµi Kc07-04 ViÖn khoa häc thuû lîi 64 PhÇn phô lôc B¸o c¸o khoa häc §Ò tµi KC07- 04 65 PHỤ LỤC I PHẦN MỀM ĐIỀU KHIỂN ĐIỀU TỐC ĐIỀU CHỈNH LƯU LƯỢNG ;===================================================================== ; Khai bao cac bien, dia chi trong chuong trinh ;===================================================================== F1 bit PSW.1 Dsp_Count equ 1Dh ; R5 (bank 1): So dem lan hien thi LED4 equ 20h ; Chua gia tri hien thi LED4 LED3 equ 21h ; Chua gia tri hien thi LED3 LED2 equ 22h ; Chua gia tri hien thi LED2 LED1 equ 23h ; Chua gia tri hien thi LED1 W_level equ 2Eh ; Chua gia tri tu mach bao muc nuoc Count equ 2Fh ; Bien dem, tang sau moi lan dem tan so SoChuc equ 4Ch ; Gia tri hien thi lon nhat - LED4 SoDonvi equ 4Dh SophanChuc equ 4Eh SophanTram equ 4Fh ; Gia tri hien thi nho nhat - LED1 SW12 equ 60h ; Dia chi o nho SW1.SW2 OpenRate equ 74h ; Dia chi o nho cong tac OpenRate CloseRate equ 75h ; Dia chi o nho cong tac CloseRate WL_Rate equ 76h ; Dia chi o nho cong tac WL_Rate Flags equ 7Fh ; ;================================================================ ; RESET prog ;================================================================ ORG 0000h nop ajmp Setup ;Dia chi 0001h-0002h ;================================================================ ORG 000Bh ; Timer0 prog ajmp Timer0_Intr ;================================================================ ORG 001Bh ; Timer1 prog mov r1,#8 mov @r1,#01h inc r1 mov @r1,#0 clr ET1 clr TR1 reti ;================================================================ ; Chuong trinh TIMER 0 ;================================================================ Timer0_Intr: push psw push acc ; Cat gia tri cua ACC setb RS0 ; Lua chon bank thanh ghi 3 setb RS1 mov TL0,#17h ; Timer0: 1 ms mov TH0,#0FCh jb F0,Co_F0 mov TL0,#2Fh ; Timer0: 2 ms khi co F0=0 mov TH0,#0F8h ;========================================================================== ; Doan chuong trinh hien thi den LED 7 thanh ;========================================================================== Hien_Thi_LED: mov a,r0 ; R0(rb3)=(18h)=0 trong Setup, lan luot cho hien thi B¸o c¸o khoa häc §Ò tµi KC07- 04 66 inc a ; A=R0+1 (Tang vi tri hien thi) anl a,#03h ; AND 0000.0011 A=0000.00xx orl a,#20h ; OR 0010.0000 A=0010.00xx mov r0,a ; R0 = 20h - 23h (o nho LED_RAM) mov dptr,#ROM_DB ; Lay ma cot (4 LED 7 thanh) movc a,@a+dptr mov b,a mov a,@r0 ; Tra noi dung o nho 20h - 23h mov dptr,#ROM_DB ; tim ma hien thi tuong ung movc a,@a+dptr Out_CodeLed: mov p0,a ; Out codeled mov a,b mov c,acc.0 ; Out col mov p2.0,c mov c,acc.1 mov p2.1,c mov c,acc.2 mov p2.2,c mov c,acc.3 mov p2.3,c pop acc pop psw reti ; End of Timer_Proc ;================================================================= ; Cac hang so trong ROM phuc vu hien thi ;=============================================================== ROM_DB: db 0C0h ; 0h (0) db 0f9h ; 1h (1) db 0a4h ; 2h (2) db 0b0h ; 3h (3) db 99h ; 4h (4) db 92h ; 5h (5) db 82h ; 6h (6) db 0f8h ; 7h (7) db 80h ; 8h (8) db 90h ; 9h (9) db 88h ; Ah db 83h ; Bh db 86h ; Ch db 0a1h ; Dh db 86h ; Eh db 8eh ; Fh ; So co dau cham thap phan db 40h ; 10h (0.) db 79h ; 11h (1.) db 24h ; 12h (2.) db 30h ; 13h (3.) db 19h ; 14h (4.) db 12h ; 15h (5.) db 02h ; 16h (6.) db 78h ; 17h (7.) db 00h ; 18h (8.) db 10h ; 19h (9.) ; Cac ky tu khac db 0ffh ; 1Ah (Blank) db 9ch ; 1Bh (Nua tren so 8) db 09h ; 1ch (H.) db 7dh ; 1dh (! - Dau cham than) (cu 86) db 0a3h ; 1eh (Nua duoi so 8) db 7ch ; 1Fh (? - Dau cham hoi) ; Cac hang so trong ROM chon den LED hien thi db 0feh ; 20h (LED 4) db 0fdh ; 21h (LED 3) db 0fbh ; 22h (LED 2) B¸o c¸o khoa häc §Ò tµi KC07- 04 67 db 0f7h ; 23h (LED 1) ;=============================================================== ; Cac hang so tuong ung voi Open va Close Rate - PWM ;=============================================================== DB 08h,0Ch,012h,01Ch,02Ah,03Dh,057h,07Ch,0B2h,0FEh ;=============================================================== ; Cac hang so trong ROM tuong ung DOC_ROM_1 ;=============================================================== DB 0FFh ; 2Eh DB 0FFh ; 2Fh DB 0FFh ; 30h DB 0FFh ; 31h DB 0FFh ; 32h DB 0FFh ; 33h DB 0FFH ; 34h DB 0F0H DB 040H DB 08H DB 0FFH ; 38h ; Hang so theo Mod operation DB 0FAH DB 0FBH DB 0FCH DB 0F9H DB 0FDH DB 0B2H DB 010H ; Cac dau gach ngang (Che do Water level & dau -) db 0feh ; 40h (Gach tren, UP) db 07ch ; 41h (Dau ? - Vo ly) db 0bfh ; 42h (Gach giua, MIDDLE) db 0f7h ; 43h (Gach duoi, DOWN) DB 01AH,021H,029H,032H,03BH,049H,056H,066H,077H,08BH,0A2H,0BCH DB 0D9H,0FCH DB 0FDH,0FEH,0FEH,0FEH ;=============================================================== ; Cac hang so trong ROM tuong ung voi tri so cua WL_Rate ;=============================================================== DB 0Eh ; 56h DB 01Ch ; 57h DB 038h ; 58h DB 055h DB 071h DB 08Dh DB 0A9h DB 0C5h DB 0E2h DB 0FEh ; 5Fh ;================================================================= ; Doan chuong trinh doc ROM ;===================================================================== X0064:clr c ; Xoa Carry mov a,r6 ; R6=0dxn.0D0N anl a,#45h ; A =0d00.0D0N xrl a,#4 ; A XOR 0000.0100=0x00.0x0x jnz X0073 ; Chi xet khi A=0: HOA & Trong luoi - ??? mov r0,#WL_Rate ; Lay gia tri WL_Rate (W_Level interval) mov a,@r0 add a,#56h ; + 56 -> Doc ROM tu 56h -> 5Fh mov dptr,#ROM_DB ; movc a,@a+dptr add a,@r1 ; + R1 co 2 gia tri la 50h va 51h B¸o c¸o khoa häc §Ò tµi KC07- 04 68 X0073: ret ; ;===================================================================== ; Doan chuong trinh doc ROM ;===================================================================== Doc_ROM_1: mov @r0,#0ffh ; Co 2 gia tri r0=50h (X02d8) va R0=51h (X0496) inc r0 inc r0 ; R0=52h hoac 53h inc @r0 ; tang (52h) va xoa (53h) hoac nguoc lai mov @r1,#0 mov a,r6 ; R6=0dxn.0D0N swap a ; A =0D0N.0dxn anl a,#3 ; A =0000.00xn = 01,10,11 add a,r2 ; R2 =2Dh hoac 30h mov dptr,#ROM_DB ; Doc ROM (tu 2Eh den 30) hoac tu (31h den 33h) movc a,@a+dptr add a,@r0 ; A=so doc duoc+ (52h) hoac (53h) ret ;===================================================== ; Chuong trinh tu RESET nhay den ;===================================================== Setup: mov IE,#82h ; Cho phep 1 ngat timer mov TMOD,#11h ; Timer1 & Timer0: 16 bit mov r2,#68h mov r0,#72h mov @r0,#0adh ; ADh -> (72h) inc r0 mov @r0,#0adh ; ADh -> (73h) call Ngat_Role ; Ngat toan bo cac role mov r2,#58h mov TH0,#0FFh mov TL0,a ; Dua A=FFh vao Timer (lan dau tien)-> Xay ra ngat ngay mov r0,#6bh mov @r0,a ; A -> (6Bh), lan dau a=0FFh clr f1 ; Xoa co F1 inc r0 mov @r0,#5 ; 5 -> (6Ch) inc r0 mov @r0,#3 ; 3 -> (6Dh) inc r0 inc @r0 ; 4 -> (6Eh) inc r0 inc @r0 ; 5 -> (6Fh) inc r0 mov @r0,#3 ; 3 -> (70h) inc r0 ; R0 = 71h call Nap1 mov r0,#77h mov @r0,#0ch ; 0Ch -> (77h) call KhongHienSo ; Nap 1Ah vao dia chi 20h,21h,22h,23h call NapHienThiLoi ; Nap truoc hien thi ! hoac o vao LED4 setb ET0 call Doc_Cong_Tac mov r0,#2ah mov @r0,#1 ; 1 -> (2Ah) mov a,r6 ; A=R6=0dxn0D0N jb Acc.2,TiepTuc ; Nhay neu bit D=0 -> Khong o che do WaterLevel mov r0,#W_level ; Neu khong, dang o che do WL, nap gia tri ul mov a,@r0 ; A=000000ul orl a,#40h ; A=010000ul mov r0,#LED1 ; mov @r0,a ; Dua A=010000ul -> LED1=43 lower=08-> dau tru duoi cung ; =40 uper=02h-> dau tru tren cung ; =42 giua=20 -> dua tru o giua TiepTuc: B¸o c¸o khoa häc §Ò tµi KC07- 04 69 mov r0,#7eh ; X0D66 mov @r0,#3fh ; 3f -> (7eh) call KiemTraLechPha ; OK-mb1 call Dem_Chu_Ky ; OK-mb1 mov r3,#8 X013c: mov r2,#0eh mov r1,#32h mov r0,#30h ;=========================================================================== ; Nap gia tri dem tan so vao 6 cap dia chi ;=========================================================================== mov r0,#2dh mov @r0,#1 X014D: mov r0,#SW12 mov a,@r0 mov r6,a ;ret mov r0,#68h mov @r0,#10h ; (68h)=10h jb Acc.6, X0160 ; Neu D=1->d=0 -> Chay trong luoi nop nop ; Nguoc lai, la che do chay Doc lap jb Acc.5, X0160 ; Neu X=1 - x=0 mode 3 mov @r0,#0bh jb Acc.4, X0160 ; Neu N=1 - n=0 mode 2 mov @r0,#6 ; Nguoc lai, mod 1 X0160: mov a,@r0 add a,#4 inc r0 mov @r0,a ; (69h)=(68h)+4 -> 14h,0Fh,0Ah (mode 3,2,1) inc r0 add a,#4 ; (6Ah)=(69h)+4 -> 18h,13h,0Eh (mode 3,2,1) mov @r0,a mov r0,#2dh call DecToOne ; Giam dan o nho 2Dh toi 1 call X0696 X016f: setb f1 call Ngat_Role jb Acc.6, X017b ; Flags.6=0 jmp X0500 ; Flags.6=1 ; X017b:mov r0,#68h call DecToOne ; (68h)-1 -> 1 jnz X016f mov r2,#97h ; E397 - So bu cua 1C69h tuong ung 55 Hz mov r3,#0e3h call R3R2_Add_6564 jb Acc.7, X01b6 mov r2,#47h mov r3,#0ddh ; DD47 - So bu cua 22B9 - 45 Hz call R3R2_Add_7978 jb Acc.7, X01b4 X0192: mov r7,#69h call X0700 ; Chua xet jnz X016f mov r2,#85h mov r3,#0e2h ; E285 - So bu cua 1D7B - 53 Hz call R3R2_Add_7978 jb Acc.7, X01b6 mov r2,#0c2h mov r3,#0deh ; DEC2 - so bu cua 213C - 47 Hz call R3R2_Add_7978 B¸o c¸o khoa häc §Ò tµi KC07- 04 70 jb Acc.7, X01b4 mov r7,#6ah call X0700 jnz X016f mov r0,#67h mov a,@r0 jb Acc.7, X01b6 X01b4: jmp X0200 ; X01b6: jmp X0400 ;=============================================================== ; Luu gia tri cac cong tac so vao cac bien OpenRate.WL_Rate,CloseRate ;=============================================================== LuuBCD: inc r0 ; R0=74h,75h,76h anl a,#0fh ; Giu lai 4 bit cuoi A=0000NVXD mov @r0,a ; Dua vao (74h)=OpenRate, (75h)=CloseRate, (76h)=WL_Rate ret ;================================================================= ; Doc cong tac ;================================================================= Doc_Cong_Tac: clr p3.6 ; Select CS1: BCD2, BCD1 clr p3.7 nop mov p1,#0ffh

Các file đính kèm theo tài liệu này:

  • pdfNghiên cứu, thiết kế, chế tạo điều tốc cho các trạm thủy điện.pdf