Đề tài Mô hình điều khiển tốc độ động cơ điện một chiều bằng vi điều khiển họ 8051

pdf 72 trang ngocly 1250
Bạn đang xem 20 trang mẫu của tài liệu "Đề tài Mô hình điều khiển tốc độ động cơ điện một chiều bằng vi điều khiển họ 8051", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfde_tai_mo_hinh_dieu_khien_toc_do_dong_co_dien_mot_chieu_bang.pdf

Nội dung text: Đề tài Mô hình điều khiển tốc độ động cơ điện một chiều bằng vi điều khiển họ 8051

  1. LỜI MỞ ĐẦU Ngày nay xu thế động hóa trong các dây truyền sản xuất, các máy móc thiết bị gia công chế tạo trong công nghiệp cho đến các thiết bị dân dụng sử dụng trong gia đình ngày càng là một yêu cầu phổ biến. Cùng với sự phát triển vượt bậc của khoa học kỹ thuật đặc biệt là kỹ thuật điện tử và công nghệ tích hợp đã cho ra đời những chiếc “computer mini” được gọi là “vi điều khiển”. Việc ứng dụng của vi điều khiền trong các máy móc thiết bị nhỏ mang lại tinh tiện lợi và tối ưu hơn so với việc đặt cả một hệ thống vi xử lý để điều khiển. Vi điều khiển được ứng dụng rất rộng rãi trong lĩnh vực điều khiển tự động trong đó có điều khiền tự động động cơ điện một chiều. Trên đây là “mô hình điều khiển tốc độ động cơ điện một chiều bằng vi điều khiển họ 8051” do Thạc sĩ Nguyễn Trọng Thắng hướng dẫn đã thực hiện. Đề tài gồm những nội dung sau: Chương 1: Sơ lược về động cơ điện một chiều Chương 2: Vi điều khiển họ 8051 và bộ điều khiển số PID Chương 3: Thiết kế xây dựng mô hình. Trong quá trình thực hiện chương trình còn gặp nhiều khó khăn đó là tài liệu tham khảo cho vấn đề này đang rất ít,và hạn hẹp. Mặc dù rất cố gắng nhưng khả năng, thời gian có hạn và kinh nghiệm chưa nhiều nên không thể tránh khỏi những sai sót rất mong sự đóng góp ý kiến bổ sung của các thầy cô giáo để đồ án này được hoàn thiện hơn. 53
  2. CHƢƠNG 1. SƠ LƢỢC VỀ ĐỘNG CƠ ĐIỆN MỘT CHIỀU 1.1.ĐẶT VẤN ĐỀ. Cùng với sự tiến bộ của văn minh nhân loại chúng ta có thể chứng kiến sự phát triển rầm rộ kể cả về quy mô lẫn trình độ của nền sản xuất hiện đại. Do tính ưu việt của hệ thống điện xoay chiều: để sản xuất, truyền tải , cả máy phát và động cơ điện xoay chiều đều có cấu tạo đơn giản và công suất lớn, dễ vận hành , máy điện (động cơ điện) xoay chiều ngày càng được sử dụng rộng rãi và phổ biến. Tuy nhiên, động cơ điện một chiều vẫn giữ một vị trí nhất định như trong công nghiệp giao thông vận tải, và nói chung ở các thiết bị cần điều khiển tốc độ quay liên tục trong phạm vi rộng (như trong máy cán thép, máy công cụ lớn, đầu máy điện ). Mặc dù, so với động cơ không đồng bộ để chế tạo động cơ điện một chiều cùng cỡ thì giá thành đắt hơn, do sử dụng nhiều kim loại màu hơn, chế tạo bảo quản cổ góp phức tạp hơn nhưng do những ưu điểm của nó mà máy điện một chiều vẫn không thể thiếu trong nền sản xuất hiện đại. Ưu điểm của động cơ điện một chiều là có thể dùng làm động cơ điện hay máy phát điện trong những điều kiện làm việc khác nhau. Song ưu điểm lớn nhất của động cơ điện một chiều là điều chỉnh tốc độ và khả năng quá tải. Nếu như bản thân động cơ không đồng bộ không thể đáp ứng được hoặc nếu đáp ứng được thì phải chi phí các thiết bị biến đổi đi kèm (như bộ biến tần ) rất đắt tiền thì động cơ điện một chiều không những có thể điều chỉnh rộng và chính xác mà cấu trúc mạch lực, mạch điều khiển đơn giản hơn đồng thời lại 1.2. CẤU TẠO ĐỘNG CƠ ĐIỆN MỘT CHIỀU. Động cơ điện một chiều có thể phân thành hai phần chính: phần tĩnh và phần động. 53
  3. Hình 1.1. Cấu tạo động cơ điện một chiều 1.2.1. Phần tĩnh hay stato. Là phần đứng yên của máy bao gồm các bộ phận sau chính sau: 1.2.1.1. Cực từ chính. Là bộ phận sinh ra từ trường gồm có lõi sắt cực từ và dây quấn kích từ lồng ngoài lõi sắt cực từ. Lõi sắt cực từ làm bằng những lá thép kỹ thuật điện hay thép cacbon dày 0,5 đến 1mm ép lại và tán chặt. Trong động cơ điện nhỏ có thể dùng thép khối. Cực từ được gắn chặt vào vỏ máy nhờ các bulông. Dây quấn kích từ được quấn bằng dây đồng, và mỗi cuộn dây đều được bọc cách điện kỹ thành một khối tẩm sơn cách điện trước khi đặt trên các cực từ. Các cuộn dây kích từ được đặt trên các cực từ này được nối tiếp với nhau như trên (hình 1.2). 53
  4. Hình 1.2. Cấu tạo cực từ chính 1.2.1.2. Cực từ phụ. Cực từ phụ được đặt trên các cực từ chính và dùng để cải thiện đổi chiều. Lõi thép của cực từ phụ thường làm bằng thép khối và trên thân cực từ phụ có đặt dây quấn mà cấu tạo giống như dây quấn cực từ chính. Cực từ phụ được gắn vào vỏ máy nhờ những bulông. 1.2.1.3. Gông từ. Gông từ dùng làm mạch từ nối liền các cực từ, đồng thời làm vỏ máy. Trong động cơ điện nhỏ và vừa thường dùng thép dày uốn và hàn lại. Trong máy điện lớn thường dùng thép đúc. Có khi trong động cơ điện nhỏ dùng gang làm vỏ máy. 1.2.1.4.Các bộ phận khác. Bao gồm: - Nắp máy: Để bảo vệ máy khỏi những vật ngoài rơi vào làm hư hỏng dây quấn và an toàn cho người khỏi chạm vào điện. Trong máy điện nhỏ và vừa nắp máy còn có tác dụng làm giá đỡ ổ bi. Trong trường hợp này nắp máy thường làm bằng gang. - Cơ cấu chổi than: Để đưa dòng điện từ phần quay ra ngoài. Cơ cấu chổi than bao gồm chổi than được đặt trong hộp chổi than nó được môt lò xo tì chặt lên cổ góp. Hộp chổi than được cố định trên giá đỡ và được cách điện với giá. Giá chổi than có thể quay được để điều chỉnh chổi than cho đúng chỗ rồi cố định lại nhờ ốc vít. 1.2 2. Phần quay hay rôto. 53
  5. Bao gồm những phần chính sau: 1.2.2.1. Lõi sắt phần ứng. Dùng để dẫn từ, thường dùng những tấm thép kỹ thuật điện dày 0,5mm phủ cách điện mỏng hai mặt rồi ép chặt với nhau để giảm tổn hao do dòng điện xoáy gây nên. Trên lá thép dập dạng hình rãnh khi ghép lại tạo thành rãnh để đặt dây quấn vào. Đối với các động cơ công suất trung bình và lớn người ta tạo ra các rãnh để tạo thành các lỗ các rãnh thông gió. Lõi sắt này được ép chặt vao trục động cơ. 1.2.2.2. Dây quấn phần ứng. Hình 1.3. Dây quấn phần ứng Dây quấn phần ứng là phần phát sinh ra suất điện động và có dòng điện chạy qua. Dây quấn phần ứng thường làm bằng dây đồng có bọc cách điện. Trong máy điện nhỏ có công suất dưới vài kw thường dùng dây có tiết diện tròn. Trong máy điện vừa và lớn thường dùng dây tiết diện chữ nhật. Dây quấn được cách điện cẩn thận với rãnh của lõi thép. Để tránh khi quay bị văng ra do lực li tâm, ở miệng rãnh có dùng nêm để đè chặt hoặc đai chặt dây quấn. Nêm có làm bằng tre, gỗ hay bakelit. 1.2.2.3. Cổ góp. 53
  6. Hình 1.4. Cấu tạo cổ góp 1.3. PHÂN LOẠI VÀ ĐẶC TÍNH CƠ ĐỘNG CƠ ĐIỆN MỘT CHIỀU. Động cơ điện một chiều được phân loại theo kích từ thành những loại sau: Kích từ độc lập Kích từ song song Kích từ nối tiếp Kích từ hỗn hợp 1.3.1. Động cơ điện một chiều kích từ độc lập và song song. Khi nguồn điện một chiều có công suất vô cùng lớn và điện áp không đổi thì mạch kích từ thường mắc song song với mạch phần ứng, lúc này động cơ được gọi là động cơ kích từ song song (hình 1.5). Hình 1.5. Sơ đồ nối dây động cơ điện một Hình 1.6. Sơ đồ nối dây động cơ điện một chiều kích từ song song chiều kích từ độc lập 53
  7. Khi nguồn điện một chiều có công suất không đủ lớn thì mạch điện phần ứng và mạch kích từ mắc vào hai nguồn một chiều độc lập với nhau lúc này động cơ được gọi là động cơ kích từ độc lập(hình 1.6). Phương trình đặc tính cơ: Theo sơ đồ (hình 1- 6), có thể viết phương trình cân bằng điện áp của mạch phần ứng như sau: Uư = Eư + (Rư + Rf).Iư (1.1) Trong đó: Uư : điện áp phần ứng (V), Eư : sức điện động phần ứng (V), Rư : điện trở của mạch phần ứng (Ω), Rf : điện trở phụ trong mạch phần ứng (Ω), Iư : dòng điện mạch phần (A). Với: Rư = rư + rcf + rb + rct rư : điện trở cuộn dây phần ứng, rcf : điện trở cuộn cực từ phụ rb : điện trở cuộn bù, rct : điện trở tiếp xúc của chổi điện. Sức điện động Eư của phần ứng động cơ được xác định theo biểu thức: (1.2) Với hệ số cấu tạo của động cơ, 53
  8. p – số đôi cực từ chính, N – số thanh dẫn tác dụng của cuộn dây phần ứng, a – số đôi mạch nhánh song song của cuộn dây phần ứng, Φ - từ thông kích từ dưới một cực từ Wb, ω - tốc độ góc, rad/s . Nếu bỏ qua các tổn thất cơ và tổn thất thép thì mômen cơ trên trục động cơ bằng mômen điện từ, ta ký hiệu là M, nghĩa là Mđt = Mcơ = M. Đây là phương trình đặc tính cơ của động cơ điện một chiều kích từ độc lập (1.3) Hình 1.7. Đặc tính cơ điện và đặc tính cơ cơ của động cơ điện một chiều kích từ độc lập. 1.3.2. Động cơ điên một chiều kích từ nối tiếp. 53
  9. Đó là mối quan hệ n = f(M) với U = Uđm, Rđc = const. Sơ đồ động cơ kích từ nói tiếp biểu diễn trên hình 1.8. Động cơ điện một chiều kích từ nối tiếp có cuộn kích từ mắc nối tiêp với cuộn dây phần ứng. n U n’ M Rđc nđm I I 0 0,25Iđm Iđm 0 b) c) a) Hình 1.9 Động cơ điện một chiều kích từ nối tiếp: a)Sơ đồ, b)Đặc tính cơ Từ công thức (1.2) ta có: U I • (R t R dc ) U M (Rt Rdc) n = 2 (1.4) Ce Ce CeCm Trong máy kích từ nối tiếp Ikt = Iư. Ta xét 2 trường hợp: 53
  10. Khi 0 Iđm, máy bão hoà, đặc tính cơ không trùng với đường hypebol nữa (đường nét đứt ở hình 14.3b). Sự thay đổi tốc độ bình thường đối với động cơ nối tiếp xác định theo biểu thức: n' ndm nđm= 100% ndm Trong đó n’-tốc độ quay của động cơ khi tải thay đổi từ định mức tới 25% Qua phân tích trên đây ta thấy đặc tính cơ của động cơ kích từ nối tiếp không có tốc độ không tải. Khi tải giảm quá mức, tốc độ động cơ tăng đột ngột vì vậy không được để động cơ mắc nối tiếp làm việc không tải, trong thực tế không được cho động cơ nối tiếp chạy bằng dây cu-roa. 1.3.3. Động cơ một chiều kích từ hỗn hợp. Động cơ điện một chiều kích từ hỗn hợp cuộn kich từ của nó chia lam 2 cuộn nhỏ. Một cuộn mắc sông song và một cuộn mắc nối tiếp với cuộn dây phần ứng. Hình 1.10. Biểu diễn động cơ kích từ hỗn hợp và đặc tính cơ của nó. 53
  11. n U n 4 n0 n0 W1 1 3 2 0 M I 0 W2 đm I a) c) b) Hình 1.10. Động cơ điện một chiều kích từ hỗn hợp: a)Sơ đồ, b,c) Đặc tính cơ 53
  12. Động cơ gồm 2 cuộn kích từ: cuộn nối tiếp và cuộn song song. Đặc tính cơ của động cơ này giống như đặc tính cơ của động cơ kích từ nối tiếp hoặc song song phục thuộc vào cuộn kích từ nào giữ vai trò quyết định. Ở động cơ nối thuận, stđ của 2 cuộn dây cùng chiều nhưng giữ vai trò chủ yếu là cuộn song song. So sánh đặc tính cơ của động cơ kích từ hỗn hợp với nối tiếp ta thấy ở động cơ kích từ hỗn hợp có tốc độ không tải (kho không tải từ thông nối tiếp bằng không nhưng từ thông kích từ song song khác khác không nên có tốc độ không tải) khi dòng tải tăng lên, từ thông cuộn nối tiếp tác động, đặc tính cơ mang tính chất động cơ nối tiếp Trên hình 14.4b biểu diễn đặc tính n=f(I) của động cơ kích từ song song (đường 1), của động cơ kích từ nối tiếp (đường 2), của động cơ kích từ hỗn hợp nối thuận (đường 3) và đặc tính của động cơ kích từ nối tiếp nối ngược (đường 4) để chúng ta dễ so sánh. Còn hình 14.4c là đặc tính cơ của động cơ kích từ hỗn hợp. 1.4. KHỞI ĐỘNG ĐỘNG CƠ MỘT CHIỀU. Khởi động động cơ là quá trình đưa động cơ từ trạng thái nghỉ (n=0) tới tốc độ làm việc. Chúng ta có các phương pháp khởi động sau: 1.4.1. Khởi động trực tiếp. Đây là phương pháp đóng động cơ trực tiếp vào lưới điện, không qua một thiết bị phụ nào. Dòng khởi động được xác định bằng công thức: U dm I kd (1.7) R t Vì Rt nhỏ nên Ikđ có giá trị rất lớn, đạt (10 30)Iđm. Sự tăng dòng đột ngột làm xuất hiện tia lửa ở cổ góp, xuất hiện xung cơ học và làm sụt điện áp lưới. Phương pháp này hầu như không được sử dụng. 1.4.2. Khởi động dùng điện trở khởi động. 53
  13. Người ta đưa vào rôto một điện trở có khả năng điều chỉnh và gọi là điện trở khởi động (hình 1.11a). Dòng khởi động bây giờ có giá trị: Udm Ikd (1.8) (R t R kd ) U n n0 n Rkđ M 0 Mmax Mc Mmin Rp a) b) Hình 1.11. Động cơ điện một chiều kích từ song song: a)Sơ đồ, b)Đặc tính cơ Điện trở khởi động phải được ngắt dần ra theo sự tăng của tốc độ. Nấc khởi động thứ nhất phải chọn sao cho dòng phần ứng không lớn quá và mômen khởi 53
  14. động không nhỏ quá. Việc lựa chọn số nấc điện trở được trình bày ở các sách về truyền động điện. Khi có cùng dòng phần ứng thì động cơ kích từ nối tiếp có mômen khởi động lớn hơn động cơ kích từ song song. Với các động cơ kích từ song song khi dùng điện trở khởi động phải nối sao cho cuộn kích từ trong mọi thời gian đều được cấp điện áp định mức, để đảm bảo lớn nhất. Nếu trong mạch kích từ có điện trở điều chỉnh thì khi khởi động, để điện trở này ngắn mạch. Trên (hình 1.11b) biểu diễn đặc tính cơ của động cơ 1 chiều khởi động dùng điện trở khởi động (Khi chuyển từ nấc điện trở này sang nấc điện trở khác tốc độ động cơ không đổi). 1.5. ĐIỀU CHỈNH TỐC ĐỘ ĐỘNG CƠ MỘT CHIỀU Các phƣơng pháp điều chỉnh tốc độ Từ biểu thức (14.5a) ta rút ra những phương pháp điều chỉnh tốc độ sau: - Thay đổi điện áp nguồn nạp. - Thay đổi điện trở mạch rôto. - Thay đổi từ thông. 1.5.1. Điều chỉnh tốc độ bằng thay đổi điện áp nguồn nạp. U Từ (1.2) ta thấy khi cho U = var thì n 0 var , nếu Mc =const thì tốc độ Ce n = var. Ta điều chỉnh được tốc độ động cơ. Khi điện áp nguồn cung cấp thay đổi, các đặc tính cơ song song với nhau. Điều chỉnh tốc độ bằng thay đổi điện áp nguồn cung cấp chỉ điều chỉnh được theo chiều giảm tốc độ (vì mỗi cuộn dây đã được thiết kế với Uđm, không thể tăng điện áp đặt lên cuộn dây). Song độ láng điều chỉnh lớn, còn phạm vi điều chỉnh hẹp. Ở (hình 1.12) ta biểu diễn đặc tính cơ của động cơ khi U = var. 53
  15. n U1 U1>U2>U3 U2 U 3 Hình 1.12 Đặc tính cơ khi thay đổi điện áp nguồn cung cấp M 0 1.5.2 Điều chỉnh bằng thay đổi điện trở mạch rôto. Từ (1.3) ta ký hiệu n = M(Rt + Rđc) thì khi M = const mà thay đổi Rđc thì thay đổi được n (độ giảm tốc độ), tức là thay đổi được tốc độ động cơ. Trên (hình 1.13) biểu diễn đặc tính cơ của phương pháp điều chỉnh tốc độ bằng thay đổi điện trở rôto. n n0 n b ®m a R1+R2=0 Hình 1.13. Điều chỉnh tốc độ n d 1 c động cơ một chiều bằng R1 phương pháp thay đổi điện trở R1+R2 mạch rô to n2 e 0 Mc M 53
  16. Phương pháp điều chỉnh tốc độ bằng thay đổi điện trở mạch phần ứng có những ưu khuyết điểm sau: Ưu điểm: Dễ thực hiện, vốn đầu tư ít, điều chỉnh tương đối láng Tuy nhiên phạm vi điều chỉnh hẹp và phụ thuộc vào tải (tải càng lớn phạm vi điều chỉnh càng rộng), không thực hiện được ở vùng gần tốc độ không tải. Điều chỉnh có tổn hao lớn. Người ta đã chứng minh rằng để giảm 50% tốc độ định mức thì tổn hao trên điện trở điều chỉnh chiếm 50% công suất đưa vào. Điện trở điều chỉnh tốc độ có chế độ làm việc lâu dài nên không dùng điện trở khởi động (làm việc ở chế độ ngắn hạn) để làm điện trở điều chỉnh tốc độ. 1.5.3. Điều chỉnh tốc độ bằng thay đổi từ thông. Từ biểu thức: U I R n • t (1.9) Ce Khi M, U = const, = var (thayđổi dòng kích từ) thì n tăng lên. Thậy vậy khi giảm từ thông dòng điện ở rôto tăng nhưng không làm cho tử số biểu thức (14.9) thay đổi nhiều vì độ giảm điện áp ở Rt chỉ chiếm vài % của điện áp U nên khi từ thông giảm thì tốc độ tăng. Song nếu ta cứ tiếp tục giảm dòng kích từ thì tới một lúc nào đó tốc độ không được tăng được nữa. Sở dĩ như vậy vì mômen điện từ của động cơ cũng giảm. Phương pháp này chỉ dùng trong phạm vi khi từ thông giảm tốc độ còn tăng. Hình 1.14 biểu diễn đặc tính cơ khi = var.Phương pháp điều chỉnh tốc độ bằng thay đổi từ thông có những ưu khuyết điểm sau: Ưu điểm: Điều chỉnh tốc độ theo chiều tăng (từ tốc độ định mức), rất láng phạm vi điều chỉnh rộng, tổn hao điều chỉnh nhỏ, dễ thực hiện và kinh tế. 53
  17. Nhược điểm: Không điều chỉnh được tốc độ ở dưới tốc độ định mức. Do những ưu điểm trên phương pháp điều chỉnh tốc độ bằng thay đổi từ thông thường được áp dụng hợp với những phương pháp khác nhằm tăng phạm vi điều chỉnh. n 1 2 1> 2> 3 Hình 1.14. Đặc tính cơ của động 3 cơ một chiều kích từ độc lập khi thay đổi từ thông M 0 Mc Lưu ý: Không được giảm dòng kích từ tới giá trị không, vì lúc này máy chỉ còn từ dư, tốc độ tăng quá lớn gây nghuy hiểm cho các cấu trúc cơ khí của động cơ. Thường người ta thiết kế bộ điện trở điều chỉnh để không khi nào mạch từ bị hở. 1.5.4. Hệ thống máy phát động cơ. 53
  18. Để tăng phạm vi điều chỉnh tốc độ, người ta dùng hệ thống máy phát động cơ điện một chiều (Hình 1.15). n =var MF §C M Diesel C nđm Wktmf Ikt Wkt® I U=var kt c M 0 + Mc - a) b) Hình 1.16 Hệ trống truyền động điện máy phát-động cơ a) Sơ đồ, b)Đặc tính cơ khi thay đổi tốc độ 53
  19. Trong hệ thống này cả máy phát và động cơ đều là máy điện một chiều kích từ độc lập. Để thay đổi tốc độ, trong hệ thống máy phát-động cơ có thể áp dụng phương pháp điều chỉnh điện áp nguồn nạp (thay đổi kích từ máy phát), thay đổi điện trở mạch rôto động cơ và thay đổi từ thông kích từ động cơ. Hệ thống cho ta phạm vi điều chỉnh tốc độ rộng, điều chỉnh được cả 2 chiều tăng và giảm, có độ điều chỉnh rất láng. Tuy nhiên do sử dụng nhiều máy điện một chiều nên đầu tư cho hệ thống khá đắt tiền, do đó hệ thống truyền động điện máy phát động cơ chỉ sử dụng ở những nơi thật cần thiết theo chỉ tiêu chất lượng của hệ thống. Ngày nay máy phát điện một chiều được thay bằng bộ chỉnh lưu, xuất hiện hệ thống: van-động cơ. Hệ thống được cấp điện từ nguồn xoay chiều, có tính chất giốmg hệ máy phát động cơ nhưng rẻ và độ tin cậy cao hơn. 1.6. Hãm động cơ một chiều. Hãm chúng ta nói ở đây là hàm bằng điện. Trong một hệ thống truyền động điện nếu chiều của mômen của động cơ lai trùng với chiều tốc độ quay ta có chế độ động cơ, còn nếu chiều của mômen và chiều tốc độ ngược nhau ta có chế độ hãm. Có 3 chế độ hãm: - Hãm động năng, - Hãm dòng điện ngược, - Hãm trả năng lượng về nguồn. 1.6.1.Hãm động năng. 53
  20. Để thực hiện hãm động năng, phần ứng động cơ được ngắt khỏi lưới (tiếp điểm K mở ra, tiếp điểm K2 đóng lại) và nối qua điện trở hãm hình 14.10a Điện áp bây giờ U = 0, do có động năng, động cơ vẫn quay theo hướng cũ, dòng phản ứng được xác định: U E • E • I u Rt Rt Như vậy dòng điện đổi chiều, mômen tạo ra do động cơ cũng đổi chiều, còn tốc độ vẫn theo chiều cũ, động cơ làm việc ở chế độ hãm. Phương trình tốc độ có dạng: M (Rt Rh ) n 2 CeCm Trên (hình 1.17) đường 2 và 3 biểu diễn hãm ở chế độ động năng. Phương pháp hãm động năng thường được sử dụng để hãm động cơ tới dừng máy. Hãm máy phát + n - n0 Hãm động năng n d a ®m A R t¶i 2 c b K2 Hãm nối E• 3 1 ngược 4 M K K IT D B Mc 0 Ikt C Wkt b) a) -n0 53 Hình 1.17. Hãm điện ở động cơ điện một chiều a)Sơ đồ hãm động
  21. 1.6.2. Hãm dòng điện ngƣợc. Người ta thực hiện bằng 2 cách: - Đưa điện trở hãm lớn vào mạch rôto khi trên trục động cơ có mômen thế năng. - Khi đưa điện trở lớn vào mạch rôto dòng phần ứng giảm, mômen cản trên trục động cơ không đổi (ví dụ hạ hàng) lúc này tốc độ giảm cho tới điểm B đạt tốc độ bằng không. Dưới tác dụng của trọng lượng (hàng hoá) động cơ quay ngược, dòng không đổi chiều, mômen không đổi chiều nhưng tốc độ đổi hướng nên động cơ làm việc ở chế độ hãm (đoạn BC đặc tính 1 trên hình 1.17b), tới điểm e tốc độ rơi hàng có giá trị không đổi. - Đổi chiều điện áp nguồn cung cấp. Còn phương pháp thứ hai thực hiện bằng đổi chiều điện áp nguồn cung cấp, dòng rôto bây giờ có dạng: ( U E • ) (U E • ) I • R t R dc R t R dc Trong biểu thức này Rđc là điện trở thêm vào để hạn chế dòng hãm. Vì dòng Iư đổi chiều, mômen động cơ đổi chiều nhưng tốc độ chưa đổi chiều, động cơ làm việc ở chế độ hãm nối ngược. Trên (hình 1.17b) biểu diễn đặc tính cơ khi hãm nối ngược (đường 4, đoạn df). Tới điểm D khi tốc độ động cơ n=0, muốn dừng máy phải ngắt động cơ ra khỏi lưới, nếu không động cơ bắt đầu quay theo hướng ngược và tăng tốc độ, động cơ làm việc ở chế độ động cơ với chiều quay 53
  22. ngược lại. Thực tế phương pháp hãm này xảy ra ở giai đoạn đầu khi đổi chiều tốc độ động cơ. 1.6.3. Hãm trả năng lƣợng về nguồn (Hãm tái sinh). Do một nguyên nhân nào đó (ví dụ trong điều chỉnh tốc độ bằng giảm từ thông ta chuyển từ tốc độ cao xuống tốc độ thấp) tốc độ rôto lớn hơn tốc độ U E • không tải, lúc này Eư > U nên: Ia < 0, dòng đổi hướng, mômen đổi R t hướng, tốc độ vẫn giữ nguyên chiều cũ, động cơ làm việc như máy phát, đưa năng lượng về nguồn. Ta gọi đó là chế độ hãm trả năng lượng về nguồn (hình 1.17b). Chế độ hãm này rất kinh tế nhưng không hãm tới dừng máy được, chỉ hãm được tới tốc độ không tải thôi. 53
  23. CHƢƠNG 2. VI ĐIỀU KHIỂN HỌ 8051 2.1. PHẦN CỨNG CỦA VI ĐIỀU KHIỂN HỌ 8051. MCS-51 là một họ IC vi điều khiển được sản xuất bởi hãng Intel. Các IC tiêu biểu của họ này là 8031 và 8051. Các sản phẩm MCS-51 thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các phép toán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng những lệnh số học 8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp những hỗ trợ mở rộng on-chip dùng cho những biến 1 bit như là kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tra bit trực tiếp trong điều khiển và những hệ thống logic đòi hỏi sử dụng luận lý. 8951 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượng cao, công suất thấp với 4KB PEROM (flash programmable and erasable read only memory). Thiết bị này được chế tạo bằng cách sử dụng kỹ thuật bộ nhớ không bốc hơi mật độ cao của ATMEL và tương thích với chuẩn công nghiệp MCS-51TM về tập lệnh và các chân ra. Các đặc tính của AT89C51 được tóm tắt như sau : - Tương thích với những sản phẩm MCS -51TM - 4KB PEROM on chip (bộ nhớ có thể được lập trình lại nhanh) - 128 byte RAM nội - Tần số hoạt động từ 0 đến 24MHz - Ba mức khóa bộ nhớ lập trình - 4 port xuất nhập 8 bit - 2 bộ timer/counter 16 bit - 6 nguồn ngắt 53
  24. - Kênh nối tiếp lập trình được - 210 bit được địa chỉ hóa - Một bộ xử lý luận lý (xử lý trên bit) - 64 Kbyte không gian bộ nhớ chương trình mở rộng - 64 Kbyte không gian bộ nhớ dữ liệu mở rộng - Bộ nhân/chia 4µs - Chế độ chờ công suất thấp và chế độ giảm công suất Mô tả các chân của AT89C51: AT89C51 : có 40 chân VCC 40 39 21 38 P0.0/AD0 P2.0/A8 22 37 P0.1/AD1 P2.1/A9 23 36 P0.2/AD2 P2.2/A10 24 35 P0.3/AD3 P2.3/A11 25 34 P0.4/AD4 P2.4/A12 26 33 P0.5/AD5 P2.5/A13 27 32 P0.6/AD6 P2.6/A14 28 P0.7/AD7 P2.7/A15 1 10 2 P1.0 P3.0/RXD 11 3 P1.1 P3.1/TXD 12 4 P1.2 P3.2/INTO 13 5 P1.3 P3.3/INT1 14 6 P1.4 P3.4/TO 15 7 P1.5 P3.5/T1 16 8 P1.6 P3.6/WR 17 P1.7 P3.7/RD 19 29 18 XTAL1 PSEN 9 XTAL2 30 RST ALE/PROG 31 EA/VPP 20 AT89C51 53
  25. P0.0 – P0.7 P2.0 – P2.7 VCC PORT 0 DRIVE PORT 2 DRIVE GND RAM ADDR. RAM PORT 0 PORT 2 FLASH REGISTER LATCH LATCH PROGRAM B ACC STACK ADDRESS REGISTER POINTER REGISTER BUFFER TMP2 TMP1 PC ALU INCREME NTER INTERRUPT, SERIAL PORT, AND TIMER BLOCKS PROGRAM PSW COUNTER PSEN TIMING INSTRUCTION ALE/PROG AND REGISTER DPTR CONTROL EA / V PP RST PORT 1 PORT 3 LATCH LATCH OSC PORT 1 DRIVE PORT 3 DRIVE P1.0 – P1.7 P3.0 – P3.7 SƠ ĐỒ KHỐI 8951 53
  26. Sơ Đồ Chân AT89C51 Port 0 : Từ chân 32 39, có hai chức năng. Nếu ta sử dụng bộ nhớ chương trình trong thì Port 0 là I/O port đa dụng. Nếu sử dụng bộ nhớ ngoài (ROM chương trình, RAM) thì Port 0 có tác dụng như bộ hợp kênh địa chỉ và dữ liệu AD0 AD7. Trong chu kỳ nhận lệnh thì Port 0 chính là địa chỉ byte thấp. Nó cũng nhận byte mã trong lúc lập trình cho EPROM. Port 1 : Từ chân 1 8, có chức năng I/O 8 bit đa dụng dùng để giao tiếp với thiết bị ngoại vi nếu cần. Nó cũng nhận byte địa chỉ thấp trong khi lập trình EPROM và trong khi kiểm tra EPROM. Port 2 : Từ chân 21 28, có hai chức năng. Có thể dùng Port 2 như là một I/O đa dụng hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng (A8 A15). Port 2 cũng nhận địa chỉ byte cao trong lúc lập trình cho EPROM và trong lúc kiểm tra cho EPROM. Port 3 : Là một port công dụng kép trên các chân 10 17. Ngoài chức năng là port xuất nhập hai chiều, các chân của port 3 có các chức năng đặc biệt khác như sau : 53
  27. Bảng Mô Tả Chức Năng Của Port3 Bit Tên Chức năng P3.0 RXD Nhập dữ liệu cho port nối tiếp P3.1 TXD Dữ liệu phát cho port nối tiếp P3.2 INT0 Ngắt 0 bên ngoài P3.3 INT1 Ngắt 1 bên ngoài P3.4 T0 Ngõ vào của timer/couter 0 P3.5 T1 Ngõ vào của timer/couter 1 P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài PSEN : (Program store Enable) Là chân 29. Nó là tín hiệu điều khiển để cho phép bộ nhớ chương trình mở rộng và thường được nối đến chân OE (Output Enable) của một EPROM để cho phép đọc các byte mã lệnh. PSEN sẽ ở mức thấp trong chu kỳ nhận lệnh. Các mã nhị phân của chương trình được đọc từ ROM ngoài qua bus dữ liệu và được chốt vào thanh ghi lệnh của 8951 để giải mã lệnh. Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức thụ động (mức cao). ALE/PROG : (address latch enable) Tín hiệu ra ALE trên chân 30 tương hợp với các vi xử lý 8085, 8088, 8086. 8951 dùng ALE một cách tương tự cho việc giải kênh các bus địa chỉ và dữ liệu. Khi port 0 dùng trong chế độ chuyển đổi của nó : vừa là bus dữ liệu vừa là byte thấp của bus địa chỉ, ALE là tín hiệu để chốt địa chỉ vào thanh ghi bên ngoài 53
  28. trong nửa đầu của chu kỳ bộ nhớ. Sau đó, các đường port 0 dùng để xuất hoặc nhập dữ liệu trong nửa sau của chu kỳ bộ nhớ. Các xung tín hiệu ALE có tần số bằng 1/6 lần tần số dao động trên chip và có thể được dùng làm nguồn xung nhịp cho các phần khác của hệ thống. Nếu xung nhịp trên 8951 là 12MHz thì ALE có tần số 2MHz. Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE bị mất. Chân này cũng được dùng làm ngõ vào cho xung lập trình cho EEPROM trong 8951. EA/Vpp : (External Access) Tín hiệu vào EA trên chân 31 thường được mắc lên cao (+5V ) hoặc mức thấp (GND). Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ 4Kbyte. Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng. Người ta còn dùng EA làm làm chân cấp điện áp +12V khi lập trình cho EEPROM trong 8951. RST : (reset) 53
  29. Ngõ vào RST trên chân số 9 là ngõ reset của 8951. Khi tín hiệu này được đưa lên mức cao (trong ít nhất hai chu kỳ máy), các thanh ghi bên trong 8951 được tải những giá trị thích hợp để khởi động hệ thống. XTAL1 và XTAL2 : Các chân X1 (chân 19) và chân X2 (chân 18) dùng để nối với thạch anh bên ngoài tạo xung nhịp cho 8951 hoạt động. Tần số của thạch anh thường là 12MHz. Vcc và Vss : Chân Vcc (chân 40) dùng để cấp nguồn dương (+5V) và chân Vss (chân 20) được nối với mass. Cấu Trúc I/O Port : Vcc Chân Read Điện trở đọc kéo nội Chân D Q port Port latch latch Chốt ghi Cấu Trúc I/O Port Cấu trúc I/O ports có hai phần : chốt port và chân port. Muốn đọc trạng thái chân port đang nặng tải thì đọc trạng thái chốt port. Đưa chốt port lên 1 làm fet tắt thì chân port mới điều khiển được bởi ngõ I/O. Khi sử dụng port 0 như cổng đa dụng thì phải có điện trở kéo lên nguồn (10K ). 53
  30. Tổ chức bộ nhớ : 8951 có bộ nhớ theo cấu trúc Harvard : có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu. Cả chương trình và dữ liệu có thể ở bên trong, dù vậy chúng có thể mở rộng bằng các thành phần ngoài lên đến tối đa 64KB bộ nhớ chương trình và 64KB bộ nhớ dữ liệu. Bộ nhớ bên trong bao gồm ROM và RAM trên chip, RAM trên chip bao gồm nhiều phần : phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt. FFFF FFFF Code Data Không gian bộ memory memory nhớ 8951 Enabled Enabled via PSEN via RD and WR FF memory 00 0000 0000 Ram đa dụng : (General Purpose RAM) Vùng RAM này gồm 80 byte từ địa chỉ 30H 7FH (Vùng General Purpose RAM) và 32 byte từ địa chỉ 00H 2FH (vùng các thanh ghi). 53
  31. Vùng các bank thanh ghi có thể truy xuất tương tự như vùng General Purpose RAM, tuy nhiên nó còn được sử dụng cho các mục đích khác. Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng cách đánh địa chỉ trực tiếp hoặc gián tiếp. 53
  32. F F F F F F F F RAM đa dụng 7 6 5 4 3 2 1 0 7F FF E E E E E E E E F0 B 7 6 5 4 3 2 1 0 7 7 7 7 7 7 7 7 30 F E D C B A 9 8 E0 D D D D D D D - ACC 2F 7 7 7 7 7 7 7 7 7 6 5 4 3 2 0 7 6 5 4 3 2 1 0 6 6 6 6 6 6 6 6 2E D0 B B B B B F E D C B A 9 8 - - - PSW C B A 9 8 6 6 6 6 6 6 6 6 2D 7 6 5 4 3 2 1 0 B8 B B B B B B B B IP 5 5 5 5 5 5 5 5 7 6 5 4 3 2 1 0 2C F E D C B A 9 8 5 5 5 5 5 5 5 5 2B A A A A A A P3 7 6 5 4 3 2 1 0 B0 - - F C B A 9 8 4 4 4 4 4 4 4 4 2A F E D C B A 9 8 A8 A A A A A A A A IE 4 4 4 4 4 4 4 4 29 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 3 3 3 3 3 3 3 3 28 A0 Không được địa chỉ hóa bit F E D C B A 9 8 P2 9 9 9 9 9 9 9 9 3 3 3 3 3 3 3 3 27 F E D C B A 9 8 7 6 5 4 3 2 1 0 99 SBUF 2 2 2 2 2 2 2 2 26 98 9 9 9 9 F E D C B A 9 8 95 94 93 92 SCON 7 6 1 0 24 2 2 2 2 2 2 2 2 7 6 5 4 3 2 1 0 90 Không được địa chỉ hóa bit P1 25 1 1 1 1 1 1 1 1 F E D C B A 9 8 Không được địa chỉ hóa bit Không được địa chỉ hóa bit 1 1 1 1 1 1 1 1 8D TH1 22 Không được địa chỉ hóa bit 7 6 5 4 3 2 1 0 8C TH0 Không được địa chỉ hóa bit 8B TL1 23 0 0 0 0 0 0 0 0 8A 8 8 8 8 8 8 8 8 F E D C B A 9 8 TL0 89 F E D C B A 9 8 TMOD 21 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 Không được địa chỉ hóa bit 88 TCON 20 Bank 3 87 Không được địa chỉ hóa bit PCON 1F 18 Bank 2 Không được địa chỉ hóa bit 17 83 Không được địa chỉ hóa bit DPH 10 Bank 1 82 8 8 8 8 0F 85 84 83 82 DPL 08 81 7 6 1 0 SP 07 Bank 0 (mặc định cho R0 –R7) 00 80 P0 RAM CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT Toùm Taét Boä Nhôù Döõ Lieäu Treân Chip 8951 53
  33. Ram địa chỉ hoá từng bit : (bit addressable RAM ) 8951 có 210 bit được địa chỉ hóa, trong đó 128 bit là ở các địa chỉ 20H đến 2FH và phần còn lại là trong các thanh ghi chức năng đặc biệt. Ý tưởng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính tiện lợi của vi điều khiển nói chung. Các bit có thể được đặt, xóa, AND, OR, với một lệnh đơn. Hơn nữa, các port I/O cũng được địa chỉ hóa từng bit làm đơn giản phần mềm xuất nhập từng bit. Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH. Các địa chỉ nàyđược truy xuất như các byte hoặc như các bit phụ thuộc vào lệnh được dùng. Ví dụ : để đặt bit 55H ta dùng lệnh sau : SETB 55H Bit 55H thứ 5 thuộc byte 2AH, nếu xử lý theo byte chuỗi lệnh sau cũng có tác dụng tương tự như lệnh trên : MOV A,2AH ORL A,#00100000B MOV A,2AH Các bank thanh ghi : (register banks) 32 bytes thấp nhất của bộ nhớ nội là dành cho các bank thanh ghi. Chúng được chia làm 4 bank (bao gồm các bank 0, 1, 2, 3). Bộ lệnh của 8951 hỗ trợ 8 thanh ghi (R0 R7) và theo mặc định (sau khi reset hệ thống) các thanh ghi này ở các địa chỉ 00H 07H (bank 0). Tuy nhiên bank thanh ghi tích cực có thể thay đổi bằng cách thay đổi trạng thái của hai bit chọn bank thanh ghi (RS0, RS1) trong thanh ghi PSW. Các Thanh Ghi Có Chức Năng Đặc Biệt : (Special function registers) 53
  34. Các thanh ghi nội của 8951 được xem như một phần của RAM trên chip. Vì thế mỗi thanh ghi đều có một địa chỉ. 8951 cung cấp 21 thanh ghi có chức năng đặc biệt (SFRs). Hầu hết các thanh ghi có chức năng đặc biệt được truy xuất theo cách định vị địa chỉ trực tiếp. Một số trong chúng vừa có thể truy xuất theo bit vừa có thể truy xuất theo byte. Bit Ký hiệu Địa chỉ Ý nghĩa PSW.7 CY D7H Cờ nhớ PSW.6 AC D6H Cờ nhớ phụ PSW.5 F0 D5H Cờ 0 PSW.4 RS1 D4H Bit 1 chọn Bank thanh ghi. Bit 0 chọn Bank thanh ghi. 00=bank 0 : địa chỉ 00H 07H PSW.3 RS0 D3H 00=bank1 : địa chỉ 08H 0FH 10=bank2 : địa chỉ 08H 17H 11=bank3 : địa chỉ 18H 1FH PSW.2 OV D2H Cờ tràn. PSW.1 - D1H Dự trữ PSW.0 P D0H Cờ parity chẵn. 53
  35. Thanh ghi PSW (Program Status Word) có địa chỉ tại D0H chứa các bit trạng thái được tóm tắt như sau : Carry flag (PSW.7) ký hiệu là CY, bit địa chỉ là D7H. Cờ carry được set lên 1 nếu có nhớ ở bit 7 trong phép toán cộng hay có mượn ở bit 7 trong phép toán trừ. Auxiliary carry flag (PSW.6) là cờ nhớ phụ, ký hiệu AC và có địa chỉ D6H. Khi cộng số BCD (Binary Code Decimal) cờ AC set lên 1 nếu có nhớ ở bit 3 sang bit 4 hay nếu kết quả của 4 bit thấp có giá trị trong khoảng 0AH 0FH. Cờ zero (Flag 0) : cờ zero được lên 1 nếu kết quả các phép tính là 0. Cờ này rất thuận tiện cho các ứng dụng của người dùng. RS0 và RS1 là 2 bit dùng để xác định bank thanh ghi hoạt động. Chúng bị xoá về 0 sau khi reset hệ thống và có thể được thay đổi bởi phần mềm nếu cần thiết. Ví dụ : các lệnh sau đây sẽ xác định sử dụng bank thanh ghi 3 sau đó đưa nội dung của R7 vào thanh ghi A. SETB RS1 SETB RS0 MOV A,R7 Cờ báo tràn (Overflow Flag) : cờ báo tràn (OV) bị tác động sau một lệnh cộng hoặc trừ nếu có một phép toán bị tràn. Khi cộng hay trừ các số có dấu, phần mềm có thể kiểm tra bit này để xác định kết quả có nằm trong tầm xác định hay không. Khi các số không có dấu được cộng, cờ OV có thể được bỏ qua. Các kết quả lớn hơn +127 hoặc nhỏ hơn –128 sẽ set bit OV. Ví dụ phép cộng sau bị tràn và set bit OV : 53
  36. 15+127=142 Kết quả là một số có dấu –116, không phải kết quả đúng vì vậy cờ OV được set. Bit kiểm tra chẵn lẻ (Parity bit) : Bit parity ký hiệu là P sẽ tự động set lên 1 hoặc về 0 mỗi chu kỳ máy để thiết lập pariry chẵn với thanh ghi tích lũy A. Số các bit 1 trong thanh ghi A cộng với bit P luôn là số chẵn. Nếu thanh ghi A chứa 10010100B thì P sẽ là 1. Bit parity sử dụng rất thường xuyên trong các chương trình liên quan đến port nối tiếp để thêm bit parity trước khi truyền hoặc kiểm tra bit parity sau khi nhận dữ liệu. Thanh ghi B : Thanh ghi B ở địa chỉ F0H, được sử dụng cùng với thanh ghi A cho các phép toán nhân và chia. B cũng được địa chỉ hóa từng bit. Thanh ghi SP : (stack pointer ) Thanh ghi SP là một thanh ghi 8 bit ở địa chỉ 81H. Nó chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp. Các lệnh trên ngăn xếp bao gồm thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp. Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu, lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ đọc dữ liệu và giảm SP. Thanh ghi DPTR : (data pointer) Là thanh ghi 16 bit thường sử dụng làm con trỏ bộ nhớ ngoài (ROM, RAM). DPTR có thể chia làm hai thanh ghi : DPL (địa chỉ 82H ) : byte thấp DPH (địa chỉ 83H ) : byte cao Ví dụ lệnh sau đây sẽ đọc ô nhớ data ngoài địa chỉ 1000H vào thanh ghi A : 53
  37. MOV DPTR,#1000H MOVX A,@DPTR . Các thanh ghi cổng ngoại vi : Các cổng xuất nhập (I/O ports) của 8951 bao gồm port 0 tại địa chỉ 80H ; port 1 tại địa chỉ 90H ; port 2 tại địa chỉ A0H và port tại địa chỉ B0H. Tất cả các port đều được địa chỉ hóa từng bit. Điều đó cung cấp một khả năng giao tiếp thuận lợi. Thanh ghi Timer : 8951 có hai bộ định thời/đếm (Timer/couter) 16 bit được dùng cho việc định thời hoặc đếm sự kiện. Timer 0 có địa chỉ 8AH (TL0, byte thấp) và 8CH (TH0, byte cao ). Timer1 có địa chỉ 8BH (TL1, byte thấp ) và 8DH (TH1, byte cao). Viêc vận hành timer được set bởi thanh ghi TMOD ở địa chỉ 89H và thanh ghi điều khiển Timer TCON ở địa chỉ 88H, chỉ có thanh ghi TCON được địa chỉ hoá từng bit. Thanh ghi port nối tiếp SIO : (serial port register) 8951 có một port nối tiếp trên chip dùng cho việc thông tin với các thiết bị đầu cuối (Terminal) hoặc các Modems hay cho việc giao tiếp với các IC khác mà chúng có bộ phận giao tiếp nối tiếp (các bộ chuyển đổi AD, các thanh ghi dịch ). Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp SBUF ở địa chỉ 99H đảm nhiệm cả hai công việc là truyền và nhận data. Khi truyền dữ liệu thì ghi SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode hoạt động khác nhau được lập trình thông qua thanh ghi TCON ở địa chỉ 88H. Thanh ghi TCON được định vị địa chỉ từng bit. 53
  38. Các thanh ghi phục vụ ngắt : 8951 có 5 nguồn ngắt với hai mức ưu tiên. Việc cho phép ngắt, cấm ngắt được lập trình thông qua thanh ghi điều khiển ngắt IE tại địa chỉ 8AH. Các mức ưu tiên được thiết lập thông qua thanh ghi IP tại địa chỉ 0B8H. Cả hai thanh ghi đều được địa chỉ hóa từng bit. Thanh ghi điều khiển công suất nguồn : (PCON) Thanh ghi điều khiển công suất nguồn PCON ở địa chỉ 87H chứa nhiều bit điều khiển. Chúng được tóm tắt trong bảng sau : Bit Ký hiệu Ý nghĩa 7 SMOD Bit gấp đôi tốc độ baud, nếu được set thì tốc độ baud sẽ tăng gấp đôi trong các mode 1, 2 và 3 của port nối tiếp 6 - Không định nghĩa 5 - Không định nghĩa 4 - Không định nghĩa 3 GF1 Cờ đa dụng bit1 2 GF0 Cờ đa dụng bit0 1* PD Hạ nguồn (power down ), PD=1 vào mode hạ nguồn, thoát khỏi bằng reset 0* IDL Tạm nghỉ (Idle mode) IDL =1 vào mode nghỉ, thoát khỏi bằng tín hiệu ngắt hoặc reset 2.2. HOẠT ĐỘNG CỦA TIMER. 53
  39. 2.2.1. Giới thiệu. 8951 có hai bộ Timet 16 bit và mỗi bộ có 4 chế độ hoạt động. Timer được dùng để tạo khoảng dừng, đếm sự kiện hay định tốc độ baud cho port nối tiếp. Mỗi timer là bộ đếm xung clock 16 bit, vì vậy bit thứ 16 hay tầng cuối cùng chia tần số xung clock cho 65536 (216). Các timer này được đặt mode làm việc và điều khiển bằng phần mềm thông qua các thanh ghi chức năng đặc biệt. Bảng dưới đây liệt kê các thanh ghi chức năng đặc biệt sử dụng cho hoạt động timer : SFR Chức năng Địa chỉ Địa chỉ hóa từng bit TCON Điều khiển 88H Có TMOD Chọn mode 89H Không TL0 Byte thấp timer 8AH Không TL1 0 8BH Không TH0 Byte thấp timer 8CH Không TH1 1 8DH Không Byte cao timer 0 Byte cao timer 1 2.2.2. Thanh ghi TMOD. Địa chỉ 81H, không truy xuất bit, chứa hai nhóm 4 bit dùng thiết lập chế độ làm việc cho timer 1 và timer 0. Tóm Tắt Thanh Ghi TMOD Bit Tên Timer Mô tả 53
  40. 7 GATE 1 bit cổng ; khi GATE =1 Timer chỉ đếm khi và chỉ khi ngõ INT1 = 1 6 C/F 1 bit chọn couter/timer C/F =1 : couter, đếm bằng xung Ck ngoài ngõ T1. C/F = 0 :Timer,xung Ck trong từ dao động nội. 5 M1 1 bit 1 chọn mode 4 M2 1 bit 0 chọn mode 3 GATE 0 bit cổng, Timer chỉ đếm khi INT0 = 1 2 C/F 0 bit chọn couter/timer 1 M1 0 bit 1 chọn mode 0 M0 0 bit 0 chọn mode. Chọn mode : M2 M1 Mode Mô tả 0 0 0 Timer 13 bit, (tương hợp 80487) 0 1 1 Timer 16 bit 1 0 2 Timer 8 bit tự động khởi nạp 1 1 3 Timer tách biệt: Timer 0 : TL0 là bộ đếm 8 bit điều khiển bằng các bit chọn mode Timer 0 TH0 là bộ đếm 8 bit điều khiển bằng các bit chọn mode Timer1. 2.2.3. Thanh ghi TCON. 53
  41. Thanh ghi này chứa các trạng thái và các bit điều khiển cho timer 0 và timer 1. Bốn bit cao trong TCON được dùng để bật tắt hay bao tràn cho timer. Bốn bit thấp trong TCON không có tác dụng gì đối với các timer, tuy nhiên chúng được sử dụng để phát hiện và khởi đầu cho các ngắt ngoài. Bit Ký hiệu đ/chỉ bit Mô tả TCON.7 TF1 8FH Cờ báo tràn Timer 1. phần cứng đặt TF1 = 1 khi timer tràn ; xóa bằng mềm hoặc bằng cứng (khi có ngắt qua Timer 1). TCON.6 TR1 8EH Bit điều khiển ON/OFF Timer 1 TR1 = 1 : chạy; TR1 = 0 : dừng. TCON.5 TF0 8DH Cờ báo tràn Timer 0. TCON.4 TR0 8CH Điều khiển ON/OFF Timer 0. Cờ cạnh ngắt 1 bên ngoài. Đặt bởi phần cứng TCON.3 IE1 8BH khi phát hiện một cạnh xuống ở INT1 ; xoá bằng mềm hoặc bằng cứng. TCON.2 IT1 8AH Kiểu cờ ngắt 1 bên ngoài. Đặt/xóa bằng mềm để ngắt ngoài tác động mức thấp /cạnh xuống. TCON.1 IE0 89H Cờ cạnh ngắt 0 bên ngoài. TCON.0 IT0 88H Cờ kiểu ngắt 0 bên ngoài. 2.2.4. Các Chế Độ Làm Việc Của Timer. 53
  42. Chế độ timer 13 bit : Để tương thích với 8048 (tiền thân của 8951). 3 bit cao của TLx (TL0 hoặc TL1) không dùng. Chế độ hoạt động này thường không được sử dụng trong các thiết kế mới. Xung nhịp TLx THx TFx timer (8 bit) (5 bit) Cờ báo tràn Chế độ timer 16 bit : Hoạt động như timer 16 bit đầy đủ. Cờ báo tràn là bit TFx trong TCON có thể đọc hoặc ghi bằng phần mềm. MSB của giá trị trong các thanh ghi là bit 7 của THx và LSB là bit 0 của TLx. Các thanh ghi timer TLx/THx có thể được đọc hoặc ghi bất cứ lúc nào bằng phần mềm. Xung nhịp TLx THx TFx timer (8 bit) (8 bit) Cờ báo tràn Chế độ tự động nạp lại 8 bit : TLx họat động như một timer 8 bit, trong khi đó THx vẫn giữ nguyên giá trị nạp lại. Khi số đếm tràn từ FFH đến 00H, không những đặt cờ timer mà còn nạp giá trị ở THx vào TLx. Chế độ này rất thông dụng vì sự tràn timer xảy ra sau những khoảng thời gian nhất định và tuần hoàn một khi đã khởi động TMOD và THx. 53
  43. Xung nhịp TLx TFx timer (8 bit) Cờ báo tràn Nạp lại THx (8 bit) Chế độ tách timer : Timer 0 tách thành hai timer 8 bit (TL0 và TH0), TL0 có cờ báo tràn là TF0 và TH0 có cờ báo tràn là TF1. Timer 1 ngưng ở chế độ 3, nhưng có thể khởi động bằng cách chuyển sang chế độ khác. Giới hạn duy nhất là cờ báo tràn TF1 không còn bị tác động khi timer 1 bị tràn vì nó đã được nối tới TH0. Khi timer 0 ở chế độ 3, có thể cho timer 1 chạy và ngưng bằng cách chuyển nó ra ngoài và vào chế độ 3. Nó vẫn có thể được sử dụng bởi port nối tiếp như bộ tạo tốc độ baud hoặc nó có thể được sử dụng bằng bất cứ cách nào không cần ngắt (vì nó không còn được nối tới TF1). 53
  44. Xung nhịp timer TL1 TH1 Xung nhịp timer TF0 TL0 Cờ báo tràn 1/12 FOSC TH0 TF1 Cờ báo tràn 2.2.5. Nguồn Tạo Xung Clock. Có hai nguồn tạo xung nhịp có thể có, được chọn bằng cách ghi vào bit C/T (Counter/Timer) trong TMOD khi khởi động timer. Một nguồn xung nhịp dành cho định khoảng thời gian, cái khác dành cho đếm sự kiện. Bộ dao động trong chip 12 Thạch Xung nhịp anh timer Chân T0 hoặc chân T1 0:(lên) định khoảng thời gian 1:(xuống) đếm sự kiện C/T Nguồn tạo xung clock Định khoảng thời gian : 53
  45. Nếu C/T = 0, hoạt động timer liên tục được chọn và timer được dùng cho việc định khoảng thời gian. Lúc đó, timer lấy xung nhịp từ bộ dao động trên chip. Bộ chia 12 được thêm vào để giảm tần số xung nhịp đến giá trị thích hợp cho phần lớn các ứng dụng. Như vậy thạch anh 12 MHz sẽ cho tốc độ xung nhịp timer 1MHz. Báo tràn timer xảy ra sau một số (cố định) xung nhịp, phụ thuộc vào giá trị ban đầu được nạp vào các thanh ghi timer TLx/THx. Đếm sự kiện : Nếu C/T = 1, timer lấy xung nhịp từ nguồn bên ngoài. Trong hầu hết các ứng dụng, nguồn bên ngòai này cung cấp cho timer một xung khi xảy ra một “sự kiện”, timer dùng để đếm sự kiện. Số sự kiện được xác địng bằng phần mềm bằng cách đọc các thanh ghi TLx/THx vì giá trị 16 bit trong các thanh ghi này tăng thêm 1 cho mỗi sự kiện. Nguồn xung nhịp ngoài có từ thay đổi chức năng của các chân port 3 : P3.4 hay “T0“ dùng làm ngõ vào tạo xung nhịp bên ngoài cho timer 0. P3.5 hay “T1” dùng làm ngõ vào tạo xung nhịp bên ngoài cho timer 1. Trong các ứng dụng bộ đếm, các thanh ghi timer được tăng thêm 1 tương ứng với cạnh xuống của tín hiệu ngõ vào bên ngoài Tx. Mỗi timer mất 2 chu kỳ máy để nhận ra một chuyển tiếp từ 1 xuống 0, do đó tần số ngoài tối đa là 500KHz (giả sử hoạt động ở 12MHz). Thiết lập ban đầu và truy xuất timer : Các timer thường được thiết lập ban đầu một lần ở đầu chương trình để đặt chế độ hoạt động đúng. Sau đó, trong thân chương trình timer được khởi động và dừng, các bit cờ được kiểm tra và xóa, các thanh ghi timer được cập nhập theo yêu cầu của chương trình ứng dụng. TMOD là thanh ghi đầu tiên được thiết lập vì nó đặt chế độ hoạt động. 53
  46. Phương pháp đơn giản nhất để bắt đầu (cho chạy), và dừng các timer là dùng các bit điều khiển chạy : TRx trong TCON. TRx bị xóa sau khi reset hệ thống. Như vậy, các timer theo mặc nhiên là bị cấm (bị dừng). TRx được đặt lên 1 bằng phần mềm để cho timer chạy. Một phương pháp khác để điều khiển các timer là dùng bit GATE trong TMOD và ngõ vào bên ngoài INTx. Đặt GATE = 1 cho phép timer sẽ được điều khiển bằng INTx. Việc này hữu dụng cho việc đo độ rộng xung như sau : Giả sử INT0 ở mức thấp nhưng các xung ở mức cao trong khoảng thời gian đo. Xung nhịp Các thanh ghi timer timer 0 : (lên) : timer dừng 1 : (xuống) : timer chạy TRx Cho chạy và dừng các timer Khởi động timer 0 ở chế độ 1 (chế độ timer 16 bit), với TL0/TH0 = 0000H, GATE = 1 và TR0 = 1. Khi INT0 ở mức cao, timer được “mở cổng” và được cấp xung nhịp 1 MHz (nếu 8951 họat động ở tần số 12 MHz). Khi INT0 xuống thấp, timer bị “đóng cổng” và thời khoảng của xung tính bằng s là số đếm được trong TL0/TH0. (Có thể lập trình INT0 để tạo ra một ngắt khi nó xuống mức thấp). 53
  47. 12 MHz Bộ dao động 12 TL1 TH1 TF trong chip 1 T1 P3.5 0 : (lên) 0 : (lên) 1 : (xuống) 1 : (xuống) C/T TR1 GATE INT1 Timer 1 họat động ở chế độ 1 2.3. HOẠT ĐỘNG CỦA PORT NỐI TIẾP. 8951 có 1 port nối tiếp có thể hoạt động ở nhiều chế độ trên 1 dãy tần số rộng. Chức năng của port nối tiếp là thực hiện chuyển đổi dữ liệu ra từ song song sang nối tiếp và từ nối tiếp sang song song cho dữ liệu vào. Truy xuất phần cứng đến port nối tiếp qua các chân TXD (P3.0) và RXD (P3.1). Hai thanh ghi chức năng đặc biệt cung cấp truy xuất phần mềm đến port nối tiếp là SBUF (địa chỉ 99H) và SCON (địa chỉ 98H). Bộ đệm port nối tiếp (SBUF) thực sự là hai bộ đệm. Viết vào SBUF : nạp dữ liệu sẽ được phát, đọc SBUF : truy xuất dữ liệu thu được. Đây là thanh ghi riêng biệt, thanh ghi chỉ để phát và thanh ghi chỉ để thu. Thanh ghi điều khiển port nối tiếp SCON : Chế độ hoạt động của thanh ghi port nối tiếp được đặt bằng cách ghi vào thanh ghi chế độ port nối tiếp SCON. Thanh ghi này có thể truy xuất từng bit, nó chứa các bit trạng thái và các bit điều khiển. Các bit điều khiển dùng thiết lập chế độ hoạt động cho port nối tiếp và các bit trạng thái để chỉ sự chấm dứt 53
  48. hoặc nhận ký tự. Trước khi sử dụng port nối tiếp phải khởi động SCON cho đúng chế độ. Bảng tóm tắt hoạt động thanh ghi SCON Bit Ký hiệu Địa chỉ Mô tả SCON.7 SM0 9FH Bit 0 của chế độ port nối tiếp SCON.6 SM1 9EH Bit 1 của chế độ port nối tiếp SCON.5 SM2 9DH Bit 2 của chế độ port nối tiếp. Cho phép truyền thông đa xử lý trong các mode 2 và 3 không bị tác động nếu bit thu thứ 9 thu được là 0. SCON.4 REN 9CH Cho phép bộ thu. Phải đặt lên 1 để thu SCON.3 TB8 9BH Bit 8 phát, bit thứ 9 phát trong các chế độ 2 và 3 được đặt/xoá bằng mềm. SCON.2 RB8 9AH Bit 9 thu, bit thứ 9 thu được. SCON.1 TI 99H Cờ ngắt phát. Đặt lên 1 để kết thúc phát, xoá bằng mềm. SCON.0 RI 98H Cờ ngắt thu, đặt lên 1 để kết thúc thu, xoá bằng mềm. Các chế độ hoạt động : Port nối tiếp có 4 chế độ hoạt động có thể lựa chọn bằng cách viết các số 0 hoặc 1 vào các bit SM0 và SM1 trong thanh ghi SCON. Sau đây là bảng tóm tắt các chế độ hoạt động : 53
  49. SM0 SM1 Mode Mô Tả Baudrate 0 0 0 Thanh ghi dịch Cố định (fck/12) 0 1 1 UART 8 bit Thay đổi (đặt bằng timer 1) UART 9 bit Cố định (fck/32 hoặc 1 0 2 fck/64) UART 9 bit Thay đổi (đặt bằng 1 1 3 Timer1) 2.4. HOẠT ĐỘNG NGẮT. Ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời chương trình trong khi điều kiện đó được phục vụ bởi một chương trình khác. Chương trình này gọi là chương trình phục vụ ngắt (ISR). Khi ISR được thực thi xong, chương trình chính tiếp tục ở chỗ mà nó tạm dừng. Như vậy ngắt có thể xảy ra bất cứ lúc nào và ở bất cứ nơi đâu trong chương trình chính. Các ngắt đóng vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển. Chúng cho hệ thống đáp ứng một cách bất đồng bộ với sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi. ISR C/tr chính C/tr chính C/tr chính Tổ Chức Ngắt Trong 8951 : 53
  50. 8951 có 5 nguồn ngắt : Ngắt bằng tín hiệu ngoài qua ngõ INT0 (ngắt ngoài INT0) ; Ngắt bằng tín hiệu ngoài qua ngõ INT1 (ngắt ngoài ) ; Ngắt khi timer 0 tràn (ngắt timer 0), cờ báo tràn TF0 ; Ngắt khi timer 1 tràn (ngắt timer 1), cờ báo tràn TF1 ; Ngắt khi SIO phát/thu xong 1ký tự (ngắt SIO), cờ TI phát, cờ RI thu. Khi có hai hoặc nhiều ngắt đồng thời, hoặc một ngắt xảy ra khi một ngắt khác đang đang phục vụ, có cả hai sự tuần tự hỏi vòng và sơ đồ ưu tiên hai mức dùng để xác định việc thực hiện các ngắt. Việc hỏi tuần tự thì cố định nhưng ưu tiên ngắt thì có thể lập trình được. Cho Phép Và Cấm Ngắt : Mỗi nguồn ngắt được cho phép hoặc cấm ngắt thông qua thanh ghi chức năng đặc biệt IE (địa chỉ A8H) được địa chỉ hóa từng bit. Chức năng của từng bit trong thanh ghi IE như sau : Bảng tóm tắt thanh ghi IE Bit Ký hiệu Địa chỉ Mô tả (1 :cho phép ; 0 : cấm) IE.7 EA AFH Cho phép/cấm toàn bộ IE.6 - AEH Không định nghĩa IE.5 ET2 ADH Cho phép ngắt Timer 2 (8952) IE.4 ES ACH Cho phép ngắt SIO IE.3 ET1 ABH Cho phép ngắt Timer 1 IE.2 EX1 AAH Cho phép ngắt IE.1 ET0 A9H Cho phép ngắt Timer 0 IE.0 EX0 A8H Cho phép ngắt Ví dụ : Khai báo cho phép 3 nguồn ngắt : INT0, INT1, TIMER 0 : 53
  51. MOV IE, #87H Cho phép ngắt INT0 : SETB EX0 Cấm ngắt INT0 : CLR EX0 Ƣu Tiên Ngắt : Mỗi nguồn ngắt được lập trình riêng vào một trong hai mức ưu tiên qua thanh ghi chức năng đặc biệt IP (Interrupt Priority) được địa chỉ hóa từng bit, ở địa chỉ B8H. Bảng tóm tắt thanh ghi IP Bit Ký hiệu Địa chỉ Mô tả (1 :cho phép ; 0 : cấm) IP.7 - - Không định nghĩa IP.6 - - Không định nghĩa IP.5 PT2 BDH Ưu tiên ngắt Timer2 (8052) IP.4 PS BCH Ưu tiên ngắt SIO IP.3 PT1 BBH Ưu tiên ngắt Timer 1 IP.2 PX1 BAH Ưu tiên ngắt INT1 IP.1 PT0 B9H Ưu tiên ngắt Timer0 IP.0 PX0 B8H Ưu tiên ngắt INT0 Ví dụ : Khai báo cho phép ngắt INT0, Timer 0 với ngắt Timer0 ưu tiên hơn MOV IE,#83H Hỏi vòng tuần tự : 53
  52. Nếu có hai ngắt cùng độ ưu tiên đồng thời, sự hỏi vòng tuần tự xác định cái nào được phục vụ trước tiên. Thứ tự ưu tiên của các nguồn ngắt cùng cấp như sau : INT0 TIMER 0 INT1 Tổng kiến trúc TIMER 1 SIO TIMER 2 Tổ Tổ Tổng kiến trúc Tổng kiến trúc Tổng kiến trúc ngắt của 8051 53
  53. Các véc tơ ngắt: Ngắt Cờ Địa chỉ vector Reset hệ thống RST 0000H INT0 IE0 0003H Timer0 TF0 000BH INT1 IE1 0013H Timer 1 TF1 001BH SIO TI hoặc RI 0023H Timer 2 TF2 hoặc EXF2 002BH - Chiều dài cho mỗi đoạn chương trình cho ISR là 8 byte. - Các địa chỉ vector nằm ở đầu chương trình. - Khi CPU được nạp vector ngắt của nguồn ngắt tương ứng thì các cờ báo ngắt sẽ được xóa bằng phần cứng. Trừ trường hợp ngắt SIO, phần cứng không xóa các cờ này (TI, RI). 2.5. lẬP TRÌNH CHO VI ĐIỀU KHIỂN 8051. Hiện nay để lập trình vi điều khiển người ta thường dùng 2 lại ngôn ngữ lập trình đó là: - Ngôn ngữ lập trình Asembly - Ngôn ngữ lập trình C Để chuyển từ ngôn ngữ lập trình sang ngôn ngữ máy để nạp vào vi điều khiển người ta sử dụng một số trình biên dịch sang danhg file .Hex như phần mềm: - PINNACLE - KEIL C 53
  54. 2.6. BỘ ĐIỀU KHIỂN SỐ PID. Phương trình đầu ra của bộ điều khiển PID có dạng như sau: (2.1) Trong đó u (t ) là tín hiệu đầu ra của bộ điều khiển, e(t ) là tín hiệu đầu vào của bộ điều khiển, Kp là hệ số tỷ lệ, Ti là thời gian tích phân, Td là thời gian vi phân. Mặt khác, biến đổi Laplace của phương trình (2.1) có dạng như sau: (2.2) Biến đổi z phương trình (2.2) có dạng như sau: (2.3) Trong đó T là chu kỳ lấy mẫu. Nếu đặt : thì hàm truyền của bộ điều khiển PID có dạng như sau: U ( z ) = aE ( z ) + P( z ) +Q( z ) (2.4) Trong đó: Q( z ) = c (1− z−1 )E ( z ) (2.5) Lưu ý rằng P( z) và Q( z ) chỉ là các biến trung gian để thuận tiện cho việc thực thi bộ điều khiển số với máy tính. 53
  55. CHƢƠNG 3. THIẾT KẾ XÂY DỰNG MÔ HÌNH 3.1. CÁC PHẦN TỬ SỬ DỤNG TRONG MÔ HÌNH. 3.1.1. Động cơ điện một chiều. Động cơ sử dụng trong mô hình là động cơ điện một chiều kích từ độc lập kích từ là nam chân điện vĩnh cửu Hình 3.1. Cấu tạo động cơ một chiều Điện áp định mức là: 24 VDC Công suất định mức: 45 W 3.1.2. Cảm biến tốc độ quang học (Encoder). 53
  56. Hình 3.2. Cấu tạo cảm biến quang Cấu tạo (hình vẽ) Gồm một nguồn sáng và một bộ phân phân sinhquang có thể là diot quang hoặc Tranzitor quang. Đĩa quay được đặtgiữa hai phần tử trên. Cấu tạo của đĩa có thể làm bằng vật liệu trong suốt và có những mảng chắn ánh sáng gắn đều nhau hoặc ngược lại đĩa có thể làm bằng vật liệu không cho ánh sáng chiếu qua trên chu vi của đĩa người ta tạo ra những (lỗ, khe) có khoảng cách đều nhau theo chu vi. Bộ phận phân tích nhận được lượng ánh sáng được điều khiển bởi đĩa quay, sẽ tạo ra một tín hiệu điện có tần số tỷ lệ với tốc độ quay còn biên độ độc lập với vận tốc. Khoảng đo vận tốc phụ thuộc. Một mặt số lần gián đoạn trên đĩa (số phần tử đánh dấu). Một mặt do băng thông của bộ phân tích và mạch điện đi kèm. 3.1.3. Nam châm điện dùng làm phụ tải cho động cơ. 3.1.4. Vi điều khiển 8051. Trong mô hình sử dung vi điều khiển ATM 98S52 3.1.5. Bàn phím điều khiển. Mô hình sử dụng ma trận phím 4 4 3.1.6. Hiển thị tốc độ. Sử dụng 8 đèn led 7 thanh để hiển thị tốc độ đặt và tốc phản hồi 3.1.7. Nguồn một chiều. Sử dụng 2 bộ nguồn một chiều - Nguồn một chiều cấp cho động cơ là nguồn 3A - Nguồn một chiều cấp cho vi điều khiển là nguồn 1,5 A 3.1.8. Van điện tử công suất. Mô hình sử dụng 1 IGBT 53
  57. 3.2. SƠ ĐỒ NGUYÊN LÝ. 220VAC LED 7 5V CT BA 220V/24V 5V 24VDC AT 89S52 IGBT VR Bàn phím BAX DC MOTOR ENCODER NAM CHÂM ÐIEN Hình 3.3. Sơ đồ nguyên lý của mô hình Mô hình điều khiển tốc độ động cơ điện một chiều sử dụng vi điều khiển hoạt động như sau: Động cơ điện một chiều được cấp nguồn 24V từ bộ nguồn biến áp chỉnh lưu. Tốc độ động cơ được điều khiển bằng cách thay đổi điện áp cấp vào phần ứng 53
  58. động cơ thông qua việc đóng mở IGBT. Tốc độ động cơ được thiết lập bằng cách nhấn bàn phím để đặt thông số tốc độ cho động cơ. Vi điều khiển được lập trình để nhận biết tốc độ đặt và hiển thị tốc độ dặt lên 4 LED 7 đoạn. Vạ sau đó nó phát ra xung để điều khiển thời gian mở của IGBT để điều chỉnh điện áp trung bình cấp cho động cơ tương ứng với tốc độ đặt. Đồng thời nó cũng thu nhận tín hiệu phản hồi tốc độ từ encoder để tự động điều chỉnh giữ tốc độ động cơ khi tải thay đổi. Nam châm điện gắn trên trục động cơ đóng vai trò là một phụ tải của động cơ để tạo ra mô mem cản. Tốc độ thực của động cơ được phản hồi về và được hiển thị trên 4 LED 7 đoạn 3.3.SƠ ĐỒ THUẬT GIẢI VÀ CHUƠNG TRÌNH LẬP TRÌNH. 3.3.1. Sơ đồ thuật giải. BEGIN NHAP TOC DO HIEN THI53 TOC DO TIMER1 START PHAT XUNG HIEN THI TOC DO TIMER 2 NHAN XUNG PHAN HOI STOP END
  59. Hình 3.4. Sơ đồ thuật giải 3.3.2. Chương trình lập trình. #include 53
  60. sbit hang1 = P0^0; sbit hang2 = P0^1; sbit hang3 = P0^2; sbit hang4 = P0^3; sbit cot1 = P0^4; sbit cot2 = P0^5; sbit cot3 = P0^6; sbit cot4 = P0^7; #define m 3 unsigned char i; /* Khai bao bien */ const unsigned char M[10]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09}; unsigned long int tdd; //bien xac dinh toc do dat unsigned long int tdph; // bien xac dinh toc do phan hoi unsigned int thousand2,hundred2,tens2,unit2,tens1,unit1,thousand1,hundred1; /*ham quet phim*/ unsigned char quetbanphim(void) { unsigned char x,k; //Quet 4 hang phim ( moi phim tuong ung voi 1 toc do) hang1=0; for(k=0;k<200;k++) { if(P0_5==0) 53
  61. x=700; if(P0_6==0) x=800; if(P0_7==0) x=900; } hang1=1; hang2=0; for(k=0;k<200;k++) { if(P0_5==0) x=4; if(P0_6==0) x=500; if(P0_7==0) x=600; } hang2=1; hang3=0; for(k=0;k<200;k++) { if(P0_5==0) x=100; if(P3_6==0) x=200; if(P0_7==0) 53
  62. x=300; } hang3=1; return x; } // Ham tao tre de quyet led, ham nay chi mang tinh chat tao tre, chu thoi gian thuc trong ham khong dung voi thoi gian tre thuc su trong VDK void delay_ms(unsigned int time) { unsigned int i; unsigned int j; for(i = time;i>0;i ) for(j=0;j<300;j++); } // Ham xoa Led de giam hieu ung chop cua LED ( Do lech so voi tan so nhin thay cua mat ) void clear_led(void) { P2=0x00; // quan lý nguon P1=0xFF; //quan lý data } // Ham quet LED void display(void) { 53
  63. clear_led(); thousand2 = tdd/1000; if (thousand2 == 0) // Neu gia tri trong hang nghin = 0 thi led hang nghin khong sang clear_led(); else { P2_0 = 1; P1=M[thousand2]; delay_ms(m); clear_led(); } hundred2 =(tdd%1000)/100; if ((thousand2 == 0)&&(hundred2 == 0)) // Neu gia tri trong hang nghin, va hang tram deu = 0 thi led hang nghin, hang tram khong sang clear_led(); else { P2_1 = 1; //led6 = 1; led5 = 0; led4=1; led3 = 1;led2 = 1;led1 = 1; P1=M[hundred2]; delay_ms(m); clear_led(); } tens2 = ((tdd%1000)%100)/10; 53
  64. if ((thousand2 == 0)&&(hundred2 == 0)&&(tens2 == 0)) // Neu gia tri trong hang nghin, va hang tram, hang chuc deu = 0 thi led hang nghin, hang tram, hang chuc khong sang. clear_led(); else { P2_2 = 1; //led6 = 1; led5 = 1; led4=0; led3 = 1;led2 = 1;led1 = 1 P1=M[tens2]; delay_ms(m); clear_led(); } unit2 =((tdd%1000)%100)%10; P2_3 = 1; //led6 = 1; led5 = 1; led4=1; led3 = 0;led2 = 1;led1 = 1 P1=M[unit2]; delay_ms(m); clear_led(); thousand1 = tdph/1000; if (thousand1 == 0) // Neu gia tri trong hang nghin = 0 thi led hang nghin khong sang clear_led(); else { P2_4 = 1; //led6 = 0; led5 = 1; led4=1; led3 = 1;led2 = 1;led1 = 1; P1=M[thousand1]; delay_ms(m); clear_led(); } 53
  65. hundred1 =(tdph%1000)/100; if ((thousand1 == 0)&&(hundred1 == 0)) // Neu gia tri trong hang nghin, va hang tram deu = 0 thi led hang nghin, hang tram khong sang clear_led(); else { P2_5 =1; //led6 = 1; led5 = 0; led4=1; led3 = 1;led2 = 1;led1 = 1; P1=M[hundred1]; delay_ms(m); clear_led(); } tens1 = ((tdph%1000)%100)/10; if ((thousand1 == 0)&&(hundred1 == 0)&&(tens1 == 0)) // Neu gia tri trong hang nghin, va hang tram, hang chuc deu = 0 thi led hang nghin, hang tram, hang chuc khong sang. clear_led(); else { P2_6 = 1; //led6 = 1; led5 = 1; led4=0; led3 = 1;led2 = 1;led1 = 1 P1=M[tens1]; delay_ms(m); clear_led(); } 53
  66. unit1 =((tdph%1000)%100)%10; P2_7 = 1; //led6 = 1; led5 = 1; led4=1; led3 = 0;led2 = 1;led1 = 1 P1=M[unit1]; delay_ms(m); clear_led(); } // ham phat xung (xung phat ra voi tan so 1Khz . mot chu ky la 1ms) void khoitaotimer0(void)// Ham khoi tao { EA=0;// Cam ngat toan cuc TMOD=0x02;// Timer 0 che do 2 8 bit auto reload TH0=0x9B;// Gia tri nap lai 155 doi ra so hex TL0=0x9B;// Gia tri khoi tao 155 doi ra so hex ET0=1;// Cho phep ngat timer 0 EA=1;// Cho phep ngat toan cuc TR0=1;// Chay timer 0 bat dau dem so chu ki may } void timer0(void) interrupt 1 //Ngat timer 0 { TR0=0;// Dung chay timer 0 TF0=0;// dem++; if(dem<phantramxung) P3_1=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra chan, xung 5V else P3_1=0;// Neu dem = phan tram xung if(dem==10) 53
  67. dem=0;// Neu dem du 10 thi gan lai bang 0 de bat dau chu ki moi TR0=1;// Cho chay timer } // ham doc xung toc do void khoitaotimer0(void)// Ham khoi tao { EA=0;// Cam ngat toan cuc TMOD=0x02;// Timer 0 che do 2 8 bit auto reload TH1=0x9B;// Gia tri nap lai 155 doi ra so hex TL1=0x9B;// Gia tri khoi tao 155 doi ra so hex ET1=1;// Cho phep ngat timer 0 EA=1;// Cho phep ngat toan cuc TR1=1;// Chay timer 0 bat dau dem so chu ki may } unsigned long int so_xung=0; // so xung trong 1 giay unsigned long int so_vong_phut=0; //so vong quay trong mot phut unsinged long int tick=0; //??m th?i gian #define xung_vao P3_0 //xung dua vao chan nay #define Hight 1 #define Low 0 char Trang_thai_cu=0; void Interrupt_Timer1(void) interrupt TF1_VECTOR //Timer 1 ng?t tràn 1ms/ { tick++; //??m s? milisecond if((xung_vao==Hight)&&(Trang_thai_cu==Low)) { 53
  68. so_xung++; //t?ng s? xung ??m lên 1 ??n v? Trang_thai_cu = Hight; } else if(xung_vao==Low) Trang_thai_cu = Low; if(tick>=1000) // n?u trong 1 giây { so_vong_phut = so_xung/30 * 60 ; //tính s? vòng/phút tdph=so_vong_phut; // c? 1 giây g?i hàm hi?n th? s? vòng/phút display(); tick=0; so_xung=0; so_vong_phut = 0; } } void main (void) { khoitaotimer0(); unsigned char t; unsigned int e; while(t==1) {tdd= quetbanphim(); if(cot1==0&&hang4==0) {t=1;} 53
  69. phantramxung=tdd/10; if(tdd>tdph) { e=tdd-tdph; phantramxung=(tdph+e)/10; } else { e=tdph-tdd; phantramxung=(tdph-e)/10; } } } 53
  70. Kết luận. Sau thời gian làm đồ án tốt nghiệp,dưới sự hướng dẫn tận tình của thầy giáo Thạc sĩ Nguyễn Trọng Thắng, đến nay tác giả đã hoàn thành đồ án của mình. Nội dung chính của đồ án bao gồm: Phần kiến thức: * Tìm hiểu về vi điều khiển 8051 * Tìm hiểu về lập trình C cho 8051 * Tìm hiểu về cảm biến quang. Phần thiết kế thi công: * Xây dựng sơ đồ khối. * Viết chương trình điều khiển. * Thi công chạy thử mô hình. Đề tài này được trình bày theo dạng mô hình mô phỏng. Nên trong quá trình thực hiện luận văn này không tránh khỏi những sai sót. mong rằng đề tài này sẽ được các bạn sinh viên khoá sau sẽ tiếp tục nghiên cứu và khắc phục những mặt hạn chế của đề tài để tạo ra sản phẩm tối ưu phục vụ cho sản xuất và đời sống xã hội. Em xin được sự chỉ bảo, góp ý của thầy cô để đề tài của em được hoàn thiện hơn. Cuối cùng em xin trân trọng cảm ơn thầy Hiệu trưởng, Ban Giám hiệu nhà trường, các phòng ban chức năng, thầy trưởng khoa điện, các thầy cô trong khoa điện và đặc biệt là thầy thạc sĩ Nguyễn Trọng Thắng là người trực tiếp hướng dẫn em thực hiện đề tài. Hải Phòng, ngày tháng năm 2011 Sinh viên thực hiện. Nguyễn Hữu Huyến 53