Đề tài Khảo sát dây chuyền sản xuất gạch ốp lát của nhà máy gạch ốp lát Hà Nội

Tài liệu Đề tài Khảo sát dây chuyền sản xuất gạch ốp lát của nhà máy gạch ốp lát Hà Nội: Khảo sát Dây chuyền sản xuất gạch ốp lát của nhà máy gạch ốp lát Hà Nội Chương I Khảo sát lò sấy đứng TRONG DÂY CHUYỀN GẠCH ỐP LÁT Giới thiệu khái quát dây chuyền sản xuất gạch ốp lát của nhà máy gạch ốp lát Hà Nội Chóng ta sẽ giới thiệu các công đoạn điển hình trong dây chuyền sản xuất gạch ốp lát. Qua tham quan thực tế dây chuyền sản xuất của nhà máy gạch ốp lát Hà Nội, có thể tóm tắt quy trình của dây chuyền như trong sơ đồ 1.1 Nguyên tắc hoạt động của dây chuyền: Các dạng nguyên vật liệu thô sau khi qua các công đoạn sơ chế và tinh chế thành dạng bột tinh (các thông số về độ Èm, lượng nước đã đạt yêu cầu ) sẽ đưa sang khâu cân và phối trộn. Tại đây các nguyên vật liệu được phối trộn theo một tỷ lệ nhất định tuỳ thuộc vào yêu cầu đối với sản phẩm định sản xuất. Sau đó vật liệu đã phối trộn theo ống phun được đưa sang bộ phận tạo sản phẩm thô, bao gồm các phần như tạo hình dạng, sấy sơ bé. Tiếp theo là đến phần tráng men và in hoa để tạo mẫu mã cho sản phẩm. Một dây chuyền tự...

