Đề tài Rơle số bảo vệ cách điện

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 ...

doc124 trang | Chia sẻ: hunglv | Lượt xem: 1610 | Lượt tải: 0download
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:

  • docro_le_so_bao_ve_cach_dien_1339.doc
Tài liệu liên quan