Tài liệu Đề tài Rơle số bảo vệ cách điện: MỤC LỤC
II.thiết kế giao diện trên PC bằng Visual Basic:
Giao diện..........................................................................................
lưu đồ chương trình nhận bản tin của máy tính....................................
CHƯƠNG 6: CHẠY THỬ, ĐÁNH GIÁ KẾT QUẢ
PHỤ LỤC:
Chương trình phần mềm cho vi điều khiển của Rơle số bảo vệ cách điện.
Chương trình phần mềm cho Giao diện trên PC với rơle cách điện.
Tài liệu tham khảo.
Lời nói đầu:
Ngày nay, sự phát triển của công nghệ vi điện tử, kỹ thuật vi xử lý đã tạo ra những bước ngoặt cho quá trình tự động hoá sản xuất cũng như các hoạt động xã hội khác. Điều này đã mang lại những lợi ích to lớn: mở rộng chức năng của hệ thống, nâng cao độ tin cậy, giảm giá thành sản phẩm. Tuy nhiên, việc triển khai ứng dụng những tiến bộ nói trên vào nước ta còn nhiều hạn chế.
Việc nghiên cứu thiết kế những thiết bị sử dụng những tiến bộ này là cần thiết.
Em thực hiện đồ án nghiên cứu và thiết kế Rơle số bảo vệ cách điện sử dụng ...
124 trang |
Chia sẻ: hunglv | Lượt xem: 1687 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Rơle số bảo vệ cách điện, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
II.thiết kế giao diện trên PC bằng Visual Basic:
Giao diện..........................................................................................
lưu đồ chương trình nhận bản tin của máy tính....................................
CHƯƠNG 6: CHẠY THỬ, ĐÁNH GIÁ KẾT QUẢ
PHỤ LỤC:
Chương trình phần mềm cho vi điều khiển của Rơle số bảo vệ cách điện.
Chương trình phần mềm cho Giao diện trên PC với rơle cách điện.
Tài liệu tham khảo.
Lời nói đầu:
Ngày nay, sự phát triển của công nghệ vi điện tử, kỹ thuật vi xử lý đã tạo ra những bước ngoặt cho quá trình tự động hoá sản xuất cũng như các hoạt động xã hội khác. Điều này đã mang lại những lợi ích to lớn: mở rộng chức năng của hệ thống, nâng cao độ tin cậy, giảm giá thành sản phẩm. Tuy nhiên, việc triển khai ứng dụng những tiến bộ nói trên vào nước ta còn nhiều hạn chế.
Việc nghiên cứu thiết kế những thiết bị sử dụng những tiến bộ này là cần thiết.
Em thực hiện đồ án nghiên cứu và thiết kế Rơle số bảo vệ cách điện sử dụng Vi điều khiển với sự hướng dẫn của PGS. Nguyễn Bình Thành và ThS.Trần Văn Tuấn. Nhằm mục đích khẳng lại định những kiến thức lý thuyết đã học bằng thực tế nâng cao kỹ năng kinh nghiệm thiết kế.
Do thời gian ngắn và kinh nghiệm bản thân còn hạn chế nên đề tài chắc chắn không tránh khỏi những thiếu sót, rất mong được sự góp ý từ phía thầy cô và các bạn.
Em xin chân thành cảm ơn sự giúp đỡ tận tình của các thầy, cô trong bộ môn và các bạn đã giúp em hoàn thành đồ án.
Hà nội, ngày 18 tháng 5 năm 2004
Sinh viên thực hiện Vũ Trọng Quyền
CHƯƠNG I. ĐẶT VẤN ĐỀ VÀ VÀ NHIỆM VỤ THƯ
I. Đặt vấn đề
Tất cả các thiết bị điện, để đảm bảo an toàn cho người vận hành và sử dụng, đều có vỏ máy không mang điện. Các phần tử mang điện đều được cách điện rất tốt với vỏ máy. ở những thiết bị điện có công suất lớn yêu cầu vật liệu cách điện phải có chất lượng rất tốt. Thậm chí cách điện của các thiết bị điện còn phải thường xuyên được theo dõi kiểm tra, bảo dưỡng và phục hồi nếu không đảm bảo yêu cầu. Đặc biệt là đối với các thiết bị điện làm việc trong môi trường hoá chất, cách điện của chúng rất dễ bị hư hại, giảm tính chất cách điện. Việc xảy ra chạm mạch của vỏ máy ở những thiết bị điện có công suất lớn sẽ gây thiệt hại nghiêm trọng về người và của. Vì vậy phải có một thiết bị luôn theo dõi và kiểm tra cách điện cho các thiết bị điện. Nếu xảy ra sự cố về cách điện thì phải lập tức cắt ngay thiết bị điện đó ra khỏi lưới.
Công việc theo dõi và tác động loại trừ thiết bị điện có sự cố về cách điện ra khỏi lưới điện cũng như báo động về sự cố này, được thực hiện bởi thiết bị có tên là Rơle bảo vệ cách điện.
II. Các nhiệm vụ , chức năng của rơle số bảo vệ cách điện:
+Đo canh điện trở cách điện của thiết bị điện. Phải đo ngay khi thiết bị đang là việc.
+Khi xảy ra sự cố về cách điện của thiết bị điện phải tác động cắt ngay thiết bị đó ra khỏi lưới điện. Thông báo về sự cố này bằng đèn báo hoặc còi báo.
+Hiển thị giá trị điện trở đo được.
+Có thể cài đặt các thông số config và thông số setting cho rơle như khoảng đo yêu cầu chính xác, số đoạn tuyến tính hoá, hệ số tuyến tính hoá trên từng đoạn, điện trở ngưỡng...
+Ghi lại lịch sử cách điện.
+Truyền tin với phòng điều khiển trung tâm của hệ thống thu thập quản lý và điều khiển dữ liệu của nhà máy qua cổng truyền thông RS232 hoặc RS485, để người vận hành có thể đối thoại, cài đặt thông số cho Rơle từ phòng điều khiển trung tâm.
III.Nhiệm vụ cụ thể của Rơle số bảo vệ cách điện cho một động cơ tại nhà máy phân đạm Hà Bắc
Tại nhà máy phân đạm Hà Bắc, một mô tơ quay máy bơm dung dịch Amoniac ,tất cả bị ngâm chìm trong bể dung dịch Amôniac. Vì làm việc trong môi trường hoá chất nên cách điện của mô tơ dễ bị hư hại.
Nhiệm vụ của thiết bị này là đo điện trở cách điện của một động cơ điện xoay chiều ba pha 380V. Động cở được cấp điện bởi một biến áp xoay chiều ba pha 380V qua một máy cắt, phía thứ cấp của máy biến áp là hình sao trung tính không nối đất. Cuộn dây stato của động cơ cũng là ba pha hình sao trung tính không nối đất.
-Ta phải đo điện trở cách điện giữa stato của động cơ và vỏ máy ngay cả khi động cơ đang làm việc.
-Khi thấy điện trở cách điện giảm xuống dưới một ngưỡng an toàn đã đặt thì phải ra lệnh cắt động cơ ra khỏi lưới. Bằng việc cắt máy cắt đặt trên đường cấp điện cho động cơ.
-Giá trị điện trở cách điện được hiển thị trên màn hình LCD và màn hình LED. Ngoài ra còn hệ thống đèn báo để việc thông báo được thuận tiện hơn.
-Lịch sử cách điện được ghi lại theo yêu cầu sau
Nếu Rcđ>600kW , điện trở cách điện đảm bảo cho động cơ vận hành an toàn thì Rcđ được ghi lại mỗi ngày một lần (ghi giá trị nhỏ nhất của Rcđ trong ngày đó) .
Nếu Rcđ nằm trong khoảng từ 500kW ¸ 600kW tuy động cơ vẫn có thể vận hành được nhưng Rơle phải dưa ra tín hiệu cảnh báo về tình trạng này và Rcđ được ghi lại theo chu kỳ dầy hơn mỗi giờ ghi một lần (ghi giá trị nhỏ nhất của Rcđ trong giờ đó ) .
Nếu Rcđ <500kW, không đảm bảo an toàn cho động cơ vận hành nữa thì nếu động cơ đang chạy phải cắt ngay động cơ ra khỏi lưới và ghi lại lập tức giá trị Rcđ sự cố này cùng thời điểm xảy ra sự cố. Còn nếu động cơ đã được cắt ra khỏi lưới rồi thì Rcđ được ghi lại mỗi giờ một lần( cũng ghi giá trị nhỏ nhất của Rcđ trong giờ đó ).
-Các thông số của Rơle có thể được cài đặt bằng một bàn phím chức năng.
-Rơle có thể truyền tin với máy tính qua cổng RS232.
CHƯƠNG 2:TỔNG QUAN VỀ RƠLE SỐ
I. Tổng quan về sự phát triển của Rơle số
Trước những năm 70 các thiết bị đo lường và bảo vệ là những rơle điện từ tuy chúng có thể bảo vệ thiết bị điện khỏi sự cố nhung còn mang nhiều nhược điểm :
+Thời gian tác động chậm
+Kém chính xác
+Khó thực hiện các phép toán phức tạp
+Với những nhiệm vụ nhỏ cũng yêu cầu thiết bị bảo vệ cồng kềnh , chi phí lớn
Sau những năm 70 điện tử phát triển mạnh . ứng dụng cho thiết bị rơle bảo vệ đã đạt được những bước tiến mạnh . Từ đó cho đến nay được chia làm 2 giai đoạn :
+Những năm 70-năm 90 : Rơle điện tử
Nâng cao hơn về độ chính xác và độ tác động
Thực hiện tốt một số phép xử lý : Cộng , trừ , nhân , chia , đạo hàm , tích phân , đếm , trễ , .....
+Từ sau những năm 90 :Vi xử lý , vi điều khiển được đưa vào thiết bị đo và bảo vệ , đã tạo nên những bước ngoặt trong sự phát triển của các thiết bị trên .
Đo nhanh tác động nhanh chính xác cao tin cậy cao
Có thể thu thập dữ liệu và lưu trữ chúng với dung lượng lớn
Khả năng biểu diễn thông tin đa dạng phong phú ( hiển thị trên LCD , LED , ghi và vẽ đồ thị về giá trị trạng thái của quá trình ...)
Có thể thực hiện cùng một lúc nhiều chức năng bảo vệ cho một đối tượng được bảo vệ ( Tính thành bộ cao )
Truyền tin được với phòng điều khiển trung tâm
Về kết cấu có thể tích thu gon rất nhiều : Một rơle số có thể thay thế 1 tủ rơle cũ
Giá thành rẻ hơn thiết bị truyền thống : Ví dụ một tủ role truyền
thống bảo vệ một đường dây phân phối cùng với tủ giá khoảng 3500 USD . Trong khi đó một role số bảo vệ đường dây phân phối giá khoảng 1500 USD , tối đa là 2000 USD . Nếu sản xuất trong nước thì giá chỉ còn một nửa đến 2/3 giá trên thậm chí nếu đưa vào sản xuất hàng loạt giá chỉ còn 1/3 .
II. Các chức năng của rơle số
2.1 .Chức năng đo lường :
Là chức năng đầu tiên và quan trọng, nhằm đo, lọc, tính ra những thông số mạch điện mà rơle phải canh. Các dại lượng vào đầu tiên nói chung là : dòng 3 pha , dòng trung tính , áp 3 pha , áp thứ tự zêro . Số lượng cụ thể tuỳ theo yêu cầu cụ thể của từng loại rơle . Những đại lượng này khi không có sự cố có dạng hình sin và cân bằng , dòmh trung tính áp thứ tự zêro bằng không . Nhưng khi có sự cố sẽ có những biến động mạnh của tần số công nghiệp , thường sinh ra mất đối xứng và sinh ra các thành phần ngược và zêro . Một nét đặc biệt quan trọng khác nữa là kềm theo đó thường sinh ra những thành phần quá độ tự do lớn không chu kỳ khiến cho dòng điện áp quá độ mất dạng hình sin . Do đó những dòng áp đo cần được :
- Biến nhỏ bằng những biến dòng CT ( Current transformer ) , biến áp VT ( Votlage transformer ) đặc biệt ( Không bão hoà và dãi rộng )
Lọc thông thấp ra thành phần tần số công nghiệp gồm lọc cứng khi cần kết hợp với lọc mềm . Do tất cả các rơle tính toán bằng giá trị hiệu dụng hình sin của U , I mà các đại lượng U ,I khi xảy ra sự cố đều không có hình sin nên phải lọc để có tín hiệu hình sin . Ví dụ khi đo tần số bằng phương pháp đo chu kỳ thì phải tạo ra một xung vuông từ xung xung hình sin khi hình sin đi qua điểm 0 . Do đó muốn có kết quả đo chính xác phải tiến hành lọc thông thấp
2.2. Chức năng lấy mẫu và canh sự cố
Gồm các công việc sau :
Lấy mẫu dòng , áp , tần số đếm pha đưa vào bộ đếm mẫu.
Tính toán phân tích ra các số liệu cần thiết, tính toán các biểu thức đặc trưng sự cố, so ngưỡng để phát hiện sự cố.
2.3. Chức năng bảo vệ rơle và ghi chép sự cố
Khi xảy ra sự cố thì modul canh đo sẽ khởi động chạy choc năng bảo vệ rơle để xử lý ứng với các sự cố ấy. Đồng thời một modul sẽ ghi chép lại diễn biến của sự cố để có thể lấy ra dùng sau này.
2.4. Chức năng chống sự cố
Khi phát hiện ra sự cố rơle sẽ canh một khoảng thời gian tuỳ vào người sử dụng đặt. Sau khoảng thời gian đó nếu rơle vẫn phát hiện sự cố thì nó sẽ phát tín hiệu điều khiển tác động lên máy cắt để cắt phần tử sự cố ra khỏi lưới.
2.5. Chức năng tự động đóng lại
Nếu rơle được lập trình tự động đóng lại thì khi lưới điện trở lại trạng thái ổn định bình thường một khoảng thời gian do người dùng đặt rơle sẽ phát tín hiệu điều khiển tác động đến cuộn đóng để đóng phần tử đã bị cắt lúc trước trở lại hoạt động.
2.6. Chức năng giao tiếp với người dùng
Người dùng có thể đặt lại các thông số ngưỡng thông qua phím chức năng, hoặc trực tiếp trên máy tính chủ nếu rơle có chức năng ghép nối truyền tin với máy tính.
III. Các chủng loại Rơle thành bộ ngày nay
3.1.Đường đây truyền tải
Được chia làm các loại đường dây :
Cao và siêu cao áp từ 200 – 500 kV
Trung và cao áp từ 6 – 22 – 35 – 66 và 110 kV
Trong các bảo vệ đường dây cao áp và siêu cao áp bao gồm các bảo vệ chính sau :
So dọc phương hướng và khoảng cách giữa các miền , có thể từ 3 – 4 miền
Quá dòng so lệch dọc từng pha
Khoá và cắt khi dao động mất đồng bộ
Chạm đất tức thời
So lệch pha
Tất cả các bảo vệ trên đều có thể đóng lại và truyền về trung tâm.
Trong các rơle bảo vệ đường dây trung tính và cao áp có thể có các loại bảo vệ sau :
Khoảng cách giữa các miền , giữa pha và từng pha
Quá dòng 4 đoạn thứ tự không
So dọc khoảng cách có hướng
Quá dòng cắt nhanh quá dòng định thời gian
Quá áp và thấp áp
Sa thải tải theo tần số
Chạm đất
3.2. Đường dây phân phối
Bao gồm các bảo vệ chính sau :
Quá dòng thời gian
Quá dòng tức thời
Bảo vệ công suất có hướng
Quá áp và thấp áp
Sa thải tải theo tần số
Tự động phục hồi điện áp thấp
3.3. Bảo vệ máy biến áp
Bao gồm các bảo vệ chính sau :
Bảo vệ so lệch
Quá tải và quá dòng thời gian
Bảo vệ nhiệt độ
Bảo vệ rơle ga ( do ngắn mạch trong cuộn dây biến áp )
Kìm hãm thành phần điều hoà
3.4. Bảo vệ môtơ
Bao gồm các bảo vệ chính sau :
Quá dòng
Quá tải
Ngắn mạch
Chạm đất , cách điện
Giảm công suất khi mất tải
So lệch pha
Quá áp và thấp áp
Ngược pha
Giảm dòng
Nước ta đã đặt 4/5 rơle số ở cấp cao áp . Các rơle này chạy nói chung là tốt tuy nhiên có một số rơle của một số hãng hoạt động chưa tốt . Người ta đã phát hiện ra và thay thế chúng bằng các rơle số khác tốt hơn . Một số nhà máy mới xây dựng đã đặt rơle số ở mức trung áp , còn phần các nhà máy hệ thống trung áp của điện lực chưa lắp đặt rơle số . Yêu cầu của nghành điện là phải nắm vững kỹ thuật rơle nói chung, tiến hành đặt rơle số ở đường dây trung áp, tiến tới đặt rơle số ở đường dây hạ áp
Đối với rơle số việc phân loại thành bộ theo nhóm đối tượng bảo vệ bao gồm :
Rơle bảo vệ đường dây phân phối : 45%
Rơle bảo vệ động cơ : 20%
Rơle bảo vệ máy biến thế : 10%
Rơle bảo vệ máy phát : 5%
Rơle bảo vệ thanh cái : 10%
Rơle chuyên dụng khác như sa thải tải , chạm đất …: 10%
Rơle trung áp yêu cầu về tính toán và tốc độ không cao như rơle cao áp nhưng nhu cầu sử dụng lớn điều đó đặt ra yêu cầu phải nghiên cứu thiết kế, chế tạo đưa ra sử dụng các loại rơle trung áp vào hệ thống các đường dây trung áp trong nước.
CHƯƠNG 3: THIẾT KẾ TỔNG QUÁT
I.Phương hướng giải quyết vấn đề
Với nhiệm vụ đã đặt ra, cần tìm ra hướng giải quyết hợp lý sao cho nhiệm vụ được hoàn thành một cách tốt nhất, đơn giản hiệu quả .
Nêu lại nhiệm vụ thư của thiết bị :
-Nhiệm vụ của thiết bị này là đo điện trở cách điện của một động cơ điện xoay chiều ba pha 380V. Động cơ được cấp điện bởi một biến áp xoay chiều ba pha 380V qua một máy cắt, phía thứ cấp của máy biến áp là hình sao trung tính không nối đất. Cuộn dây stato của động cơ cũng là ba pha hình sao trung tính không nối đất.
-Ta phải đo điện trở cách điện giữa stato của động cơ và vỏ máy ngay cả khi động cơ đang làm việc.
-Khi thấy điện trở cách điện giảm xuống dưới một ngưỡng an toàn đã đặt thì phải ra lệnh cắt động cơ ra khỏi lưới. Bằng việc cắt máy cắt đặt trên đường cấp điện cho động cơ.
-Giá trị điện trở cách điện được hiển thị trên màn hình LCD và màn hình LED. Ngoài ra còn hệ thống đèn báo để việc thông báo được thuận tiện hơn.
-Lịch sử cách điện được ghi lại theo yêu cầu sau
Nếu Rcđ>600kW , điện trở cách điện đảm bảo cho động cơ vận hành an toàn thì Rcđ được ghi lại mỗi ngày một lần (ghi giá trị nhỏ nhất của Rcđ trong ngày đó) .
Nếu Rcđ nằm trong khoảng từ 500kW ¸ 600kW tuy động cơ vẫn có thể vận hành được nhưng Rơle phải dưa ra tín hiệu cảnh báo về tình trạng này và Rcđ được ghi lại theo chu kỳ dầy hơn mỗi giờ ghi một lần (ghi giá trị nhỏ nhất của Rcđ trong giờ đó ) .
Nếu Rcđ <500kW, không đảm bảo an toàn cho độnh cơ vận hành nữa thì nếu động cơ đang chạy phải cắt ngay động cơ ra khỏi lưới và ghi lại lập tức giá trị Rcđ sự cố này cùng thời điểm xảy ra sự cố. Còn nếu động cơ đã được cắt ra khỏi lưới rồi thì Rcđ được ghi lại mỗi giờ một lần( cũng ghi giá trị nhỏ nhất của Rcđ trong giờ đó ).
-Các thông số của Rơle có thể được cài đặt bằng một bàn phím chức nă.
-Rơle có thể truyền tin với máy tính qua cổng RS232.
Thiết bị sử dụng một bộ xử lý khả trình thông dụng thuộc họ vi xử lý 80xx của Intel: VĐK 89C52.(Vi điều khiển là ứng dụng của vi xử lý trong lĩnh vựu đo lường và điều khiển).
Ý nghĩa của việc ứng dụng vi xử lý vào đo lường và điều khiển:
+Mở rộng chức năng của việc đo lường, tăng ứng dụng của các thiết bị đo.
+Nâng cao độ chính xác, khả năng biểu diễn thông tin(giá trị, dạng tín hiệu...).
+Xây dựng các hệ thống đo hợp bộ(nhiều vào, nhiều ra).
+Vận hành đơn giản độ tin cậy cao.
+Tác động nhanh.
+ Giảm chi phí thiết kế và giảm giá thành thiết bị.
+...
AT89C52 là một hệ vi xử lý đơn chip 8 bits họ CMOS có hiệu suất cao, công suất nguồn thấp với 8 kbyte bộ nhớ ROM Flash lập trình và xoá được. Chip này sản xuất dựa trên công nghệ bộ nhớ không mất nội dung có độ tích hợp cao của ATMEL.
Chip AT89C52 cũng tương thích các tập lệnh và các chân của chuẩn công bghiệp MSC-51. Flash trên chip này cho phép bộ nhớ chương trình được lập trình lại trên hệ thống hoặc bằng bộ lập trình nhớ không mất nội dung quy ước . Bằng cách kết hợp một CPU linh hoạt 8 bit với Flash trên chip đơn thể , AT89C52 là một hệ vi xử lý 8 bit mạnh cho ta một giải pháp có hiệu quả về chi phí và rất linh hoạt với các ứng dụng điều khiển . Nó có đầy đủ các tính năng tốt cùng với các ngoại vi trên chip như SCI , ROM , RAM , Timer , Counter …
Phương pháp đo điện trở cách điện:
Ta dùng phương pháp đo điện trở gián tiếp qua đo điện áp và dòng điện trên điện trở.
Để thực hiện được nhiệm vụ đo điện trở cách điện của động cơ mà phải đo ngay cả khi động cơ đang làm việc. Thiết kế ở đây ta sử dụng một nguồn điện một chiều cao áp(300VDC), đặt lên điện trở đo dòng rò qua điện trở sẽ tính được giá trị của điện trở cách điện.
Chọn ADC:
Dải thay đổi của điện trở cách điện là từ 0 đến 20 Mêgaohm là lớn vì vậy cần chọn ADC có độ phân giải cao. Mặt khác chu kỳ đo Rcđ không cần nhanh nên ta chọn ADC loại ICL7109, là ADC biến đổi theo kiểu tích phân hai sườn xung có độ phân giải 12bít tốc độ biến đổi chậm .
Chu kỳ lấy mẫu được tạo bởi đồng hồ thời gian thực mỗi giây ta lấy mẫu và đo điện trở một lần.
Tác dụng của việc sử dụng đồng hồ thời gian thực (RTC_DS12887):
Truớc đây trong những thiết bị đo thông minh để thêm thông tin về thời gian thực người ta thường tạo một chương trình tạo lịch(Calendar) sử dụng một bộ định thời bên trong Vi điều khiển. Nhưng nhược điểm của chương trình này là cồng kềnh phức tạp, khó lập trình, tốn nhiều bộ nhớ, khi mất điện đồng hồ này cũng không chạy được nữa, nên mỗi khi cho thiết bị hoạt động ta phải đặt lại ngày giờ.
Nếu sử dụng RTC ta có thể tránh được những nhược điểm kể trên của chương trình Calendar. Mặt khác, RTC còn cung cấp cho chúng ta một vùng nhớ bảo toàn được dữ liệu khi thiết bị không được cấp nguồn.
Màn hình hiển thị tinh thể lỏng LCD(liquid crystal display):
Có khả năng biểu diễn thông tin phong phú, dùng để hiển thị kết quả đo, hiển thị lịch và là giao diện thân thiện cho người sử dụng khi cần cài đặt thông số cho thiết bị.
Ở đây do yêu cầu về khối lượng thông tin cần hiển thị nên ta dùng loại LCD 2dòng_ 20 kí tự.
Màn hình hiển thị LED.
Mục đích để người dùng có thể quan sát kết quả đo từ khoảng cách xa. Do đặc điểm của dải đo và độ phân giải của thiết bị mà ở đây ta thiết kế màn hình hiển thị LED 3_3/4 digit, có dấu phảy động.
Bộ nhớ EEPROM:
Vì phải lưu trữ thông tin về lịch sử cách điện nên ta cần dùng bộ nhớ EEPROM. Ở đây ta dùng 4kB của bộ nhớ EEPROM 28C64.
Bàn phím chức năng là bàn phím gồm 4 phím : Phím đầu tiên dùng để chọn thông số cần thay đổi(phím FUNC). Hai phím dùng để thay đổi giá trị của thông số được chọn(phím INC(tăng)và phím DEC(giảm). Một phím dùng để đồng ý giá trị mới của thông số(phím OK), nó sẽ tác động để Vi xử lý cất giá trị thông số hiện hành vào vùng nhớ bảo toàn dữ lệu khi mất điện.
Mạch điều khiển đóng cắt Rơle chuyển tiếp, thông báo thông tin bằng đèn báo và còi báo việc này được thực hiện rất đơn giản bằng việc sử dụng các mạch logic để giải mã những lệnh đưa ra từ Vi xử lý.
Đọc tiếp điểm phụ của máy cắt để biết trạng thái của máy cắt cũng như đáp ứng của máy cắt đối với lệnh đóng cắt của Vi xử lý. Chỉ có một vấn đề cần quan tâm là tín hiệu từ máy cắt phải được cách ly về điện với Vi xử lý.
Truyền tin với máy tính qua cổng RS232
Sử dụng vi mạch MAX232 để chuyển thông tin từ lôgic TTL sang lôgic của tiêu chuẩn RS232.
Sơ đồ khối:
MÀN HÌNH HIỂN THỊ LED
BỘ NHỚ EEPROM
28C64
MÀN HÌNH HIỂN THỊ LCD
SỐ HOÁ
ICL 7109
MẠCH ĐO
&
KHUẾCH ĐẠI
VI ĐIỀU KHIỂN
89C52
REAL TIME CLOCK
DS12887
TRUYỀN TIN LÊN MÁY TÍNH QUA CỔNG RS232
MÁY TÍNH TRUNG TÂM
BÀN PHÍM CHỨC NĂNG
HỆ THỐNG ĐÈN BÁO HIỆU
CÒI BÁO ĐỘNG
TIẾP ĐIỂM PHỤ CỦA MÁY CẮT
TIẾP ĐIỂM RƠLE CHUYỂN TIẾP
II.Giới thiệu về một số vi mạch dùng trong thiết bị
2.1 Vi điều khiển 89C52
Vi điều khiển là ứng dụng của vi xử lý trong lĩnh vực đo lường và điều khiển.
Sơ đồ chân
Bên ngoài có 40 chân chủ yếu trong đó là các cổng vào ra(chiếm 32 chân 4 port):
+Hai chân cung cấp nguồn(Vcc=+5V,GND=0V).
+Tín hiệu vào ra đa chức năng.
+Các chân điều khiển:Reset,EA,Ale,Psen
Chân Reset(9) dùng để reset hệ thống, tín hiệu reset ở mức cao.
Các cổng vào/ra
-P0(39¸ 32)là cổng vào ra song song thông thường có thể truy cập tới từng bít. Ngoài ra còn làm bus địa chỉ thấp AD0¸AD7,và truyền dữ liệu trong chế độ đọc viết ngoại vi bằng bus.
-P1(1¸ 8) là cổng vào ra song song thông thường có thể truy cập tới từng bít.
-P2(21¸28)là cổng vào ra song song thông thường có thể truy cập tới từng bít. Ngoài ra còn làm bus địa chỉ thấp AD0¸AD7 trong chế độ đọc viết ngoại vi bằng bus.
-P2(10¸17)là cổng vào ra song song thông thường có thể truy cập tới từng bít. Ngoài ra còn một số chức năng.
P3.0(10) dùng làm RxD trong truyền thông nối tiếp.
P3.1(11) dùng làm TxD trong truyền thông nối tiếp.
P3.2(12) dùng làm chân báo ngắt từ bên ngoài cho VĐK(INT0).
P3.3(13) dùng làm chân báo ngắt từ bên ngoài cho VĐK(INT1). P3.4(14) dùng làm tín hiệu đếm cho Timer/Counter0 của VĐK khi nó làm việc ở chhé độ counter
P3.5(15) dùng làm tín hiệu đếm cho Timer/Counter1 của VĐK khi nó làm việc ở chhé độ counter.
P3.6(16)&P3.7(17) ở chế độ multichip thì đây là các lệnh xuất nhập bộ nhớ chúng đi cùng với dữ liệu.
*P3.0¸P3.5 thay đổi chức năng phụ thuộc vào lập trình còn P3.6,P3.7 thay đổi chức năng do chế độ có ghép nối multichip hay không.
ALE(30) là tín hiệu chốt địa chỉ thấp trong đọc viết ngoại vi bằng chế độ bus.
EA(31) là tín hiệu chọn đích cho của địa chỉ : Nếu EA=+5V địa chỉ sẽ được trỏ vào bộ nhớ trong, nếu EA=0V địa chỉ sẽ được trỏ vào bộ nhớ ngoài.
PSEN có tác dụng khi truy cập bộ nhớ ngoài : Nếu PSEN=+1 địa chỉ sẽ được trỏ vào bộ nhớ chương trình bên ngoài, nếu PSEN=0 địa chỉ sẽ được trỏ vào bộ nhớ dữ liệu ngoài.
*Tất cả các VĐK họ 80xx đều có 16 bít địa chỉ trỏ ra ngoài, kết hợp với các chân PSEN, , sẽ có khả năng trỏ tới 2x216 KB bộ nhớ ngoài.
Cấu trúc bên trong 89C52
CPU 8-bit thích hợp với các ứng dụng điều khiển gồm:
+Thanh ghi PC(Program Counter_con trỏ chương trình).
+Control Unit.
+Instruction decorder.
Memory: RAM 256 bytes+ các thanh ghi chức năng đặc biệt
EEPROM 8KB
Ba bộ Timer/Counter 16 bit.
Cổng truyền nối tiếp Full-duplex
Cấu trúc ngắt gồm 6 nguồn ngắt / vector với 2 mức ưu tiên
Máy phát đồng bộ trên chip
Timer/Counter :
AT89C52 có 3 Timer/Counter là Timer0 Timer1, Timer2 , cả 3 có thể hoạt động như Timer hoặc Counter . Khi hoạt động như Timer thanh ghi được tăng lên 1 tại mọi chu kỳ máy , ta có thể coi là đếm chu kỳ máy , mỗi chu kỳ máy gồm 12 chu kỳ dao động thạch anh , tốc độ đếm bằng 1/12 chu kỳ dao động thạch anh . Khi hoạt động như Counter thanh ghi tăng tương ứng với sự thay đổi 1 về 0 tại đầu vào chân T0(14), T1(15),T2(1) . Chức năng là Timer hoặc Counter phải được chọn đồng thời cũng phải chọn 1 trong 4 chế độ hoạt động . Việc khởi tạo hoạt động và điều khiển các Timer/Counter dựa trên 2 thanh ghi TMOD và TCON trong vùng các thanh ghi có chức năng đặc biệt SFRS
Ngoài ra Timer 2 có 3 chế đọ hoạt động: tự nạp lại 16 bít(Autoreload), thu nhận ( Capture ), và tạo tốc độ baud . Hoạt động của Timer2 được điều khiển bởi thanh ghi điều khiển T2CON
Giao diện nối tiếp :
Cổng nối tiếp có thể truyền nhận đồng thời . Nó cũng là bộ đệm nhận nghĩa là có thể nhận byte thứ 2 trước khi byte thứ nhất trước đó được đọc từ thanh ghi nhận . Tuy nhiên byte đầu tiên vẫn chưa đọc trong thời gian nhận byte tiếp theo thì byte đầu tiên sẽ mất . Cả 2 thanh ghi nhận và truyền của cổng nối tiếp đều có tên là Special Function Register SBUF
Tốc độ baud trong truyền nối tiếp :
Đối với Mode 0 : Baud rate 0sillator frequency
Đối với Mode 2 : Baud rate 0sillator frequency
SMOD = 0 : Baud rate = 0sillator frequency
SMOD = 1 : Baud rate = 0sillator frequency
Đối với Mode 1 và Mode 3 : Trong 2 chế dộ này sử dụng Timer 1 để định tốc độ baud
Khi Timer 1 báo tràn :
Baud rate = x ( Timer 1 Over Flow Rate )
Khi Timer 1 sử dụng chế độ tự động nạp lại số đếm khi tràn :
Baud rate = x 0sillator frequency
Việc khởi tạo và điều khiển chế độ truyền nhận nối tiếp thông qua 2 thanh ghi SCON và PCON
Các nguồn ngắt
Các chương trình ngắt được đặt tại địa chỉ từ 0003H ¸ 002bH trong bộ nhớ chương trình . Khi có ngắt thì CPU sẽ nhảy tới vùng mà nó phục vụ ngắt , nếu chương trình phục vụ ngắt nằm trong khoảng 8 byte thì phục vụ ngắt ngay trong vùng đó , còn khi chương trình phục vụ ngắt mà lớn hơn 8 byte và các nguồn ngắt khác đang phục vụ thì sẽ nhảy vượt qua sau đó thực hiện chương trình phục vụ ngắt.
Bảng các vector ngắt :
Nguồn ngắt
Địa chỉ
IE0
0003H
TF0
000BH
IE1
0013H
TF1
001BH
RI&TI
0023H
TF2
002bH
2.2 Giới thiệu về vi mạch chuyển đổi tương tự số ICL7109:
Là bộ biến đổi tương tự sang số bằng phương pháp tích phân 2 sườn xung, đầu ra 12 bit binary.
Tổ chức vào ra theo byte , đầu ra 3 trạng thái tương thích TTL và chế độ truy nhập theo UART handshake cho vào ra song song hoặc nối tiếp với microprocessor.
Đầu vào RUN/HOLD và đầu ra STATUS có thể được sử dụng để kiểm tra và điều khiển trong khi biến đổi.
Tín hiệu vào vi phân và vi phân điện áp chuẩn chính xác
Ít nhiễu 15 mVP-P . Dòng vào 1 pA.
Tốc độ biến đổi 30 lần/s.
Có thể hoạt động với mạch dao động trên chip với tinh thể thạch anh 3,58 MHz thì tốc độ biến đổi là 7,5 lần/s với tần số mạch điện cung cấp là 60 Hz .Cũng có thể sử dụng mạch dao động RC với tần số xung khác.
Chức năng từng chân
Chân số
Tên gợi nhớ
Chức năng
1
GND
Digital Ground , 0V so với tất cả các mức số
2
STATUS
đầu ra sẽ ở mức cao trong suốt thời gian tích phânvà vi phân cho tới khi dữ liệu được chốt lại . Đầu ra sẽ ở mức thấp khi khâu analog được định nghĩa tự động về 0
3
POL
Cực tính - dương đối với điện áp vào dương
Bít số liệu ra 3 trạng thái
4
OR
Tràn thang – cao nếu bị đầy
Bít số liệu ra 3 trạng thái
5
B12
Bit 12
Bit cao nhất
Bít số liệu ra 3 trạng thái
6
B11
Bit 11
High = True
Bít số liệu ra 3 trạng thái
7
B10
Bit 10
High = True
Bít số liệu ra 3 trạng thái
8
B9
Bit 9
High = True
Bít số liệu ra 3 trạng thái
9
B8
Bit 8
High = True
Bít số liệu ra 3 trạng thái
10
B7
Bit 7
High = True
Bít số liệu ra 3 trạng thái
11
B6
Bit 6
High = True
Bít số liệu ra 3 trạng thái
12
B5
Bit 5
High = True
Bít số liệu ra 3 trạng thái
13
B4
Bit 4
High = True
Bít số liệu ra 3 trạng thái
14
B3
Bit 3
High = True
Bít số liệu ra 3 trạng thái
15
B2
Bit 2
High = True
Bít số liệu ra 3 trạng thái
16
B1
Bit 1
Bit thấp nhất
Bít số liệu ra 3 trạng thái
17
TEST
Đầu vào cao khi trong chế độ hoạt động thông thường . đầu vào thấp đặt tất cả các bit ra lên cao . Đầu vào này chỉ được sử dụng khi kiểm tra. đặt mức cao nếu không sử dụng
18
LBEN
Cho phép byte thấp. Với chế độ song song (Mode = low) và CE/LOAD thấp. Điều này có nghĩa là LBEN tích cực thấp thì output là byte thấp từ B1 ¸ B8
Với Mode = High thì LBEN làm cờ báo có byte thấp trong hanshake mode
19
HBEN
Cho phép byte cao. Vơi chế độ song song (Mode = low) và CE/LOAD thấp. Điều này có nghĩa là HBEN tích cực thấp thì output là byte cao từ B9 ¸ B812
Với Mode = High thì HBEN làm cờ báo có byte cao trong hanshake mode
20
CE/LOAD
Chip enable Load. Vơi Mode = low thì CE/LOAD là tín hiệu điều khiển chính cho phép các đầu ra . Khi CE/LOAD = high thì B1-B12 , POL,OR bị cấm
Với Mode = High thì CE/LOAD có vai trò như một xung chọn trong hanshake mode
21
MODE
Nếu Mode = low, chế độ ra trực tiếp, trong chế độ này CE/LOAD (chân 20 ) HBEN ( chân 19 ) và LBEN (chân 18 ) hoạt động như đầu vào điều khiển trực tiếp các byte ra
Nếu Mode = high sẽ cho phép CE/LOAD , HBEN , LBEN đóng vai trò đầu ra , hanshake mode sẽ được tiếp nhận
Nếu Mode là một xung đương - đây là nguyên nhân tạo hanshake mode
22
OSC IN
Đầu vào bộ tạo dao động
23
OSC OUT
Đầu ra bộ tạo dao động
24
OSC SEL
Tín hiệu chọn bộ dao động . Nếu OSC SEL = high tức là định nghĩa cho OSC IN , OSC OUT , BUF OSC OUT như là một bộ dao động RC , xung Clock sẽ cùng pha và có độ rộng xung như ở BEF OSC OUT
Nếu OSC SEL = low thì OSC IN , OSC OUT sẽ là bộ dao động thạch anh tần số clock = 1158 tần số tại BUF OSC OUT
25
BUFOSC OUT
Đầu ra đệm của bộ dao động
26
RUN/HLOD
RUN/HOLD = high tiếp tục biến đổi cho tới khi tràn 8192 xung Clock
RUN/HOLD = low bộ biến đổi sẽ Stop trong Auto Zêro 7 xung trước khi tích phân
27
SEND
Đầu vào - Được dùng trong hanshake mode
28
V-
Nguồn âm analog thường để –5V so với GND
29
REF OUT
Đầu ra điện áp chuẩn thường = 2,8V so với V+
30
BUFFER
Đầu ra bộ chỉnh đệm
31
AUTO-ZÊRO
Điểm auto – zêro
32
INTEGRATOR
Đầu ra bộ tích phân , bên ngoài của CINT
33
COMMON
Điểm chung của tín hiệu analog các tín hiệu được so với Common
34
INPUT LO
Đầu vào thấp
35
INPUT HI
Đầu vào cao
36
REF IN+
Đầu vào dương điện áp chuẩn
37
REF CAP+
Cực dương của tụ chuẩn
38
REF CAP-
Cực âm của tụ chuẩn
39
REF TN-
Đầu vào âm của điện áp chuẩn
40
V+
Nguồn cấp dương thường +5V so với GND
Mô tả chung.
ICL 7109 được chế tạo theo công nghệ CMOS , đây là bộ A/D tích phân hai sườn xung được chế tạo để dễ dàng ghép nối với vi xử lý.
Dữ liệu ra 12 bit có thể truy cập trực tiếp bằng tín hiệu điều khiển cho phép vào 2 byte và tín hiệu Chipslect đối với giao diện trên bus song song . UART handshake mode cho phép ICL 7109 làm việc với chuẩn công nghiệp UART trong truyền dữ liệu nối tiếp . Đầu vào RUN/HOLD và STATUS và phép kiểm tra và điều khiển trong khi biến đổi . ICL 7109 có độ chính xác cao , ít nhiễu , ít bị thay đổi , tiết kiệm
Tín hiệu analog
Thông số
Min
Typ
Max
Unit
Dòng ra bộ dao động
High OOH
Low OOL
VOUT=2,5V
VOUT=2,5V
-
-
1
1,5
-
-
mA
mA
Dòng ra bộ dao động đệm
High BOH
Low BOL
VOUT=2,5V
VOUT=2,5V
-
-
2
5
-
-
mA
mA
Kiểm tra đầu vào 0
VIN=0,0000V
VREF=204,8mV
-0000
±0000
±0000
Counts
Tỉ lệ lỗi
VIN=VREF
VREF=204,8mV
-3
-
0
Counts
Độ tuyến tính thông thường
Full scale = 409,6mV tới 2.048mV . Độ sai lệch lớn nhất so với đường thẳng tuyến tính
-1
±0.2
+1
Counts
Sai số làm tròn
Full scale = 409,6mV tới 2.048mV . Độ sai lệch khi đầu vào âm , dương sấp xỉ Full scale
-1
±0.2
+1
Counts
Độ tuyến tính
Full scale = 200mV hoặc 2.Độ sai lệch so với đường thẳng tuyến tính
-
±0.2
±1
Counts
Tỉ lệ loại trừ
VCM = ± 1V VIN = 0V
Full scale = 409,6mV
-
50
-
mV/V
Dãi điện áp vào so với
Common
Input HI , input LO
Common
( V- )
+2.0
-
( V+ )
2.0
V
Nhiễu
VIN = 0
Full scale = 409,6mV
-
15
-
mV
Dòng rò đầu vào
VIN = 0 bằng độ lệch tại 250C
-
1
10
pA
Độ trôi Zêro
VIN = 0 R1 = 0W
-
0.2
1
mV/0C
Hệ số nhiệt độ
VIN = 408.9mV Þ
77708 Reading
Ext.Ref.0ppm/0C
-
1
5
Ppm/0C
Điện áp chuẩn
Ref Out Voltage VREF
Ref Out Temperature –
Coeffcient
điện trở 25 kW nối giữa V+ và REFOUT
điện trở 25 kW nối giữa V+ và REFOUT
-2.4
-
-2.8
80
-3.2
-
V
Ppm/0C
Đặc tính nguồn cung cấp
Dồng chuyển cấp (với điện áp V+ tới GND) I+
Với điện áp từ V+ tới V-
VIN = 0V Crystal Osc 3.58MHz
Pin 2-21 , 215 ,26 , 27 , 29 Open
-
-
700
700
15000
1500
mA
mA
Tín hiệu digital
Thông số
Tín hiệu digital
Min
TYP
Max
Unit
Điện áp cao đầu ra
VOH
Điện áp thấp đầu ra
VOL
Dòng dò đầu ra
Dòng điều khiển vào ra
Điều khiển vào ra
IOUT = 100mA Chân 2¸16 , 18 , 19 , 20
IOUT = 1,6mA Chân 2¸16 , 18 , 19 , 20
Chân 3¸16 trở kháng cao
Chân 18 , 19 , 20 VOUT = V+ - 3V Mode= GND
HBEN chân 19 , LBEN chân 18
3.5
-
-
-
-
4.3
±0.20
±0.01
5
-
-
±0.40
±1
-
50
V
V
mA
mA
pF
Tín hiệu vào digital
Điện áp cao đầu vào VIH
Điện áp thấp đầu vào VIL
Dòng Full- up vào
Dòng Full- up vào
Dòng Full- down vào
Chân 18(21 , 26 , 27 = GND)
Chân 18¸21, 26 , 27 = GND
Chân 26 , 27 . VOUT=(V+)-3V
Chân 17, 24 . VOUT=(V+)-3V
Chân 21 VOUT = GND + 3
3.0
-
-
-
-
-
-
5
25
5
-
1
-
-
-
V
V
mA
mA
mA
Đặc tính thời gian
Độ rộng xung vào tại
MODE
Do thiết kế
5.0
-
-
Ns
Các thông số khi thiết kế
+ Tần số dao động:
Mạch tạo dao động RC thì fOSC = 0,45/RC với COSC >50pF. ROSC>50kW fOSC =60kHz ( thông thường ).
Mạch dao động bằng tinh thể thạch anh fOSC = 3,58 MHz
+ Chu kỳ dao động : Chu kỳ xung clock tOSC = 1/fOSC
Mạch RC tOSC = RC/0,45
Mạch dao động bằng tinh thể thạch anh tOSC = 1/3,58 MHz
+ Tần số xung Clockcủa phép lây tích phân:
Mạch tạo dao động RC thì fCLOCK = fOSC
Mạch dao động bằng tinh thể thạch anh fCLOCK = fOSC/58
+ Chu kỳ lấy tích phân : tINT = 2048 x tCLOCK
+ Dòng tích phân lý tưởng : IINT = 20mA
+ Điện áp vào Full – scale :VINFC = 200mV hoặc 2V
+ Điện trở tích phân : RINT = VINFS/IINT
+ Tụ tích phân : CINT = ( tINT )(IINT )/VINT
+ Biên độ điện áp tích phân : VINT = ( tINT )(IINT )/CINT
+ Biên độ lớn nhất của VINT : (V- + 0,5 ) ( VINT(V+ - 0,5) thường VINT = 2V
+ Số xung đo được trong khoảng thời gian tích phân :
COUNT = 2048 x VIN/VREF
+ Chu kỳ biến đổi : tCYC = tCLOCK < 8192
+ Điện áp vào COMMON MODE (V- + 20V)<VIN <(V+ - 2V)
+ Tụ AUTO-ZERO : 0,01mF < CAZ < 1mF
+ Tụ REFERENCE : 0,1mF < CREF < 1mF
+ Nguồn cung cấp : V+ = 5V ( 0,5 so với GND )
V- = -5V(0,5 so với GND)
Hoạt độngcủa ADC 7109
Khâu analog
Hình dưới mô tả sơ đồ tương đương của khâu analog trong ICL 7109 Khi RUN/HOLD để hở hoặc được nối với V+.
Tốc độ biến đổi của ADC được xác định chính xác bởi tần số xung Clock ( một chu kỳ biến đổi là 8192 xung clock ) . Mỗi chu kỳ chia làm 3 giai đoạn ( Như hình3) . Đó là giai đoạn Auto-Zero (A-Z), giai đoạn tích phân tín hiệu vào trong khoảng thời gian 2048 xung clock (INT) , giai đoạn cuối cùng là giải tích phân tín hiệu vào:
* Giai đoạn Auto-Zero
Trong giai đoạn này có 3 hoạt động . Đầu tiên input high và input low không được nối với mạch và bị ngắn mạch bên trong với COMMON . Tiếp theo tụ chuản hoá ( Reference Capacitor ) được nạp điện áp đến điện áp chuẩn . Cuối cùng mạch phản hồi được nối với toàn bộ hệ thống và nạp điện cho tụ chỉnh 0 (Auto-Zero Capacitor ) CAZ để bù điện áp offset trong các mạch khuyếch đại , mạch tích phân và mạch so sánh trong 7109 . Do khâu so sánh nằm trong vòng phản hồi nên độ chính xác của A-Z bị giới hạn bởi độ nhiễu của hệ thống . Trong một vài trường hợp offset đối với đầu vào nhỏ hơn 10mV
* Giai đoạn tích phân tín hiệu vào
Trong khi tích phân tín hiệu vào , vòng phản hồi hiệu chỉnh 0 được ngắt ra khỏi hệ thống , ngắn mạch COMMON cũng bị loại bỏ . Khi đó các đường tín hiệu input high và input low bên trong mạch dao động được nối với mạch ngoài ( các tín hiệu input high và input low tại các chân IC ) . Bộ biến đổi sẽ tích phân điện áp chênh lệch giữa input high và low trong khoảng thời gian cố định . điện áp chênh lệch này có thể lớn hơn điện áp vào . Tại thời điểm kết thúc của giai đoạn này cực tính của tín hiệu tích phân được xác định
* Giai đoạn giải tích phân
Giai đoạn cuối cùng là giải tích phân tín hiệu vào , hay tích phân điện áp chuẩn . Input low được nối với mạch bên trong qua COMMON vaf input high được nối qua tụ nạp điện áp chuẩn trong giai đoạn trước đó ( Giai đoạn Auto-Zero ) . Hệ thống mạch điện trên chip đảm bảo các tụ được nối đúng cực tính điều này làm cho bộ tích phân đầu ra trở về 0 với một đường dốc cố định . Khoảng thời gian tín hiệu ra về 0 tỉ lệ với độ lớn tín hiệu vào
* Vi phân đầu vào
Tín hiệu vào có thể chấp nhận độ chênh lệch điện áp với chế độ thông thường của bộ khuyếch đại đầu vào hoặc cho phép chênh lệch 1V đối với nguồn cấp dương và 1,5V với nguồn cấp âm . Trong dãi này hệ thống có độ dốc 68dB . tuy nhiên phải chú ý là khó có thể chắc chắn rằng việc tích phân tín hiệu ra không bão hoà
* Vi phân điện áp chuẩn
Điện áp chuẩn có thể được tạo từ nguồn cung cấp của bộ biến đổi . Tuy nhiên do sự phóng nạp của tụ chuẩn hoặc do tạp nhiễu lớn trên các tiếp điểm gây ra điện áp lặp lại . Nếu điện áp chênh lệch so với Common lớn tụ chuẩn sẽ được nạp một điện áp lớn khi đó gội là độ giảm tín hiệu dương . Ngược lại khi tụ bị mất điện áp ( Giảm điện áp ) được gọi là độ giảm tín hiệu âm . Tuy vậy nếu chọn giá trị tụ chuẩn đủ lớn thì sẽ giảm được sai lệch xuống tơi 0,5 count
* Giá trị các thông số
Để hệ thống làm việc trong điều kiện tốt nhất thì việc chọn các giá trị của các thông số trong khâu analog phải rất cẩn thận . Các giá trị của tụ tích phân , điện trở tích phân , tụ chỉnh zero , điện áp chuẩn , tốc độ biến đổi phải được chọn sao cho phù hợp với từng ứng dụng cụ thể
Điều quan trọng nhất là điện áp tích phân đầu ra ( cho Full scale input ) lớn nhất có thể . Ví dụ nguồn cung cấp là ±5V và COMMON nối với GND thì dãi tích phân đầu ra thông thường @ 4V và cho phép dao động trong khoảng 0,3V . Với nguồn cung cấp là ±5V và COMMON nối với 1V thì dãi điện áp ra sẽ là @ 3V
Điện trở tích phân
Cả hai bộ khuyếch đại đệm và bộ tích phân đều có trạng thái đầu ra analog với dòng điện là 100mA , dòng tích phân . Điện trở tích phân phải đủ lớn sao cho giữ được độ tuyến tính trên dãi điện áp vào , nhưng cũng phải đủ nhỏ để không tiêu tốn quá nhiều năng lượng và có thể đặt được trên PC board . Đối với Full scale là 409,5mV thì giá trị điện trở lớn nhất là 200kW và nhỏ nhất là 20kW . Đối với các dãi Full scale khác thì điện trở tích phân được xác định như sau :
Tụ điện tích phân
Tụ điện tích phân phải được chọn sao cho có thể tạo ra dãi điện áp lớn nhất có thể có được mà không bị bão hoà trong khi tích phân . Nếu nguồn cung cấp của 7109 là ±5Và COMMON nối với GND thì dãi điện áp thông thường là 3,5V đến 4V . Đối với tần số xung clock 61,72kHz ( mạch cấp là tinh thể dao động ) thường giá trị của CINT và CAZ là 0,15mF và 0,33mF . Nếu ta sử dụng tần số xung clock khác thì các giá trị này sẽ thay đổi tuỳ thuộc vào dãi điện áp tích phân ra . Trong trường hợp này giá trị của CINT được tính theo công thức :
Tụ chỉnh zero :
Giá trị của tụ tích phân ảnh hưởng đến sự lọc nhiễu của hệ thống , nếu tụ càng nhỏ thì dung kháng càng lớn và càng làm giảm nhiễu của hệ thống . Tuy nhiên CAZ không thể tăng quá giới hạn của nó , bởi vì CAZ được nối song song với CINT trong mạch RC có chu kỳ xác định . Đối với Full scale là 409,6mV thì khử nhiễu là quan trọng do vậy CAZ bằng 2 lần CINT là tốt nhất .
CAZ = 2xC10 = 2x0.22 = 0.44mF Þ 0.47mF
Tụ chuẩn :
CREF bằng 1mF là tốt nhất cho các ứng dụng . Tuy nhiên nếu điện áp trên Common quá lớn và Full scale là 409,6mV thì tụ cần phải rất lớn để có thể loại trừ nhiễu , thường thì giá trị của tụ là 10mF
Điện áp chuẩn :
Điện áp ra Full scale tương ứng với 4096 count như vậy điện áp vào VIN = 2VREF , thường thì điện áp chuẩn 2,048V sẽ được dùng cho Full scale là 4,096V và 204,8mV sẽ dùng cho Full scale là 0,4096V
Khâu digital
Các tín hiệu digital bao gồm bộ tạo xung clock và mạch đếm , bộ đếm 12 bit với chốt đầu ra và các đầu ra tích hợp 3 trạng thái , các cờ trạng thái .
Các mức logic được quy định là cao hay thấp tuỳ thuộc vào mức điện áp tồn tại trên các pins . Tất cả các đầu vào đều phải có mức điện áp trong khoảng GND – V+.Các đầu vào này là các cổng TTL có điện trở pullup 3 đến 5kW và có khả năng loại trừ nhiễu tốt.
Mode :
Đây là đầu vào dùng để điều khiển chế độ ra của bộ biến đổi . Khi Mode = low hoặc để hở khi đó bộ biến đổi được đặt ở chế độ ra trực tiếp . Dữ liệu ra được truy nhập nhờ các tín hiệu điều khiển của ADC và các tín hiệu vào cho phép các byte ( high , low ) . Khi Mode được kéo lên cao bộ biến đổi sẽ chuyển sang chế độ UART handshake mode , dữ liệu ra trên cả hai byte sau đó nó trở về direct mode . Khi Mode =1 bộ biến đổi sẽ đưa dữ liệu trong chế độ handshake mode tại thời điểm kết thúc của mỗi chu kỳ biến đổi
Status :
Đây là đầu ra trạng thái của ADC , trong suốt khoảng thời gian biến đổi của ADC thì Status sẽ ở mức cao ( từ lúc bắt đầu tích phân đầu vào ) . Nó sẽ trở về mức thấp ở thời điểm 1/2 xung clock sau khi dữ liệu được biến đổi và được chốt lại trong output latches . Tín hiệu này có thể dùng như một cờ ngắt báo sự tồn tại của dữ liệu ra hoặc có thể dùng kiểm tra trạng thái của bộ biến đổi
Run/Hold :
Đây là tín hiệu vào . Khi Run/Hold ở mức cao hoặc để hở thì hệ thống tiếp tục chu kỳ biến đổi và updating latches ra sau khi đã ở giai đoạn Auto-zero . Trong chế độ hoạt động này 1 chu kỳ biến đổi được định nghĩa là không đổi và bằng 8192 xung clock
Nếu Run/Hold = 0 tại bất kỳ một thời điểm nào trong lúc giải tích phân tín hiệu vào thì sau khi đã trở về 0 ( dữ liệu đã biến đổi xong ) hệ thống ngay lập tức ngừng tích phân và trở về giai đoạn Auto-zero . Nếu Run/Hold vẫn ở mức low thì bộ biến đổi sẽ sẽ vẫn ở giai đoạn Auto-zero cho đến khi Run/Hold lên mức cao . Bộ biến đổi sẽ làm việc tiếp sau khi Run/Hold đã ở mức cao trong 7 chu kỳ xung clock.
2.3 Cấu tạo hoạt động của LCD :
Giao diện với người sử dụng bao gồm màn hình tinh thể lỏng LCD 1 dòng 20 ký tự :
a) Giới thiệu sơ lược về LCD ( Liquist Crystal Display ) :
LCD là một loại hình hiển thị thông tin tiêu tốn ít năng lượng hơn LED , vì vậy thích hợp với hệ thống đòi hỏi ít tiêu thụ năng lượng
Bình thường một LCD có kích thước từ 1 đến 2 dòng , 16 đến 80 ký tự trên mỗi dòng và kích thước của mỗi ký tự có thể là 5x7 hoạc 5x10 dot
Một LCD Module được gắn trên một mạch in với bộ tạo ký tự và một hệ điều khiển và giao thức điều khiển đều tương thích với chuẩn TTL
Về đường bus dữ liệu , có thể thực hiện điều khiển LCD với đường dữ liệu là 4 hoặc 8 bit . với điều khiển 4 bit thì dữ liệu đưa ra làm 2 lần , lần đầu là 4 bit cao , lần sau là 4 bit thấp . Bốn bit dữ liệu ở đây được đưa ra nửa cao của đường vào ra với LCD ( DB4…DB7 )
Ngoài đường bus , LCD Module còn 3 đường điều khiển . Đó là các tín hiệu cho phép E ( Enable signals ) , tín hiệu điều khiển đọc viết ( R/W ) , tín hiệu chọn thanh ghi cho vào hoặc cho ra dữ liệu ( RS : Register Select )
Sơ đồ chân của LCD :
STT
Ký hiệu
Mức logic
Chức năng
Chú thích
1
VSS
0V(Ground)
2
Vcc
5V(Supply)
3
VEE
Điều khiển LCD
4
RS
H/L
Chọn thanh ghi
H : Chọn thanh ghi vào cho dữ liệu
L : Chọn thanh ghi vào cho điều khiển
5
R/W
H/L
Chọn chế độ
đọc/viết
H : Đọc vào từ LCD vào CPU
L : Viết từ CPU vào LCD
6
E
L-H-L
Tín hiệu cho phép
7
DB0
H/L
Bít dữ liệu 0
8
DB1
H/L
Bít dữ liệu 1
9
DB2
H/L
Bít dữ liệu 2
10
DB3
H/L
Bít dữ liệu 3
11
DB4
H/L
Bít dữ liệu 4
12
DB5
H/L
Bít dữ liệu 5
13
DB6
H/L
Bít dữ liệu 6
14
DB7
H/L
Bít dữ liệu 7
Hoạt động của LCD :
- Chế độ hiển thị :
Màn hình hiển thị có 2 dòng , mỗi dòng có 40 ký tự . Bộ điều khiển LCD có chứa bộ nhớ RAM có khả năng lưu 80 ký tự , bộ nhớ này gọi là DDRAM . Bình thường ta có thể nhìn thấy 20 ký tự trên mỗi dòng , tức là 40 ký tự trên cả 2 dòng , còn lại là không nhìn thấy ( tại 1 thời điểm ) . Các ký tự không nhìn thấy có thể được nhìn thấy thông qua việc dịch toàn bộ màn hình hiển thị về phía bên phảI hoặc trái đi một notch
- Tín hiệu cho phép E ( Enable Link ) :
Đây là tín hiệu điều khiển chính được đưa ra trong toàn bộ quá trình điều khiển LCD cũng như khi chọn thanh ghi và chọn chế độ đọc hay viết . Tín hiệu này tích cực ở mức logic cao theo sườn lên L-H-L . Dữ liệu được đưa vào trong khi E tích cực
- Điều khiển hoạt động của LCD :
Có 2 loại tín hiệu điều khiển việc đọc ghi dữ liệu và điều khiển các tín hiệu : RS , R/W , E . Các tín hiệu điều khiển được đặt lên LCD để đặt LCD vào chế độ hoạt động . sau khi có các tín hiệu điều khiển thì mới điều khiển vào hoặc ra dữ liệu
Việc điều khiển trước tiên phải đặt th RS ở mức logic thấp để chọn thanh ghi điều khiển . Tín hiệu R/W cần phải được thiết lập để được chọn chế độ đọc hay viết . Quá trình điều khiển được chia làm 5 giai đoạn : Khởi tạo , đặt con trỏ , điều khiển hiển thị , tạo hay chọn ký tự hiển thị và kiểm tra trạng thái bận của LCD trước khi đọc hay ghi một từ mới
* Reset LCD :
LCD cần phải được khởi động lại ngay sau khi bật nguồn cung cấp . Bước tiếp theo là gửi liên tiếp 3 byte 30H tới LCD . Mỗi lần cách nhau 1ms
* Đặt chúc năng ( Function Set ) :
Command
Binary D7 D6 D5 D4 D3 D2 D1 D0
Hex
Clear Display
0
0
0
0
0
0
0
1
01
Display & Cursor Home
0
0
0
0
0
0
1
X
02 or 03
Chacractor Entry Mode
0
0
0
0
0
1
I/D
S
04 to 07
Display On/Off & Cursor
0
0
0
0
1
D
U
B
08 to 0F
Display/Cursor Shift
0
0
0
1
D/C
R/L
X
X
10 to1F
Funtion Set
0
0
1
8/4
2/1
10/7
X
X
20 to 3F
Set Ggram Address
0
1
A
A
A
A
A
A
40 to 7F
Set Display Address
1
A
A
A
A
A
A
A
80 to FF
I/D:1= Increment*, 0=Decrement R/L: 1 = Right Shift, 0 = Left Shift S : 1= Display Shift on, 0= Display Shift off* 8/4: 1 = 8 bit interface*, 0 = 4 bit interface D: 1= Display On, 0= Display Off* 2/1: 1 = 2 line mode, 0= 1 line mode D/C :1=Display Shift, 0=Cursor move 10/7 :1= 5x10 dot format, 0= 5x7 dot format x = Don’t care * = initialisation settings.
2.3 Đồng hồ thời gian thực DS12887
Những nét đặc trưng của DS 12887:
DS12887 có thể thay thế cho đồng hồ/lịch trong máy tính của IBM.
Dữ liệu hoàn toàn không mất đi khi không cấp nguồn trong 10 năm.
Tự đếm giây, phút, giờ, ngày, tháng và năm.
Các giá trị có thể viết dưới dạng Binary hoắc BCD.
Có 2 chế độ đặt giờ: 12 giờ AM và PM hoặc 24 giờ.
Có thể chọn chế độ Bus của Motorola hoặc của Intel.
Tín hiệu xung vuông ra có thể tự lập trình.
Làm việc trong dải nhiệt độ 00C ữ 700C.
Bản thân DS12887 có chứa một số thành phần phụ: tự cập nhật (includes lithium), đồng hồ clock, nguồn dự phòng.
Có 128 byte RAM: 14 byte dành cho thanh ghi điều khiển và clock, 114 byte dành cho người dùng sử dụng.
Có 3 loại ngắt: Ngắt Update thời gian 1 giây 1 lần, ngắt theo chu kỳ 122ms ¸ 500ms, ngắt theo sự kiện.
Sơ đồ chân:
Chức năng của một số chân cơ bản
-Vcc, GND: Khi được cung cấp nguồn một chiều Vcc= 5V,GND=0V sẽ cho phép truy cập dữ liệu vào ra. Khi Vcc < 4,25V không cho phép đọc viết, tuy nhiên dữ liệu trong RAM được lưu giữ, lúc này RTC vẫn sử dụng nguồn ngoài. Khi Vcc < 3V việc lưu giữ và update thời gian sẽ sử dụng nguồn bên trong.
-MOT (Mode select): Chọn chế độ Bus cho RTC. Khi chân này nối với Vcc thì Mode của Motorola được chọn. Khi nối với GND thì Mode của Intel được chọn.
-SQW (Square-Wave Output): Chân này phát xung vuông với tần số tuỳ theo người lập trình, có thể tạo ra 16 tần số khác nhau bằng cách viết vào thanh ghi A(ở địa chỉ 0ah của DS12887):
chân này không hoạt động khi Vcc < 4,25V.
-AD0 ¸ AD7 : Multiplex Bidirection Address / Data bus. Khi DS12887 ở trạng thái Write- Protected tất cả các chân vào đều không có tác dụng và tất cả các đầu ra ở trạng thái trở kháng cao.
-AS (Address Strobe Input): Khi chân ALE thấp, địa chỉ được chốt trong RTC.
-DS (Data Strobe Input): Chân DS/ có hai chế độ hoạt động tuỳ thuộc vào mức của chân MOT. Khi MOT ở mức cao (chế độ Motorola) DS ở mức cao trong suốt phần còn lại của có tên là data strobe. Trong suốt chu kỳ đọc tín hiệu DS để điều khiển bus hai chiều, trong chu kỳ viết dùng để điều khiển chốt dữ liệu. Khi MOT ở mức thấp (chế độ bus của Intel) DS được gọi là . Khi có tín hiệu thì DS12887 sẽ điều khiển bus đọc dữ liệu (giống như Output Enable).
-R/ (Read/Write Input): có hai chế độ:
+Nếu bus kiểu Motorola thì R(Read) ở mức cao, (Write) ở mức thấp
+Nếu bus kiểu Intel thi R/ ở mức giống như Output Enable.
- (Chip – Select Input): là chân tích cực cho DS12887, tín hiệu tích cực ở mức thấp.
- (Interupt Request Output): Là đầu ra tích cực thấp, nó báo ra bên ngoài khi:
update xong thời gian thực(mỗi giây update một lần), hoặc khi kết thúc một chu kỳ thời gian, chu kỳ đó người dùng có thể đặt bằng các thanh ghi điều khiển của RTC.
hoặc khi giờ, phút, giây trong RTC bằng với giờ phút giây mà ta đã đặt trong các thanh ghi hours arlam, minutes alarm, seconds alarm của RTC.
Tín hiệu ở chân này được sử dụng làm ngắt ngoài cho vi xử lý. Như vậy có ba loại tín hiệu ngắt từ RTC: ngắt update, ngắt pirodic,ngắt alarm muốn phân biệt các ngắt này vi xử lý phải đọc thanh ghi C(ở địa chỉ 0ch trong RTC) và xem cờ nào được dựng.
-(Reset Input): Chân này không ảnh hưởng tới giá trị của đồng hồ. Khi Reset hoặc nguồn dưới 4,25V thì:
+Các bit PIE, AIE, UF, IRQF, PF, AF, SQWE, UIE được xoá xuống 0.
+Không cho phép truy cập cho đến khi Reset trở lại mức cao.
+Chân IRQ ở trạng thái cao trở.
Cấu trúc bên trong của RTC:
* DS12887 có 128 byte RAM trong đó dành 14 byte để thao tác cho hoạt động của DS12887.
ADDRESS LOCATION
FUNCTION
DECIMAL RANGE
DATA MODE RANGE
BINARY BCD
0
Second
0 - 59
00 – 3B
00 – 59
1
Second alarm
0 - 59
00 – 3B
00 – 59
2
Minutes
0 - 59
00 – 3B
00 – 59
3
Minutes alarm
0 - 59
00 – 3B
00 – 59
4
Hours , 12- hours Mode
1 - 12
01 – 0C AM
81 – 8C PM
01 – 12 AM
81 – 92 PM
Hours , 24- hours Mode
0 - 23
00 – 17
00 – 23
5
Hours alarm , 12- hours
1 – 12
01 – 0C AM
81 – 8C PM
01 – 12 AM
81 – 92 PM
Hours alarm , 24- hours
0 - 23
00 – 17
01 –23
6
Day of the week Sunday- 1
1- 7
01 – 07
01 – 07
7
Date of the Month
1- 31
01 – 1F
01 – 31
8
Month
1 - 12
01 – 0C
01 – 12
9
Year
0 - 99
00 – 63
00 - 99
Còn lại 114 byte RAM cho phép người dùng có thể tuỳ ý sử dụng như một vùng nhớ ngoài không mất nội dung khi mất điện.
Biểu đồ thời gian của ở chế độ đọc viết RTC dạng Bus theo Intel và theo Motola :
CHƯƠNG 4:TÍNH TOÁN THIẾT KẾ CHI TIẾT
I.Tính toán thiết kế mạch đo:
Để đo được điện trở cách điện bằng phương pháp đo điện trở gián tiếp ta có thể dùng nguồn điện xoay chiều hoặc một chiều ổn áp đặt lên điện trở cách điện. Nhưng ở đây ta phải đo điện trở cách điện giữa stato và vỏ máy của động cơ ngay khi động cơ đang làm việc.
Khi điện trở cách điện của động cơ giảm thì điện thế của điểm trung tính so với vỏ máy là xoay chiều có giá trị gần bằng điện áp pha(do dây quấn stato của động cơ là hình sao trung tính không nối đất). Như vậy, đặt lên điện trở cách điện sẽ có hai thành phần điện áp: một điện áp do ta đưa ra một điện áp là điện áp lưới do vậy dòng điện rò qua điện trở cách điện cũng có hai thành phần. Việc đo điện trở sẽ trở lên mất chính xác. Để giải quyết vấn đề này ta phải dùng cách sau: điện áp do ta đưa ra đặt lên điện trở cách điện là điện áp một chiều(cao áp), và dùng mạch lọc xoay chiều(chỉ lấy thành phần một chiều) không để nó gây nhiễu cho kết quả đo.
Ở đây, điện áp một chiều là 300V ổn áp được tạo ra bằng cách dùng một biến áp tăng áp biến áp lưới 220v~ thành 300V~, chỉnh lưu điện áp 300V~ thành 300.VDC này rồi đưa vào mạch ổn áp dùng hai điốt ổn áp Zener 150V mắc nối tiếp (tạo thành mạch ổn áp 300V). Đặt điện áp này giữa điểm trung tính của dây quấn stato và vỏ máy. Để tránh hiện tượng quá tải khi điện trở cách điện trở cách điện trở cách điện giảm nhỏ ta mắc nối tiếp điện trở cách điện với một điện trở phụ 740KW.
Để lọc bỏ đi thành phần nhiễu xoay chiều do điện lưới gây ra ta sử dụng một tụ điện 2,2uF như trên sơ đồ, với tần số lưới là 50Hz dung kháng của tụ sẽ là:
Zc= =» 1.44KW
Sơ đồ tương đương:
Từ sơ đồ mạch đo ta tính được công thức:
irò=
Rcđ=-Rph
Mà Uđo=irò.1k
Þ Rcđ=-Rph
Dải đo thay đổi từ 0W ¸20MW nên
Khi Rcđ = 0W Þ irò = 0.39mA Þ Uđo = 0.39V
Khi Rcđ = 20MW Þ irò = 0.014mA Þ Uđo = 0.014V
Chọn fullscale của đầu ra tầng khuếch đại là 2V như vậy hệ số khuếch đại được tính khi đầu vào cực đại:
Kkđ ==5.128 lần
II .Mạch số hoá:
Với thiết bị bảo vệ cách điện, dù có chức năng đo điện trở nhưng không cần độ chính xác cao nên ta chỉ sử dụng nửa thang của ICL7109(2000 mức). Đặt điện áp chuẩn của ICL7109 là 2,048V thì khi fullscale ta được giá trị số hoá là 2000.
Công thức lượng tử hoá của ICL7109 với Uref=2,048 là:
Nx=
ÞNx = = =
Cuối cùng sau khi lấy mẫu ta cần tính Rcđ theo công thức:
Rcđ= -Rph đơn vị tính bằng KW
Phương pháp sử dụng ICL7109 ở đây là ta sẽ đếm xung clock trong thời gian dựng lên của status:
Khi có lệnh đo điện trở Vi điều khiển sẽ dò sườn lên của chân status (được đưa vào chân P1.7), gặp sườn lên nó sẽ khởi động bộ định thời T/C0(được dặt ở chế độ counter) để đếm xung clock từ ICL đưa vào chân T0. Như ở phần giới thiệu về ICL7109 ta đã biết quá trình biến đổi của ICL7109 có hai giai đoạn chính là tích phân và giải tích phân và chân status sẽ dụng lên trong hai giai đoạn này. Trong quá trình tích phân nó sẽ tích phân điện áp chuẩn trong 2048 xung nhịp clock. Trong quá trình giải tích phân nó lại giải điện áp vừa tích phân được trong quá trình trước theo điện áp vào nên tỷ thời gian giải tích phân và thời gian tích phân bằng tỷ lệ điện áp vào và điện áp chuẩn. Bởi vậy, đếm số xung clock ta sẽ tính được điện áp vào. Cụ thể, đếm được số xung này trừ đi 2048 xung ta sẽ được số xung chính là kết quả lượng tử hoá điện áp đầu vào của ADC. Thực ra là trừ đi 2050 xung vì tín hiệu status xuống thấp sau khi giải tích phân kết thúc 1,5 xung. Để đơn giản tính toán ta cho T/C0 chạy ở chế độ đếm 16 bit và nạp trước cho nó con số -2050(= f7feh).
III. Hiển thị kết quả đo:
Hiển thị trên LCD:
Màn hình tinh thể lỏng (liquid crystal display), có khả năng hiển thị phong phú được sử dụng để hiển thị kết quả đo, thời gian thực và là giao diện thân thiện cho người vận hành và thiết bị khi muốn cài đặt các thông số cho rơle bằng bàn phím chức năng.
Sơ đồ ghép nối Vi điều khiển 89C52 với màn hình hiển thị LCD như trên hình vẽ. Trong đó LCD được điều khiển đọc viết bằng chế độ port.
Các chế độ hiển thị trên LCD được liệt kê trong bảng sau
Chế độ
Tên chế độ
Nội dung hiển thị
F1
Chạy
F1:Run Rcd=XXXXX M/k
hh:mm dd-mm-yy
F2
Dừng
F2:STOP
F3
Đặt lại giờ
F3:Set hour
Hour= XX?
F4
Đặt lại phút
F4:Set minute
Min= XX?
F5
Đặt lại ngày
F5:Set day
Day= XX?
F6
Đặt lại tháng
F6:Set month
Month= XX?
F7
Đặt lại năm
F7:Set year
Year= XX?
F8
Đặt lại mode chạy
F8:Set mode
Chạy theo?/(Chạy độc lập?)
F9
Đặt lại Uo trong chế độ chạy theo
F9:Set Uo
Uo =XXXXV?
F10
Đặt lại giờ
F10:Set Rph
Rph=XXXXV?
F11
Xem lịch sử cách điện
hh:mm dd-mm-yy
Rcd=XXXXXM/k
Màn hình hiển thị LED :
Phần này 4 đèn LED 7 thanh anốt chung,treo lên +5V, để một thanh nào đó của đèn được sáng thì chân điều khiển tương ứng phải ở mức thấp.
Tính toán công suất: Khi mỗi thanh LED sáng cần ít nhất dòng là 4mA, sụt áp trên nó khoảng 1,8V¸2V ta mắc nối tiếp với mỗi đèn một điện trở hạn dòng 680W để dòng qua mỗi điốt là: id=(5V-2V)/680W=4,4mA, như vậy công suất tiêu thụ cực đại của màn hình LED là: P=4x8x4,4x5=0,7W.
Bảng giải mã BCD sang mã 7 thanh:
Mã BCD
Mã 7 thanh
Mã 7 thanh dạng hexa
dp
g
f
e
d
c
b
a
0
1
1
0
0
0
0
0
0
C0H
1
1
1
1
1
1
0
0
1
F9H
2
1
0
1
0
0
1
0
0
A4H
3
1
0
1
1
0
0
0
0
B0H
4
1
0
0
1
1
0
0
1
99H
5
1
0
0
1
0
0
1
0
92H
6
1
0
0
0
0
0
1
0
82H
7
1
1
1
1
1
0
0
0
F8H
8
1
0
0
0
0
0
0
0
80H
9
1
0
0
1
0
0
0
0
90H
Để đưa dữ liệu ra đèn ta dùng thanh ghi dịch 4094 chuyển dữ liệu nối tiếp thành song song theo kiểu dịch đồng bộ. Dữ liệu được đưa vào Data của vi mạch 4094 từ cổng P1.3, đồng thời với mỗi bit data là một xung clock(từ cổng P1.2, tích cực ở sườn lên).
Vi mạch 4094:
- Chân OE là chân cho phép dữ liệu ở các chân QI . Khi OE = 1 thì cho phép dữ liệu ra LED , nếu OE = 0 thì cấm.
- Chân SRT được nối với nguồn ở mức cao để đảm bảo các bit trong thanh ghi dịch luôn được dịch khi có sườn lên từ chân Clock.
- 8 đầu ra song song theo thứ tự từ Q8 đến Q1 tương ứng là 8 bít bất kỳ đã vào chân data nối tiếp theo clock.
- Chân QS luôn có trạng thái của Q8 nên chân này được nối với chân data của thanh ghi dịch tiếp theo để đảm bảo là các bit được dịch ra trên thanh ghi là liên tiếp . Chân không dùng.
Bảng trạng thái của 4094 như sau :
CLK
OE
STR
D
Đầu ra song song
Đầu ra nối tiếp
Q1
Qn
QS
0
x
x
Z
z
Q7
No change
0
x
x
Z
z
No change
Q7
1
0
x
No change
No change
Q7
No change
1
1
0
0
Qn-1
Q7
No change
1
1
1
1
Qn-1
Q7
No change
1
1
1
No change
No change
No change
Q7
Từ bảng trạng thái ta thấy rằng để dịch 1 byte vào 4094 thì phải qua 8 nhịp xung clock và để hiển thị được 4 số thì phải dịch 4 byte data(Sau 32 nhịp clock).
IV. Bàn phím chức năng
Giúp cho người vận hành có thể cài đặt các thông số config và setting cho rơle :
+ Đặt ngày, giờ.
+ Đặt chế độ chạy.
+ Đặt Uo và RP trong chế độ chạy theo.
Sơ đồ:
Bàn phím được phục vụ theo chế độ ngắt, khi có phím được nhấn sẽ tạo ra một ngắt yêu cầu Vi xử lý. Nhận được ngắt này Vi xử lý sẽ đọc về mã phím để xác định được phím nào nhấn và thực hiện một công việc tuỳ theo phím được nhấn và trạng thái trước đó của Vi xử lý.
Bàn phím gồm có bốn phím: Func, Inc, Dec, Ok,
Phím FUNC dùng để chọn các chức năng bao gồm 11 chức năng:
+ Function 1 là chế độ chạy ( RUN ) trong chế độ này vi sử lý đo điện trở cách điện hiển thị kết quả đo Update thời gian.So sánh Rcđ cách điện với ngưỡng tác động khi Rcđ nhỏ hơn.
+ Function 2 là chế độ dừng (stop) dừng tất cả các công việc canh đo chuẩn bị dành cho việc phan lệch từ bàn phím:
+ Funtion 3 là chế độ đặt giờ.
+ Funtion 4 là chế độ đặt phút.
+ Funtion 5 là chế độ đặt ngày
+ Funtion 6 là chế độ đặt tháng.
+ Funtion 7 là chế độ đặt năm.
+ Funtion 8 là chế độ đặt Mode chạy của Rơle.
+ Funtion 9 là chế độ đặt Uo trong chế độ chạy theo.
+ Funtion 10 là chế độ đặt R phụ trong chế độ chạy theo.
+ Funtion11 là chế độ viết lịch sử cách điện lên màn hình LCD. Đến Funtion này việc sử lý sẽ đọc ra thông tin mới nhất về điện trở cách điện đã ghi trong EEPROM. Ta có thể dùng phím tăng (inc) hoặc phím giảm (Dec) để gọi thông tin khác trong EEPROM ra LCD.
Các thông số có thể thay đổi giá trị nhờ hai phím tăng(inc), giảm(dec), khi đồng ý với giá trị nào ta ấn phím OK thì vi sử lý sẽ đem tham số đó cất vào RTC để khi mất điện số liệu không bị mất.
Các phím được mã hoá bởi vi mạch mã hoá ưu tiên 74 14 8 :
Bảng trạng thái của 74LS148 :
EI
I0
I1
I2
I3
I4
I5
I6
I7
GS
A
B
C
EO
H
X
X
X
X
X
X
X
X
H
H
H
H
H
L
H
H
H
H
H
H
H
H
H
H
H
H
L
L
X
X
X
X
X
X
X
L
L
L
L
L
H
L
X
X
X
X
X
X
L
H
L
H
L
L
H
L
X
X
X
X
X
L
H
H
L
L
H
L
H
L
X
X
X
X
L
H
H
H
L
H
H
L
H
L
X
X
X
L
H
H
H
H
L
L
L
H
H
L
X
X
L
H
H
H
H
H
L
H
L
H
H
L
X
L
H
H
H
H
H
H
L
L
H
H
H
L
L
H
H
H
H
H
H
H
L
H
H
H
H
Vi mạch có thể mã hoá tám thông tin vào bằng ba bít ra. ở đây vì chỉ có bốn phím ta chỉ sử dụng hai bít đầu ra.Thứ tự ưu tiên từ bít 0 đến bít 7 cho mã hoá.
Chú ý khi sử dụng vi mạch 74LS148 nếu số thông tin cần mã hoá không nhiều đến 8 thông tin ta không nên sử dụng đầu vào Io vì mã của nó ở đầu ra trùng với khi không có phím được ấn nên nó dễ bị ảnh hưởng của nhiễu.
Theo sơ đồ trên các phím sẽ được mã hoá thành các mã cho ở bảng sau:
Phím
A1
A0
GS
Chưa có phím ấn
1
1
1
Func
0
0
0
Inc
0
1
0
Dec
1
0
0
OK
1
1
0
V. Các đèn tín hiệu, Rơle chuyển tiếp và lấy tín hiệu phản hồi từ tiếp điểm phụ của máy cắt.
V. EEPRROM
Dùng để ghi lịch sử cách điện, và lấy ra viết lên LCD khi muốn xem cũng như truyền lên máy tính. Để có thể đọc viết dữ liệu với EEPROM ta dùng chế độ bus. Dữ liệu được tổ chức trong EEPROM theo dạng đống nó là tập hợp của các bản ghi có dạng:
Ngày(3byte)
Giờ(2byte)
Giá trị Rcđ(2 byte)
Ghi chú(1byte)
Mỗi bản ghi sẽ có 8 byte.
Cần phải có một con trỏ file(fpt) để lưu địa chỉ cuối của file lịch sử cách điện sau mỗi lần ghi vào EEPROM con trỏ file sẽ tăng lên 8 đơn vị, nó được cất vào RTC. Mỗi khi reset hoặc mở máy sẽ lấy ra để sử dụng.
VI. Ghép nối máy tính.
Là mạch truyền tin công nghiệp, khi Master gọi Salve thì mở phiên truyền tin. Câu lệnh bao gồm lệnh: Read và Write
Việc truyền dữ liệu đi xa ở mức điện áp TTL (0V ¸ 5V) có thể gây suy giảm điện áp, lẫn tạp âm (nhiễu) làm cho khó phân biệt được mức tín hiệu ‘0’ và ‘1’, điều này làm sai lệch thông tin. Do đó khi truyền thông tin đi xa cần thiết phải tăng mức điện áp lên.
Mặt khác mức điện áp của các mạch số (mức TTL 0V ¸ 5V) khác với mức điện áp của máy tính (0V ¸ 12V) nên cần thiết phải có mạch phối ghép chuẩn. Vd: RS232.
Cổng nối tiếp RS232 là giao diện được dùng cho nhiều mục đích đo lường điều khiển và nhiều ứng dụng khác. Trong máy tính PC cổng nối tiếp thường là các cổng COM1, COM2. Việc truyền số liệu qua cổng RS232 được tiến hành theo cách nối tiếp, nghĩa là các bít số liệu được truyền nối tiếp trên các đường dây. Cổng nối tiếp RS232 không phải là một hệ thống BUS, nó cho phép dễ dàng tạo ra liên kết dưới dạng điểm - điểm (point to point) giữa hai máy cần trao đổi thông tinhay giưa máy tính với ngoại vi.
· Các thông số kỹ thuật của RS232:
- Tốc độ truyền tối đa 20Kbps.
- Khoảng cách truyền cực đại 15m.
- Mức logic ‘1’: - 3V ¸ - 25V.
- Mức logic ‘0’: + 3V ¸ + 25V.
- Tín hiệu ồn cho phép 2V.
· Các đầu nối
· Mô tả chân:
Đầu nối
Chức năng
Tên
Hướng
DB-25
DB-9
1
Đất
GND
2
3
Truyền dữ liệu
TXD
Xuất
3
2
Nhận dữ liệu
RXD
Nhập
4
7
Yêu cầu gửi
RTS
Xuất
5
8
Xoá việc gửi
CTS
Nhập
6
6
Dữ liệu sẵn sàng
DSR
Nhập
7
5
Nối đất vỏ máy
GND
8
1
Dò sóng mang
DCD
20
4
Terminal sẵn sàng
DTR
Xuất
22
9
Bổ chị thị vòng
RI
Nhập
Tốc độ truyền nối tiếp (tốc độ Baud) có thể là: 300, 600, 1200, 2400, 4800, 9600,19200. Thông thường tốc độ truyền là 9600 baud (tuỳ thuộc vào cấu hình thiết bị). Trước khi truyền, số liệu nối tiếp phải được tổ chức thành các Frame.
Để giải quyết vấn đề và thoả mãn các yêu cầu này, việc truyền tin giữa thiết bị và máy tính được thực hiện qua chuẩn RS232.
Sơ đồ ghép nối phần cứng:
CHƯƠNG 5. THIẾT KẾ PHẦN MỀM
I. Lưu đồ thuật toán cho vi điều khiển:
1. Lưu đồ thuật toán cho chương trình khởi tạo:
Cấm tất cả các ngắt gọi đến chương trình.
Khởi tạo ngăn xếp.
Gọi chương trình Init RAM
Gọi chương trình Init LCD
Gọi chương trình Init RTC
Gọi chương trình Init truyền tin nối tiếp
Gọi chương trình Init Port
Định dạng tín hiệu báo ngắt được sử dụng(ngắt RTC,ngắt phím,ngắt truyền tin).
Cho phép tất cả các ngắt gọi đến chương trình
Start
Chờ ngắt
2. Lưu đồ chương trình phục vụ ngắt phím:
ACC=00h
Gọi chương trình phục vụ phím FUNC
ACC=01h
Gọi chương trình phục vụ phím INC
ACC=02h
Gọi chương trình phục vụ phím DEC
ACC=03h
Gọi chương trình phục vụ phím OK
Lấy các thanh ghi ra từ ngăn xếp
Đọc cờ C của RTC để đảm bảo RTC có thể báo ngắt
Cho phép tất cả các ngắt gọi đến chương trình
Cấm tất cả các ngắt gọi đến Vi xử lý
Cất các thanh ghi sẽ sử dụng trong chương trình vào ngăn xếp
Dọc mã phím vào ACC
Key_Srv
reti
No
Yes
Yes
Yes
No
No
Yes
No
Func_reg=1
Gọi chương trình RUN cho phép update tgian canh đo & truyền tin
Func_reg=2
Gọi chương trình STOP dừng tất cả mọi công việc chỉ phục vụ phím
Func_reg=3
Gọi chương trình đặt giờ
Func_reg=4
Gọi chương trình đặt phút
Func_reg=5
Gọi chương trình đặt ngày
Func_reg=6
Gọi chương trình đặt tháng
Func_reg=7
Gọi chương trình đặt năm
Func_reg=8
Gọi chương trình đặt mode
ret
XÁC ĐỊNH PHÍM FUNC ĐƯỢC NHẤN
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Func_reg=11
Gọi chương trình xem LSử cách điện sẽ hiện ra LCD thông tin về LS cđ mới nhất
Yes
No
No
No
No
No
No
No
No
No
Tăng thanh ghi Func_reg
Func_reg=9
Gọi chương trình đặt Uo
Yes
Func_reg=10
Gọi chương trình đặt Rph
Yes
3. Lưu đồ chương trình phục vụ phím FUNC:
4. Lưu đồ chương trình phục vụ phím INC:
Func_reg=3
Gọi chương trình tăng giờ
(tăng hour_reg trong RAM nội)
Func_reg=4
Gọi chương trình tăng phút
(tăng min_reg trong RAM nội)
Func_reg=5
Gọi chương trình tăng ngày
(tăng day_reg trong RAM nội)
Func_reg=6
Gọi chương trình tăng tháng
(tăng month_reg trong RAM nội)
Func_reg=7
Gọi chương trình tăng năm
(tăng year_reg trong RAM nội)
Func_reg=8
Gọi chương trình đổi mode
(mode trong RAM nội)
Func_reg=9
Gọi chương trình tăng Uo
(tăng Uo trong RAM nội)
Func_reg=10
Gọi chương trình tăng Rph
(tăng Rph trong RAM nội)
Func_reg=11
Gọi chương trình xem LSử cách điện tiếp theo trong EEPROM
ret
XÁC ĐỊNH PHÍM INC ĐƯỢC NHẤN
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
5. Lưu đồ chương trình phục vụ phím DEC:
Func_reg=3
Gọi chương trình giảm giờ
(tăng hour_reg trong RAM nội)
Func_reg=4
Gọi chương trình giảm phút
(tăng min_reg trong RAM nội)
Func_reg=5
Gọi chương trình giảm ngày
(tăng day_reg trong RAM nội)
Func_reg=6
Gọi chương trình giảm tháng
(tăng month_reg trong RAM nội)
Func_reg=7
Gọi chương trình giảm năm
(tăng year_reg trong RAM nội)
Func_reg=8
Gọi chương trình đổi mode
(mode trong RAM nội)
Func_reg=9
Gọi chương trình giảm Uo
(tăng Uo trong RAM nội)
Func_reg=10
Gọi chương trình giảm Rph
(tăng Rph trong RAM nội)
Func_reg=11
Gọi chương trình xem LSử cách điện trước đó trong EEPROM
ret
XÁC ĐỊNH PHÍM DEC ĐƯỢC NHẤN
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
6. Lưu đồ chương trình phục vụ phím OK:
Func_reg=3
Gọi chương trình OK giờ
(tăng hour_reg trong RAM nội)
Func_reg=4
Gọi chương trình OK phút
(tăng min_reg trong RAM nội)
Func_reg=5
Gọi chương trình OK ngày
(tăng day_reg trong RAM nội)
Func_reg=6
Gọi chương trình OK tháng
(tăng month_reg trong RAM nội)
Func_reg=7
Gọi chương trình OK năm
(tăng year_reg trong RAM nội)
Func_reg=8
Gọi chương trình OK mode
(mode trong RAM nội)
Func_reg=9
Gọi chương trình OK Uo
(tăng Uo trong RAM nội)
Func_reg=10
Gọi chương trình OK Rph
(tăng Rph trong RAM nội)
ret
XÁC ĐỊNH PHÍM OK ĐƯỢC NHẤN
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
7. Chương trình phục vụ ngắt RTC
RTC_srv
Cất các thanh ghi sẽ sử dụng vào ngăn xếp.
Cờ Run_f=1?
Có phút mới chưa?
Đọc thời gian hiển thị thời gian trên LCD
Đo Rcđ So sánh với ngưỡng tác động cắt động cơ khỏi lưới nếu có sự cố về các điện. Sáng các đèn báo Hiển thị Rcđ trên LCD, trên LED
RETI
Lấy các thanh ghi đã cất vào ngăn xếp ra. Đọc thanh ghi C của RTC để xoá cờ.
Yes
No
No
Yes
8. Chương trình phục vụ ngắt truyền tin
SC_SRV
Gọi chương trình phục vụ nhận byte
RI=1
TI=1
Gọi chương trình phục vụ ngắttruyền
Cấm các ngắt khác
Cho phép các ngắt khác
Đọc thanh ghi C của RTC
Reti
Yes
Yes
No
No
Nhận byte
Xoá RI
Chuyển SBUF vào Acc
r0 trỏ vào digit0;push acc;
mov a,đẽm; add a,ro;
mov ro,a;pop acc;
mov @r0,a
Xoá cờ Recei_f
Xoá demRxD
Recei_f=1
A=2fh
A=23h
Dựng cờ Recei_f
Xoá demRxD
demRxD=20
Gọi chương trình giải mã và thực hiện bản tin
Ret
Yes
Yes
Yes
Yes
No
No
No
No
Ngắt nhận
Tăng demTxD
Mov a,demTxD
A=10?
R0 trỏ vào digit0
Mov ,@r0+A
Mov SUBF,A
ret
II. Thiết kế giao diện trên PC:
Khi có sự kiện oncom
Đọc bản tin đó về
Cắt ra byte mã bản tin
Mã BT=03
Mã BT=05
Mã BT=06
Nhận bản tin là các thông số quá trình viết lên các đối tượng hiển thị tương ứng
Nhận bản tin là lịch sử cách điện viết lên các đối tượng hiển thị tương ứng lưu lại và vẽ đồ thị
Nhận bản tin là mode chạy của rơle,cùng Uo&Rph viết lên các đối tượng hiển thị tương ứng
Có phải là bt nhận không
Thoát
Đánh giá kết quả
Sau bốn tháng thực hiện đề tài đã được hoàn thành và đạt được những kết quả sau:
+ Đo được cách điện của động cơ, ngay khi động cơ khi động cơ làm việc.
+ Độ chính xác mà thiết bị đạt được trong miền cách điện cần bảo vệ là ±10kW.
+ Hiển thị kết quả đo được trên LCD trên LED và truyền lên máy tính.
+ Tác động bảo vệ kịp thời chính xác.
+ Ghi được lịch sử cách điện truyền lên máy tính vẽ ra đồ thị về lịch sử cách điện
+ Có thể cài đặt cho thiết bị từ bàn phím, từ máy tính trung tâm
Như vậythiết bị đã đáp ứng được tất cả những yêu cầu đã đặt ra.
Mục tiêu đặt ra trong thời gian tới:
Thêm một số tính năng cho thiết bị:
Có thể tuyến tính hoá từng đoạn cho dải đo để thiết bị có thể sử dụng để bảo vệ cách điện cho nhiều đối tượng có yêu cầu về ngưỡng an toàn của cách điện khác nhau.
Tiến hành nghiên cứu thành bộ hoá cho Rơle số bảo vệ động cơ, máy phát...
PHỤ LỤC
I. Chương trình phần mềm cho Vi điều khiển của Rơle số bảo vệ cách điện.
1 ; CHUONG TRINH PHAN MEM CUA ROLE CACH DIEN
2;*****************************************************************
3; KHAI BAO BIEN
4; CAC BIEN O RAM TRONG:
5; Cac bien trong vung RAM dinh bit:
6;--------------------------------------------------------------------------------------
7 ZOV equ 00h ;co bao phep chia cho 0 hoac phep
8 ;tru bi tran
9 runf equ 01h ;co bao Role dang o function RUN(F1)
10 mode equ 02h ;co bao mode chay cua Role(1/0Doclap /Songsong)
11 cof equ 03h ;co su dung cho viec hien thi dau nhap nhay
12
13 safe_f equ 04h ;co bao trang thai an toan cua Rcd
14 warning_f equ 05h ;co baotrang thai canh bao cua Rcd
15 fault_f equ 06h ;co bao trang thai su co cua Rcd
16 Ttotrip_f equ 07h ;co bao dang trong thoi gian to trip
17
18 Receiving equ 08h ;co bao dang nhan ban tin
19 trans equ 09h ;co bao dang truyen ban tin
20;====================================================
21 digit0 equ 08h
22 digit1 equ 09h
23 digit2 equ 0ah
24 digit3 equ 0bh
25 digit4 equ 0ch
26 digit5 equ 0dh
27 digit6 equ 0eh
28 digit7 equ 0fh
29 digit8 equ 10h
30 digit9 equ 11h
31 digit10 equ 12h
32 digit11 equ 13h
33;========================================
34 demTxD equ 57h
35 demRxD equ 58h
36 Ghichu equ 59h
37 vitriLCD equ 5ah ;dung cho viec hien thi R cd tren LCD
38;========================================
39; Cac bien thoi gian thuc:
40 min_reg equ 5bh ;o nho chua bien phut
41 hour_reg equ 5ch ;o nho chua bien gio
42 day_reg equ 5dh ;o nho chua bien ngay
43 month_reg equ 5eh ;o nho chua bien thang
44 year_reg equ 5fh ;o nho chua bien nam
45;==============================================
46; Cac bien dung cho viec canh do:
47
48 Rphi equ 60h ;byte cao cua Rp(dien tro phu o mach do)
49 Rplo equ 61h ;byte thap cua Rp(dien tro phu o mach do)
50
51 U0hi equ 62h ;byte cao cua U0(dien ap dat o mach do)
52 U0lo equ 63h ;byte thap cua U0(dien ap dat o mach do)
53
54 Rcdhi equ 64h ;o nho chua byte cao cua Rcd
55 Rcdlo equ 65h ;o nho chua byte thap cua Rcd
56
57 Nxhi equ 66h ; byte cao so xung dem duoc tu 7109
58 Nxlo equ 67h ; byte thap so xung dem duoc tu 7109
59
60 Rmin_hi equ 68h ;chua byte cao cua gia tri Rcd min
61 Rmin_lo equ 69h ;chua byte thap cua gia tri Rcd min
62 ;khi Init Rmin duoc khoi tao =65.53M =FFFFh va duoc
63 ;khoi tao lai sau moi lan vao EEPROM
64
65 fpt_hi equ 6ah ;filepointer tro vao cuoi file CSDL trong
66 fpt_lo equ 6bh ;EEPROM duoc luu giu trong sau
67 ;moi lan ghi EEPROM duoc lay ra khi Init
68 ;=========================================================
69 func_reg equ 6ch ;demxac dinh function khi doi thoai phim
70 Dem_totrip equ 6dh ;bien dem so lan do Rcd khi to trip
71;=====================================================
72; cac bien phuc vu tinh toan truyen nhan du lieu
73; cac o nho dung cho chuong trinh Hextodec(2 byte)
74; & chuong trinh display5d:
75
76 PR0 equ 6Eh
77 PR1 equ 6Fh
78 PR2 equ 70h
79 PR3 equ 71h
80
81 X0 equ 72h
82 X1 equ 73h
83 X2 equ 74h
84 X3 equ 75h
85
86 Y0 equ 76h
87 Y1 equ 77h
88 Y2 equ 78h
89 Y3 equ 79h
90
91 Z0 equ 7ah
92 Z1 equ 7bh
93 Z2 equ 7ch
94 Z3 equ 7dh
95 Z4 equ 7eh
96 Z5 equ 7fh
97
98 XL equ X0
99 XH equ X1
100
101 YL equ Y0
102 YH equ Y1
103
104 ZL equ Z0
105 ZH equ Z1
106
107 Bytehi equ XH
108 Bytelo equ XL
109
110 X equ XL
111;======================================================
112 ;CAC BIEN HANG:
113 stack equ 2fh ;dia chi dau cua ngan xep ngan xep
114 ;------------------------------------------------------------------
115 ; Cac bien dung cho LCD:
116 LCD_RS equ P2.4 ;Chan 4 cua LCD
117 LCD_RW equ P3.5 ;Chan 5 cua LCD
118 LCD_E equ P2.5 ;Chan 6 cua LCD
119; Cac ma lenh dieu khien LCD:
120 ConFig equ 38H
121 EntryMode equ 06H
122 HomeCur equ 02H
123 ClearDsp equ 01H
124 OffDsp equ 0CH
125 shiftl equ 18h
126 ;===============================
127; Cac bien dung cho hien thi LED:
128
129 Data equ P1.6
130 Clock equ P1.5
131;==================================================
132;===================================================
133; KHAI BAO NGAT
134
135 org 00h
136 0000 020100 ljmp Start
137
138 org 03h
139 0003 020330 ljmp RTC_Srv
140
141
142 org 0bh
143 000B 00 nop
144 000C 32 reti
145
146 org 13h
147 0013 020676 ljmp KEY_Srv
148
149
150 org 1bh
151 001B 00 nop
152 001C 32 reti
153
154 org 23h
155 0023 0201D2 ljmp Serial_int_Srv
156
157 org 2bh
158 002B 00 nop
159 002C 32 reti
160;===================================== 161;======================================
162 org 100h
163 Start:
164 0100 C2AF clr EA ;cam tat ca cac ngat goi den chuong trinh
165 0102 75812F mov sp,#stack
166 0105 1210CC lcall tre_800ms ;chong nhieu he thong khi poweron
167 0108 120121 lcall InitRAM ;Khoi tao cac bien trong RAM noi
168 010B 12014F lcall InitRTC ;Khoi dong cho RTC
169 010E 12015C lcall InitLCD ;Khoi dong cho LCD
170 0111 1201BC lcall Init_SC ;init serial communication
171 0114 1201B1 lcall Initngat
172
173 0117 75A0CF mov P2,#0cfh
174 011A 120708 lcall run ;goi chuong trinh RUN(F1)
175 011D D2AF setb EA ;cho phep ngat goi den chuong trinh
176 Here: ;chờ ngắt tới để phục vụ
177 011F 80FE sjmp Here
178 ;=======================================
179 InitRAM:
180 0121 756C01 mov func_reg,#01h ;khoi tao cho o nho func_reg=1
181 ;ban dau may chay o che do run(F1)
182 0124 904010 mov dptr,#4010h
183 0127 E0 movx a,@dptr
184 0128 13 rrc a
185 0129 9202 mov mode,C
186
187 012B A3 inc dptr
188 012C E0 movx a,@dptr
189 012D F562 mov U0hi,a
190 012F A3 inc dptr
191 0130 E0 movx a,@dptr
192 0131 F563 mov U0lo,a
193
194 0133 A3 inc dptr
195 0134 E0 movx a,@dptr
196 0135 F560 mov Rphi,a
197 0137 A3 inc dptr
198 0138 E0 movx a,@dptr
199 0139 F561 mov Rplo,a
200
201 013B A3 inc dptr
202 013C E0 movx a,@dptr
203 013D F56A mov fpt_hi,a
204 013F A3 inc dptr
205 0140 E0 movx a,@dptr
206 0141 F56B mov fpt_lo,a
207
208 0143 7568FF mov Rmin_hi,#0ffh ;khoi tao cho Rmin=65535ohm (ffffh)de
209 0146 7569FF mov Rmin_lo,#0ffh ;gia tri do dau tien cua Rcd se la Rmin
210
211 0149 755800 mov demRxD,#00h
212 014C C208 clr Receiving
213 014E 22 ret
214;===================================
215 InitRTC:
216 014F 90400A mov dptr,#400ah
217 0152 742F mov a,#2fh
218 0154 F0 movx @dptr,a ;viet ma config(khoi dong oscillator
219 ;rate=500ms(2Hz))vao thanh ghi A
220 0155 A3 inc dptr
221 0156 741E mov a,#1eh
222 0158 F0 movx @dptr,a ;viet ma config(update 1 giay,bin,24h)
223 ;vao thanh ghi B
224 0159 A3 inc dptr
225 015A E0 movx a,@dptr ;doc ma co o thanh ghi C de khoi dong
226 015B 22 ret
227;====================================
228 ;subroutine initLCD
229;====================================
230 InitLCD:
231 015C C0E0 push acc
232 015E C2A4 clr LCD_RS
233 0160 C2B5 clr LCD_RW
234 0162 C2A5 clr LCD_E
235 0164 7430 mov a,#30h
236 0166 F580 mov p0,a
237 0168 00 nop
238 0169 D2A5 setb LCD_E
239 016B 00 nop
240 016C 00 nop
241 016D 00 nop
242 016E C2A5 clr LCD_E
243 0170 7404 mov a,#4
244 0172 12100B lcall delay_ms
245;=================================
246 0175 7430 mov a,#30h
247 0177 F580 mov p0,a
248 0179 00 nop
249 017A D2A5 setb LCD_E
250 017C 00 nop
251 017D 00 nop
252 017E 00 nop
253 017F C2A5 clr LCD_E
254 0181 7401 mov a,#1
255 0183 12100B lcall delay_ms
256 ;========================
257 0186 7430 mov a,#30h
258 0188 F580 mov p0,a
259 018A 00 nop
260 018B D2A5 setb LCD_E
261 018D 00 nop
262 018E 00 nop
263 018F 00 nop
264 0190 C2A5 clr LCD_E
265 0192 7401 mov a,#1
266 0194 12100B lcall delay_ms
267;=================================================
268 0197 120E75 lcall busyflag
269 019A 7438 mov a,#ConFig
270 019C 120E61 lcall writecommand
271 019F 740C mov a,#OffDsp
272 01A1 120E61 lcall writecommand
273 01A4 7401 mov a,#ClearDsp
274 01A6 120E61 lcall writecommand
275 01A9 7406 mov a,#EntryMode
276 01AB 120E61 lcall writecommand
277 01AE D0E0 pop acc
278 01B0 22 ret
279;===============================================
280 Initngat:
281 01B1 D2A8 setb EX0 ;cho phep ngat ngoai 0(Int0_ngat cua RTC)
282 01B3 D288 setb IT0 ;tin hieu ngat ngoai 0 la suon xuong
283 01B5 D2AA setb EX1 ;cho phep ngat ngoai 1(Int1_ngat cua phim)
284 01B7 D28A setb IT1 ;tin hieu ngat ngoai 1 la suon xuong
285 01B9 D2AC setb IE.4 ;ES cho phep ngat truyen tin
286 01BB 22 ret
294;============================================
295;=======================================================
296 ; subroutine Sc_ini
297 ; this routine initializes the hardware
298 ; set up serial port with a 11.0592 MHz crystal,
299 ; use timer 1 for 9600 baud serial communications
300 ;temer0 dem tan so
301 ; timer1 timer0
302 ;GATE C/T M1 M0 ' GATE C/T M1 M0 (TMOD)
303 ;0 0 1 0 0 1 0 1
304;=======================================================
305 Init_SC:
306 01BC E587 mov a,pcon
307 01BE C2E7 clr acc.7
308 01C0 F587 mov PCON,a ;SMOD = 0 (toc do tran timer1:32)
309 01C2 758925 mov TMOD,#25h ;Timer 1 Clock Baud rate mode 2(8bit autoreload)
310 ;timer0 la counter 16bit(mode 1)
311 01C5 758DFD mov TH1,#0fdh ;9600 bps
312 01C8 759850 mov SCON,#50h ;Serial Port Control mode 1: 8-bit UART
313 01CB D28E setb TR1 ;Timer 1 runs from here
314 01CD C298 clr RI
315 01CF C299 clr TI
316 01D1 22 ret
317;=========================================== 318;===========================================
319 Serial_int_Srv:
320 01D2 C2AF clr EA
321 01D4 C0E0 push acc
322 01D6 C0F0 push b
323 01D8 C000 push 0
324 01DA C001 push 1
325 01DC C002 push 2
326 01DE C003 push 3
327 01E0 C004 push 4
328 01E2 C005 push 5
329 01E4 C006 push 6
330 01E6 C007 push 7
331 01E8 30010E jnb runf,Thoat
332 01EB 209808 jb RI,Nhanbyte
333 01EE 309908 jnb TI,Thoat
334 01F1 120319 lcall TRUYEN
335 01F4 8003 sjmp Thoat
336 Nhanbyte:
337 01F6 120218 lcall NHANBantin
338 Thoat:
339 01F9 C298 clr RI
340 01FB C299 clr TI
341 01FD D007 pop 7
342 01FF D006 pop 6
343 0201 D005 pop 5
344 0203 D004 pop 4
345 0205 D003 pop 3
346 0207 D002 pop 2
347 0209 D001 pop 1
348 020B D000 pop 0
349 020D D0F0 pop b
350 020F D0E0 pop acc
351 0211 90400C mov dptr,#400ch
352 0214 E0 movx a,@dptr ;doc thanh ghi C de xoa co UF o RTC.
353 0215 D2AF setb EA
354 0217 32 reti
355 ;==============================
356 NHANBantin:
357 0218 C298 clr RI
358 021A E599 mov a,SBUF
359 021C 20080D jb Receiving,dangnhan
360 021F B42309 cjne a,#23h,Btin_fail
361 0222 C2A8 clr EX0
362 0224 C2AA clr EX1
363 0226 D208 setb Receiving
364 0228 755800 mov demRxD,#00h
365 Btin_fail:
366 022B 22 ret
367 dangnhan:
368 022C B42F08 cjne a,#2fh,Con_BTin
369 022F 12024E lcall Doc_Thuchien_BTin
370 0232 D2A8 setb EX0
371 0234 D2AA setb EX1
372 0236 22 ret
373 Con_BTin:
374 0237 C0E0 push acc
375
376 0239 7408 mov a,#digit0
377 023B 2558 add a,demRxD
378 023D F8 mov r0,a
379
380 023E D0E0 pop acc
381
382 0240 F6 mov @r0,a
383 0241 0558 inc demRxD
384 0243 E558 mov a,demRxD
385 0245 B40C05 cjne a,#12,noproblem
386 0248 C208 clr Receiving
387 024A 755800 mov demRxD,#00h
388 noproblem:
389 024D 22 ret
390 ;===================================
391 Doc_Thuchien_BTin:
392 024E E508 mov a,digit0
393 0250 B4012C cjne a,#01h,no_askme
394 0253 E509 mov a,digit1
395 0255 B40510 cjne a,#05h,no_Receive
396 let_Receive:
397 0258 E50A mov a,digit2
398 025A B40504 cjne a,#05h,no_Re_Tgian
399 025D 120280 lcall Nhan_Tgian
400 0260 22 ret
401 no_Re_Tgian:
402 0261 B40603 cjne a,#06h,no_Re_Mode
403 0264 1202A9 lcall Nhan_Mode
404 no_Re_Mode:
405 0267 22 ret
406 ;---------------------------------------------------------------
407 no_Receive:
408 0268 E509 mov a,digit1
409 026A B40412 cjne a,#04h,no_askme
410 026D 1202D7 lcall let_Trans
411
412 0270 750801 mov digit0,#01h
413 0273 750905 mov digit1,#05h
414
415 0276 D209 setb trans
416 0278 7557FF mov demTxD,#0ffh
417
418 027B 7423 mov a,#23h
419 027D F599 mov SBUF,a
420 no_askme:
421 027F 22 ret
422 ;======================================
423 Nhan_Tgian:
424 0280 850B5C mov hour_reg,digit3
425 0283 850C5B mov min_reg,digit4
426 0286 850D5D mov day_reg,digit5
427 0289 850E5E mov month_reg,digit6
428 028C 850F5F mov year_reg,digit7
429 028F 904002 mov dptr,#4002h
430 0292 E55B mov a,min_reg
431 0294 F0 movx @dptr,a
432 0295 A3 inc dptr
433 0296 A3 inc dptr
434 0297 E55C mov a,hour_reg
435 0299 F0 movx @dptr,a
436 029A A3 inc dptr
437 029B A3 inc dptr
438 029C A3 inc dptr
439 029D E55D mov a,day_reg
440 029F F0 movx @dptr,a
441 02A0 A3 inc dptr
442 02A1 E55E mov a,month_reg
443 02A3 F0 movx @dptr,a
444 02A4 A3 inc dptr
445 02A5 E55F mov a,year_reg
446 02A7 F0 movx @dptr,a
447 02A8 22 ret
448 ;=======================================
449 Nhan_Mode:
450 02A9 E50B mov a,digit3
451 02AB 13 rrc a
452 02AC 9202 mov mode,c
453 02AE 20021E jb mode,Docl
454 02B1 850C62 mov U0hi,digit4
455 02B4 850D63 mov U0lo,digit5
456 02B7 850E60 mov Rphi,digit6
457 02BA 850F61 mov Rplo,digit7
458 02BD 904011 mov dptr,#4011h
459 02C0 E562 mov a,U0hi
460 02C2 F0 movx @dptr,a
461 02C3 A3 inc dptr
462 02C4 E563 mov a,U0lo
463 02C6 F0 movx @dptr,a
464 02C7 A3 inc dptr
465 02C8 E560 mov a,Rphi
466 02CA F0 movx @dptr,a
467 02CB A3 inc dptr
468 02CC E560 mov a,Rphi
469 02CE F0 movx @dptr,a
470 Docl:
471 02CF 904010 mov dptr,#4010h
472 02D2 A202 mov c,mode
473 02D4 33 rlc a
474 02D5 F0 movx @dptr,a
475 02D6 22 ret
476 ;==================================================
477 let_Trans:
478 02D7 E50A mov a,digit2
479 02D9 B4031F cjne a,#03h,no_Tra_Proccess
480 02DC 750A03 mov digit2,#03h
481 02DF 85640B mov digit3,Rcdhi
482 02E2 85650C mov digit4,Rcdlo
483 02E5 E590 mov a,P1
484 02E7 5410 anl a,#10h
485 02E9 F50D mov digit5,a
486 02EB 855C0E mov digit6,hour_reg
487 02EE 855B0F mov digit7,min_reg
488 02F1 855D10 mov digit8,day_reg
489 02F4 855E11 mov digit9,month_reg
490 02F7 855F12 mov digit10,year_reg
491 02FA 22 ret
492 no_Tra_Proccess:
493 02FB B40401 cjne a,#04h,no_Tra_CSDL
494
495
496
497 02FE 22 ret
498 no_Tra_CSDL:
499 02FF B40616 cjne a,#06h,no_Tra_Mode
500 0302 750A06 mov digit2,#06h ;sap xep ban tin :Doc len MODE
501 0305 7400 mov a,#00h
502 0307 A202 mov c,mode
503 0309 33 rlc a
504 030A F50B mov digit3,a
505 030C 85620C mov digit4,U0hi
506 030F 85630D mov digit5,U0lo
507 0312 85600E mov digit6,Rphi
508 0315 85610F mov digit7,Rplo
509 no_Tra_Mode:
510 0318 22 ret
511;=============================================
512 TRUYEN:
513 0319 C299 clr TI
514 031B 0557 inc demTxD
515 031D E557 mov a,demTxD
516 031F B40C09 cjne a,#12,Chua_truyen_het
517 0322 D2A8 setb EX0
518 0324 D2AA setb EX1
519 0326 755700 mov demTxD,#00h
520 0329 8004 sjmp Da_truyen_het
521 Chua_truyen_het:
522 032B 2408 add a,#digit0
523 mov a,@r0+a
524 032D F599 mov SBUF,a
525 Da_truyen_het:
526 032F 22 ret
527
528;=======================================
287;=========================================
288 ;Chuong trinh phuc vu ngat cua RTC
289 ;RTC moi giay goi ngat mot lan
290 ;Moi khi co phut moi thuc hien update thoi gian vao VXL
291 ;va hien thi len LCD
292 ;Do Rcd Hien thi tren LCD va LED
293 ;kiem tra Rcd xu ly va ghi lai
;=============================================
529 RTC_Srv:
530 0330 C2AA clr EX1
531 0332 90400C mov dptr,#400ch
532 0335 E0 movx a,@dptr ;doc thanh ghi C de xoa co UF.
533
534 0336 200103 jb runf,update
535 0339 020426 ljmp not_update
536 update:
537 033C B203 cpl cof
538 033E 200302 jb cof,nhap
539 0341 800C sjmp nhay
540 nhap:
541 0343 7442 mov a,#42h
542 0345 120E57 lcall placecursor
543 0348 743A mov a,#3ah ;viet ":" len LCD.
544 034A 120E90 lcall writedata
545 034D 800A sjmp Doctgian
546 nhay:
547 034F 7442 mov a,#42h
548 0351 120E57 lcall placecursor
549 0354 7420 mov a,#20h ;viet blank len LCD.
550 0356 120E90 lcall writedata
551 Doctgian:
552 0359 7443 mov a,#43h ;Hien thi phut hien tai...
553 035B 120E57 lcall placecursor ;tren LCD
554 035E 904002 mov dptr,#4002h ;dia chi cua thanh ghi phut
555 0361 E0 movx a,@dptr ;doc thanh ghi phut
556 0362 F55B mov min_reg,a
557 0364 120EBA lcall Hien_2digit
558 0367 7440 mov a,#40h ;Hien thi gio hien tai...
559 0369 120E57 lcall placecursor ;tren LCD
560 036C A3 inc dptr
561 036D A3 inc dptr ;4004h
562 036E E0 movx a,@dptr ;doc thanh ghi gio
563 036F F55C mov hour_reg,a
564 0371 120EBA lcall Hien_2digit
565 0374 7446 mov a,#46h ;Hien thi ngay hien tai...
566 0376 120E57 lcall placecursor ;tren LCD
567 0379 A3 inc dptr
568 037A A3 inc dptr
569 037B A3 inc dptr ;4007h
570 037C E0 movx a,@dptr ;doc thanh ghi ngay
571 037D F55D mov day_reg,a
572 037F 120EBA lcall Hien_2digit
573
574 0382 7449 mov a,#49h ;Hien thi thang hien tai...
575 0384 120E57 lcall placecursor ;tren LCD
576 0387 A3 inc dptr ;4008h
577 0388 E0 movx a,@dptr ;doc thanh ghi thang
578 0389 F55E mov month_reg,a
579 038B 120EBA lcall Hien_2digit
580
581 038E 744C mov a,#4ch ;Hien thi nam hien tai...
582 0390 120E57 lcall placecursor ;tren LCD
583 0393 A3 inc dptr ;4009h
584 0394 E0 movx a,@dptr ;doc thanh ghi nam
585 0395 F55F mov year_reg,a
586 0397 120EBA lcall Hien_2digit
587 ;**********************************************
588 DoRcd:
589 039A D297 setb P1.7 ;chuan bi doc p1.3
590 039C 00 nop
591 039D 00 nop
592 Wait_Status_lo:
593 039E 00 nop
594 039F 2097FC jb P1.7,Wait_Status_lo ;neu thay o muc cao thi cho
595 03A2 00 nop
596 Wait_status_hi:
597 03A3 3097FD jnb P1.7,Wait_status_hi ;thay o muc thap van cho bat suon len
598 03A6 758CF7 mov TH0,#0f7h ;gap duoc suon len thi nap -2051(f7fd) vao
599 03A9 758AFD mov TL0,#0fdh ;de Timer0 dem tu gia tri do
600 03AC D28C setb TR0 ;khoi dong Timer0
601 demtiep:
602 03AE 2097FD jb P1.7,demtiep ;cho bat suon xuong
603 03B1 C28C clr TR0 ;gap suon xuong thi dung bo dem
604 03B3 858C66 mov Nxhi,TH0 ;doc ket qua dem cua T0(TH0,TL0)
605 03B6 858A67 mov Nxlo,TL0 ;vao Nx(Nxhi,Nxlo)
606 03B9 744F mov a,#4fh
607 03BB 120E57 lcall placecursor
608 03BE 120EA4 lcall prtLCD
609 03C1 20202020 db " ",0h
2000
610 03C7 856673 mov bytehi,Nxhi
611 03CA 856772 mov bytelo,Nxlo
612 03CD 120EF9 lcall hextodec
613 03D0 7F4F mov r7,#4fh
614 03D2 120ED9 lcall display5d
615
616 ;Tinh Rcd: Rcd=(U0*5063/Nx)-Rp
617 03D5 30020C jnb mode,Tinhtoan ;Kiem tra xem dang chay o che
618 03D8 756201 mov U0hi,#01h ;do nao neu chay o che do doc lap
619 03DB 756327 mov U0lo,#27h ;thi dat U0=297(V)=>0129h
620 03DE 756002 mov Rphi,#02h ;va Rp=755(k)=>02F8h
621 03E1 7561F8 mov Rplo,#0F8h
622 Tinhtoan:
623 03E4 856372 mov XL,U0lo ;Nhan U0 voi 5063
624 03E7 856273 mov XH,U0hi
625 03EA 757713 mov YH,#13h ;(5063=>13C7h)
626 03ED 7576C7 mov YL,#0C7h
627 03F0 120F3C lcall mul16 ;Su dung chuong trinh nhan 16
628 03F3 857D75 mov X3,Z3 ;Su dung chuong trinh chia 32
629 03F6 857C74 mov X2,Z2 ;de chia U0*13C7 cho Nx
630 03F9 857B73 mov X1,Z1
631 03FC 857A72 mov X0,Z0
632 03FF 856677 mov Y1,Nxhi
633 0402 856776 mov Y0,Nxlo
634 0405 121023 lcall div32
635 0408 857D73 mov XH,Z3
636 040B 857C72 mov XL,Z2
637 040E 856077 mov YH,Rphi
638 0411 856176 mov YL,Rplo
639 0414 120FF7 lcall sub16
640 0417 857B64 mov Rcdhi,ZH ;Ket qua cuoi cung
641 041A 857A65 mov Rcdlo,ZL ;la Rcd tinh bang kiloom mang no hien len LCD
642 041D 755A0B mov vitriLCD,#0bh ;vi tri can hien tren LCD la obh
643 0420 12042D lcall HienRcd ; hien thi Rcd len LCD va LED
644 0423 1204CC lcall Canh_ghi_xuly ;goi chuong trinh kiem tra xu ly va ghi
645 not_update:
646 0426 90400C mov dptr,#400ch
647 0429 E0 movx a,@dptr ;doc thanh ghi C de xoa co UF o RTC.
648 042A D2AA setb EX1
649 042C 32 reti
650 ;============================================
651 HienRcd:
652 042D E55A mov a,vitriLCD ;xoa gia tri da hien thi lan truoc
653 042F 120E57 lcall placecursor ;tren LCD
654 0432 120EA4 lcall prtLCD
655 0435 20202020 db " ",0h
20202000
656 043D 856473 mov bytehi,Rcdhi ;doi Rcd sang ma BCD
657 0440 856572 mov bytelo,Rcdlo ;Rcd(Rcdhi,Rcdlo o dang Bin)->BCD
658 0443 120EF9 lcall hextodec ;ket qua duoc giu trong (digit4->digit0)
659 0446 530800 anl digit0,#00h ;xoa digit0 la so khong co nghia
660 0449 856473 mov XH,Rcdhi ;so sanh Rcd voi 1000k
661 044C 856572 mov XL,Rcdlo ;neu >=1000k thi hien thi Rcd voi don vi la Mega
662 044F 757703 mov YH,#03h ;neu nho hon 1000k thi
663 0452 7576E7 mov YL,#0E7h ;hien thi Rcd voi don vi la kilo
664 0455 120FF7 lcall sub16 ;ZOV=0->Rcd>=1000k
665 0458 200040 jb ZOv,DonviKilo ;ZOV=1->Rcd<1000k
666 DonviMega_ohm:
667 045B E55A mov a,vitriLCD
668 045D 120E57 lcall placecursor
669 0460 E50C mov a,digit4 ;kiem tra neu thay digit4=0thi khong hien
670 0462 B40009 cjne a,#00h,Hiendg4
671 0465 055A inc vitriLCD
672 0467 E55A mov a,vitriLCD ;dua con tro vao vi tri hien cua digit3
673 0469 120E57 lcall placecursor
674 046C 8007 sjmp Bodg4
675 Hiendg4:
676 046E E50C mov a,digit4 ;neu digit4 khac 0 thi doi sang ASCII
677 0470 4430 orl a,#30h ;de viet len LCD
678 0472 120E90 lcall writedata
679 Bodg4:
680 0475 E50B mov a,digit3 ;doi digit3 sang dang ASCII va viet len LCD
681 0477 4430 orl a,#30h
682 0479 120E90 lcall writedata
683 047C 120EA4 lcall prtLCD ;hien dau "."
684 047F 2E00 db ".",0h
685 0481 E50A mov a,digit2 ;doi digit2 sang dang ASCII va viet len LCD
686 0483 4430 orl a,#30h
687 0485 120E90 lcall writedata
688 0488 E509 mov a,digit1 ;doi digit1 sang dang ASCII va viet len LCD
689 048A 4430 orl a,#30h
690 048C 120E90 lcall writedata
691 048F 120EA4 lcall prtLCD
692 0492 4D00 db "M",0h ;hien ki tu "M"(Megaom)
693 0494 12063B lcall BCDto7thanh ;doi 5digit(digit4->digit0)sang ma 7 thanh
694 0497 1204AC lcall HienLED1 ;goi chuong trinh hien Rcd ra LED dang XX.XXM
695 049A 22 ret
696 Donvikilo:
697 049B AF5A mov r7,vitriLCD
698 049D 120ECF lcall display3d
699 04A0 120EA4 lcall prtLCD
700 04A3 6B00 db "k",0h
701 04A5 12063B lcall BCDto7thanh
702 04A8 1204C0 lcall HienLED2 ;goi chuong trinh hien Rcd ra LED dang 0.XXXM
703 04AB 22 ret
704 ;===========================================
705 HienLED1:
706 04AC E50C mov a,digit4
707 04AE B4C003 cjne a,#0C0h,H4
708 04B1 750CFF mov digit4,#0ffh ;ma 7 thanh(anot chung) cua dau trong
709 H4:
710 04B4 E50B mov a,digit3
711 04B6 547F anl a,#7fh
712 04B8 F50B mov digit3,a
713
714 04BA 7909 mov r1,#digit1
715 04BC 120621 lcall RaLED
716 04BF 22 ret
717 ;============================================
718 HienLED2:
719 04C0 E50B mov a,digit3
720 04C2 547F anl a,#7fh ;ma 7 thanh(anot chung) cua dau trong
721 04C4 F50B mov digit3,a
722 H2:
723 04C6 7908 mov r1,#digit0
724 04C8 120621 lcall RaLED
725 04CB 22 ret
726;=======================================================
727;======================================
728 Canh_ghi_xuly:
729 04CC 300405 jnb Safe_f,no_AT
730 04CF 120589 lcall Ghi_Safe
731 04D2 800E sjmp UpdateRmin
732 no_AT:
733 04D4 300505 jnb Warning_f,no_CB
734 04D7 1205A1 lcall Ghi_Warning
735 04DA 8006 sjmp UpdateRmin
736 no_CB:
737 04DC 300603 jnb Fault_f,UpdateRmin
738 04DF 1205B4 lcall Ghi_Fault_stop
739 ;=========================
740 UpdateRmin:
741 04E2 856873 mov XH,Rmin_hi ;so sanh Rcd vua do voi Rmin
742 04E5 856972 mov XL,Rmin_lo
743 04E8 856477 mov YH,Rcdhi
744 04EB 856576 mov YL,Rcdlo
745 04EE 120FF7 lcall sub16
746 04F1 200006 jb ZOV,GN_Rmin ;neu Rcd>=Rmin thi giu nguyen Rmin
747 04F4 856468 mov Rmin_hi,Rcdhi ;neu Rcd<Rmin thi update Rmin
748 04F7 856569 mov Rmin_lo,Rcdlo
749 ;=========================
750 GN_Rmin:
751 04FA 757302 mov XH,#02h ;So sanh Rcd voi 600k
752 04FD 757258 mov XL,#58h ;600k>=Rcd->ZOV=0
753 0500 856477 mov YH,Rcdhi
754 0503 856576 mov YL,Rcdlo
755 0506 120FF7 lcall sub16 ;Neu Rcd<= 600k
756 0509 30000D jnb ZOV,SS_tiep ;thi tiep tuc so sanh voi 500k
757 Antoan:
758 050C D204 setb Safe_f ;Neu Rcd>600k(ZOV=1)thi
759 050E C205 clr Warning_f ;dung co bao an toan
760 0510 C206 clr Fault_f ;cac co con lai bi xoa
761 0512 C207 clr Ttotrip_f
762 0514 D292 setb P1.2 ;sang den An toan
763 0516 D293 setb P1.3
764 0518 22 ret
765 SS_tiep:
766 0519 757301 mov XH,#01h ;So sanh Rcd voi 500k
767 051C 7572F4 mov XL,#0F4h ;500k>=Rcd ->ZOV=0
768 051F 856477 mov YH,Rcdhi
769 0522 856576 mov YL,Rcdlo
770 0525 120FF7 lcall sub16 ;Neu 500k>=Rcd thi xac
771
772 0528 30000D jnb ZOV,phsuco ;dinh co su co(phat hien su co)
773 Canhbao:
774 052B D205 setb Warning_f ;Neu Rcd>500k(ZOV=1)dung co
775 052D C204 clr Safe_f ;canh bao cac co con lai bi xoa
776 052F C206 clr Fault_f
777 0531 C207 clr Ttotrip_f
778 0533 D293 setb P1.3 ;sang den Canh bao
779 0535 C292 clr P1.2
780 0537 22 ret
781 phsuco:
782 0538 D292 setb P1.2
783 053A C293 clr P1.3 ;Sang den <500k
784 053C D294 setb P1.4 ;kiem tra xem MC dong(0)
785 053E 00 nop ;hay cat(1)neu dang cat thi
786 053F 20943A jb P1.4,MC_openning ;khong can cat nua
787 0542 20070C jb Ttotrip_f,Dangtotrip
788 Batdautotrip:
789 0545 D207 setb Ttotrip_f ;do Rcd them 4 lan nua(4s)
790 0547 C204 clr Safe_f
791 0549 C205 clr Warning_f
792 054B C206 clr Fault_f
793 054D 756D01 mov Dem_totrip,#01h ;lan do thu nhat o totrip
794 0550 22 ret
795;======================================================
796 Dangtotrip:
797 0551 056D inc Dem_totrip
798 0553 E56D mov a,Dem_totrip
799 0555 B40230 cjne a,#02h,tieptuc_totrip ;het 4 lan van thay
800 Hettotrip:
801 0558 C292 clr P1.2 ;Rcd<500k thi ra lenh cat Role
802 055A C293 clr P1.3
803 055C 74C8 mov a,#200
804 055E 12100B lcall delay_ms ;tre 200ms
805 0561 D294 setb P1.4 ;kiem tra xem may cat
806 0563 00 nop ;da cat chua cat duoc roi
807 0564 209412 jb P1.4,MC_OK ;thi ghi ngay lai su co
808 Alarm:
809 0567 C2AF clr EA ;khong thay cat(P1.4=0)
810 0569 C2A7 clr P2.7 ;thi bao dong MC co su co
811 056B C2A6 clr P2.6
812 056D D294 setb P1.4
813 056F 00 nop
814 0570 3094F4 jnb P1.4,Alarm ;cho den khi MC duoc cat(1)
815 0573 D2A7 setb P2.7 ;thi thoi
816 0575 D2A6 setb P2.6
817 0577 D2AF setb EA
818 ;=========================
819 MC_OK:
820 0579 1205C7 lcall Ghi_Fault_run ;thay cat roi thi ghi lai su co
821 MC_openning:
822 057C D292 setb P1.2
823 057E C293 clr P1.3
824 0580 D206 setb Fault_f ;Dung(moi)co Fault_f
825 0582 C204 clr Safe_f
826 0584 C205 clr Warning_f
827 0586 C207 clr Ttotrip_f
828 tieptuc_totrip:
829 0588 22 ret
830 ;======================================
831 Ghi_Safe: ;(Ghi vao luc 00h:00:00)
832 0589 904000 mov dptr,#4000h ;doc thanh ghi giay de
833 058C E0 movx a,@dptr ;kiem tra co o 00giay hay khong
834 058D B40010 cjne a,#00h,chuaghi_AT
835 0590 E55B mov a,min_reg
836 0592 B4000B cjne a,#00h,chuaghi_AT ;kiem tra co o 00phut hay khong
837 0595 E55C mov a,hour_reg
838 0597 B40006 cjne a,#00h,chuaghi_AT ;kiem tra co o 00gio hay khong
839 059A 750F01 mov digit7,#01h ;ma cua record "an toan"
840 059D 1205D4 lcall GHI
841 chuaghi_AT:
842 05A0 22 ret
843 ;=========================================
844 Ghi_Warning: ;(Ghi vao luc 00p:00)
845 05A1 904000 mov dptr,#4000h ;doc thanh ghi giay de
846 05A4 E0 movx a,@dptr ;kiem tra co o 00giay hay khong
847 05A5 B4000B cjne a,#00h,chuaghi_WR
848 05A8 E55B mov a,min_reg
849 05AA B40006 cjne a,#00h,chuaghi_WR ;kiem tra co o 00phut hay khong
850 05AD 750F02 mov digit7,#02h ;ma cua record "canh bao"
851 05B0 1205D4 lcall GHI
852 chuaghi_WR:
853 05B3 22 ret
854 ;==========================================
855 Ghi_Fault_stop: ;(Ghi vao luc 00p:00)
856 05B4 904000 mov dptr,#4000h ;doc thanh ghi giay de
857 05B7 E0 movx a,@dptr ;kiem tra co o 0giay hay khong
858 05B8 B4000B cjne a,#00h,chuaghi_Fau_Stop
859 05BB E55B mov a,min_reg
860 05BD B40006 cjne a,#00h,chuaghi_Fau_Stop
861 05C0 750F03 mov digit7,#03h ;ma cua record "su co dung"
862 05C3 1205D4 lcall GHI
863 chuaghi_Fau_Stop:
864 05C6 22 ret
865 ;==================================
866 Ghi_Fault_run:
867 05C7 856468 mov Rmin_hi,Rcdhi
868 05CA 856569 mov Rmin_lo,Rcdlo
869 05CD 750F04 mov digit7,#04h ;ma cua record "su co chay"
870 05D0 1205D4 lcall GHI
871 05D3 22 ret
872 ;=========================================
873 GHI:
874 05D4 855B08 mov digit0,min_reg
875 05D7 855C09 mov digit1,hour_reg
876 05DA 855D0A mov digit2,day_reg
877 05DD 855E0B mov digit3,month_reg
878 05E0 855F0C mov digit4,year_reg
879 05E3 85680D mov digit5,Rmin_hi
880 05E6 85690E mov digit6,Rmin_lo
881
882 05E9 904015 mov dptr,#4015h
883 05EC E0 movx a,@dptr
884 05ED F56A mov fpt_hi,a
885 05EF A3 inc dptr
886 05F0 E0 movx a,@dptr
887 05F1 F56B mov fpt_lo,a
888 ;******************************
889 05F3 7B08 mov r3,#08h
890 05F5 856AA0 mov P2,fpt_hi
891 05F8 A86B mov r0,fpt_lo
892 05FA 7908 mov r1,#digit0
893 bytetiep:
894 05FC E7 mov a,@r1
895 05FD F2 movx @r0,a
896 05FE 09 inc r1
897 05FF 08 inc r0
898 0600 B80002 cjne r0,#00h,not_flow_add_lo
899 0603 05A0 inc P2
900 not_flow_add_lo:
901 0605 DBF5 djnz r3,bytetiep
902 0607 E2 movx a,@r0
903 ;==============================================
904 0608 85A06A mov fpt_hi,P2 ;chep lai con tro file(fpt)
905 060B 886B mov fpt_lo,r0
906 060D 75A0CF mov P2,#0cfh
907 EEPROMnot_full:
908 0610 904015 mov dptr,#4015h ;giu trong RTC
909 0613 E56A mov a,fpt_hi
910 0615 F0 movx @dptr,a
911 0616 A3 inc dptr
912 0617 E56B mov a,fpt_lo
913 0619 F0 movx @dptr,a
914
915 061A 7568FF mov Rmin_hi,#0ffh ;khoi tao lai Rmin
916 061D 7569FF mov Rmin_lo,#0ffh
917 0620 22 ret
918 ;==============================================
919 ;======================================
920 RaLED:
921 0621 C296 clr Data ;xoa tam chan ra data
922 0623 C295 clr Clock ;xoa tam chan ra clock
923 0625 C3 clr C
924 0626 7E04 mov r6,#04h ;so digit duoc dua ra LED
925 Next_Byte:
926 0628 7F08 mov r7,#08h ;so lan quay bit trong acc
927 062A E7 mov a,@r1
928 062B 09 inc r1
929 Next_Bit:
930 062C 33 rlc a
931 062D 9296 mov Data,C ;dua data ra P2.4 (noi voi chan D of 4094)
932 062F D295 setb Clock ;dung xung clk (Chan Clk of 4094)
933 0631 00 nop ;tao do rong xung clk
934 0632 00 nop
935 0633 C295 clr Clock ;ha xung clock
936 0635 00 nop
937 0636 DFF4 djnz r7,Next_Bit ;Dua ra het 1 digit(8 bit) thi
938 ;chuyen sang digit tiep theo
939 0638 DEEE djnz r6,Next_Byte ;Dua ra het 4 digit thi dung
940 063A 22 ret
941 ;====================================================
942 BCDto7thanh:
943 063B E50C mov a,digit4
944 063D 12065F lcall Trabang
945 0640 F50C mov digit4,a
946
947 0642 E50B mov a,digit3
948 0644 12065F lcall Trabang
949 0647 F50B mov digit3,a
950
951 0649 E50A mov a,digit2
952 064B 12065F lcall Trabang
953 064E F50A mov digit2,a
954
955 0650 E509 mov a,digit1
956 0652 12065F lcall Trabang
957 0655 F509 mov digit1,a
958
959 0657 E508 mov a,digit0
960 0659 12065F lcall Trabang
961 065C F508 mov digit0,a
962 065E 22 ret
963 ;========================
964 Trabang:
965 065F C083 push dph
966 0661 C082 push dpl
967 0663 90066C mov dptr,#Table
968 0666 93 movc a,@a+dptr
969 0667 D082 pop dpl
970 0669 D083 pop dph
971 066B 22 ret
972 Table:
973 066C C0 db 0C0h ; 0
974 066D F9 db 0F9h ; 1
975 066E A4 db 0A4h ; 2
976 066F B0 db 0B0h ; 3
977 0670 99 db 99h ; 4
978 0671 92 db 92h ; 5
979 0672 82 db 82h ; 6
980 0673 F8 db 0F8h ; 7
981 0674 80 db 80h ; 8
982 0675 90 db 90h ; 9
983;============================================
984 ;===================================================
985
Các file đính kèm theo tài liệu này:
- ro_le_so_bao_ve_cach_dien_1339.doc