doc93 trang | Chia sẻ: hunglv | Lượt xem: 1425 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Khảo sát dây chuyền sản xuất gạch ốp lát của nhà máy gạch ốp lát Hà Nội, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Khảo sát Dây chuyền sản xuất gạch ốp lát của nhà máy gạch ốp lát Hà Nội Chương I Khảo sát lò sấy đứng TRONG DÂY CHUYỀN GẠCH ỐP LÁT Giới thiệu khái quát dây chuyền sản xuất gạch ốp lát của nhà máy gạch ốp lát Hà Nội Chóng ta sẽ giới thiệu các công đoạn điển hình trong dây chuyền sản xuất gạch ốp lát. Qua tham quan thực tế dây chuyền sản xuất của nhà máy gạch ốp lát Hà Nội, có thể tóm tắt quy trình của dây chuyền như trong sơ đồ 1.1 Nguyên tắc hoạt động của dây chuyền: Các dạng nguyên vật liệu thô sau khi qua các công đoạn sơ chế và tinh chế thành dạng bột tinh (các thông số về độ Èm, lượng nước đã đạt yêu cầu ) sẽ đưa sang khâu cân và phối trộn. Tại đây các nguyên vật liệu được phối trộn theo một tỷ lệ nhất định tuỳ thuộc vào yêu cầu đối với sản phẩm định sản xuất. Sau đó vật liệu đã phối trộn theo ống phun được đưa sang bộ phận tạo sản phẩm thô, bao gồm các phần như tạo hình dạng, sấy sơ bé. Tiếp theo là đến phần tráng men và in hoa để tạo mẫu mã cho sản phẩm. Một dây chuyền tự động có nhiệm vụ đưa sản phẩm thô đến bộ phận tạo sản phẩm tinh. Bộ phận này có nhiệm vụ nung sản phẩm với nhiệt độ cao và tinh chế chúng bằng cách mài, đánh bóng. Sản phẩm sau khi qua bước này được đưa đến công đoạn kiểm tra, phân loại và bốc xếp. Những sản phẩm đạt chỉ tiêu về chất lượng sẽ được đóng gói, vận chuyển đến các kho hàng bằng chế độ tự động hoặc bán tự động. Dây chuyền sản xuất được tự động hoá cao nhờ áp dụng công nghệ mới của điều khiển vào quá trình sản xuất. Trong dây chuyền sản xuất này, ở công đoạn IV, gạch sau khi được Ðp có độ Èm cao (6% ), để thực hiện việc tráng men và in hoa, cần phải được đưa vào lò sấy đứng để gạch có nhiệt độ và độ Èm thích hợp (500C; 0,5% ). Dưới đây chúng ta sẽ khảo sát về lò sấy đứng. Hình 1.1: Sơ đồ khối dây chuyền sản xuất sản phẩm I.1- MÔ TẢ CÁC THÔNG SỐ KỸ THUẬT CƠ BẢN VÀ NGUYÊN TẮC ĐIỀU KHIỂN LÒ SẤY ĐỨNG 1- Các thông số kỹ thuật cơ bản của lò sấy đứng Các thông số về kích thước của lò: + Chiều rộng tác dụng của lò: 2m. + Chiều dài tác dụng của lò: 4m. + Chiều cao tác dụng của lò: 8m. *Dải nhiệt độ sấy của lò trong quá trình sấy: từ 20 D¶i nhiÖt ®é sÊy cña lß trong qu¸ tr×nh sÊy: tõ 200C- 1400C. *Thời gian cấp nhiệt trong quá trình sấy: 1h. Thêi gian cÊp nhiÖt trong qu¸ tr×nh sÊy: 1h. *Vật liệu sấy là gạch méc. VËt liÖu sÊy lµ g¹ch méc. *Yêu cầu gạch sau khi sấy phải có độ Èm 0,5% và nhiệt độ khoảng 50 Yªu cÇu g¹ch sau khi sÊy ph¶i cã ®é Èm 0,5% vµ nhiÖt ®é kho¶ng 500C. Công suất cung cấp cho lò trong quá trình sấy: Để làm bay hơi hoàn toàn 1Kg cần cung cấp lượng nhiệt 539Kcal. Để sấy khô 1Kg sản phẩm có độ Èm 6% thì cần cung cấp nhiệt lượng 32,34Kcal. Trong 1h có 6.361,2Kg vật sấy đi vào lò sấy, để sấy khô chúng ta cần cung cấp nhiệt lượng 205.721Kcal. Thông thường hiệu suất của lò sấy chính là công suất của buồng phát nhiệt. Theo dự kiến nhiệt độ buồng phát nhiệt là 5000C, trong khi đó nhiệt độ tác nhân sấy theo yêu cầu công nghệ là 1400C. Do đó để có được nhiệt độ tác nhân sấy theo yêu cầu đặt ra thì phải cung cấp một lượng không khí có nhiệt độ bằng nhiệt độ của môi trường (200C ) phù hợp nào đó để hoà trộn vói nhiệt độ buồng phát nhiệt. Theo số liệu người ta đã tính được thì cần phải cung cấp một lượng không khí là 4000m3/ h. Vì nhiệt độ của tác nhân sấy để sấy sản phẩm trong lò sấy nhỏ nên người ta chọn phương pháp trao đổi nhiệt đối lưu cưỡng bức bằng gió nóng, chuyển động bởi hệ thống quạt ly tâm. Đây là phương pháp thường được dùng trong lò công nghiệp. Từ lưu lượng gió yêu cầu (4000m3/ h ) ta chọn loại quạt N4, công suất cung cấp cho quạt là 2,2Kw (đây là loại quạt đã được tiêu chuẩn hoá ). 2- Hoạt động của quá trình sấy Theo hình 2-1.1 và hình 2-1.2, bên trong lò được chia làm hai phần chính đối ngược nhau và được nối với nhau bằng phần thứ ba, trong đó quạt VP (quạt chính ) làm việc. Mỗi phần được chia làm ba khu vực tách rời là kênh cung cấp, kênh tuần hoàn và kênh giữa (hay kênh chính ). Hình 2.1:Bố trí các van bên trong lò sấy đứng Hình2.2: Đường đi của khí bên trong lò sấy đứng Quạt VP làm việc theo kiểu ngược dòng, hệ đường ống chính được chia làm hai đường ống tách rời. Một trong hai đường ống cung cấp khí cho buồng đốt khí trực tiếp để tạo tác nhân sấy và sau đó cung cấp cho kênh đi xuống. Khí tuần hoàn với độ Èm cao và nhiệt độ thấp chạy qua nhánh khác của đường ống để cung cấp khí cho kênh đối diện, ở đó vật liệu được đưa vào. Van SD được đặt sau quạt chính tách luồng khí từ quạt và dẫn vào một trong hai nhánh của đường ống, (còn gọi là van làm chệch hướng, như trên hình 2-1.2 ). Van SM trộn không khí từ buồng phát nhiệt tới và khí tuần hoàn trước khi dẫn luồng khí này tới kênh tương ứng. Các kênh này được trang bị các van đặc biệt kiểu lưới, chúng được đặt theo mặt phẳng thẳng đứng. Các lưới này của van có nhiều hình thù đặc biệt và truyền khí theo luồng mỏng song song với các líp gạch làm tăng sự trao đổi nhiệt và cho phép đạt hiệu quả cao nhất. Không khí sau khi qua các rọ và thực hiện quá trình trao đổi nhiệt được hót ra các cửa tương ứng đặt tại phía cuối kênh dẫn rọ quay, sau đó dẫn đến quạt chính bằng kênh chính. Quạt thứ hai là VS, nhờ vào đường ống hót được đặt trong lỗ hót một phần khí thải và định lượng nó bằng các van cửa SCS (van phô ) chuyển tới ống dẫn khí thải để thải đi. Phần khác của lượng khí thải hót từ phía dưới của lò sấy, khí này mang nhiều hơi nước nên được hót hết ra ngoài qua van chính SCP đặt ở phần chính của ống dẫn khí thải. Khí lạnh được bổ sung để hoà trộn vào kênh cung cấp qua cửa SEA đặt ở phía dưới quạt chính. Nh­ vậy kênh tuần hoàn chỉ có khí nóng để làm nóng sơ bộ và sấy gạch, kênh cung cấp gồm hỗn hợp khí nóng và khí lạnh qua van cửa SVE. Khí này sau khi làm mát gạch được hót trở về kênh chính qua van cửa cho khí lần hai vào SVA hoặc được hót xuống cửa dưới của ống dẫn khí thải cũng góp phần để sấy gạch sơ bộ. Độ mở của các van được xây dựng bằng thực nghiệm. I.2- NHIỆM VỤ VÀ NGUYÊN TẮC LÀM VIỆC CỦA LÒ SẤY ĐỨNG 1- Nhiệm vụ của lò sấy đứng Lò sấy đứng thực hiện quá trình đốt nhiên liệu dầu hoặc gas với không khí để sinh ra nhiệt năng. Năng lượng này dùng để sấy gạch để gạch ra có nhiệt độ và độ Èm thích hợp. Do tính chất hấp thụ nhiệt của vật liệu mà việc cấp nhiệt phải theo một quá trình nhất định trong một khoảng thời gian nhất định đến khi đạt yêu cầu. Nói cách khác là tương ứng với từng vị trí của lò, nhiệt độ phải thích hợp với từng mục đích cụ thể. Với toàn bộ quá trình này, ta lập ra mối quan hệ giữa nhiệt độ theo thời gian và vị trí được một đường cong gọi là đường cong công nghệ. Nh­ vậy để khống chế nhiệt độ tại một vị trí nào đó thậm chí tại một thời điểm nào đó, cần phải khống chế được nhiên liệu cung cấp để đốt. Đồng thời với việc cung cấp nhiên liệu cũng phải cung cấp lượng khí thích hợp, giả sử nếu không cung cấp đủ không khí thì sẽ dẫn đến hiệu suất đốt thấp 2- Nguyên tắc làm việc của lò sấy đứng Gạch liên tục được chuyển tới đầu vào của lò sấy đứng nhờ băng chuyền, chúng được xếp lần lượt vào các rọ, các rọ chuyển động theo thứ tự và đi tới đầu ra của lò. Việc trao đổi nhiệt cần thiết cho quá trình sấy dùa trên nguyên lý của sự đối lưu bằng khí nóng, khí chuyển động bởi hai quạt ly tâm và được đốt đến nhiệt độ cần thiết bởi một buồng đốt khí trực tiếp. Quá trình sấy của lò có thể được chia làm ba giai đoạn chính là làm nóng sơ bộ, sấy và làm ổn định: - Làm nóng sơ bộ (200C-1400C ): Trong giai đoạn này, gạch được đốt nóng từ từ bằng khí “tuần hoàn” thổi theo nhiều dòng mỏng song song với các tầng hay là các viên gạch. Sau giai đoạn này gạch được làm nóng lên đến nhiệt độ nào đó và giảm hơi nước đáng kể. - Giai đoạn sấy (1400C ): Khí nóng từ má đốt được điều chỉnh nhiệt độ và lưu lượng đi vào các rọ và sấy theo cách phù hợp. Sau giai đoạn sấy, gạch được sấy nóng đến nhiệt độ cao, độ Èm đạt đến mức yêu cầu. Giai đoạn làm ổn định (1400C- 500C ): Gạch sau khi được sấy nóng được làm giảm nhiệt độ từ từ đến mức yêu cầu cho tráng men nhờ hỗn hợp của khí nóng và khí lạnh. 3- Nguyên tắc điều khiển nguồn nhiệt Nguồn nhiệt cho hoạt động sấy được lấy từ một buồng đốt. Buồng này đốt dầu, có thể là gas, và không khí dưới dạng hỗn hợp, tức là dầu và không khí được phun vào nhờ áp lực tạo ra hỗn hợp kiểu khí “mù” làm cho quá trình đốt nhanh và đốt hết nhiên liệu. Nhiệt sinh ra làm nóng không khí. Không khí nóng được đẩy vào kênh tuần hoàn, một phần vào kênh cung cấp. Khí nóng từ các kênh này được hót vào các rọ quay và trao đổi nhiệt với gạch, thực hiện quá trình sấy. Nhiệt lượng phải được cung cấp đủ mức cần thiết tại từng vị trí. Mức này được tự động điều khiển nhờ bộ vi xử lý trung tâm (CPU). Tại từng vị trí của lò sấy có đặt các đầu đo nhiệt độ. Đầu đo cảm biến từ nhiệt thành điện, qua xử lý số liệu rồi đưa về CPU. Tại đây CPU so sánh vói giá trị định trước do người sử dụng yêu cầu (số liệu này được đưa vào qua các phím điều khiển). Từ sự so sánh này, CPU đưa ra tín hiệu điều khiển để đóng hay mở thêm các van dầu (hay khí gas) để cấp nhiên liệu cho phù hợp. CHƯƠNG II XÂY DỰNG BÀI TOÁN VÀ PHƯƠNG ÁN THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN NHIỆT ĐỘ LÒ SẤY ĐỨNG §IÒU KHIÓN NHIÖT §é Lß SÊY §øng Từ việc khảo sát các công nghệ điển hình trong dây chuyền sản xuất gạch ốp lát Hà Nội, nhiệm vụ tiếp theo của bản đồ án này là đưa ra phương án xây dựng bài toán và thiết kế hệ thống điều khiển nhiệt độ lò sấy đứng. 2.1- Thành lập bài toán Theo nh­ chương một đã trình bày về các thông số cơ bản của lò sấy cùng các tính chất của vật liệu sấy, bài toán đặt ra cho hệ thống điều khiển nhiệt độ lò nh­ sau: + Cho đường cong công nghệ của quá trình sấy của lò sấy( nó được xây dựng từ đường cong lý thuyết dùa vào thành phần vật liệu, yêu cầu gia nhiệt và thời gian cấp nhiệt… lập ra đường cong lý thuyết và được xác lập băng thực nghiệm hay bằng quá trình sản xuất ban đầu thành đường cong công nghệ) như hình 2.1 t(h) Vïng 2 Vïng 3 Vïng 1 tI tII tIII T0C 140 50 20 0 0.3 0.7 1 Hình 2.1: Sơ đồ công nghệ của quá trình sấy Trong đó:t t0- Nhiệt độ bề mặt vật liệu sấy t- Thời gian sấy * Yêu cầu bài toán đặt ra : Xác định nhiệt độ của lò sấy, mà cụ thể là nhiệt độ từng vùng trong lò sấy. Xây dựng các hệ điều khiển sao cho nhiệt độ mỗi vùng là ổn định với một nhiệt độ do yêu cầu công nghệ đặt ra. Xử lý các sự cố có thể xảy ra khi hệ thống đang làm việc, nh­ sù cố về nguồn cung cấp, sự cố về hệ thống điều khiển. Do một nguyên nhân nào đó mà trong quá trình chuyển động của rọ sấy đưa gạch vào lò sấy nhờ hệ thống băng xích mà hệ thống băng xích này lại bị kẹt thì phải khắc phục như thế nào? Nếu khi gạch méc đưa vào mà độ Èm vượt quá mức cho phép thì phải làm thế nào? và làm thế nào để kiểm tra được độ Èm của gạch trước khi đưa vào lò sấy? Vì trong bản đồ án này ta chỉ quan tâm đến bài toán kỹ thuật về điều khiển nhiệt độ lò sấy đứng. Cho nên có thể coi tốc độ đưa gạch vào của băng truyền và tốc độ chuyển động của băng xích đưa rọ sấy vào lò là không đổi, đồng thời độ Èm của gạch đưa vào là đúng yêu cầu. Từ các yêu cầu đặt ra ở trên ta phải tìm một phương án thích hợp để thiết kế hệ thống điều khiển nhiệt độ đáp ứng được các yêu cầu đặt ra của bài toán 2.2- Phương án giải quyết bài toán Trước tiên để đưa ra một phương án giải quyết bài toán ta cần quan tâm tới một số vấn đề nh­ sau: Trong những lò nhiệt độ thấp dạng truyền nhiệt đối lưu chiếm vai trò chủ yếu, vì vậy cấu trúc lò khác với lò có nhiệt độ trung bình và cao. Trong lò nhiệt độ trung bình, vai trò truyền nhiệt đối lưu không lớn lắm và khi không có đối lưu cưỡng bức có thể bỏ qua. Ở các lò có nhiệt độ cao trong mọi trường hợp phần truyền nhiệt đối lưu chiếm tỉ lệ nhỏ nên không cần tính. 2.2.1- Chọn phương pháp đo nhiệt độ lò Có hai phương pháp đo nhiệt độ: Đo nhiệt độ bằng phương pháp tiếp xúc và phương pháp không tiếp xúc. Phương pháp tiếp xúc: Thường sử dụng nhiệt kế điện trở và nhiệt kế cặp nhiệt. Phương pháp này thường được dùng để đo nhiệt độ thấp ( thường là <6000C ¸7000C), và nhiệt độ trung bình. -Phương pháp không tiếp xúc: Thường sử dụng đo nhiệt độ cao. Đây là phương pháp dùa trên định luật bức xạ của vật đen tuyệt đối, tức là vật hấp thụ năng lượng theo mọi hướng với khả năng lớn nhất. Ph­¬ng ph¸p kh«ng tiÕp xóc: Th­êng sö dông ®o nhiÖt ®é cao. §©y lµ ph­¬ng ph¸p dùa trªn ®Þnh luËt bøc x¹ cña vËt ®en tuyÖt ®èi, tøc lµ vËt hÊp thô n¨ng l­îng theo mäi h­íng víi kh¶ n¨ng lín nhÊt. Việc lùa chọn phương pháp đo và cảm biến đo phụ thuộc phần lớn vào dải nhiệt độ đo và sai sè do yêu cầu công nghệ đặt ra. Nh­ vậy từ việc mô tả các thông số của lò, còng nh­ mục đích yêu cầu của bài toán ta lùa chọn phương pháp đo nhiệt độ của lò bằng phương pháp tiếp xúc với thiết bị đo là cặp nhiệt điện. Phương pháp đo nhiệt độ sử dụng cặp nhiệt điện hiện nay trong công nghiệp là rất phổ biến. + Nguyên lý của cặp nhiệt điện là dùa trên hiện tượng nhiệt điện, tức là nếu hai dây dẫn có bản chất khác nhau được nối với nhau ở hai đầu và nếu nhiệt độ hai dây dẫn này là khác nhau thì trong vòng dây dẫn sẽ xuất hiện dòng điện và được gọi là dòng nhiệt điện. Nguyªn lý cña cÆp nhiÖt ®iÖn lµ dùa trªn hiÖn t­îng nhiÖt ®iÖn, tøc lµ nÕu hai d©y dÉn cã b¶n chÊt kh¸c nhau ®­îc nèi víi nhau ë hai ®Çu vµ nÕu nhiÖt ®é hai d©y dÉn nµy lµ kh¸c nhau th× trong vßng d©y dÉn sÏ xuÊt hiÖn dßng ®iÖn vµ ®­îc gäi lµ dßng nhiÖt ®iÖn. +Cấu tạo của cặp nhiệt điện gồm hai dây hàn với nhau ở một đầu và được luồn vào ống để có thể đo được nhiệt độ cao hơn, với nhiệt độ thấp hơn, vỏ nhiệt điện có thể làm bằng thép không rỉ. Để cách điện giữa hai dây, một trong hai dây được luồn vào ống sứ nhỏ. Nếu vỏ bằng kim loại cả hai đều được đặt trong ống sứ. CÊu t¹o cña cÆp nhiÖt ®iÖn gåm hai d©y hµn víi nhau ë mét ®Çu vµ ®­îc luån vµo èng ®Ó cã thÓ ®o ®­îc nhiÖt ®é cao h¬n, víi nhiÖt ®é thÊp h¬n, vá nhiÖt ®iÖn cã thÓ lµm b»ng thÐp kh«ng rØ. §Ó c¸ch ®iÖn gi÷a hai d©y, mét trong hai d©y ®­îc luån vµo èng sø nhá. NÕu vá b»ng kim lo¹i c¶ hai ®Òu ®­îc ®Æt trong èng sø. Tuy nhiên khi đo sức điện động nhiệt điện bằng miliVônmet sẽ gây sai sè, do đó để khắc phục sai số người ta thường sử dụng mạch cầu để bù. Sơ đồ có dạng nh­ hình 2.2. Hình 2.2: Sơ đồ mạch cầu bù nhiệt độ Lúc đó dòng điện chạy qua chỉ thị có dạng: Trong đó: E- Sức điện động Rd- điện trở dây RT- Điện trở cặp nhiệt ngẫu Rdc- Điện trở của miliVônmet Điện áp rơi trên miliVonmet sẽ là: Các cặp nhiệt điện tiêu chuẩn: *Cặp nhiệt điện Crômen- Copen (XK): CÆp nhiÖt ®iÖn Cr«men- Copen (XK): -Cặp nhiệt điện này có dây dương là Cromen: là hợp kim 89% Niken + 9,8% Crom + 1% Fe + 0,2% Mn. CÆp nhiÖt ®iÖn nµy cã d©y d­¬ng lµ Cromen: lµ hîp kim 89% Niken + 9,8% Crom + 1% Fe + 0,2% Mn. -Dây âm là Copen: là hợp kim (53 D©y ©m lµ Copen: lµ hîp kim (53¸ 54)% Cu + (47¸ 46)% Ni - Có đặc tuyến tương đối phi tuyến. Cã ®Æc tuyÕn t­¬ng ®èi phi tuyÕn. Nếu nhiệt độ thay đổi từ 0¸ 1000C thì e = 0,069 mV/ 10C còn nếu thay đổi từ 500¸ 6000C thì e = 0,082 mV/ 10C. Giới hạn đo: + Nếu nhiệt độ đo ngắn hạn thì nhiệt độ cực đại tmax= 8000C + Nếu nhiệt độ đo dài hạn thì nhiệt độ cực đại tmax= 6000C Ở đây dây đẫn bù của Cromen- Copen được chế tạo bằng chính bản thân nhiệt điện Cromen- Copen. *Cặp nhiệt điện Cromen- Alumen (XA) CÆp nhiÖt ®iÖn Cromen- Alumen (XA) Cặp nhiệt điện này có dây dương là Cromen Dây âm là Alumen: Là hợp kim có 90% Ni+ 2% Al+ 2,5% Mn+ 1% Si+ 0,5% Fe Đặc tuyến có thể xem là tuyến tính Giới hạn đo: + Đo ngắn hạn: Nhiệt độ cực đại tmax= 13000C + Đo dài hạn nhiệt độ cực đại tmax= 11000C Ở đây dây dẫn bù có hai loại là : + Mét loại thường được chế tạo từ bản thân Cromen và Alumen + Mét loại khác dây dương là đồng và dây âm là Constantan( là hợp kim chứa 60% Cu+ 40% Ni) * Cặp nhiệt điện Platinorodo- Platin (P P, Pt Rh) - Cặp nhiệt này có dây dương là hợp kim chứa 90% Pt + 10% Rh Dây âm chứa 100% Pt -Đặc tuyến là phi tuyến §Æc tuyÕn lµ phi tuyÕn -Độ nhạy: §é nh¹y: +Nếu đo trong khoảng nhiệt độ từ 0 NÕu ®o trong kho¶ng nhiÖt ®é tõ 0¸1000C thì e = 0,0064 mV/ 10C + Nếu đo nhiệt độ trong khoảng 900 NÕu ®o nhiÖt ®é trong kho¶ng 900¸ 10000C thì e = 0,01 mV/ 10C Giới hạn đo : + Đo ngắn hạn thì nhiệt độ cực đại tmax= 8000C + Đo dài hạn thì nhiệt độ cực đại tmax= 8000C Ở đây sử dụng dây đẫn bù với dây dương là đồng nguyên chất, dây âm là hợp kim với 99,4% Cu+ 0,6% Ni Trong bản đồ án này do nhiệt độ lò không cao khoảng 5000C, và yêu cầu của bài toán đặt ra là độ chính xác không cao và tuổi thọ của thiết bị nên ở đây ta chọn loại cặp nhiệt là Cromen- Alumen. 2.3.2- Phương pháp điều khiển nhiệt độ lò: Như phần trên ta đã trình bày, nguồn nhiệt cung cấp cho hoạt động sấy ở đây được lấy từ một buồng đốt. Buồng đốt này đốt gas và không khí dưới dạng hỗn hợp, gas được lấy từ bể chứa gas sau khi qua các van điều áp được đưa tới mỏ đốt. Nhiệt sinh ra làm nóng không khí. Không khí nóng được đẩy vào kênh tuần hoàn, một phần vào kênh cung cấp. Khí nóng từ các kênh này được hót vào các rọ quay và trao đổi nhiệt với gạch, thực hiện quá trình sấy. Biểu đồ chỉ thị nhiệt độ giúp nhà công nghệ nắm được quá trình sấy và có thể chủ động điều chỉnh được quá trình này( thay đổi nhiệt độ ở các vùng bằng cách thay đổi độ mở các van tương ứng) sao cho phù hợp với mục đích sấy. Sau khi điều chỉnh độ mở các van đã hợp lý, việc điều chỉnh nhiệt độ đến mức yêu cầu sẽ được điều chỉnh tự động nhờ CPU. Ở đây CPU căn cứ vào nhiệt độ đặt: WORK SET POINT( Tw) và STOP SET POINT( Ts) để so sánh với nhiệt độ khí buồng đốt T0( BURNER AIR). Trong CPU sẽ luôn so sánh T0 và Tw để cung cấp đầu và khí cho quá trình đốt. Thực chất là quay CAM để đóng mở đường dầu hồi và van không khí. Nếu quá trình này bất thường nhiệt độ tăng quá hoặc giảm đến nhiệt độ Ts thì CPU cho dừng buồng đốt. Việc đốt và quá trình điều chỉnh tại một điểm được trình bày bằng các hình dưới đây: Main ON/ OFF CONTROLLED ON/ OFF CONTROL Temperature sensor Amplifier ADC ADC IN MICRO- COMPUTER Data bus MAINS- DEMO BOX From main HEATER Hình 2.3- Quá trình đốt và điều chỉnh nhiệt độ tại một điểm Hình 2.4- Điều khiển Rơle để mở van Chú thích: T1: Nhiệt độ đặt W: Độ rộng vùng nhiệt độ cho phép( sai lệch cho phép) W: §é réng vïng nhiÖt ®é cho phÐp( sai lÖch cho phÐp) T: Nhiệt độ thực tại thời điểm kiểm tra Nh­ vậy từ sự phân tính các đặc điểm trên ta có thể mô tả sơ đồ khối hệ thống điều khiển nhiệt độ lò nh­ sau: Buång ph¸t nhiÖt K§ K§ ®Öm Läc th«ng A/ D VXL HÖ ®iÒu chØnh K§ Läc th«ng K§ ®Öm K§ ®Öm Läc th«ng K§ Läc th«ng K§ K§ ®Öm Vïng 1 Vïng 2 Vïng 3 CT PhÝm Hình 2.5: Sơ đồ thống điều khiển nhiệt độ lò Theo nh­ sơ đồ trên ta thấy trên các vùng của lò sấy có đặt các đầu đo nhiệt độ, các đầu đo này được nối với khối xử lý trung tâm và chỉ thị trên màn hình. Khối xử lý trung tâm có nhiệm vụ thu nhận các tín hiệu đo từ cặp nhiệt tại các vị trí khác nhau trên lò, các tín hiệu này sau khi qua bộ biến đổi A/ D được đưa về bộ điều khiển, tại đây bộ điều khiển có nhiệm vụ tính toán, so sánh và đưa ra tín hiệu điều khiển phù hợp cho quá trình sấy, thực chất là đóng mở Rơle để đóng mở các van tương ứng. Căn cứ vào các yêu cầu, chỉ tiêu, nhiệm vụ cụ thể mà ta rót ra các phương án thiết kế hệ thống điều khiển nhiệt độ khác nhau cho từng hệ thống thực tế nào đó. Nh­ vậy để đạt được số chỉ nhiệt độ tại các điểm đo có hai yếu tố: + Nguồn nhiệt phải đủ mức cần thiết. Mức này được tự động điều chỉnh nhờ bộ xử lý trung tâm. + Sù đóng mở các van tại vị trí sao cho hợp lý tức là lượng khí nóng, khí lạnh và việc thu hồi nhiệt tạo ra sự chênh lệch áp suất để đối lưu… *Các ưu điểm của phương pháp này là: C¸c ­u ®iÓm cña ph­¬ng ph¸p nµy lµ: Tín hiệu xử lý là tín hiệu số nên có độ chính xác cao. Việc tính toán nhiệt độ được thực hiện bằng phần mềm nên có tính linh hoạt và mềm dẻo hơn. Vi xử lí được sử dụng là 80C31, đây là loại vi xử lí đã được thương phẩm hoá trên thị trường VIỆT NAM và dễ tìm kiếm. Các vi mạch phụ trợ cũng đa dạng và dễ tìm kiếm. Họ vi xử lí 8051 (trong đó có cả 8031) có tập lệnh tương đối phong phú, trợ giúp nhiều lệnh cho người lập trình, giúp cho việc lập trình được đơn giản và dễ hiểu. Bé vi xử lí này thuận tiện cho các hệ thống vừa và nhỏ. CHƯƠNG III THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN NHIỆT ĐỘ LÒ SẤY ĐỨNG nhiÖt ®é lß sÊy ®øng Sau khi đã phân tích mục đích còng nh­ yêu cầu của hệ thống lò sấy, ta có thể thiết kế hệ thống này bao gồm các module nh­ sau: + Module điều khiển trung tâm của hệ thống. + Module thu nhận và xử lý tín hiệu từ cặp nhiệt điện. + Module chỉ thị và phím điều khiển hệ thống, chương trình đang chạy có thể cho dừng lại bởi một sự cố, một nguồn ngắt ( ngắt cứng hay ngắt mềm). + Module cung cấp nguồn cho hệ thống. Trước khi đi vào thiết kế cụ thể từng phần, chúng ta tiến hành giới thiệu một số thiết bị chính sử dụng trong hệ thống. Ở đây ta chỉ thiết kế hệ thống điều khiển nhiệt độ của lò sấy, do đó ta chỉ giới thiệu về một số thiết bị chính mà ta cần quan tâm. 3-1- Giới thiệu về vi xử lí sử dụng trong mạch. A- Vi xử lí 80C31 1-Giới thiệu chung về bộ vi xử lí 80C31 Giíi thiÖu chung vÒ bé vi xö lÝ 80C31. Họ vi xử lý MCS- 51 là họ vi xử lý điển hình được đưa ra bởi hãng INTEl trong đó thì bộ vi xử lý 8051 lại là đại diện tiêu biểu nhất. Bên cạnh những thông số chung của họ vi xử lý MCS- 51 thì bộ vi xử lý 8051 có bộ nhớ chương trình (ROM) tương đối lớn, đến 4K byte, được tích hợp ngay trên chip, và do đó có thể hình thành trọn vẹn một máy tính. Bộ nhớ ROM bên trong của 8051/52 và 8751/52 khi chế tạo cũng như khi lập trình đều cho phép bảo vệ chống đọc ra. - Bé vi xử lý 80C51 là bộ điều khiển 8 bit có bộ nhớ chương trình và bộ nhớ dữ liệu riêng biệt, có thể mở rộng tới 64Kbyte bộ nhớ chương trình và 64 Kbyte bộ nhớ dữ liệu. - Bé vi xử lý 8031 thực chất cũng là bộ vi xử lý 8051 được chế taọ theo công nghệ CMOS nhưng nó không có bộ nhớ ROM bên trong, do đó để 8031 có thể làm việc ta phải đấu thêm một bộ nhớ ROM bên ngoài. Các đặc trung cơ bản của MCS- 51 cũng như của 8031 (8051). Đơn vị xử lý trung tâm 8 bit đã được tối ưu hoá để đáp ứng các chức năng điều khiển. Khối logic xử lý theo bit thuận tiện cho việc thực hiện các phép toán dạng Boole. Bộ tạo dao động giữ nhịp bên trong (đến 12MHz). Tập lệnh rất phong phó. Giao diện nối tiếp có khả năng hoạt động song công, đồng bộ (UART) có thể được tính địa chỉ một cách riêng biệt. Có 16 (32) đường dẫn vào/ ra hai hướng và từng đường dẫn có thể được định địa chỉ một cách riêng biệt. Có năm nguồn ngắt với hai mức ưu tiên. Dung lượng của bộ nhớ dữ liệu RAM bên ngoài có thể lên đến 64 Kbyte. Dung lượng của bộ nhớ chương trình ROM bên ngoài có thể lên đến 64 Kbyte. Dung lượng bộ nhớ RAM trong là 128 byte. Hai bộ đếm định thời timer/ counter 16 bit. Bus và khối định thời tương thích với các khối ngoại vi cho bé vi xử lý khác của hãng như 8085/ 8088. Một cổng truyền tuần tự. Bốn cổng vào ra song song đa năng. Bên cạnh bộ nhớ RAM trong 8031 còn có vùng chứa các thanh ghi có chức năng đặc biệt (SFR) được tích hợp ngay trên chip cũng có dung lượng bộ nhớ bằng dung lượng bộ nhớ của RAM. Mặc dù vậy các thanh ghi đặc biệt cũng bao gồm cả thanh ghi A (acccumulator), thanh ghi phô B, và thanh ghi từ trạng thái chương trình Program Status Word (PSW). Như vậy ở đây chúng ta thấy việc phân chia độc lập hai khối bộ nhớ chương trình và bộ nhớ dữ liệu là sử dụng cấu trúc Harvard. 2-Cấu trúc của bộ vi xử lý 80C31. Sơ đồ cấu trúc của bộ vi xử lý 8031. CPU( Central Processing Unit): là đơn vị xử lý quan trọng nhất của bộ vi xử lý bao gồm các thành phần sau: Thanh ghi tích lũy A( accumulator). Thanh ghi phô B dùng cho phép nhân và phép chia. Đơn vị số học ALU( Arithmetic Logic Unit). Thanh ghi từ trạng thái chương trình PSW( Program Status Word). Bốn băng thanh ghi. Con trỏ ngăn xếp SP( Stack Pointer) cũng như con trỏ dữ liệu để định địa chỉ cho bộ nhớ dữ liệu bên ngoài. Ngoài ra ở đây còn có: bộ đếm chương trình PC (Program Counter), bộ giải mã lệnh, bộ điều khiển thời gian và logic. Đơn vị xử lý trung tâm nhận trực tiếp xung nhịp từ bộ tạo dao động được lắp thêm vào, linh kiện phụ trợ có thể là một khung dao động bằng vật liệu gốm hoặc một bộ cộng hưởng bằng thạch anh. Ngoài ra còn có khả năng đưa một tín hiệu giữ nhịp từ bên ngoài vào. Chương trình đang chạy có thể cho dừng lại nhờ một khối logic ngắt ở bên trong. Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm/ định thời (do cờ tràn được đặt lên) hoặc cũng có thể là giao diện nối tiếp . Sơ đồ cấu trúc của một bộ vi điều khiển 8 bit Qu¶n lý bus §K ng¾t Timer 2 Timer 0 CPU Bé dao ®éng Port 0 Cæng nèi tiÕp SFR RAM RAM FF 00 7F 00 Timer1 Port 2 Port 1 Port 3 PSEN ALE XTAL 1,2 Më réng trong 8032 C¸c ng¾t ngoµi C¸c sù kiÖn cÇn ®Õm Nguån ng¾t trong §/c thÊp §/c /D÷ liÖu cao RAM Timer2 Bé vi xử lý 8051/8052 còn có một bộ nhớ chương trình bên trong với dung lượng 4/ 8 Kbyte trong khi bé vi xử lý của 8031/8032 lại nhận được chương trình điều hành của nó từ một bộ nhớ chương trình bên ngoài. Bộ vi xử lý tiêu chuẩn có 128 byte RAM bên trong để có thể xắp xếp các dữ liệu và thông tin điều khiển. Ở bé vi xử lý 8032/ 52, bộ nhớ này đã được mở rộng lên đến 256 byte. Các bé vi xử lý 8031/ 51 còn chứa hai bộ định thời (timer/ counter ) 16 bit, chúng cũng có thể được sử dụng như là một bộ đếm các sự kiện, trong khi ở các bộ vi xử lý 8032/ 52 lại có thêm một bộ định thời thứ ba. Bộ này có thể sử dụng trong các chế độ hoạt động khác nhau tuỳ theo cách lùa chọn trong phần mềm. Chính vì vậy mà các bộ vi xử lý này được sử dụng một cách rất đa năng Theo như sơ đồ trên thì ta thấy họ các MCS- 51 có bốn cổng song song 8 bit, hoạt động độc lập với nhau. Ở các bé vi xử lý 8051/52, các cổng này có thể được sử dụng cho những mục đích điều khiển rất đa dạng. Khi các bộ vi xử lý 8031/32 làm việc với bộ nhớ chương trình ở bên ngoài, cổng P0 dùng để truyền nửa dưới của các địa chỉ nhớ được sử dụng giống như dùng cho các dữ liệu 8 bit (địa chỉ dữ liệu thấp). Sau đó, qua cổng P2 sẽ diễn ra quá trình xuất ra nửa trên của các địa chỉ 8 bit( địa chỉ dữ liệu cao). Cổng P1 và P3 có chứa mỗi cổng vào/ ra 8 bit có thể sử dụng được cho những mục đích điều khiển khác nhau. Ở cổng P3 còn có thêm các đường dẫn điều khiển dùng cho việc trao đổi dữ liệu với bên ngoài, để đấu nối giao điện nối tiếp cũng như các đường dẫn ngắt bên ngoài. Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm việc độc lập với nhau. Bằng cách đấu nối các bộ đệm thích hợp, ta có thể hình thành một cổng nối tiếp RS- 232 đơn giản. Tốc độ truyền qua cổng nối tiếp có thể đặt được trong một vùng rộng và được Ên định bằng một bộ định thời. Dưới đây là sơ đồ bố trí chân linh kiện của bộ vi xử lý 8031( 8051) Hình 3.1: Sơ đồ bố trí chân linh kiện vi xử lí 8031 Giải thích sơ đồ chân linh kiện: Chân Kí hiệu Chức năng 1 đến 8 P1.0 đến P1.7 Cổng giả hai hướng( quasi- bidirectional) P1 tù do sử dụng 9 RESET Lối vào Reset, khi hoạt động( activ) ở mức cao 10 đến 17 P3. 0 đến P3.7 Cổng giả hai hướng P3 Sắp xếp tất cả các đường dẫn với chức năng đặc biệt 18 19 20 XTAL2 XTAL1 Vss Lối ra của bộ dao động thạch anh bên trong Lối vào của bộ dao động thạch anh bên trong Nối mass 21 đến 28 P2. 0 đến P2. 7 Cổng giả hai hướng P2 Chức năng đặc biệt: các đường dẫn địa chỉ A8 đến A15 29 30 31 /PSEN ALE /EA Program Store Enable, xuất ra các xung dọc dùng cho bộ nhớ chương trình bên ngoài Address Latch Enable, xuất ra các xung điều khiển để lưu trữ trung gian các địa chỉ External Access; Khi được nối với mass là để làm việc với ROM bên ngoài 32 đến 39 P0. 7 đến P0. 1 Cổng hai hướng cực máng hở P0 hoặc bus dữ liệu hai hướng dùng cho ROM, RAM và thiết bị ngoại vi bên ngoài. Cũng chuyển giao cả 8 bit phía dưới của địa chỉ 40 Vcc Nguồn nuôi dương, +5V Lối vào / EA (chân 31) đóng vai trò quyết định xem liệu bộ vi xử lý làm việc với bộ nhớ chương trình bên trong hay bên ngoài. Ở loại không có bộ nhớ ROM, chân này phải được nối với mass. Loại thông thường có thể làm việc tuỳ theo cách lùa chọn với ROM bên trong hay bên ngoài. Khi đang ở chế độ làm việc với bộ nhớ ROM trong, loại có chứa bộ nhớ ROM có thể truy nhập tự động lên bộ nhớ chương trình bên ngoài. 3- Tổ chức bộ nhớ a- Bộ nhớ RAM trong: 7F 30 2F 28 27 20 1 F 18 17 10 F 08 07 00 80 bytes of RAM (“scratch pad”) 16 bytes of bit- addressable RAM Bank 3 Bank 2 Bank 1 Bank 0 Bộ nhí RAM trong (128 byte) của 8031 chứa các thanh ghi và các bit địa chỉ thanh ghi có chức năng nh­ là bộ nhớ RAM đa năng được minh hoạ bằng hình sau đây: Theo nh­ sơ đồ trên ta thấy bộ nhớ RAM trong có 128 byte, trong đó: 32 byte đầu tiên được chia thành bốn dải thanh ghi, mỗi dải thanh ghi gồm 8 thanh ghi riêng biệt được đánh số từ R0 đến R7. Bốn dải thanh ghi này được đánh địa chỉ từ 00 H đến FF H. Sau một lần đặt lại (reset ), ngăn xếp bắt đầu ở địa chỉ 08 và tăng dần lên phía trên với mỗi lần gọi chương trình con. Để có thể sử dụng các thanh ghi cao hơn, con trỏ ngăn xếp phải được đặt lên một giá trị thích hợp ở chỗ bắt đầu của một chương trình. 16 byte tiếp theo thuộc vùng địa chỉ có thể truy nhập tới từng bit được đánh địa chỉ từ 20H đến 2FH 80 byte tiếp theo được sử dụng tự do và vùng ngăn xếp. Ở tất cả những SFR được bổ xung, nửa byte địa chỉ giá trị của nó có giá trị bằng 0 hoặc là 8 ( các địa chỉ byte 80h, 88h vv... cho đến F8 ) là địa chỉ được theo bit. Bởi vì phần lớn các SFR bao gồm từ nhưng bit riêng lẻ với các chức năng độc lập, nên sẽ rất thuận lợi khi cần đặt và đọc ra các bit điều khiển riêng lẻ. b- Các thanh ghi có chức năng đặc biệt SFR ( Special Function Registers) Các thanh ghi này nằm phía trên của vùng địa chỉ RAM trong có giá trị từ 80h đến FFh, vùng này có tổng số 41 thanh ghi nhưng trong đó có 15 thanh ghi là có thể được truy nhập tới từng bit. Các thanh ghi có chức năng đặc biệt bao gồm các thanh ghi điều khiển và các thanh ghi số liệu. Những chức năng có sẵn trên chip nh­: bé Timers, cổng truyền tuần tự, và hệ thống ngắt interrupt, có một hay nhiều vùng dành cho các thanh ghi đặc biệt SFRs. Ví dô nh­ cổng nối tiếp được điều khiển bằng thanh ghi SCON. Trong khi đó số liệu thu thập được đọc ra hay ghi vào bằng thanh ghi SBUF. Những bit đặc biệt của thanh ghi SCON đặt những mode khác nhau của cổng nối tiếp. Thanh ghi SCON được coi nh­ là thanh ghi điều khiển trong khi đó SBUF được gọi là thanh ghi số liệu. Những thanh ghi đặc biệt SFRs: DPTR, DPL, DPH, PCON, TMOD, TL0,TL1, TH0, TH1, và SBUF thì chỉ có thể được truy nhập tới từng byte, điều này nói lên rằng chúng chỉ có thể được đọc, viết và so sánh đầy đủ theo byte. Còn lại các thanh ghi đặc biệt khác như Acc, B, PSW, P0, P1, P2, P3, IE, IP, SCON, và TCON được truy nhập tới từng bit địa chỉ. Điều này có nghĩa là những bit riêng biệt có thể được đọc ra, viết vào và so sánh. Nh­ vậy! RAM chia làm hai khối, mỗi khối có 128 byte: + Khối có địa chỉ thấp nằm trong khoảng từ 00 đến 7Fh có thể truy nhập bằng cách truy nhập trực tiếp tới từng địa chỉ hoặc bằng cách gián tiếp tới từng địa chỉ thông qua thanh ghi. + Khối có địa chỉ cao nằm trong khoảng từ 80h đến FFh cũng có 128 byte và chỉ có thể truy nhập gián tiếp tới từng bit địa chỉ thông qua thanh ghi. Cổng nối tiếp Cổng nối tiếp được điều khiển bởi thanh ghi SFR SCON (Serial Port Control). Số liệu truyền và nhận từ cổng nối tiếp được chọn kênh thông qua thanh ghi SBUF. Thanh ghi SBUF được chia làm hai phần: Một dùng để truyền đi và một để nhận. Truyền nối tiếp và nhận nối tiếp có thể được thực hiện đồng thời. Trong đó thông tin truyền nối tiếp được coi nh­ là hoạt động song song hai chiều cùng một lúc Tốc độ truyền được tính bằng công thức sau: *) Thanh ghi điều khiển cổng truyền tuần tự SCON( Serial Port Control register) SM0 SM1 SM2 REN TB8 RB8 TI RI RI (bit 0): Receive Interrupt Flag; Được đặt bởi phần cứng báo là đã nhận được tín hiệu và phải xoá bằng phần mềm. Dựng cờ RI tại bit thứ 8( bit cuối cùng) trong mode 0 hoặc trong quá trình gặp bit Stop ở những mode khác nhau trong bất kỳ lần phục vụ truyền tuần tự nào. TI (bit 1): Transmit Interrupt Flag; Được đặt bằng phần cứng khi kết thúc quá trình truyền tín hiệu nối tiếp, và phải được xoá bằng phần mềm( dựng cờ TI khi kết thúc bit thứ 8 trong mode 0 hay tại thời điểm bắt đầu của bit Stop trong những mode khác. RB8 ( bit 2): Receive Bit 8; Bản thân nó phụ thuộc vào mode đang hoạt động. Trong mode 2 và 3 nó là bit thứ 9 của dữ liệu được nhận, bit cuối cùng được đưa vào RB8. Trong mode 1 nếu SM2= 0 thì bit thứ 8 là bit Stop được đưa vào RB8. TB8 (bit 3): Transmit Bit 8; Bit dữ liêụ thứ 9 được truyền trong mode 2 và 3, được đặt và xoá bằng phần mềm. REN ( bit 4): Receive Enable; Bit cho phép truyền tuần tự được đặt bởi phần mềm nhận tín hiệu truyền tuần tự sẽ bị ngừng lại khi bit REN bị xoá bằng phần mềm. SM2 (bit 5): Serial Mode; Dùng cho việc kết nối nhiều vi xử lý với nhau đặc biệt là trong mode 2 và 3. Trong mode 2và 3 RI sẽ không được tích cực nếu bit thứ 9 nhận được(RB8 ) là bằng 0. Trong mode 1 và SM2= 0, RI sẽ không tích cực nếu một bit Stop có giá trị bằng 0, trong mode 0 SM2 sẽ có giá trị bằng 0. SM0, SM1 ( bit 6 và 7 ): Là hai bit lùa chọn các mode hoạt động, được chỉ rõ trong bảng dưới đây: SM0 SM1 Mode Operation Baud rate 0 0 0 Shift Register Fosc/ 12 0 1 1 8 bit UART Variable (xác định qua Timer 1) 1 0 2 8bit UART (1/ 32 hoặc 1/ 64) Fosc 1 1 3 9 bit UART Variable (xác định qua Timer 1) +Mode 0: Dùng để điều khiển các cổng vào/ ra tuần tự, đơn giản Mode 0: Dïng ®Ó ®iÒu khiÓn c¸c cæng vµo/ ra tuÇn tù, ®¬n gi¶n nh­ mét thanh ghi dịch với tốc độ dịch bằng một chu kỳ máy hay bằng (1/ 12) tần số thạch anh. +Mode 1: Dùng cho Timer1 để phát tốc độ truyền và nhận 8 bit dữ liệu Mode 1: Dïng cho Timer1 ®Ó ph¸t tèc ®é truyÒn vµ nhËn 8 bit d÷ liÖu +Mode 2: Thực hiện một cổng truyền tuần tự 9 bit với tốc độ truyền bằng 1/32 hoặc 1/ 64 tần số của thạch anh. Mode 2: Thùc hiÖn mét cæng truyÒn tuÇn tù 9 bit víi tèc ®é truyÒn b»ng 1/32 hoÆc 1/ 64 tÇn sè cña th¹ch anh. +Mode 3: Thực hiện một cổng truyền tuần tự với tốc độ có thể đặt được nhờ Timer 1. Mode 3: Thùc hiÖn mét cæng truyÒn tuÇn tù víi tèc ®é cã thÓ ®Æt ®­îc nhê Timer 1. *) Thanh ghi từ trạng thái chương trình PSW( Program Status Word); Có địa chỉ là 0D0h, làm việc theo từng bit cho phép chọn bốn dải thanh ghi CY AC F0 RS1 RS0 OV F1 P Bảng dưới đây đưa ra các chức năng của từng bit tương ứng trong thanh ghi PSW: Bit Function CY Carry flag AC Auxiliary carry flag ( for BCD operations) F0 General purpose user flag RS1 RS0 Register bank select control bits 0 0 Bank 0 selected, data address 00H- 07H 0 1 Bank 1 selected, data address 08 H- 0F H 1 0 Bank 2 selected, data address 10 H- 17 H 1 1 Bank 3 selected, data address 18 H- 1F H OV Overflow flag F1 General purpose userflag P Parity flag *) Thanh ghi điều khiển nguồn PCON( Power Control Register); Có địa chỉ là 87 H SMOD - - - GF1 GD0 PDE IDLE Bit Chức năng SMOD Khi đặt tốc độ truyền của giao diện tuần tự trong mode 1, 2,3 được gấp đôi lên *) Thanh ghi cho phép ngắt IE( Interrupt Enable Register); Thanh ghi này có thể làm việc theo địa chỉ từng bit, với mục đích cho phép ngắt nào được phép làm việc. Nếu bit bằng 0 thì vector ngắt tương ứng sẽ không được phép và ngược lại. EA - ET2 ES ET1 EX1 ET0 EX0 EA: Enable All. Nếu EA= 0 thì không có vector ngắt nào được phép hoạt động. Khi EA= 1 thì mỗi một nguồn ngắt được phép hay không được phép tuỳ thuộc vào bit tương ứng trong thanh ghi được đặt hay xoá. ET2: Enable or Disable the Timer 2 Overflow ES: Enable Serial Port Interrupt. Được đặt bởi phần mềm để cho phép ngắt 0 ngoài, phải xoá bằng phần cứng. ET1: Enable Timer/ Counter Interrupt 1. Được đặt bởi phần mềm để cho phép Timer/ Counter 1 ngắt khi tràn, phải được xoá bằng phần cứng. EX1: Enable External Interrupt 1. Được đặt bởi phần mềm cho phép ngắt ngoài 1, phải được xoá bằng phần cứng. ET0: Enable Timer/ Counter Interrupt 0. Được đặt bởi phần mềm để cho phép ngắt ngoài 0 khi tràn, phải được xoá bằng phần cứng. EX0: Enable External Interrupt 0. Được đặt bởi phần mềm để cho phép ngắt ngoài 0, phải được xoá bằng phần cứng. *) Thanh ghi ưu tiên ngắt IP( Interrupt Prioty Register); Cho phép ngắt ưu tiên ở mức cao và mức thấp đối với năm nguồn ngắt. - - PT2 PS PT1 PX1 PT0 PX0 PT2: Ngắt Timer 2 ở mức ưu tiên. PS: Ngắt cổng nối tiếp ở mức ưu tiên. PT1: Ngắt Timer 1 ở mức ưu tiên. PX1: Ngắt ngoài 1 ở mức ưu tiên. PT0: Ngắt Timer 0 ở mức ưu tiên. PX0: Ngắt ngoài 0 ở mức ưu tiên. Bên trong bé vi xử lý 8051 có hai bộ định thời Timer/ Counter 16 bit. Mỗi bộ có hai thanh ghi có chức năng đặc biệt SFR là: *) Thanh ghi điều khiển Timer/ Counter TCON:( Timer/ Counter Control Register) Có thể làm việc tới từng bit địa chỉ, nó dùng để điều khiển hoạt động của Timer/ Counter. TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1: Timer 1 Overflow Flag; Cờ tràn Timer 1. Được đặt bằng phần cứng khi Timer/ Counter tràn. Bị xoá bằng phần cứng khi bé vi xử lý phát ra vector thực hiện dịch vụ ngắt. TR1: Timer 1 run control bit. Được đặt xoá bằng phần mềm để bật tắt Timer/ Counter 1 ON/ OFF. TF0: Timer 0 overflow flag. Được đặt bằng phần cứng khi Timer/ Counter 0 tràn, phải được xoá bằng phần cứng khi bé vi xử lý phát vector thực hiện dịch vụ ngắt. TR0: Timer 0 run control bit. Được đặt xoá bằng phần mềm để bật tắt Timer/ Counter 0 ON/ OFF. IE1: Intertupt 1 Edge Flag. Được đặt bởi phần cứng khi mà sườn ngắt ngoài được ghi nhận. Được xoá khi lệnh RETI được thực hiện. IT1: Interrupt 1 Type. Phục vụ cho ngắt ngoài số một + Nếu IT1= 1: Nã quy định ngắt theo sườn xuống + Nếu IT1= 0: Tương ứng với việc xuất hiện một xung thấp thì có yêu cầu ngắt IE0: Interrupt 0 Edge Flag. Được đặt bởi phần cứng khi mà một sườn ngắt ngoài được phát hiện. Được xoá khi lệnh RETI được thực hiện. IT0: Interrupt 0 Type. Được đặt/ xoá bằng phần mềm để chỉ rõ ngắt ngoài theo sườn hay theo mức. *) Thanh ghi điều khiển chế độ Timer/ Counter TMOD( Timer/ Counter 0/ 1 Mode control register) GATE C/ T M1 M0 GATE C/ T M1 M0 Timer/ Counter 1 Timer/ Counter 0 GATE: Khi mà TRx (trong TCON) được đặt và GATE= 1 thì Timer/ Counter sẽ hoạt động khi chân INTx ở mức cao. Khi GATE= 0 Timer/ Counter sẽ hoạt động khi TRx= 1. C/ T: Chọn mode hoạt động là Timer hay Counter. + Nếu C/ T= 0- Chế độ hoạt động là Timer + Nếu C/ T= 1- Chế độ hoạt động là Counter M1, M0- Dùng để quy định chế độ làm việc cho các Timer M1 M0 Mode Operating 0 0 0 13 bit Timer 0 1 1 16 bit Timer/ Counter 1 0 2 8 bit Timer/ Counter Auto- reload 1 1 3 Timer 0 hoạt động nh­ là hai bé Timer 8 bit TL0, TH0. Timer/ Counter 1 stops c- Các cổng vào ra song song Theo nh­ sơ đồ hình vẽ ta thấy bộ vi xử lý 8031 ( 8032) có 4 cổng vào ra song song. Khi một cổng được sử dông nh­ mét cổng ra, dữ liệu được đưa vào thanh ghi SFR tương ứng, và giá trị của một cổng bị thay đổi khi một giá trị mới được chốt. Khi một cổng được sử dụng như một cổng vào, thì giá trị FFh phải được ghi vào cổng, sau đó bất cứ đầu nào mà đưa điện áp của chân đó xuống mức thấp sẽ được coi như bằng 0, và sau đó cổng đó có thể được đọc dữ liệu ra từ các thanh ghi SFR tương ứng. Mặc dù tất cả các lệnh đọc giá trị từ các chân tương ứng của cổng, nhưng một số lệnh đọc thì được ngầm hiểu là đọc giá trị của các cổng chốt. Loại lệnh này được gọi là read- modify- write tức là đọc dữ liệu từ cổng sau đó thực hiện theo yêu cầu của câu lệnh, được kết quả thì ghi kết quả đó trở lại cổng. Các cổng 0, 2, và 3 có những chức năng thay đổi, các chân riêng rẽ của những cổng này có thể được sử dông nh­ các đầu vào/ ra sè chung hoặc có thể được sử dụng chức năng thứ hai là: Các cổng 0 và 2 được sử dụng để giao tiếp với bộ nhớ ngoài. Khi bộ nhớ chương trình hoặc dữ liệu được truy nhập, cổng 2 ( P2) sẽ đưa ra những byte cao của địa chỉ 16 bit cổng 0 ( P0) đưa ra những byte thấp của 16 bit địa chỉ, sau đó thì gửi hoặc nhận byte dữ liệu. Những byte địa chỉ thấp phải được chốt khi truy nhập bộ nhớ ngoài. Bộ vi xử lý sẽ phát một địa chỉ giá trị bằng cách làm tích cực chân ALE, chân này được sử dụng để chốt địa chỉ byte thấp. Chức năng của cổng 3 ( P3) gồm những chân đặt tín hiệu ngắt, đầu vào Timer,các cổng vào/ ra tuần tự, và tín hiệu điều khiển khi có giao diện với bộ nhớ ngoài, điều này sẽ được mô tả bằng bảng dưới đây: Bit Alternate Function Mnemonic/ Designation 0 Serial Input Port RxD 1 Serial Output Port TxD 2 External Interrupt 0 INT0# 3 External Interrupt 1 INT1# 4 Timer/ Counter 0 External Input T0 5 Timer/ Counter 1 External Input T1 6 External Memory Write Strobe WR# 7 External Memory Read Strobe RD# Để thực hiện các chức năng thay đổi nh­ bảng trên trình bày thì các bit tương ứng của thanh ghi SFR phải được đặt lên bằng 1. Các ngắt của 80C31 Bé vi xử lý 80C31 có năm nguồn ngắt: TF0, TF1, INT0, INT1, và ngắt cổng nối tiếp. TF0, TF1 của thanh ghi TCON tạo ra hai ngắt Timer/ Counter, chúng được phát ra khi bộ đếm đếm tràn. INT0, INT1 là hai nguồn ngắt ngoài. Các ngắt này xuất hiện khi có tín hiệu ngoài yêu cầu ngắt nối qua bit 2 và 3 của cổng 3 (P3). Vector ngắt điều khiển phần cứng có thể thực hiện để đáp ứng mỗi một sườn xuống của tín hiệu ngoài hoặc mức thấp của tín hiệu ngoài. Sự lùa chọn đó quyết định bởi bit điều khiển IT0 và IT1 của thanh ghi đặc biệt TCON. Có hai thanh ghi đặc biệt kết hợp với ngắt điều khiển là thanh ghi cho phép ngắt IE và thanh ghi ưu tiên ngắt IP. Khi mà hai nguồn ngắt được thực hiện với hai mức ưu tiên nh­ nhau thì sự ưu tiên được quyết định bởi thứ tự từ trên xuống theo nh­ bảng dưới đây: Interrupt Service Routine Address Default Priority IE0 3 H 1( Highest) TF0 B H 2 IE1 13 H 3 TF1 1B H 4 RI- or- TI 23 H 5( Lowest) 4- Các chế độ địa chỉ a- Chế độ địa chỉ hằng số tức thì (The Immediate Addressing Mode) Trong chế độ địa chỉ này, giá trị hằng số có thể là ở sau mã thao tác trong bộ nhớ chương trình. Ví dô: mov a, # 100; a= 100 mov a, # 100; a= 100 b- Chế độ địa chỉ trực tiếp (The Direct Addressing Mode) Trong chế độ này toán hạng được xác định bởi một trường địa chỉ 8 bit địa chỉ trong lệnh, toán hạng trong chế độ này có thể là các thanh ghi đặc biệt SFR hoặc là bộ nhớ dữ liệu trong. Ví dô mov a, 70h; đưa nội dung thanh ghi có địa chỉ 70h vào a. mov a, 70h; ®­a néi dung thanh ghi cã ®Þa chØ 70h vµo a. c- Chế độ địa chỉ thanh ghi (The Register Addressing Mode) Các băng thanh ghi có chứa các thanh ghi từ R0 đến R7 có thể truy nhập bằng các lệnh nhất định mà chúng được chỉ định thông qua mét thanh ghi. Theo cách này có khả năng là mã lệnh, vì chế độ này đưa ra mét byte địa chỉ. Khi thực hiện lệnh một trong 8 thanh ghi ở băng được chọn để truy nhập đến. Việc lùa chọn dải băng thanh ghi là do hai bit trong thanh ghi PSW. Vi dô: mov PSW, # 0; chọn băng 0 mov PSW, # 0 ; chän b¨ng 0 Mov R0, # 2; đưa hằng số 2 vào thanh ghi R0 ; ®­a h»ng sè 2 vµo thanh ghi R0 d- Chế độ địa chỉ thanh ghi chức năng (The Register- Specific Addressing Mode) Một số lệnh được xác định bởi một thanh ghi nhất định. Một số lệnh luôn làm việc với thanh ghi ACC hoặc con trỏ lệnh. Vì vậy không có byte địa chỉ cần thiết để trỏ tới nó. Mã lệnh của chính nó làm việc đó. Ví dụ:mov a, # 1; a= 1 mov a, # 1 ; a= 1 Mov 0E0h, # 1; chuyển 1 vào SFR có địa chỉ E0h ; chuyÓn 1 vµo SFR cã ®Þa chØ E0h e- Chế độ địa chỉ gián tiếp qua thanh ghi (The Register Indirect Addressing Mode) Trong chế độ này lệnh xác định một thanh ghi chứa địa chỉ của toán hạng, cả RAM trong và RAM ngoài đều có thể là địa chỉ gián tiếp thanh ghi. Thanh ghi 8 bit có thể là R0, R1 của băng thanh ghi được chọn, hoặc con trỏ ngăn xếp . Thanh ghi địa chỉ 16 bit chỉ có thể là thanh ghi con trỏ số hiệu 16 bit là DPTR. Ví dô mov PSW, # 0; chọn băng ghi 0 mov PSW, # 0 ; chän b¨ng ghi 0 mov R0, 90h mov @ R0, # 1 Hoặc mov a, # 1 mov DPTR, # 900h mov @ DPTR, A mov DPTR, # 9001h mov a, @ DPTR f- Chế độ địa chỉ chỉ số thanh ghi (The Register Indexed Addressing Mode) Trong chế độ này chỉ có bộ nhớ chương trình là có thể truy nhập, nó chỉ có thể đọc được. Chế độ địa chỉ này được xác định sẵn cho các bảng look- up để đọc trong bộ nhớ chương trình một thanh ghi cơ sở 16 bit, hoặc DPTR, hoặc bộ đếm chương trình (PC) trỏ tới đoạn cơ sở của bảng, và ACC được xây dựng với số đưa vào bảng. Ví dô mov DPTR, 8100h; địa chỉ cơ sở của bảng mov DPTR, 8100h ; ®Þa chØ c¬ së cña b¶ng mov a, # 0; gán giá trị 0 cho a ; g¸n gi¸ trÞ 0 cho a mov a, @ a+ DPTR B- Chức năng hoạt động của bộ vi xử lí 8031. Trong module điều khiển trung tâm của hệ thống điều khiển nhiệt độ thì vi xử lý 8031 có chức năng điều khiển toàn bộ hệ thống theo chương trình định sẵn do người điều khiển, kết hợp với các mạch điều khiển logic, mạch giải mã, các mạch giao diện và bộ nhớ chương trình của vi xử lý 8031 như sau: + Thu nhận tín hiệu nhiệt độ từ các module thu nhận ( tín hiệu được lấy từ đầu đo là các cặp nhiệt điện). Tín hiệu được đưa vào vi xử lý để xử lý và cất vào vùng đệm. + Đưa giá trị đo được hiển thị ra LED để cho người điều hành biết để có những tác động thích hợp. + Giá trị đo được đem so sánh với giá trị đặt trước theo yêu cầu để đưa ra giá trị điều khiển thông qua cơ cấu điều chỉnh. Tín hiệu điều khiển phụ thuộc vào giá trị sai lệch giữa giá trị đo được với giá trị đặt. + Kiểm tra các thông số trạng thái làm việc của hệ thống bao gồm trạng thái kết thúc chu trình làm việc và trạng thái sự cố như khi nhiệt độ vượt quá mức thấp so với mức quy định khi đó có thể đưa ra tín hiệu báo động, và có thể dừng hệ thống nếu cần. C- Bộ nhớ chương trình ngoài ( EPROM) Bộ nhớ chương trình ngoài EPROM ( Erasable Programable Read Only Memory) có chức năng chứa chương trình điều khiển của hệ thống điều khiển nhiệt độ của lò sấy được viết bằng ngôn ngữ Assembler của 8031. Chương trình được viết trên máy tính sau đó được nạp vào EPROM thông qua thiết bị nạp ROM. Chương trình có thể bị xoá bằng tia cực tím sau đó có thể nạp lại chương trình khác. Do đó việc sử dụng EPROM có rất nhiều ưu điểm so với bộ nhí ROM. Việc chọn lối ra cho bộ nhớ được thực hiện qua chân chọn chip OE, chân này được nối với chân PSEN của vi xử lý. Việc lùa chọn lối ra của bộ nhớ EPROM thường phụ thuộc vào kích thước của chương trình điều khiển cần được nạp vào. Đối với hệ thống điều khiển nhiệt độ lò sấy ta phải chọn loại bộ nhớ EPROM có dung lượng lớn ( 27HC256) để đáp ứng đủ cho hệ thống điều khiển đa kênh nhiệt độ. 3-2- Thiết kế phần cứng .3.2.1- Sơ đồ thiết kế phần cứng được mô tả nh­ sau: 3.2.2- Các vi mạch khác sử dụng trong hệ thống. a- Bộ khuếch đại tín hiệu Thermocouple( bộ khuếch đại tín hiệu) Tín hiệu nhận được từ Thermocouple có điện áp nhiệt điện thay đổi từ 0¸ 6mV tương ứng với nhiệt độ từ 0¸ 1400 C trong lò sấy. Các tín hiệu này có thể coi là tín hiệu vi sai. Do tín hiệu này là rất nhỏ nên cần phải đưa qua bộ khuếch đại tín hiệu trước khi đưa vào bộ biến đổi ADC. Để khuếch đại tín hiệu ta dùng bộ khuếch đại đo lường. Nó được dùng để khuếch đại chính xác các tín hiệu vi sai AC hay DC đồng thời loại bỏ được các phần tử nhiễu đồng pha lớn. Đặc điểm của bộ khuếch đại này là có trở kháng vào cao, độ trôi thấp, phù hợp với yêu cầu hệ thống. Theo sơ đồ ta thấy rằng hai đầu vào của op- amp không đảo, dẫn đến trở kháng vào cao đối với hai tín hiệu, tầng ra là khuếch đại vi sai vòng đóng. Nh­ vậy ta thấy hai hệ khuếch đại đối với các đường tín hiệu tách riêng đều được hiệu chỉnh bởi điện trở R1. Hình 3.1: Sơ đồ mạch khuếch đại tín hiệu Điện áp ra của bộ khuếch đại đo lường có giá trị bằng: Ở đây ta thấy hai mạch khuếch đại thuật toán đầu vào cho điện trở rất cao vì dòng điện vào của đầu vào thuận pha ở đây rất nhỏ. Độ khuếch đại toàn mạch có thể hiệu chỉnh một cách đơn giản bằng điện trở R1. Mạch điện này có thể xây dựng từ một vi mạch và một điện trở mắc bên ngoài, thí dụ mạch LH0036 của hãng National Semiconductor. Nh­ vậy ta thấy điện áp ra bằng hệ số khuếch đại không đổi nhân với hiệu giữa hai điện áp vào và do đó nó được gọi là bộ khuếch đại hiệu. Trong thực tiễn không thể đạt được những mạch điện lý tưởng kiểu này. Nhưng ta hoàn toàn có thể xây dựng được những mạch phù hợp với từng ứng dụng cụ thể Do tín hiệu đầu ra từ cặp nhiệt điện là rất nhỏ từ 0 đến 40mV tương ứng với nhiệt độ đo được từ 00 C đến 12000 C. Do tín hiệu vào AD có giải từ 0V đến 5V nên tín hiệu cần được khuếch đại từ 0¸ 40mV thành 0á 5V. Ở đây do đặc tính của cặp nhiệt điện là tuyến tính nên ta có thể tính toán hệ số khuếch đại là : b- Bộ lọc thông tích cực Butterworth. Tại module thu nhận tín hiệu nhiệt độ trước khi tín hiệu tương tự được đưa vào bộ biến đổi AD cần có các biện pháp lọc nhiễu để tăng độ chính xác cho hệ thống. Các nguồn nhiễu chủ yếu tác động lên tín hiệu của hệ thốnglà: + Nhiễu do nguồn điện lưới + Nhiễu do từ trường + Nhiễu do dung cơ khí Để xử lý lọc nhiễu tuỳ từng loại nhiễu cụ thể mà ta dùng các phương pháp lọc nhiễu khác nhau. Chẳng hạn đối với nhiễu từ trường ta phải dùng các hộp bọc có tác dụng cản từ trường. Đặc biệt có một loại nhiễu mà ta đặc biệt quan tâm là nhiễu do nguồn điện lưới 50Hz gây lên. Để lọc nhiễu này ta thường sử dụng bộ lọc tích cực Butterworth. Bộ lọc này gồm một tổ hợp điện trở, điện dung và một hoặc nhiều phần tử tích cực (nh­ op- amp) có sử dụng nguồn hồi tiếp. Các bộ lọc tích cực RC có thể chế tạo dễ dàng với kích thước vật lí và đặc tuyến tần số của chúng tiến sát tới dạng lý tưởng. Bộ lọc được sử dụng ở đây là bộ lọc thông tích cực thấp Butterworth, bộ lọc này có đặc tuyến biên độ và đặc tuyến pha phù hợp với lọc nhiễu do nguồn điện lưới gây lên. Sơ đồ bộ lọc thông tích cực thấp: C- Bộ khuếch đại đệm: Sơ đồ mạch khuếch đại đệm: Hình 3.2: Sơ đồ mạch khuếch đại đệm: Sau hai tầng khuếch đại lọc nhiễu, tín hiệu được đưa tới bộ khuếch đại đệm, bộ khuếch đại này có chiết áp cho phép điều chỉnh hệ số khuếch đại, đảm bảo điện áp đưa vào đầu vào A/D có giá trị thích hợp. d- Bộ biến đổi tương tự số: Do nhiệt độ không yêu cầu cao về độ chính xác nên độ phân giải của nhiệt độ không cần cao. Do vậy ở đây ta sử dụng ADC 0809 có độ phân giải 8 bit. Sơ đồ thiết kế mạch có dạng nh­ sau: Hình 3.3: Sơ đồ mạch biến đổi tương tự số ADC 0809 * Ưu điểm của việc sử dụng bộ biến đổi tương tự số ADC 0809: +Không cần đòi hỏi điều chỉnh điểm không. Kh«ng cÇn ®ßi hái ®iÒu chØnh ®iÓm kh«ng. +Quét động 8 kênh bằng lôgic địa chỉ. QuÐt ®éng 8 kªnh b»ng l«gic ®Þa chØ. +Dải tín hiệu lối vào analog khi điện áp nguồn nuôi là +5V. D¶i tÝn hiÖu lèi vµo analog khi ®iÖn ¸p nguån nu«i lµ +5V. +Tất cả tín hiệu tương thích TTl. TÊt c¶ tÝn hiÖu t­¬ng thÝch TTl. +Độ phân dải 8 bít. §é ph©n d¶i 8 bÝt. +Thời gian biến đổi 100 Thêi gian biÕn ®æi 100 ms. +Dòng tiêu thụ của vi mạch hầu Dßng tiªu thô cña vi m¹ch hÇu nh­ không đáng kể 0,3mA. Tín hiệu giữ nhịp dùng cho bộ biến đổi A/ D cần phải được tạo ra ở bên ngoài được dẫn đến chân CLOCK. Tám kênh lối vào analog được dẫn đến các chân IN0 đến IN7. Mẫu bít ở các lối vào địa chỉ A, B, C sẽ xác định xem kênh nào phải được lùa chọn. Nguyên tắc hoạt động của bộ biến đổi ADC 0809 cũng không có gì phức tạp. Một xung dương ở chân START được kích hoạt sự biến đổi. Qua đó mẫu bít vào địa chỉ A, B, và C cũng đồng thời được chốt và xác định kênh biến đổi. Trong quá trình biến đổi chân ra EOC ở mức Low, sau cỡ 100 ms mức này sẽ chuuyển sang mức High và báo hiệu sự kết thúc quá trình biến đổi. Sau đó kết quả của quá trình biến đổi sẽ xếp hàng ở đường dẫn dữ liệu D0... D7. Khi OE= 1 các đường dẫn có thể được đọc tiếp. 3.2.3- Module chỉ thị, nguồn,mạch đánh lửa, van và phím điều khiển A- Mạch chỉ thị: Mạch chỉ thị sử dụng mạch hiển thị 7 thanh (7 segment) nối anôt chung bao gồm có 5 đèn LED để hiển thị thông số nhiệt độ của hệ thống. Việ sử dụng các bộ chỉ thị số có tác dụng tăng độ chính xác của hệ thống so với các bộ chỉ thị kim ( vì tránh được tình trạng vị trí nhìn khác nhau dẫn đến các kết quả khác nhau, và cũng như tránh được các lỗi về cơ khí như chạm hay kẹt kim). Mạch chỉ thị thu nhận tín hiệu từ vùng đệm , đưa ra hiển thị LED theo nguyên tắc quét hoặc ngắt Timer. Trong đó: Các thông số chỉ thị bao gồm: + Giá trị nhiệt độ đo được tại thời điểm hoạt động + Giá trị nhiệt độ đặt trước Các LED trạng thái bao gồm : + LED chỉ thị trạng thái ngắt (mở) cơ cấu điều chỉnh nhiệt độ khi nhiệt độ lò tăng quá mức quy định + LED báo động dừng hẳn hệ thống khi có sự cố nghiêm trọng + LED báo trạng thái làm việc bình thường của hệ thống Ở đây mạch sử dụng 2 chốt 74LS373: Trong đó một chốt số liệu cần hiển thị trong vùng đệm ra hiển thị 7 thanh, và một để giải mã địa chỉ cho digit cần hiển thị. B- Các phím điều khiển hệ thống: Hệ thống điều khiển nhiệt độ của lò sấy đứng được hoạt động thông qua các phím điều khiển, mỗi phím có những chức năng riêng thông qua thiết kế phần cứng còng nh­ trong chương trình phần mềm. Hệ thống bao gồm các phím điều khiển sau: + Ba phím để thay đổi giá trị đặt: Phím vào chương trình đặt và thiết kế chương trình đặt (PROG), phím chọn digit cần thay đổi (SELECT), phím thay đổi giá trị tại digit được chọn( INC). + Mét phím có chức năng RESET lại hệ thống (RESET). + Mét phím cho phép hệ thống hoạt động (START). + Mét phím chọn kênh đo nhiệt độ (CH1, CH2). C- Module cung cấp nguồn cho hệ thống: Module này có nhiệm vụ tạo ra điện áp một chiều ổn định có các dải điện áp là ± 5V và ± 12V cung cấp cho các vi mạch hệ thống. *Mạch nguồn : M¹ch nguån : Nguồn cung cấp là một yếu tố quan trọng đối với các thiết bị điện tử nói chung. Trong hệ thống điều khiển nhiệt độ lò sấy trong dây chuyền sản xuất gạch ốp lát, nó đóng vai trò rất lớn đảm bảo cho hệ thống làm việc ổn định , đồng thời cũng góp phần làm giảm sai sè trong khi đo lường và điều khiển các đại lượng và các thiết bị của hệ thống. Nguồn nuôi nhận điện lưới xoay chiều 220V, tần số 50Hz đưa qua biến áp (hạ áp) lấy ra các tín hiệu xoay chiều 9V, 12V, 15V.... Giá trị điện áp đầu ra của biến áp tuỳ theo yêu cầu của từng loại thiết bị trong hệ thống. Các điện áp xoay chiều được đưa vào bộ chỉnh lưu cầu để tạo ra điện áp một chiều tương ứng. Các tụ lọc và điện trở có tác dụng làm phẳng điện áp trước khi đưa vào các vi mạch ổn áp 7805, 7812, 7905, 7912 để có điện áp ± 5V và ± 12V cung cấp cho các vi mạch hoạt động, các vi mạch ổn áp đều được gắn tản nhiệt bằng hợp kim nhôm để giảm bớt nhiệt độ sinh ra trong quá trình làm việc đồng thời cũng làm tăng tuổi thọ của các vi mạch. Tại đầu ra của các vi mạch có các tụ bù. Sơ đồ biến áp nguồn của hệ thống: Hình 3.4: Sơ đồ biến áp nguồn của hệ thống: Trong đó : + Cuộn sơ cấp có điện áp đầu vào là 220V ~. + Cuộn thứ cấp: Gồm 2 cuộn thứ cấp riêng biệt. Điện áp tổng cộng trên cuộn thứ cấp thó nhất là 9V ~, cuộn thứ hai là 15V ~. Tại mỗi cuộn đều có chung điểm không để tạo điện áp âm. Hình 3.5: Sơ đồ nguồn cung cấp D- Van điều khiển dòng chảy của khí gas Ở đây ta sử dụng loại van 2 cửa (2- way ) có cuộn hót thuộc chủng loại 8030, 8031 của hãng ASCO ( Automatic Switch Company) có kí hiệu là V- 5304R2. Loại van này được làm bằng đồng thau hoặc thép không gỉ, phù hợp với loại có áp suất thấp. Nguyên tắc làm việc của van là: Van được đóng khi cuộn dây không được cấp điện và mở khi cuộn dây được cung cấp điện. Bảng dưới đây mô tả một số thông số của van: Construction Coi Class Catalog Number Prefix Maximum Ambient Temp. 0F Maximum Fluid Temp. 0F Watt Rating A-C Construction (Alternating Current) A None 77 180 10.5 A None 77 200 15.4 F FT 122 200 10.5 or 15.4 H HT 140 200 10.5 or 15.4 D-C Construction (Direct Current) A, F or H None, FT or HT 77 150 11.2 A, F or H None, FT or HT 77 180 16.8 SƠ ĐỒ CUNG CẤP GAS CHO BUỒNG ĐỐT Hình 3.6: Sơ đồ tổng thể mô tả đường đi của gas tới mỏ đốt E- Mạch đánh lửa -Biến áp mồi: Thực chất đây là biến áp cao áp 220V/ 10KV. Khi đóng, điện điện áp 220V được tăng thành 10KV, điện áp này cấp cho cực điện ở trong buồng đốt tạo ra trường điện tích cực mạnh trong môi trường hỗn hợp khí gas nên gây đánh lửa và đốt cháy. Quá trình này kéo dài trong khoảng 30s- 60s. Sau đó biến thế mồi bị đưa ra khỏi mạch, tức là bị cắt nguồn cung cấp. BiÕn ¸p måi: Thùc chÊt ®©y lµ biÕn ¸p cao ¸p 220V/ 10KV. Khi ®ãng, ®iÖn ®iÖn ¸p 220V ®­îc t¨ng thµnh 10KV, ®iÖn ¸p nµy cÊp cho cùc ®iÖn ë trong buång ®èt t¹o ra tr­êng ®iÖn tÝch cùc m¹nh trong m«i tr­êng hçn hîp khÝ gas nªn g©y ®¸nh löa vµ ®èt ch¸y. Qu¸ tr×nh nµy kÐo dµi trong kho¶ng 30s- 60s. Sau ®ã biÕn thÕ måi bÞ ®­a ra khái m¹ch, tøc lµ bÞ c¾t nguån cung cÊp. 3.3-Thiết kế phần mềm. Nguyên tắc làm việc của hệ thống: Tín hiệu được lấy ra từ cặp nhiệt điện dưới dạng áp là mV. Sau đó tín hiệu được đưa qua bộ khuếch đại và lọc nhiễu để đạt được giá trị điện áp trong khoảng từ 0á 5V tương ứng với giá trị đầu vào của ADC. Tín hiệu sau khi biến đổi từ tương tự sang số được đưa vào vi xử lí. Vi xử lí có nhiệm vụ xử lí sau đó đưa ra tín hiệu điều khiển, đồng thời cũng đưa ra giá trị tương ứng trên LED để thông báo cho người điều khiển biết. Dùa trên nguyên tắc đó chúng tôi thiết kế một phần mềm điều khiển, được phân chia thành nhiều chương trình con. Sau đây là lưu đồ thuật toán của từng phần: + Lưu đồ điều khiển trung tâm (Chương trình chính ) đưa ra tổng thể trình tự làm việc của hệ thống, ban đầu xoá các biến điều khiển như Rơle, báo động, các giá trị đặt, các cờ trạng thái của hệ thống. Sau đó kiểm tra phím Start, khi phím Start kích hoạt hệ thống bắt đầu làm việc cho phép đặt giá trị vào, chuyển đổi từ dạng BCD sang dạng nhị phân, sau đó đọc dữ liệu từ ADC về Vi xử lí, chuyển đổi giá trị này từ dạng nhị phân (BIN) sang dạng BCD để có thể đưa ra LED hiển thị 7 thanh, số liệu này được so sánh với giá trị yêu cầu để đưa ra tín hiệu điều khiển phù hợp cho hệ thống, sau đó kiểm tra trạng thái làm việc của hệ thống, nếu cờ END_ FLAG= 0 thì quay lại từ đầu ngược lại thì tiếp tục đọc dữ liệu từ ADC về Vi xử lí. + Chương trình con sử dụng ngắt Timer0 phục vụ cho việc thay đổi giá trị yêu cầu có thể được diễn giả như sau: khi hai giá trị Scount1 và Scount2 giảm đến không thì ngắt xảy ra thực hiện nhiệm vụ thay đổi giá trị yêu cầu. + Chương trình con thay đổi giá trị yêu cầu có nguyên tắc làm việc như sau: So sánh giá trị yêu cầu ở từng thời điểm và giá trị đã được đặt trước, nếu khác nhau thì có nhu cầu thay đổi là tăng hoặc giảm. + Chương trình con đọc giá trị từ ADC về Vi xử lí có nhiệm vụ thu thập giá trị nhiệt độ từ kênh 0 để đưa về Vi xử lí việc này chỉ cho phép khi BIT_ EOC bằng 1 vì theo nguyên tắc làm việc của ADC này thì một xung dương ở chân START được kích hoạt sự biến đổi. Qua đó mẫu bít vào địa chỉ A, B, và C cũng đồng thời được chốt và xác định kênh biến đổi. Trong quá trình biến đổi chân ra EOC ở mức Low, sau cỡ 100 ms mức này sẽ chuyển sang mức High và báo hiệu sự kết thúc quá trình biến đổi. Sau đó kết quả của quá trình biến đổi sẽ xếp hàng ở đường dẫn dữ liệu D0... D7. Khi OE= 1 các đường dẫn có thể được đọc tiếp. + Chương trình con điều khiển Rơle (đưa tín hiệu ra ): So sánh giá trị đo được với giá trị đặt,nếu giá trị đo được lớn hơn giá trị đặt thì ngắt Rơle,ngược lại thì đóng Rơle. + Chương trình con kiểm tra trạng thái làm việc của hệ thống: So sánh giá trị đo được và giá trị đặt, nếu sai lệch lớn hơn giá trị cho phép thì đưa ra tín hiệu báo động. Lưu đồ điều khiển trung tâm Lưu đồ phục vụ ngắt timer0 để thay đổi giá trị yêu cầu Lưu đồ thuật toán để thay đổi giá trị yêu cầu Lưu đồ đọc giá trị từ adc LƯU ĐỒ PHỤC VỤ NGẮT INT_0 ĐỂ THAY ĐỔI GIÁ TRỊ ĐẶT Quá trình điều chỉnh rơle tại một điểm Lưu đồ kiểm tra trạng thái làm việc của hệ thống CHƯƠNGIV THỰC NGHIỆM TRÊN HỆ MÔ PHỎNG MICE- 51 Từ việc phân tích các đặc điểm ở trên phần này ta đi vào thiết kế phần mềm và thử nghiệm trên hệ mô phỏng MICE- 51. 4.1- Giới thiệu về hệ phát triển MICE- 51. Đây là một hệ thống mô phỏng của hãng MANLEY dùng để thiết kế, phát triển phần cứng và phần mềm cho họ vi điều khiển MCS- 51. Bộ mô phỏng này sử dụng phần mềm MBUG để dịch và nạp chương trình của người thiết kế xuống bộ mô phỏng để kiểm tra và sửa lỗi. a) Bộ mô phỏng MICE- 51. Hệ phát triển MICE- 51 sử dụng nguồn cung cấp 5V một chiềuvới dòng tương ứng là 1ampe. Hệ thống này sử dụng chip vi xử lí 8031 được gắn sẵn trên mạch. Hệ phát triển sử dụng tần số dao động của thạch anh là 6MHz được gắn sẵn trên mạch, ngoài ra hệ thống có thể sử dụng tần số thạch anh do người sử dụng nếu có yêu cầu về tần số cao hơn hoặc thấp hơn. Trên hệ thống này được cung cấp một bộ nhớ RAM 8K, giúp cho người sử dụng có thể dịch và nạp chương trình xuống để chạy thử nghiệm, kiểm tra và sửa lỗi, nó có thể coi là một ROM giả, đồng thời RAM này còn được nuôi bằng một pin có thể kéo dài việc lưu chương trình tới 1 năm. Tuy nhiên chúng ta cũng có thể mở rộng bộ nhớ RAM lên tới 48K bằng cách gắn thêm RAM vào những rãnh cắm có sẵn trên mạch. Hệ thống này được nối với cổng COM máy tính thông qua cáp RS-232 Hệ phát triển này có một bàn phím nhá ( key- pad) bao gồm 32 phím trong đó có cả phím Reset phần cứng, trong đó có 15 phím chức năng và 16 phím số: Bảng dưới đây mô tả vị trí các phím: MICE- 51 key boad layout 7 R7 8 DPTR 9 IE IP A A PSW FUNC FFIS USER FFNO MODE FILL RESET 4 R4 5 R5 6 R6 B B SP DEC COMP HEX MOV HIST OFST MOV 1 R1 2 R2 3 R3 C TN TC BTOP BP BEND BT EXEC SCAL 0 R0 F SC SB E TIMER1 D TIMER0 - LAST + NEXT TRAC STEP Bảng mô tả chức năng của từng phím Key name Key function RESET System hardware reset key MON Monitor key LAST/ - Last location address/ Minus key NEXT/ + Next location address/ Plus key TRACE Trace key STEP Sing- step key SCAL Scalar single step key EXEC Execute key BP/ BTOP Break point/ Block top key BT/ BEND Break times/ Block end key COMP/ DEC Block compare/ Decimal key MOV/ HEX Block move/ Hexadecimal key OFST/ HIST Calculate offset key/ Trace history FILL/ MODE Block fill/ Emulation mode key FISS/ FUNC Find matching byte key / user function key FFNO/ USER Find non- matching byte key/ user command key Tuy nhiên ở đây ta cần nói rõ hơn chức năng của một số phím: + Phím MON: nó có thể được coi nh­ mét phím khởi động nóng ( warm boot), khi phím này được Ên nó có nhiệm vụ buộc MICE- 51 thoát khỏi nhiệm vụ hiện tại mình đang thực hiện và quay trở về trạng thái ban đầu là hiển thị chữ P trên hiển thị 7 thanh. Đồng thời người lập trình có thể sử dụng phím này để thoát khỏi chương trình khi nó chạy vào một vòng lặp không kết thúc được sinh ra bởi lỗi của chương trình. + Phím STEP: Ngay bản thân tên gọi của phím cũng cho ta biết về chức năng của phím này, khi Ên phím này ta có thể thực hiện chương trình một lệnh tại thời điểm làm việc (ngay tại vị trí con trỏ nếu ta vừa nạp chương trình vào). Đồng thời khi Ên phím này lần đầu tiên sẽ đưa ra nội dung hiện tại của bộ đếm chương trình (PC) l à địa chỉ của lệnh hiện tại và byte đầu của mã lệnh, và khi Ên Ctrl+ F8 (trên bàn phím máy tính) thì nó sẽ thực hiện chương trình theo từng câu lệnh theo kiểu step- by -step. + Phím EXEC: phím này có chức năng thực hiện chương trình một cách liện tục từ đầu cho đến hết và dừng chương trình lại, tuy nhiên ở đây chúng ta cần lưu ý khi thực hiện phím này cần phải đặt điểm ngắt ( Break point) vì đề phòng khi thực hiện chương trình nó nhẩy vào một vòng lặp không kết thúc sẽ gây lỗi chương trình. b) Phần mềm MBUG. MBUG là 1 phần mềm ứng dụng nó điều khiển và giao tiếp với bộ mô phỏng MICE_51 qua cổng COM của máy tính .Phần mềm này tạo ra các cửa sổ phục vụ việc dịch, phát triển và sửa lỗi chương trình assembler hoặc ngôn ngữ bậc cao. Bảng danh sách chương trình và các lệnh tương ứng được hiển thị trên màn hình khi Ên F10: Main Menu Help(Alt-F):F3-file ^find ^Next Os Shell: DOS Screen Programming: Read Verify Type Write Blank Lock Load Program: Load Program Step MBUG: Save Update Restore Assemble: Cross Assembler Disassemble: Go Clear Symbol BP DW Output Run and Debug: Asml Step Compare NewPC Excute Move BP/BT Auto Fill Display Seve Memory Zoom Select Print Goto Here Symbol Quit(Alt-X): Exit MBUG Màn hình được chia ra 6 phần ( cửa sổ): Dòng trạng thái hệ thống. Cửa sổ làm việc. Cửa sổ thanh ghi. Cửa sổ Từ trạng thái chương trình. Cửa sổ bộ nhớ. Dòng dịch vụ lệnh và lỗi. Ngoài ra còn có các cửa sổ chỉ thể hiện khi được yêu cầu nh­ cửa sổ tên file dùng để lạp file,v.v.. Chương trình sửa lỗi MBUG: MBUG có thể thể hiện và biến đổi tất cả các thanh ghi.Có 2 loại đặt điểm ngắt (Có thể lên dến 255 lần); 2 lệnh dịch (single_step và auto_step) ;các khối dữ liệu có thể được so sánh ,di chuyển, làm đầy, tìm kiếm.v.v.. Chương trình dịch chéo MBUG : MBUG có thể dịch 1 chương trình nguồn chuyển sang 1 chương trình gồm các mã Intel_Hex cùng với các ký tự thông tin cho việc sửa lỗi .Chương trình này đựơc dùng để nạp chương trình hoạt động xuống MICE_51. 4.2- Chương trình điều khiển Ở đây do yêu cầu bài toán là khống chế nhiệt độ của lò theo đường đặc tính cho trước, nên chương trình điều khiển là ứng với mỗi một thời điểm ta có giá trị yêu cầu khác nhau và sẽ khống chế nhiệt độ dao động quanh giá trị yêu cầu đó. Để đáp ứng các yêu cầu đã đặt ra, ở đây chúng tôi đã viết chương trình điều khiển bằng ngôn ngữ assembler được trình bày ở phụ lục I. Chương trình này đã được chạy thử nghiệm từng phần và toàn bộ trên hệ mô phỏng MICE- 51 và thấy nó đáp ứng được yêu cầu đặt ra. Phụ lục I: Chương trình điều khiển lò nhiệt ;************************************************************* ;KHAI BAO HANG SO VA CAC BIEN KHAI BAO HANG SO VA CAC BIEN ;************************************************************* startequP1.0 equ P1.0 progequP1.1 equ P1.1 SL_DGequP1.2 equ P1.2 inc_tempequP1.3 equ P1.3 roleequP1.4 equ P1.4 led_startequP1.5 equ P1.5 bao_dongequP1.6 equ P1.6 role_1equP1.7 equ P1.7 motor_1equP0.0 equ P0.0 port_aleequ0000h equ 0000h port_startequ2000h equ 2000h port_digitequ4000h equ 4000h port_ledequ6000h equ 6000h port_elableequ8000h equ 8000h ;gia tri nap vao de tao thoi gian byte_1equ 0ffH equ 0ffH byte_2equ0ffh equ 0ffh byte_3equ3Ch equ 3Ch byte_4equ03h equ 03h ;gia tri nhiet do dat vao ban dau begin_Lequ19h equ 19h begin_Hequ00h equ 00h ;gia tri nhiet do ket thuc end_Lequ32h equ 32h end_Hequ00h equ 00h digit_dequ7Eh equ 7Eh digit_doequ63h equ 63h ;port select digit digit_1equ0FEh equ 0FEh digit_2equ0FDh equ 0FDh digit_3equ0FBh equ 0FBh digit_4equ0F7h equ 0F7h digit_5equ0EFh equ 0EFh chophep_Lequ 100 equ 100 chophep_Hequ00h equ 00h reloadequ0Fh equ 0Fh set_timeequ0Ah equ 0Ah tang_requestequ100 equ 100 giam_requestequ100 equ 100 hundequ21h equ 21h tenoneequ22h equ 22h AD_Bufequ2fh equ 2fh ;khai bao bien ;bien tao thoi gian chu trinh lam viec scount_1data30h data 30h scount_2data31h data 31h scount_3data32h data 32h scount_4data33h data 33h ;bien gia tri yeu cau o tung thoi diem request_Ldata34h data 34h request_Hdata35h data 35h ;bien gia tri dat ;dang BCD temp_1data36h data 36h temp_2data37h data 37h temp_3data38h data 38h temp_4data39h data 39h ;dang BIN temp_Ldata3Ah data 3Ah temp_Hdata3Bh data 3Bh digit_sdata3Ch data 3Ch ;bien chua du lieu dang BIN data_Ldata3Dh data 3Dh data_Hdata3Eh data 3Eh ;dang thap phan data_1data40h data 40h data_2data41h data 41h data_3data42h data 42h data_4data43h data 43h ;bien gia tri sai lech giu gia tri doc tu ADC va gia tri dat test_Ldata44h data 44h test_Hdata45h data 45h ;bien thoi gian giu var_timedata46h data 46h ;bien giu gia tri doc tu ADC datasdata47h data 47h data_dudata48h data 48h ;bien hien thi hienthi_1data49h data 49h hienthi_2data4Ah data 4Ah hienthi_3data4Bh data 4Bh hienthi_4data4Ch data 4Ch hienthi_5data4Eh data 4Eh ;khai bao cac bit trang thai test_carrydata20h data 20h end_flagbittest_carry.2 bit test_carry.2 push_buttondata21h data 21h button_1bitpush_button.0 bit push_button.0 button_2bitpush_button.1 bit push_button.1 button_3bitpush_button.2 bit push_button.2 on_flagbittest_carry.0 bit test_carry.0 inc_flagbittest_carry.1 bit test_carry.1 ;************************************************************* org0000h 0000h ajmpbegin begin org0003h 0003h ljmpint_0 int_0 org000bh 000bh ljmpint_timer0 int_timer0 org100 100 begin: clrEA EA setbIT0 IT0 movTMOD,#82h TMOD,#82h movTH0,#reload TH0,#reload movtemp_1,#7h temp_1,#7h movtemp_2,#8h temp_2,#8h movtemp_3,#9h temp_3,#9h movtemp_4,#1h temp_4,#1h movvar_time,#00h var_time,#00h movpush_button,#00h push_button,#00h movscount_1,#byte_1 scount_1,#byte_1 movscount_2,#byte_2 scount_2,#byte_2 movscount_3,#byte_3 scount_3,#byte_3 movscount_4,#byte_4 scount_4,#byte_4 movrequest_L,#begin_L request_L,#begin_L movrequest_H,#begin_H request_H,#begin_H movtest_carry,#00h test_carry,#00h movpsw,#0h psw,#0h repeat: jnbstart,run_program start,run_program ajmprepeat repeat run_program: movsp,#60h sp,#60h clrled_start led_start setbTR0 setb TR0 movIE,#83h mov IE,#83h lcallMotor Motor lcallDanh_lua Danh_lua lcallOpen_Valve Open_Valve lcallchange_setpoint change_setpoint lcallREAD_ADC READ_ADC lcallxu_ly xu_ly lcallchangeBIN_BCD changeBIN_BCD lcallhien_thi hien_thi lcallcompear_contror compear_contror lcalltest_trangthai test_trangthai ajmprun_program run_program Motor: Setbmotor_1 motor_1 Lcalldelay delay Clrmotor_1 motor_1 ret Danh_Lua: movr1,#64h r1,#64h setbrole_1 role_1 djnzr1, Danh_Lua r1, Danh_Lua clrrole_1 role_1 ret Open_Valve: movr2,# 32 r2,# 32 setbrole role djnzr2, Open r2, Open ret ;************************************************************* ;CHUONG TRINH NGAT TIMER 0 TAO THOI GIAN CHUONG TRINH NGAT TIMER 0 TAO THOI GIAN ;************************************************************* int_timer0: clrtf0 tf0 pushpsw psw pushacc acc push0 0 push1 1 push2 2 push3 3 pushdpl dpl pushdph dph movr0,scount_1 r0,scount_1 decr0 r0 movscount_1,r0 scount_1,r0 cjner0,#00h,out_int r0,#00h,out_int movscount_1,#byte_1 scount_1,#byte_1 movr1,scount_2 r1,scount_2 decr1 r1 movscount_2,r1 scount_2,r1 cjner1,#00h,out_int r1,#00h,out_int movscount_2,#byte_2 scount_2,#byte_2 movr2,scount_3 r2,scount_3 decr2 r2 movscount_3,r2 scount_3,r2 cjner2,#00h,out_int r2,#00h,out_int movscount_3,#byte_3 scount_3,#byte_3 movr3,scount_4 r3,scount_4 decr3 r3 movscount_4,r3 scount_4,r3 cjner3,#00h,out_int r3,#00h,out_int movscount_4,#byte_4 scount_4,#byte_4 lcallinc_request inc_request out_int: popdph dph popdpl dpl pop3 3 pop2 2 pop1 1 pop0 0 popacc acc poppsw psw reti ;************************************************************* ;CHUONG TRINH THAY DOI GIA TRI YEU CAU CHUONG TRINH THAY DOI GIA TRI YEU CAU ;*************************************************************inc_request: clrc c mova,request_H a,request_H cjnea,temp_H,change a,temp_H,change mova,request_L a,request_L cjnea,temp_L,change a,temp_L,change loop: clrinc_flag inc_flag movr0,var_time r0,var_time cjner0,#10,inc_time r0,#10,inc_time clrc c mova,request_H a,request_H cjnea,end_H,dec_request a,end_H,dec_request mova,request_L a,request_L cjnea,end_L,dec_request a,end_L,dec_request ket_thuc: movrequest_L,#end_L request_L,#end_L movrequest_H,#end_H request_H,#end_H setbend_flag end_flag ret change: jncloop loop clrc c jnbinc_flag,dec_request inc_flag,dec_request mova,request_L a,request_L adda,tang_request a,tang_request movrequest_L,a request_L,a mova,request_H a,request_H addca,#00h a,#00h movrequest_H,a request_H,a ret inc_time: incr0 r0 movvar_time,r0 var_time,r0 mova,temp_L a,temp_L movrequest_L,a request_L,a mova,request_H a,request_H movrequest_H,a request_H,a ret dec_request: jcket_thuc ket_thuc mova,request_L a,request_L subba,giam_request a,giam_request movrequest_L,a request_L,a mova,request_H a,request_H subba,00h a,00h movrequest_H,a request_H,a ret ;************************************************************* ;CHUONG TRINH PHUC VU NGAT 1 DE TANG GIAM GIA TRI DAT ;************************************************************* int_0: pushpsw psw pushacc acc push0 0 push1 1 push2 2 push3 3 pushdpl dpl pushdph dph pushhienthi_1 hienthi_1 pushhienthi_2 hienthi_2 pushhienthi_3 hienthi_3 pushhienthi_4 hienthi_4 pushhienthi_5 hienthi_5 movdigit_s,#01h digit_s,#01h in_key: jbon_flag,select on_flag,select jnbprog,program prog,program ajmpthoat thoat program: setbon_flag on_flag ajmploops loops select: jnbSL_DG,select_DG SL_DG,select_DG clrbutton_1 button_1 jnbinc_temp,tang_temp inc_temp,tang_temp clr button_2 jnbprog,thoat1 prog,thoat1 select_DG: jbSL_DG,loops SL_DG,loops jb button_1,loops setb button_1 movr0,digit_s r0,digit_s incr0 r0 cjner0,#4,tiep r0,#4,tiep movr0,#01h r0,#01h tiep: movdigit_s,r0 digit_s,r0 ajmploops loops tang_temp: jbinc_temp,loops jb inc_temp,loops jbbutton_2,loops jb button_2,loops setbbutton_2 setb button_2 movr0,digit_s r0,digit_s cjner0,#01h,inc_2 r0,#01h,inc_2 mova,temp_1 a,temp_1 inca a cjnea,#0Ah,tiep_1 a,#0Ah,tiep_1 mova,#00h a,#00h tiep_1: movtemp_1,a temp_1,a ajmploop loop inc_2: cjner0,#02h,inc_3 r0,#02h,inc_3 mova,temp_2 a,temp_2 inca a cjnea,#0Ah,tiep_2 a,#0Ah,tiep_2 mov a,#00h tiep_2: movtemp_2,a temp_2,a ajmploop loop inc_3: cjner0,#03,inc_4 r0,#03,inc_4 mova,temp_3 a,temp_3 inca a cjnea,#0Ah,tiep_3 a,#0Ah,tiep_3 mova,#00h a,#00h tiep_3: movtemp_3,a temp_3,a ajmploop loop inc_4: mova,temp_4 a,temp_4 inca a cjnea,#0Ah,tiep_4 a,#0Ah,tiep_4 mova,#00h a,#00h tiep_4: movtemp_4,a temp_4,a loops: movhienthi_5,#digit_d hienthi_5,#digit_d mova,temp_4 a,temp_4 movhienthi_4,a hienthi_4,a mova,temp_3 a,temp_3 movhienthi_3,a hienthi_3,a mova,temp_2 a,temp_2 movhienthi_2,a hienthi_2,a mova,temp_1 a,temp_1 movhienthi_1,a hienthi_1,a lcallhien_thi hien_thi ajmpin_key in_key thoat1: jbprog,loops prog,loops clron_flag on_flag thoat: movdigit_s,#00h digit_s,#00h pophienthi_5 pop hienthi_5 pophienthi_4 hienthi_4 pophienthi_3 hienthi_3 pophienthi_2 hienthi_2 pophienthi_1 hienthi_1 popdph dph popdpl dpl pop3 3 pop2 2 pop1 1 pop0 0 popacc acc poppsw psw reti ;************************************************************* ;CHUONG TRINH CON DOC SO LIEU TU ADC CHUONG TRINH CON DOC SO LIEU TU ADC ;************************************************************* READ_ADC: movdatas,#00h datas,#00h movdata_du,#00h data_du,#00h movr1,#30 r1,#30 loop_read: mova,#00h a,#00h mov dptr,#port_elable movx@dptr,a @dptr,a movdptr, #port_ale dptr, #port_ale movx@dptr,a @dptr,a movdptr,#port_start dptr,#port_start movr2,#100 r2,#100 loop1: djnzr2,loop1 r2,loop1 movdptr,#port_elable dptr,#port_elable movxa,@dptr a,@dptr movAD_Buf, a AD_Buf, a movb,#1eh b,#1eh divab ab adda,datas a,datas movdatas,a datas,a mova,b a,b adda,data_du a,data_du movdata_du,a data_du,a djnzr1,loop_read r1,loop_read mova,data_du a,data_du movb,#30 b,#30 divab ab adda,datas a,datas movdatas,a datas,a ret ;************************************************************* ; CHUONG TRINH CON CHUYEN GIA TRI DOC TU ADC BIN2BCD ;************************************************************* BIN2BCD: movb, #100 b, #100 divab ab movhund, a hund, a mova,#10 a,#10 xcha,b a,b divab ab swapa a adda,b a,b movtenone, a tenone, a ret ;************************************************************* ; CHUONG TRINH CON XU LY ;************************************************************* XU_LY: mova,datas a,datas movb,#5 b,#5 mulab ab movdata_H,b mov data_H,b movdata_L,a data_L,a ret ;************************************************************* ;CHUONG TRINH CON DOI SO NHI PHAN SANG SO BCD CHUONG TRINH CON DOI SO NHI PHAN SANG SO BCD ;************************************************************* changeBIN_BCD: clrc c movdata_1,#00h data_1,#00h movdata_2,#00h data_2,#00h movdata_3,#00h data_3,#00h movdata_4,#00h data_4,#00h movdata_H,#27h data_H,#27h movdata_L,#0fh data_L,#0fh subb_1000: mova,data_H a,data_H cjnea,#03h,testcarry_1000 a,#03h,testcarry_1000 mova,data_L a,data_L cjnea,#0E8h,testcarry_1000 a,#0E8h,testcarry_1000 ajmptru_1000 tru_1000 testcarry_1000: jcsubb_100 subb_100 tru_1000: mova,data_L a,data_L movb,#0E8h b,#0E8h subba,b a,b movdata_L,a data_L,a mova,data_H a,data_H movb,#03h b,#03h subba,b a,b movdata_H,a data_H,a mova,data_4 a,data_4 inca a movdata_4,a data_4,a clrc c ajmpsubb_1000 subb_1000 subb_100: mova,data_H a,data_H cjnea,#00h,tru_100 a,#00h,tru_100 ajmpsubb_tiep subb_tiep tru_100: clrc c mova,data_L a,data_L movb,#64h b,#64h subba,b a,b movdata_L,a data_L,a mova,data_H a,data_H movb,#00h b,#00h subba,b a,b movdata_H,a data_H,a mova,data_3 a,data_3 inca a movdata_3,a data_3,a ajmpsubb_100 subb_100 subb_tiep: clrc c mova,data_L a,data_L adda,#9Ch a,#9Ch jncsubb_10 subb_10 clrc c mova,data_L a,data_L movb,#64h b,#64h subba,b a,b movdata_L,a data_L,a mova,data_3 a,data_3 inca a movdata_3,a data_3,a ajmpsubb_tiep subb_tiep subb_10: mova,data_L a,data_L adda,#0F6h a,#0F6h jncsubb_0 subb_0 clrc c mova,data_L a,data_L movb,#10 b,#10 subba,b a,b movdata_L,a data_L,a mova,data_2 a,data_2 inca a movdata_2,a data_2,a clrc c ajmpsubb_10 subb_10 subb_0: mova,data_L a,data_L movdata_1,a data_1,a movhienthi_1,a hienthi_1,a mova,data_2 a,data_2 movhienthi_2,a hienthi_2,a mova,data_3 a,data_3 movhienthi_3,a hienthi_3,a mova,data_4 a,data_4 movhienthi_4,a hienthi_4,a movhienthi_5,#digit_do hienthi_5,#digit_do ret ;*************************************************************;CCHUONG TRINH CON CHUYEN DOI GIA TRI DAT TU BCD-BIN ;*************************************************************change_setpoint: mova,temp_4 a,temp_4 movb,#10 b,#10 mulab ab adda,temp_3 a,temp_3 movb,#10 b,#10 mulab ab movtemp_H,b temp_H,b adda,temp_2 a,temp_2 movtemp_L,a temp_L,a mova,#00h a,#00h addca,temp_H a,temp_H movtemp_H,a temp_H,a mova,temp_L a,temp_L movb,#10 b,#10 mulab ab movtemp_L,a temp_L,a movr0,b r0,b mova,temp_H a,temp_H movb,#10 b,#10 mulab ab adda,r0 a,r0 movtemp_H,a temp_H,a mova,temp_L a,temp_L clrc c adda,temp_1 a,temp_1 movtemp_L,a temp_L,a mova,#00h a,#00h addca,temp_H a,temp_H movtemp_H,a temp_H,a ret ;************************************************************* ;CHUONG TRINH CON HIEN THI GIA TRI DAT VA GIA TRI DOC TU ADC CHUONG TRINH CON HIEN THI GIA TRI DAT VA GIA TRI DOC TU ADC ;************************************************************* hien_thi: movr0,#02h r0,#02h movr1,#04h r1,#04h loop_hthi: mova,#0FFh a,#0FFh movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a mova,#digit_1 a,#digit_1 movdptr,#port_led dptr,#port_led movx@dptr,a @dptr,a mova,hienthi_1 a,hienthi_1 movr2,digit_s r2,digit_s cjner2,#00h,s_lect r2,#00h,s_lect ajmptieps tieps s_lect: cjner2,#01h,tiep1 r2,#01h,tiep1 djnzr0,loop2 r0,loop2 movr0,#2 r0,#2 tiep1: anla,#0Fh a,#0Fh lcalldisplay display tieps: movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a lcalldelay delay loop2: movr2,digit_s r2,digit_s cjner2,#02,tiep2 r2,#02,tiep2 djnzr0,loop3 r0,loop3 movr0,#2 r0,#2 tiep2: mova,#0FFh a,#0FFh movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a mova,#digit_2 a,#digit_2 movdptr,#port_led dptr,#port_led movx@dptr,a @dptr,a mova,hienthi_2 a,hienthi_2 anla,#0fh a,#0fh lcalldisplay display movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a lcalldelay delay loop3: movr2,digit_s r2,digit_s cjner2,#03h,tiep3 r2,#03h,tiep3 djnzr0,loop4 r0,loop4 movr0,#2 r0,#2 tiep3: mova,#0FFh a,#0FFh movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a mova,#digit_3 a,#digit_3 movdptr,#port_led dptr,#port_led movx@dptr,a @dptr,a mova,hienthi_3 a,hienthi_3 anla,#0Fh a,#0Fh lcalldisplay display movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a lcalldelay delay loop4: movr2,digit_s r2,digit_s cjner2,#04h,tiep4 r2,#04h,tiep4 djnzr0,loop5 r0,loop5 movr0,#2 r0,#2 tiep4: mova,#0FFh a,#0FFh movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a mova,#digit_4 a,#digit_4 movdptr,#port_led dptr,#port_led movx@dptr,a @dptr,a mova,hienthi_4 a,hienthi_4 anla,#0Fh a,#0Fh lcalldisplay display movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a lcalldelay delay loop5: mova,#0FFh a,#0FFh movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a mova,#digit_5 a,#digit_5 movdptr,#port_led dptr,#port_led movx@dptr,a @dptr,a mova,hienthi_5 a,hienthi_5 movr2,digit_s r2,digit_s cjner2,#00h,tiep5 r2,#00h,tiep5 lcalldisplay display tiep5: movdptr,#port_digit dptr,#port_digit movx@dptr,a @dptr,a lcalldelay delay djnzr1,loop_thi r1,loop_thi ret loop_thi: ajmploop_hthi loop_hthi ;************************************************************* ;CHUONG TRINH CON TAO TRE ;************************************************************* delay: push0 0 push1 1 push2 2 movr0,#5h mov r0,#5h wait1:movr1,#0ffh mov r1,#0ffh djnz r1,wait1 wait2:movr2,#05h mov r2,#05h djnzr2, wait2 r2, wait2 wait3:djnzr0,wait3 djnz r0,wait3 pop2 2 pop1 1 pop0 0 ret ;************************************************************* ;CHUONG TRINH DOI TU SO BCD RA DANG 7 THANH DE HIEN THI ;*************************************************************display: inca a movca,@a+pc a,@a+pc ret db0C0h;0 0C0h ;0 db0F9h;1 0F9h ;1 db0A4h;2 0A4h ;2 db0B0h;3 0B0h ;3 db99h;4 99h ;4 db92h;5 92h ;5 db82h;6 82h ;6 db0F8h;7 0F8h ;7 db80h;8 80h ;8 db90h;9 90h ;9 db88h;A 88h ;A db83h;B 83h ;B db0C6h;C 0C6h ;C db0A1h;D 0A1h ;D db86h;E 86h ;E db8Eh;F 8Eh ;F ;*************************************************************;CCHUONG TRINH DIEU KHIEN ROLE ;*************************************************************compear_contror: clrc c mova,data_H a,data_H cjnea,request_H,not_eq a,request_H,not_eq mova,data_L a,data_L mova,data_L a,data_L cjnea,request_L,not_eq a,request_L,not_eq ret not_eq: jcless less clrrole role ret less: setbrole role ret ;************************************************************* ;CHUONG TRINH KIEM TRA TRANG THAI LAM VIEC ;************************************************************* test_trangthai: jbrole,test_low role,test_low mova,data_L a,data_L clrc c subba,request_L a,request_L movtest_L,a test_L,a mova,data_H a,data_H subba,request_H a,request_H movtest_H,a test_H,a ajmptest test test_low: mova,request_L a,request_L clrc c subba,data_L a,data_L movtest_L,a test_L,a mova,request_H a,request_H subba,data_H a,data_H movtest_H,a test_H,a test: clrc c mova,test_H a,test_H cjnea,chophep_H,Conti_test a,chophep_H,Conti_test mova,test_L a,test_L cjnea,chophep_L,Conti_test a,chophep_L,Conti_test setbbao_dong bao_dong ret Conti_test: jcDone Done setbbao_dong bao_dong ret Done: clrc c ret END Phụ Lục II tập lệnh của MCS- 51 Tập lệnh của MCS-51 có thể được chia thành các nhóm sau đây: *Các lệnh số học: Nó bao gồm các lệnh cộng, trừ, nhân, chia và tăng giảm. C¸c lÖnh sè häc: Nã bao gåm c¸c lÖnh céng, trõ, nh©n, chia vµ t¨ng gi¶m. * Các lệnh logic: Nã bao gồm các lệnh AND, OR, XOR, xoá, bù, quay, Swap. * Các lệnh chuyển dữ liệu. * Các lệnh sử lí bít * Các lệnh điều khiển luồng chương trình:Các lệnh nhẩy có điều kiện , không có điều kiện , các lệnh gọi và trả về chương trình con. Tất cả các lệnh này có thể xem trong các loại sách viết về MCS- 51 như: +Vi xử lý trong đo lường và điều khiển của tác giả Ngô Diên Tập Vi xö lý trong ®o l­êng vµ ®iÒu khiÓn cña t¸c gi¶ Ng« Diªn TËp + Programming and Interfacing the 8051 Microcontroller- Thư viện trường Đại Học Bách Khoa Hà nội. + MCS- 51 Family of Microcontroller Architechture Overview- Intel. Ở đây chỉ xin giới thiệu một số lệnh thường gặp nhất của bộ vi xủ lí này .Để rõ hơn xem thêm phần chế độ địa chỉ ở mục vi sử lí 8031 _chương3: Nhóm lệnh dùng để chuyển số liệu (Transfer data): + MOV d, s;dùng để trao đổi nội dung giữa hai ô nhớ dữ liệu trong MOV d, s ;dïng ®Ó trao ®æi néi dung gi÷a hai « nhí d÷ liÖu trong ;d, s là các toán hạng của câu lệnh đó ( d: desination- ;đích, s: souce- nguồn) Trong đó: d có thể là Ri, @Ri, DPTR, Accumulator. s có thể là giá trị trực tiếp(direct), địa chỉ trực tiếp, Accumulator, Ri, @Ri, tuy nhiên d, s cũng có thể là một bít. +MOVC d, s;dùng để chuyển đoạn mã trong chương trình MOVC d, s ;dïng ®Ó chuyÓn ®o¹n m· trong ch­¬ng tr×nh Trong đó: d chỉ có thể là Accumulator s có thể là @ A+ PC ( 8bít), @ A+DPTR ( 16 bít). +MOVX d,s ;dùng để trao đổi nội dung với các bộ nhớ dữ liệu ngoài. MOVX d,s ;dïng ®Ó trao ®æi néi dung víi c¸c bé nhí d÷ liÖu ngoµi. Trong đó: d, s đều có thể là ACC, Ri, @ DPTR. + PUSH op-Thực hiện cất nội dung thanh ghi, toán hạng vào ngăn xếp. PUSH op -Thùc hiÖn cÊt néi dung thanh ghi, to¸n h¹ng vµo ng¨n xÕp. +POPop-Thực hiện việc phục hồi nội dung toán hạng op ( op- operand có thể là dữ liệu 8 bít trực tiếp). POP op -Thùc hiÖn viÖc phôc håi néi dung to¸n h¹ng op ( op- operand cã thÓ lµ d÷ liÖu 8 bÝt trùc tiÕp). +XCHd, s- Thực hiện việc trao đổi nội dung giữa d và s. XCH d, s - Thùc hiÖn viÖc trao ®æi néi dung gi÷a d vµ s. Trong đó: Trong ®ã: d chỉ có thể là ACC d chØ cã thÓ lµ ACC s có thể là địa chỉ trực tiếp, Ri, @Ri. Nhóm lệnh thực hiện các phép toán học : +ADD A,byte ;Phép cộng ,kết quả cất vào A ;PhÐp céng ,kÕt qu¶ cÊt vµo A Trong đó byte có thể là hằng số(#3h) , địa chỉ trực tiếp,Ri hoặc @Ri +ADDC A,byte ;Phép cộng có nhớ(giá trị cờ C được thêm vào kết quả) ;PhÐp céng cã nhí(gi¸ trÞ cê C ®­îc thªm vµo kÕt qu¶) Các toán hạng sử dụng như lệnh trên C¸c to¸n h¹ng sö dông nh­ lÖnh trªn +SUBB A,byte;Phép trừ có nhớ(kết quả trừ đi giá trị cờ C),kết quả cất vào A ;PhÐp trõ cã nhí(kÕt qu¶ trõ ®i gi¸ trÞ cê C),kÕt qu¶ cÊt vµo A ;Các toán hạng sử dụng như trên +INC byte;Tăng giá trị byte thêm 1 ;T¨ng gi¸ trÞ byte thªm 1 ;trong đó byte có thể là A,địa chỉ trực tiếp,Ri,@Ri +DEC byte;Lệnh giảm ;LÖnh gi¶m ;Toán hạng như trên +MUL AB;Nhân A với B kết quả byte thấp cất vào A ,byte cao cất vào B ;Nh©n A víi B kÕt qu¶ byte thÊp cÊt vµo A ,byte cao cÊt vµo B +DIV AB;Chia A cho B thương cất vào A ,số dư cất vào B ;Chia A cho B th­¬ng cÊt vµo A ,sè d­ cÊt vµo B Cáclệnh logic +ANL d,s;d:=d AND s ;d:=d AND s ;d có thể là:A,địa chỉ trực tiếp(direct) s có thể là: direct,Ri,@Ri,#data +ORL d,s;d:=d OR s ;d:=d OR s ;toán hạng sử dụng như trên +XRL d,s;d:= d EXOR s ;d:= d EXOR s ;Toán hạng sử dụng như trên +CLR A;xoá thanh ghi A ;xo¸ thanh ghi A +CPL A;Lấy phần bù của A ;LÊy phÇn bï cña A +RL A;Dịch sang trái 1 bit ;DÞch sang tr¸i 1 bit +RLC A;Dịch trái qua cờ C ;DÞch tr¸i qua cê C +RR A;Dịch phải ;DÞch ph¶i +RRC A;Dịch phải qua cờ C ;DÞch ph¶i qua cê C +SWAP A;Chuyển đổi 2 nửa của thanh A ;ChuyÓn ®æi 2 nöa cña thanh A Các lệnh sử lí bit: +SETB bit;bit:=1 ;bit:=1 ;Trong đó bit có thể là: direct bit hoặc cờ C +Các lệnh CLR, CPL ,MOV, ANL, ORL sử dụng với các toán hạng như lệnh trên Các lệnh rẽ nhánh(lệnh nhảy): -Các lệnh nhảy không điều kiện: +SJMP ;Lệnh nhảy trực tiếp tới “rel add” ;”rel add” ở trong phạm vi 128 byte về phía trước tới 217 byte về phía sau vi trí (con trỏ PC)hiện tại. ;LÖnh nh¶y trùc tiÕp tíi “rel add” ;”rel add” ë trong ph¹m vi 128 byte vÒ phÝa tr­íc tíi 217 byte vÒ phÝa sau vi trÝ (con trá PC)hiÖn t¹i. +AJMP ;Nhảy tới địa chỉ 11 bit,địa chỉ này ở trong phạm vi 2kilobyte so với vị trí (PC) hiện tại. ;Nh¶y tíi ®Þa chØ 11 bit,®Þa chØ nµy ë trong ph¹m vi 2kilobyte so víi vÞ trÝ (PC) hiÖn t¹i. +LJMP ;Tương tự lệnh trên chỉ khác phạm vi là 64 kilobyte. ;T­¬ng tù lÖnh trªn chØ kh¸c ph¹m vi lµ 64 kilobyte. +JMP @A+DPTR;Địa chỉ của lệnh tiếp theo là tổng của A và con trỏ dữ liệu DPTR. ;§Þa chØ cña lÖnh tiÕp theo lµ tæng cña A vµ con trá d÷ liÖu DPTR. -Các lệnh nhảy có điều kiện: +JZ ;Nhảy nếu A chứa 0. ;Nh¶y nÕu A chøa 0. +JNZ ;Nhảy nếu A khác 0. ;Nh¶y nÕu A kh¸c 0. +JC ;Nhảy nếu C = 1. ;Nh¶y nÕu C = 1. +JNC ;Nhảy nếu C khác 1. ;Nh¶y nÕu C kh¸c 1. +JB , ;Tương tự lệnh trên chỉ khác thay C là địa chỉ bit. ;T­¬ng tù lÖnh trªn chØ kh¸c thay C lµ ®Þa chØ bit. JNB ,;Nhảy nếu địa chỉ bit là 0. ;Nh¶y nÕu ®Þa chØ bit lµ 0. +CJNE byte1,byte2,;Nhảy nếu nội dung của byte1 và byte2 khác nhau. ;Nh¶y nÕu néi dung cña byte1 vµ byte2 kh¸c nhau. byte1 có thể là: A,Ri,@Ri byte2 có thể là: direct,#data. +DJNZ byte, ;Giảm giá trị của byte,giá trị sau khi giảm khác 0 thì nhảy. ;Gi¶m gi¸ trÞ cña byte,gi¸ trÞ sau khi gi¶m kh¸c 0 th× nh¶y. byte có thể là: Ri, direct. +ACALL và LCALL tương tự với lệnh AJMP và LJMP chỉ khác trước khi nhảy PC được cất vào STACK. +RET;Trở về từ chương trình con,đỉnh stack được nạp vào PC. ;Trë vÒ tõ ch­¬ng tr×nh con,®Ønh stack ®­îc n¹p vµo PC. +RETI;Trở về từ ngắt,đỉnh stack được nạp vào PC và reset phần cứng ngắt ;Trë vÒ tõ ng¾t,®Ønh stack ®­îc n¹p vµo PC vµ reset phÇn cøng ng¾t Lệnh chê một nhịp: +NOP ;không làm gì cả. ;kh«ng lµm g× c¶. KẾT LUẬN: Trong thời gian làm đồ án tốt nghiệp chúng em được sự hướng dẫn tận tình của thầy giáo T.S NGUYỄN TRỌNG THUẤN, T.S LÊ DUY THẠC, các thầy cô trong bộ môn, cùng tập thể các cán bộ, kỹ sư tại công ty THUẬN QUỐC, chóng em đã hoàn thành bản đồ án “Thiết kế hệ thống điều khiển nhiệt độ lò sấy đứng trong dây chuyền gạch ốp lát” với công việc như sau: Khảo sát các công nghệ điển hình trong dây chuyền sản xuất gạch ốp lát Hà Nội. Trên cơ sở đó đề xuất một phương án thiết kế hệ thống điều khiển nhiệt độ lò sấy đứng của dây chuyền sản xuất. Ứng dông Vi xử lí với bộ vi xử lý 80C31 và kĩ thuật số để thiết kế hệ thống điều khiển nhiệt độ lò sấy đứng. Phần thực nghiệm được chạy thử trên bộ mô phỏng Emulator- MICE 51, chương trình được viết bằng ngôn ngữ assembler. Do thời gian có hạn, và còn thiếu kinh nghiệm thực tế nên trong quá trình thiết kế không tránh khỏi những sai sót, vì vậy em rất mong sự đóng góp giúp đỡ của các thầy cô giáo và các bạn để bản đồ án này được ứng dụng vào thực tế. Một lần nữa em xin chân thành cảm ơn các thầy cô đã tận tình giúp đỡ bọn em hoàn thành bản đồ án này. TÀI LIỆU THAM KHẢO: Programming and Interfacing the 8051 Microcontroller- Thư viện trường đại học bách khoa Hà Nội. Tài liệu về lò sấy đứng của nhà máy gạch ốp lát Hà nội. Vi xử lí trong đo lường và điều khiển- Ngô diên Tập. Đo lường và điều khiển bằng máy tính- Ngô diên Tập. Giáo trình lò Silicat- trường đại học bách khoa Hà Nội. Kỹ thuật vi xử lí- Trường đại học bách khoa hà nội- Nhiều tác giả. Kỹ thuật vi xử lý- Văn thế minh. Microcomputer Components SAB 80515/80C515- Siemens

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

  • doc4936.doc