Lêi nãi ®ÇuTrong sự nghiệp công nghiệp hoá, hiện đại hoá đất n ước vấn đề tự độnghoá sản xuất có vai trò đặc biệt quan trọng Mục tiêu ứng dụng robot trong công nghiệp nhằm nâng cao năng
Trang 1Lêi c¶m ¬n
Em xin chân thành cảm ơn các thầy cô, đặc biệt các thầy trong bộ môn chếtạo máy đã tận tình tạo điều kiện học tập và truyền đạt kiến thức trong suốt khoáhọc để em được thực hiện đề tài này
Đặc biệt em xin chân thành cảm ơn thầy ThS Đặng Xuân Phương và KS.Bùi Đức Hải đã hướng dẫn và giúp đỡ em tận tình trong thời gian vừa qua
Em cũng xin gửi lời cảm ơn tới gia đình, bạn bè đã giúp đỡ và động viên
em trong suốt thời gian học tập cũng như trong thời gian thực hiện đề tài
Trang 2MỤC LỤC
Trang LỜI CẢM ƠN
LỜI NÓI ĐẦU 1
PHẦNI: GIỚI THIỆU TỔNG QUAN 2
CHƯƠNG I: TỔNG QUAN VỀ ROBOT CÔNG NGHIỆP 2
I SỰ RA ĐỜI CỦA ROBOT CÔNG NGHIỆP 2
1 Sự ra đời của robot công nghiệp 2
2 Tình hình phát triển Robot công nghiệp 4
3 Ứng dụng robot công nghiệp 5
4 Các xu thế sử dụng robot trong tương lai 8
II TÌNH HÌNH TIẾP CẬN VÀ ỨNG DỤNG ROBOT CÔNG 11 NGHIỆP Ở VIỆT NAM CHƯƠNGII: GIỚITHIỆU VI ĐIỀU KHIỂN HỌ 8051 12
I GIỚI THIỆU 12 II KHẢO SÁT HỌ VI ĐIỀU KHIỂN 8051 12 1.Cấu trúc 12
2 Chức năng các chân vi điều khiển 14
III TẬP LỆNH CỦA 8051/8031 15 1 Các chế độ đánh địa chỉ 15
2 Các nhóm lệnh của 8051/8031 17
3 Nhóm lệnh xử lý số liệu 17
4 Nhóm lệnh luận lý 18
5 Nhóm lệnh truyền dữ liệu 20
6 Nhóm lệnh truyền điều 21
IV HOẠT ĐỘNG TIMER CỦA 8051 22 1 Giới thiệu 22
2 Thanh ghi Mode Timer Mode 23
3 Thanh ghi điều khiển Timer Tcon (Timer Control Resgister) 24
Trang 34 Các mode và cờ tràn (Timer Mode and Overflow) 24
V CÁC NGUỒN XUNG CLOCK (CLOCK SOURCES) 26 1 Sự bấm giờ bên trong (Interval Timing) 26
2 Sự đếm các sự kiện ( Event counting) 26
3 Sự bắt đầu, sự kết thúc và sự điều khiển các thanh ghi Timer 27
4 Sự khởi động và sự truy xuất các thanh ghi Timer 27
VI HOẠT ĐỘNG CỦA PORT NỐI TIẾP 8051 28
1.Gioi thiệu 28
VII HOẠT ĐỘNG NGẮT CỦA (INTERRUPT) CỦA 8051 31 1 Gíơi thiệu 31
2 Tổ chức Interrupt của 8051 31
2.1 Sự cho phép ngắt và sự cấm ngắt 32
2.2 Sự ưu tiên ngắt (Interrupt Priority) 33
2.3 Sự kiểm tra vòng quét liên tiếp 34
2.4 Việc xử lý các sự ngắt (processing Interrupt) 35
2.5 Các vectơ ngắt (Interrupt vectors) 35
CHƯƠNG III:MẠCH CHUYỂN ĐỔI ADC 37
I Gíơi thiệu ADC 0809 37
PHẦN 2: TÍNH TOÁN VÀ THIẾT KẾ CHƯƠNG I: TÍNH TOÁN VÀ THIẾT KẾ ĐỘNG HỌC VÀ ĐỘNG LỰC HỌC 40
I PHÂN TÍCH NHIỆM VỤ VÀ ĐẶC ĐIỂM PHÔI 40 II CHỌN PHƯƠNG ÁN THIẾT KẾ 40 1 Phân tích các phương án 41
2 Sơ đồ động và hệ toạ độ của Robot NTQP – 01 41
III TÍNH TOÁN ĐỘNG HỌC ROBOT 43
1 Giải bài toán thuận 45
2 Phương trình động học ngược của robot 2.1 Giải thích các ký hiệu và ý nghĩa của chúng 46
Trang 42.2 Xây dựng công thức 48
IV TÍNH TOÁN ĐỘNG LỰC HỌC ROBOT 51 1 Xây dựng công thức 51
2 Vận tốc, gia tốc 52
3 Động năng tay máy 53
4 Thế năng tay máy 56
5 Mô hình động lực học tay máy 57
6 Tính toán 58
CHƯƠNG II: THIẾT KẾ CHẾ TẠO BỘ PHẬN CƠ KHÍ 62
CHƯƠNG III: THIẾT KẾ CHẾ TẠO BỘ PHẬN ĐIỀU KHIỂN 65
I SƠ ĐỒ MẠCH KHỐI TRUNG TÂM 65
II SƠ ĐỒ MẠCH KHỐI GIAO TIẾP 67
III SƠ ĐỒ MẠCH CỦA BỘ CHUYỂN ĐỔI ADC 809 69 IV CẢM BIẾN 70 V SƠ ĐỒ MẠCH ĐIỀU KHIỂN ĐỘNG CƠ 71 CHƯƠNG IV: VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN 72
I: TÓM TẮT CHƯƠNG TRÌNH ĐIỀU KHIỂN 72
II: VIẾT CHƯƠNG TRÌNH CHO PC 74
1 Màn hình điều khiển 74
2 Chương trình 74
III: CHƯƠNG TRÌNH VIẾT CHO VI XỬ LÝ 92
CHƯƠNG V: KẾT QUẢ NGHIÊN CỨU 126 I MÔ HÌNH THẬT VÀ MÔ TẢ QUÁ TRÌNH TEST THỬ 126 1 Mô hình thật 127 2 Mô tả quá trình test thử 129 II HƯỚNG DẪN SỬ DỤNG 130 CHƯƠNG IV: KẾT LUẬN VÀ ĐỀ XUẤT Ý KIẾN 132 I LỜI KẾT 132
Trang 5Lêi nãi ®Çu
Trong sự nghiệp công nghiệp hoá, hiện đại hoá đất n ước vấn đề tự độnghoá sản xuất có vai trò đặc biệt quan trọng
Mục tiêu ứng dụng robot trong công nghiệp nhằm nâng cao năng suất dâychuyền, nâng cao chất lượng và tăng khả năng cạnh tranh của sản phẩm, đồngthời cải thiện điều kiện làm việc Do đó yêu cầu hệ thống sản xuất phải có tínhlinh hoạt cao để đáp ứng với sự biến đổi th ường xuyên của thị trường hàng hoácạnh tranh Robot công nghiệp là một bộ phận cấu thành không thể thiếu trongviệc tạo ra những hệ thống sản xuất tự động đó
Trong những năm gần đây phong trào nghiên cứu, và chế tạo robot thửnghiệm đã phát triển mạnh, nhất là từ năm 2002, khi sinh viên trong các trườngđại học và cao đẳng trên cả nước tham gia cuộc thi Robocon được tổ chức hàngnăm Năm qua trường ta cũng đã đạt kết quả khá tốt trong cuộc thi Robocon V ìvậy các thầy trong bộ môn đã tạo điều kiện cho em được thực hiện đề tài này đểnghiên cứu và hiểu biết thêm một số lĩnh vực mới như : điện tử, điều khiển tựđộng , tin học
Tuy đã có nhiều cố gắng trong thời gian thực hiện đề t ài song do khả năngbản thân còn nhiều hạn chế nên bài báo cáo của em không tránh khỏi nhữngthiếu sót Vì vậy em rất kính mong các quý thầy cô v à tất cả những ai quan tâmđến đề tài này góp ý để em hiểu và hoàn thiện đề tài
Nha Trang, tháng 11 năm 2007
Sinh viên thực hiệnĐào Đăng Quang
Trang 6PHẦN I: GIỚI THIỆU TỔNG QUAN
CHƯƠNG I
TỔNG QUAN VỀ ROBOT CÔNG NGHIỆP
I SỰ RA ĐỜI CỦA ROBOT CÔNG NGHIỆP
1 Sự ra đời của robot công nghiệp
Nhu cầu nâng cao năng suất và chất lượng sản phẩm ngày càng đòi hỏi cácứng dụng rộng rãi các phương tiện tự động hoá sản xuất Xu hướng tạo ra nhữngdây chuyền về thiết bị tự động có tính linh hoạt cao đang h ình thành Các thiết bịnày đang thay thế dần các máy tự động “cứng” chỉ đáp một việc nhất định tronglúc thị trường luôn luôn đòi hỏi thay đổi mặt hàng về chủng loại, kích cỡ, tínhnăng… Vì thế ngày càng tăng nhanh nhu cầu ứng dụng Robot để tạo ra các hệthống sản xuất tự động linh hoạt
Thuật ngữ “Robot” lần đầu tiên xuất hiện năm 1922 và vào khoảng nhữngnăm 50 của thế ký 20, ở Hoa Kỳ đã xuất hiện những tay máy chép hình điềukhiển từ xa trong các phòng thí nghiệm vật liệu phóng xạ
Năm 1954 George C.Devol đã thiết kế một thiết bị có tên là “Cơ cấu bảnlề” dùng trong chuyển hàng theo chương trình Đến năm 1956 Devol cùng vớiJoseph F Engelber, một kỹ sư trẻ của công nghiệp hàng không đã tạo ra loạiRobot công nghiệp đầu tiên năm 1959 ở thành phố Unimation Chiếc Robotcông nghiệp được đưa vào ứng dụng đầu tiên năm 1961 Ở một nhà máy ô tôcủa General Motors tại Trenton, New Jersey, Hoa Kỳ
Năm 1967 Nhật Bản mới nhập chiếc Robot công nghiệp đầu tiên từ công tyAMF của Hoa Kỳ Đến năm 1990 có hơn 40 công ty Nhật Bản, trong đó cónhững công ty khổng lồ như công ty Hitachi và công ty Mitsubishi, đ ã đưa ra thịtrường quốc tế những loại robot nổi tiếng
Từ những năm 70 việc nâng các tính năng của robot đã chú ý lắp đặt thêmcác cảm biến ngoại tín hiệu để nhận biết môi tr ường làm việc Tại trường đạihọc Stanfood đã tạo ra loại loại Robot lắp ráp tự động điều khiển bằng máy tínhtrên cơ sở xử lý thông tin từ cảm biến lực v à thị giác Vào thời gian này công ty
Trang 7IBM đã chế tạo loại Robot có cảm biến xúc giác v à cảm biến lực điều khiểnbằng máy tính để lắp ráp các máy in gồm 20 cụm chi tiết.
Vào giai đoạn này ở nhiều nước cũng tiến hành những nghiên cứu tương
tự, tạo ra các loại Robot điều khiển bằng máy tính, có lắp đặt các thiết bị cảmbiến và các thiết bị giao tiếp người máy Hiện nay các loại xe Robot ( RobotCar) đang được ưa chuộng đưa vào hoạt động các hệ thống sản xuất tự động linhhoạt
Từ những năm 80, nhất là những năm 90, do áp dụng rộng rãi các tiến bộ
kỹ thuật về xử lý và công nghệ thông tin, số lượng Robot công nghiệp đã giatăng Giá thành giảm tính năng có nhiều bước vượt bậc Nhờ vậy Robot côngnghiệp đã có vai trò quan trọng trong các dây chuyền tự động sản xuất hiện đại.Ngày nay chuyên ngành khoa học về Robot “Robotics” đã trở thành mộtlĩnh vực rộng trong khoa học, bao gồm các vấn đề cấu trúc c ơ cấu động học, lậptrình quỹ đạo, cảm biến tín hiệu, điều khiển chuyển động
Thuật ngữ “ Robot Công nghiệp” được hiểu là những thiết bị tự động linhhoạt Bắt chước được các chức năng lao động công nghiệp con ng ười Nói đếnthiết bị tự động linh hoạt là nhấn mạnh đến khả năng thao tác với nhiều bậc tự
do, được điều khiển tự động và lập trình thay đổi được Còn nói đến sự bắtchước các chức năng lao động công nghiệp của con ng ười là nói đến sự khônghạn chế từ các chức năng lao động chân tay đ ơn giản đến trí khôn nhân tạo Tuỳtheo loại hình công việc loại hình lao động cần đến chức năng đó hay không?Đồng thời cũng nói đến mức độ cần thiết bắt chước được như con người haykhông?
2 Tình hình phát triển Robot công nghiệp
Gần nửa thế kỷ có mặt trong sản xuất, Robot công nghiệp đ ã có một lịch sửphát triển hấp dẫn Vì thế hiện nay Robot công nghiệp đang được ứng dụng rộngrãi trong các dây chuyền tự động sản xuất ở các nước phát triển
Biểu đồ sử dụng robot công nghiệp ở một số n ước
Trang 83 Ứng dụng robot công nghiệp
3.1 Mục tiêu ứng dụng robot công nghiệp
Mục tiêu ứng dụng Robot công nghiệp nhằm nâng cao năng suất dâychuyền công nghệ, giảm giá thành, nâng cao chất lượng và khả năng cạnh tranhcủa sản phẩm, đồng thời cải tiến điều kiện lao động Những ưu điểm mà Robotcông nghiệp mang lại:
Robot có thể thực hiện một quy trình thao tác hợp lý bằng hoặc hơn ngườithợ lành nghề một cách ổn định trong suốt thời gian l àm việc Vì thế Robot cóthể góp phần nâng cao chất lượng và tăng khả năng cạnh tranh của sản phẩm.Hơn thế nữa Robot có thể nhanh chóng thay đổi công việc để thích nghi với sựbiến đổi mẫu mã, kích cỡ sản phẩm theo yêu cầu của thị trường cạnh tranh.Khả năng giảm giá thành sản phẩm do ứng dụng Robot là vì giảm đượcđáng kể chi phí cho người lao động nhất là các nước có mức cao về tiền lươnglao động cộng các khoản phụ cấp và bảo hiểm xã hội Theo số liệu của Nhật Bảnthì nếu một Robot làm việc thay thế cho một người thợ thì tiền mua Robot chỉ
Trang 9việc mấy ca Còn ở Mỹ thì trung bình một giờ Robot làm việc đem lại tiền lời là13USD.
Việc áp dụng Robot có khả năng làm tăng năng suất dây chuyền công nghệ
Sở dĩ như vậy vì nếu tăng nhịp độ khẩn trương của dây chuyền sản xuất Nếukhông thay thế con người bằng Robot thì người thợ không thể theo kịp hoặcchóng mệt mỏi Theo hãng Fanue, Nhật Bản thì năng suất có thể tăng lên tới 3lần
Ứng dụng Robot có thể cải thiện điều kiện lao động Đó l à ưu diểm nổi bậtnhất mà chúng ta cần quan tâm Trong thực tế sản xuất có rất nhiều n ơi ngườilao động phải làm việc suốt buổi trong môi trường rất bụi bặm, ẩm ướt, nóngnực, ồn ào quá mức cho phép nhiều lần Thậm chí nhiều n ơi người lao động cònlàm việc trong môi trường độc hại nguy hiểm đến sức khoẻ con ng ười, dễ bịnhiễm chất độc…
3.2 Một số lĩnh ứng dụng Robot công nghiệp
Một trong các lĩnh vực đó là kỹ nghệ đúc Thường trong phân xưởng đúccông việc rất đa dạng, điều kiện làm việc nóng nực, bụi bặm, mặt hàng thay đổiluôn và chất lượng sản phẩm đúc phụ thuộc vào quá trình thao tác Việc tự độnghoá hoàn toàn hay một phần quá trình đúc bằng các dây chuyền tứ động thôngthường với các máy tự động chuyên dùng đòi hỏi phải có các thiết bị phức tạpđầu tư lớn Ngày nay ở nhiều nước sử dụng rộng rãi Robot tốt để tự động hoácông nghệ đúc, nhưng chủ yếu là để phục vụ các máy đúc áp lực Robot có thểlàm nhiều việc như: rót kim loại nóng chảy vào khuôn, lấy vật đúc ra khỏikhuôn, cắt mép thừa, làm sạch vật đúc hoặc làm tăng bền vật đúc bằng cáchphun cát… Dùng Robot phục vụ các máy đúc áp lực có nhiều ưu điểm ví dụđảm bảo ổn định chế độ làm việc, chuẩn hoá về thời gian thao tác, về nhiệt độ vàđiều kiện tháo vật đúc ra khỏi khuân ép Bởi thế chất l ượng vật đúc tăng lên.Trong ngành gia công áp lực công việc cũng khá nặng nề, dễ gây mệt mỏinhất là trong các xưởng, xưởng rèn, dập nên đòi hỏi phải sớm áp dụng robot
Trang 10công nghiệp Trong phân xưởng rèn Robot có thể thực hiện được nhiều việc, ví
dụ đưa phôi thừa vào lò nung, lấy phôi đã nung nóng ra khỏi lò, mang nó đếnmáy rèn, chuyển lật phôi tác dụng khi rèn và xếp lại vật đã rèn vào giá hoặcthùng Sử dụng các loại Robot đơn giản nhất cũng có thể tăng năng suất từ 1.5đến 2 lần và hoàn toàn giảm nhẹ sức lao động của công nhân So với các phươngtiện cơ giới và tự động khác phục vụ các máy rèn dập thì Robot có ưu điểmnhanh hơn và chính xác hơn,cơ động hơn
Các quá trình hàn và nhiệt luyện thường bao gồm nhiều công việc nặngnhọc, độc hại và ở nhiệt độ cao Do vậy cũng cần áp dụng Robot công nghiệp.Robot được sử dụng rộng rãi nhất là trong việc tự động hoá quá trình hàn,đặc biệt trong kỹ nghệ ô tô
Robot được sử dụng rộng rãi trong gia công và lắp ráp Thường người ta sửdụng Robot cho các công việc tháo lắp phôi v à sản phẩm cho các máy gia côngbánh răng, máy khoan, máy tiện bán tự động
Trong ngành chế tạo máy và dụng cụ đo chi phí về lắp ráp thường chiếmđến 40% giá thành sản phẩm Trong lúc đó mức độ cơ khí hoá lắp ráp không quá
từ 10% đến 15% đối với sản phẩm h àng loạt là 40% Bởi vậy việc tạo ra và sửdụng Robot có ý nghĩa rất quan trọng
Trang 114 Các xu thế sử dụng robot trong tương lai:
Robot ngày càng thay thế nhiều lao động.
Trong tương lai kỹ thuật Robot sẽ tận dụng hơn nữa các thành tựu khoa họcliên nghành phát triển cả về phần cứng lẫn phần mềm v à ngày càng chiếm lĩnhnhiều ‘trận địa’’trong công nghiệp Số l ượng lao động được thay thế ngày càngnhiều vì một mặt Robot ngày càng rẻ do hàng vi điện tử giảm giá liên tục, mặtkhác chi phí tiền lương và các khoản phụ cấp cho người lao động ngày càngtăng
Robot càng chở nên chuyên dụng
Trang 12Khi Robot công nghiệp ra đời người ta thường cố gắng để biểu thị hết khảnăng của nó Vì thế xuất hiện nhiều loại Robot vạn năng có thể l àm được nhiềuviệc trên dây chuyền Tuy nhiên, thực tế chứng tỏ rằng Robot chuyên dụng đơngiản hơn, chính xác hơn, học việc đơn nhanh hơn, quan trọng hơn là giá thành rẻhơn so với Robot vạn năng Các Robot chuyên dụng hiện đại đều được cấu thành
từ các modun vạn năng Xu thế modun hoá Robot ng ày càng phát triển nhằmchuyên môn hoá việc chế tạo các modun và từ các modun đó sẽ cấu thành cáckiểu Robot khác nhau thích hợp với từng loại công việc
Robot ngày càng đảm nhận được nhiều loại công việc lắp ráp
Công đoạn lắp ráp thường chiếm tỷ lệ cao so với tổng thời gian sản xuấttrên toàn bộ dây chuyền Công việc khi lắp ráp lại đ òi hỏi phải rất cẩn thận, nhẹnhàng, tinh tế, chính xác nên cần thợ có tay nghề cao và phải làm việc căngthẳng suốt ngày
Khả năng thay thế con người ở những khâu lắp ráp ngày càng hiện thực là
do đã áp dụng được nhiều thành tựu khoa học mới trong thiết kế chế tạo Robot
Ví dụ tạo ra những cấu hình đơn giản và rất chính xác dựa trên cơ sở sử dụng cácvật liệu vừa bền, vừa nhẹ Đồng thời đ ược thừa hưởng kỹ thuật nhận và biến đổi
tín hiệu (sensor) Đặc biệt là kỹ thuật nhận và xử lý ảnh (vision) cũng như kỹ
thuật tin học với các ngôn ngữ bậc cao, Robot công n ghiệp đã xuất hiện trênnhiều công đoạn lắp ráp phức tạp
Robot di động càng trở nên phổ biến.
Trong các nhà máy hiện đại tên gọi phương tiện dẫn đường tự động AVG
đã trở thành quen biết Loại đơn giản là những chiếc xe vận chuyển trong nội bộphân xưởng được điều khiên theo chương trình với 1 quỹ đạo định sẵn Càngngày các thiết bị loại này càng được hiện đại hoá nhờ áp dụng kỹ thuật vision 3chiều, kỹ thuật sensor tín hiệu ra, kỹ thuật thông tin vô tuyến hoặc d ùng tia hồngngoại vv… Vì vậy AVG đã có thể hoạt động linh hoạt trong các phân xưởng Đó
là những Robot di động và gọi là Robocar Một hướng phát triển quan trọng của
Trang 13Robocar là không di chuyển bằng các bánh xe mà di chuyển bằng chân, thíchnghi với mọi địa hình.
Robot đi được bằng chân tự leo bậc thang là một đối tượng đang rất đượcchú ý trong nghiên cứu Không những sử dụng trong công nghiệp h ạt nhân, haycông nghiệp quốc phòng mà phát triển trong cả công nghiệp dân dụng thôngthường
Robot ngày càng trỏ nên tinh khôn hơn.
Trí khôn nhân tạo là một vấn đề rất được quan tâm nghiên cứu với các mụcđích khác nhau Kỹ thuật robot cũng từng bước áp dụng các kết quả nghiên cứu
về trí khôn nhân tạo và đưa vào ứng dụng công nghiệp Trước hết là sử dụng các
hệ chuyên gia các hệ thị giác nhân tạo, mạng nơron, nhận biết giọng nói,vv…Cùng với những thành tựu trong nghiên cứu trí khôn nhân tạo Robot ngàycàng có khả năng đảm nhận nhiều nguyên công trên dây chuyền sản xuất đòi hỏi
“nhìn được” (vison robot), robot “lắp ráp” ( robot assembly), robot “cảnh báo” (alarm robot) vv…
Để thông minh hóa robot bên cạnh việc lắp thêm các modul cảm biến “nộitín hiệu” và các modul cảm biến “ngoại tín hiệu” thì đồng thời có thể thông minhhoá robot bằng các chương trình phần mềm có khả năng tự thích nghi v à tự xử lýcác tình huống vv
Trang 14Như vậy bằng cách bổ sung các modul cảm biến và các modul phần mềmphù hợp thì có thể nâng cấp cải tiến thông minh hoá nhiều loại Robot Tuy nhi ênbản thân các robot này phải có các cơ cấu chấp hành linh hoạt và chính xác.Ngày nay có nhiều loại robot tông minh khôngnhững có thể l àm việc trong cácphân xưởng công nghiệp mà còn thao tác được ở bênngoài, trên các địa hìnhphức tạp như các robot vũ trụ (spce robot), robot tự hành (walking robot), robotcần cẩu (roborane), tạo dựng từ các modun robot song song vv…
II TÌNH HÌNH TIẾP CẬN VÀ ỨNG DỤNG ROBOT CÔNG NGHIỆP
Ở VIỆT NAM
Trong giai đoạn trước năm 1990 hầu như trong nước chưa du nhập và kỹthuật robot, thậm chí chưa nhận được nhiều thông tin kỹ thuật về lĩnh vực n ày.Tuy vậy, với mục tiêu tiếp cận kỹ thuật mới mẻ này, trong nước đã triển khai các
đề tài nghiên cứu khoa học cấp nhà nước Đè tài 58.01.03 trong giai đoạn 81-85
và đề tài 52B0.03.01 trong giai đoạn 86-89 Kết quả của những đề tài này khôngnhững đáp ứng được yêu cầu tiếp cận mà còn có những ứng dụng ban đầu vào kỹthuật bảo hộ lao động và phục vụ công tác đào tạo cán bộ ở nước ta
Giai đoạn tiếp theo 1990 các ngành công nghiệp trong nước bắt đầu đổimới Nhiều cơ sở đã nhập ngoại nhiều dây chuyền thiết bị mới Đặc biệt l à ở một
số doanh nghiệp liên doanh với nước ngoài đã nhập một số loại robot phục vụmột số công việc sau đây:
- Tháo lắp các dụng cụ cho các trung tâm gia công hoặc các máy CNC
- Lắp ráp các linh kiện điện tử
- Tháo sản phẩm ở các máy ép nhựa tự động trong đó có loại thao tác phốihợp với hệ thống giám sát, điều khiển bằng camera
- Hàn vỏ xe ô tô
- Phun phủ các bề mặt
Tuy nhiên còn có hàng chục cơ sở trong nước lúc mua dây chuyền đãkhông mua các Robot trong danh mục các thiết bị của dây chuyền chào hàng.Trong đó một số cơ sở đã nhận thấy phải có robot mới đảm bảo chất l ượng sản
Trang 15phẩm của dây chuyền như trong thiết kế Vì vậy đã xuất hiện các nhu cầu cầnthiết các Robot đó.
Một sự kiện đáng quan tâm là từ tháng 4/98 nhà máy Rorze/Robotech đãbước vào hoạt động ở khu công nghiệp Nomura Hải Ph òng Đây là nhà máy đầutiên ở Việt Nam chế tạo và lắp ráp Robot Đó là loại Robot có cấu trúc rất đơngiản nhưng chính xác dùng trong sản xuất chất bán dẫn Nhà máyRozre/Robotech có vốn đầu tư 46 triệu USD do Nhật Bản đầu tư
Trong những năm gần đây thì việc áp dụng các loại Robot vào các dâychuyền sản xuất ngày càng được sử dụng rộng rãi ở các doanh nghiệp Ví dụ nhưcác loại Robot: Robot hàn, Robot phun sơn ở các công ty sản xuất và lắp ráp ô
tô Đặc biệt là ở các công ty sản xuất và lắp ráp các linh kiện điện tử Đây làcông việc đòi hỏi chính xác cao, và thường lặp lại nên dễ gây mệt mỏi cho ngườilàm vì vậy sử dụng Robot ở các công ty này là rất phổ biến Ngoài ra hiện nay ởcác phân xưởng sản xuất sử dụng rất nhiều loại xe Robocar hoặc ở các công việctrong môi trường độc hại, thường xuyên tiếp xúc với hoá chất độc hại thì cũng sửdụng Robot làm thay con người
Hiện nay ở một số trường Đại Học đã thành lập bộ môn chuyên ngành vềRobot và đang rất được sự quan tâm của nhiều sinh vi ên mà tiêu biểu là cáctrường Đại Học Bách Khoa Hà Nội, Bách Khoa TPHCM, Đại Học S ư Phạm KỹThuật TPHCM… Đặc biệt từ năm 2002 h àng năm VTV3 tổ chức cuộc thi sángtạo Robot châu Á Thái Bình Dương Đây là sân chơi đã được rất nhiều sinh viêncủa các trường Đại Học kỹ thuật hưởng ứng tham gia Hiện nay tại trường ĐạiHọc Nha Trang đã có bộ môn Cơ Điện Tử Tuy nhiên do mới thành lập nên mônhọc Robot chưa có nhiều điều kiện để phát triển và chưa có nhiều sinh viên tìmhiểu về lĩnh vực mới này Đây là đề tài đầu tiên nghiên cứu về lĩnh vực này, nêntrong quá trình thực hiện còn gặp nhiều khó khăn
Trang 16CHƯƠNG II
GIỚI THIỆU VI ĐIỀU KHIỂN HỌ 8051
Hiện nay có rất nhiều họ vi điều khiển như 8051, AVR, 8088, vv Ở đề tàitôi dùng họ vi điều khiển 8051 cùng với các IC chuyên dùng để có thể giao tiếpvới bên ngoài, đáp ứng đầy đủ các yêu của đề tài đặt ra Họ 8051 được chọn vìnhững lý do sau đây:
* Vi điều khiển 8051 trên thị trường phổ biến và giá thành chấp nhận được
* Các bus địa chỉ và các bus dữ liệu có thể mở rộng khả năng chuyển đổi
dữ kliệu cho nhau linh hoạt nhờ lập trình phần mềm
* Tính linh động của lập trình giúp cho việc mở rộng các ứng dụng
I GIỚI THIỆU
Bộ vi điều khiển viết tắt là: Micro_controller, là mạch tích hợp trên mộtchip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống Theocác tập lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thôngtin, xử lý thông tin, đo thời gian hoặc tiến hành đóng mở một cơ cấu nào đó.Các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển , điều khiển hoạtđộng của TV, máy giặt, đầu lọc Laser, điện thoại, l ò vi ba,…
Trong hệ thống sản xuất tự động, bộ vi điều khiển đ ược sử dụng trongRobot, dây chuyền tự động Các hệ thống càng “thông minh” thì vai trò của hệ
vi điều khiển càng quan trọng
II KHẢO SÁT HỌ VI ĐIỀU KHIỂN 8051
1 Cấu trúc
IC vi điều khiển 8051/8031 thuộc họ MCS51 có các đặc điểm:
- 4 byte ROM ( được lập trình bởi nhà sản xuất chí có ở 8051)
- 128 bit RAM
- 4 Port In/ Out 8 bit
- Hai bộ định thời gian 16 bit
- Giao tiếp nối tiếp
- 64 KB không gian bộ nhớ chương trình mở rộng
Trang 17- 64 KB không gian bộ nhớ dữ liệu mở rộng
- Một bộ xử lý luận lý ( thao tác trên các bit đơn)
- 210 bit được địa chỉ hoá
- Bộ nhân/ chia 4µs
Phần chính của vbi điều khiển 8051/8031 l à bộ xử lý trung tâm(CPU: Central Processing Unit) bao g ồm:
Thanh ghi tích luỹ A
Thanh ghi tích luỹ phụ B, dùng cho phép nhân và chia
Đơn vị logic học ( ALU: Arithmic Logical Un it)
Từ trạng thái chương trình (PSW: Prorgam Status Word)
Bốn băng thanh ghi
Con trỏ ngăn xếp
Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thờigian và logic
Đơn vị xử lý trung tâm nhập trực tiếp xung từ bộ giao động, ngo ài ra còn
có khả năng đưa một tín hiệu giữ nhịp từ bên ngoài
Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển 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 gian hoặc cũng có thể là giao diện nối tiếp
2 Chức năng các chân vi điều khiển
Trang 18a Port0: là port có 2 chức năng ở trên chân từ 32 đến 39 trong các thiết kế
cỡ nhỏ (không dùng bộ nhớ mở rộng) có 2 chức năng như các đường I/O Đốivới các thiết kế cỡ lớn ( với bộ nhớ mở rộng) nó đ ược kết hợp kênh giữa với cácbus
b Port1: là một port I/O trên các chân 1_8 Các chân được ký hiệu P1.0,P1.1, P1.2… có thể dùng cho các thiết bị ngoài nếu cần Port1 không có chứcnăng khác, vì vậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài
c Port2: là một port công dụng kép trên các chân 21_28 được dùng như cácđường xuất nhập hoặc là các byte cao của bus địa chỉ đối với các thiết kế d ùng
bộ nhớ mở rộng
d Port3: là một port công dụng kép trên các chân 10_17 Các chân của portnày có nhièu chức năng, các công dụng chuyển đổi có liên hệ với các đặc tín đặcbiệt của 8051 như ở bảng sau:
Bit Tên Chức năng chuyển đổi
P3.0 RXD Dữ liệu nhận cho port nối tiếp
P3.1 TXD Dữ liệu phát cho port nối tiếp
Trang 19P3.2 INTO Ngắt 0 bên ngoài
P3.3 INT1 Ngắt 1 bên ngoài
P3.4 TO Ngõ vào của timer/counter 0
P3.5 T1 Ngõ vào của timer/ counter1
P3.6 WR Xung ghi bộ nhớ dữ rliệu ngoài
P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài
8051 vận hành với nguồn đơn +5V Vcc được nối và chân 40 và Vss (GND)được nối vào chân 20
Bộ nhớ bên trong bao gồm ROM (8501) và RAM trên chip, RAM trên chipbao gồm nhiều phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hoá từng bit, cácbank thanh ghi và các thanh ghi chức năng đặc biệt
RAM bên 8051/8031 được chia giữa các bank thanh ghi (00H_1 FH), RAMđịa chỉ hoá từng bit (20H_2FH), RAM đa dụng (30H_7FH) v à các thanh ghichức năng đặc biệt (80H_FFH)
III TẬP LỆNH CỦA 8051/8031
Tập lệnh 8051/8031 có 255 lệnh gồm 139 lệnh 1 byte, 92 lệnh 2byte v à 24lệnh 3 byte
1 Các chế độ đánh địa chỉ
Trong tập lệnh có 8 chế độ đánh địa chỉ:
1.1 Thanh ghi địa chỉ
8051/8031 có 4 bank thanh ghi, mỗi bank có 8 thanh ghi đánh số từ R0 đếnR7 Tại mỗi thời điểm chỉ có một bank thanh ghi đ ược tích cực Muốn chọnbank thanh ghi nào ta chỉ cần gán các bit nhị phân thích hợp vào RSI(PSW.4) vàRS0(PSW.3) trong thanh ghi trạng thái chương trình (PSW)
Ngoài ra, một số thanh ghi đặc biệt như thanh ghi tích luỹ, con trỏ dữ liệu
… cũng được xác định trong các lệnh nên không cần các bit địa chỉ Trong cáclệnh này thanh ghi tích luỹ được xác định là “A”, con trỏ dữ liệu là “DPTR”thanh đếm chương trình là “PC”, cờ nhớ “C”, cặp thanh ghi tích luỹ B l à “AB”
Trang 201.3 Địa chỉ gián tiếp
R0 và R1 được dùng để chứa địa chỉ ô nhớ mà lệnh tác động đến Người taquy ước dùng dấu @ trước R0 hoặc R1
1.4 Địa chỉ tức thời
Người ta dùng dấu # trước các toán hạng tức thời Các hạng toán đó có thể
là một hằng số, một ký tự hay một biểu thức toán học… Tr ường hợp dịch sẽ tựđộng tính toán và thay thế dữ liệu trực tiếp vào mã lệnh
1.5 Địa chỉ tương đối
Địa chỉ tương đối được dùng trong các điểm nhảy 8051/8031 dùng giá trị 8bit có dấu để cộng thêm vào thanh ghi đếm chương trình (PC) Tầm nhảy củalệnh này trong khoảng từ -128 đến 127 ô nhớ Trước khi cộng, thanh ghi PC sẽtăng đến địa chỉ theo sau lệnh nhảy rồi tính toán địa chỉ offset cần thiết để nhảyđến địa chỉ yêu cầu Như vậy địa chỉ mới là địa chỉ tương đối so với lệnh kế tiếpchứ không phải là bản thân lệnh nhảy Thường lệnh này có liên quan đến nhãnđược định nghĩa trước
1.6 Địa chỉ dài
Địa chỉ chỉ dùng cho lệnh LCALL và LJIMP Các lệnh này chiếm 3 byte vàdùng 2 byte sau ( byte 2 và byte3) đ ể định địa chỉ đích của lệnh (16 bit) Ưuđiểm của lệnh này có thể có thể sử dụng trong toàn bộ vùng nhớ 64 Kbyte Tuynhiên, lệnh này chiếm nhiều byte và lệ thuộc vào vị trí vùng nhớ
1.7 Địa chỉ tham chiếu
Địa chỉ tham chiếu dùng một thanh ghi cơ bản( hoặc thanh ghi đếm chươngtrình PC hoặc thanh ghi con trỏ dữ liệu DPTR) v à địa chỉ offset (trong thanh ghi
Trang 21tích luỹ A) để tạo địa chỉ được tác động cho các lệnh JMP hoặc MOVC Cácbảng nhảy và bảng tìm kiếm dễ dàng được tạo ra để sử dụng địa chỉ tham chiếu.
- chuyển điều khiển
Các chi tiết thiết lập lệnh:
RN: thanh ghi R0 đến R7 của bank thanh ghi được chọn
Data: 8 bit địa chỉ vùng dữ liệu bên trong Nó có thể dùng RAM dữ liệutrong (0_127) hoặc các thanh ghi chức năng đặc biệt
@Ri: 8 bit vùng RAM dữ liệu bên trong (0_125) được đánh giá địa chỉgián tiếp qua thanh ghi R0 hoặc R1
#Data: Hằng 8 bit chứa trong câu lệnh
#Data16: Hằng 16 bit chứa trong câu lệnh
Addr16: 16 bit địa chỉ đích được dùng trong lệnh LCALL và LJMP
Addr11: 11 bit địa chỉ đích được dùng trong lệnh LCALL và SJMP
Rel: byte offset 8 bit có dấu được dùng trong lệnh SJMP và những lệnhnhảy có điều kiện
Bit: Bit được định địa chỉ trực tiếp trong RAM dữ liệu nội hoặc các thanhghi có chức năng đặc biệt
3 Nhóm lệnh xử lý số liệu
ADD A,Rn (1 byte, 1 chu trình máy): c ộng nội dung thanh ghi RN vàothanh ghi A
ADD A,data (2,1): cộng trực tiếp 1 byte vào thanh ghi A
ADD A,@Ri (1,1): cộng gián tiếp nội dung RAM chứa tại địa chỉ đ ượckhai báo trong Ri vào thanh ghi A
ADD A,#data (2,1): Cộng giữ liệu tức thời vào A
Trang 22ADD A,Rn (1,1): Cộng thanh ghi và cờ nhớ vào A.
ADD A,@Ri(1,1): Cộng gián tiếp nội dung RAM và cờ nhớ vào A
ADDC A,#data(2,1): Cộng dữ liệu tức thời và cờ nhớ vào A
SUBB A,Rn (1,1): Trừ nội dung thanh ghi A cho nội dung thanh ghi Rn v à
cờ nhớ
SUBB A,data(2,1): Trừ trực tiếp A cho một số và cờ nhớ
SUBB A,@Ri(1,1): Trừ gián tiếp A cho một số và cờ nhớ
SUBB A,#data(2,1): Trừ nội dung A cho một số tức thời và cờ nhớ
INC A (1,1): Tăng nội dung thanh ghi A lên 1
INC Rn (1,1): Tăng nội dung thanh ghi Rn lên 1
INC data (2,1): Tăng dữ liệu trực tiếp lên 1
INC @Ri (1,1): Tăng gián tiếp nội dung vùng RAM lên 1
DEC A (1,1): Giảm nội dung thanh ghi A xuống 1
DEC Rn (1,1): Giảm nội dung thanh ghi Rn xuống 1
DEC data (2,1): Giảm dữ liệu trực tiếp xuống 1
DEC @Ri (1,1): Giảm gián tiếp nội dung vùng RAM xuống 1
INC DPTR (1,2): Tăng nội dung con trỏ dữ liệu lên 1
MUL AB(1,4): Nhân nội dung thanh ghi A với nội dung thanh gh i B
DIV AB (1,4): Chia nội dung thanh ghi A cho nội dung thanh ghi B
DA A(1,1): Hiệu chỉnh thập phân thanh ghi A
ANL A,#data (2,1): AND nội dung thanh ghi với dữ liệu tức thời
ANL data,A (2,1): AND một dữ liệu trực tiếp với A
ANL data, #data ( 3,2): AND một dữ liệu trực tiếp với A một dữ liệu tứcthời
Trang 23ANL C,bit (2,2): AND cờ nhớ với 1 bit trực tiếp.
ANL C,/bit (2,2): AND cờ nhớ với bù 1 bit trực tiếp
ORL A,Rn (1,1): OR thanh ghi A với thanh ghi Rn
ORL A,data (2,1): OR thanh ghi A v ới một dữ liệu trực tiếp
ORL A,@Ri (1,1): OR thanh ghi A với một dữ liệu gián tiếp
ORL A,#data (2,1): OR thanh ghi A với một dữ liệu tức thời
ORL data,A (2,1): OR một dữ liệu trực tiếp với thanh ghi A
ORL data,#data (3,1): OR một dữ liệu trực tiếp với một dữ liệu tức thời.ORLC,bit (2,2): OR cờ nhớ với một bit trực tiếp
ORL C,/bit (2,2): OR cờ nhờ với bù của một bit trực tiếp
XRLA,RN (1,1): XOR thanh ghi A v ới thanh ghi Rn
XRL A,data (2,1): XOR thanh ghi A v ới một dữ liệu trực tiếp
XRL A,@Ri (1,1): XOR thanh ghi A v ới một dữ liệu gián tiếp
XRL A,#data (2,1): XOR thanh ghi A v ới một dữ liệu tức thời
XRL data,A (2,1): XOR một dữ liệu trực tiếp với thanh ghi A
XRL data,#data (3,1): XOR một dữ liệu trực tiếp với một dữ liệu tức thời.SETB C (1,1): Đặt cờ nhớ
SETB bit (2,1): Đặt một bit trực tiếp
CLR A (1,1): Xoá thanh ghi A
CLR C (1,1): Xoá cờ nhớ
CPL A (1,1): Bù nội dung thanh ghi A
CPL C (1,1): Bù cờ nhớ
CPL bit (2,1): Bù một bit trực tiếp
RL A (1,1): Quay trái nội dung thanh ghi A
RLC A (1,1): Quay trái nội dung thanh ghi A qua cờ nhớ
RR A (1,1): Quay phải nội dung thanh ghi A
RRC a (1,1): Quay phải nội dung thanh ghi A qua cờ nhớ
SWAP (1,1): Quay trái nội dung thanh ghi A 1 nibble (1/2 byte)
Trang 245 Nhóm lệnh truyền dữ liệu
MOV A, Rn (1,1) Chuyển nội dung thanh ghi Rn vào thanh ghi A
MOV A, data (2 1) : Chuyển dữ liệu trực tiếp vào thanh ghi A
MOV A, @Ri (1,1): Chuyển dữ liệu gián tiếp vào thanh ghi A
MOV A, #data (2,1):Chuyển dữ liệu tức thời vào thanh ghi A
MOV Rn,data (2,2): Chuyển dữ liệu trực tiếp vào thanh ghi Rn
MOV Rn,#data (2,1):.Chuyển dữ liệu tức thời vào thanh ghi Rn
MOV data,A (2,1):Chuyển nội dung thanh ghi A vào một dữ liệu trựctiếp
MOV data, Rn (2,2):Chuyển nội dung thanh ghi Rn vào một dữ liệu trựctiếp
MOV data,data (3,2):Chuyển một dữ liệu tức thời vào một dữ liệu trựctiếp
MOV data,@Ri (2,2):chuyển một dữ liệu gián tiếp vào dữ liệu gián tiếpMOV data,#data (3,2): Chuyển một dữ liệu tức thời vào một dữ liệu trựctiếp
MOV@Ri,A (1,1):Chuyển dữ liệu thanh A vào một dữ liệu gián tiếp
MOV@Ri,data (2,2): Chuyển một dữ liệu trực tiếp vào một dữ liệu giántiếp
MOV@Ri,#data (2,1):Chuyển một dữ liệu tức thời vào dữ liệu gián tiếp.MOV DPTR,#data (3,2):Chuyển 1 bít hằng 16 vào thanh con trỏ dữ liệu.MOV C, bit (2,1):Chuyển 1 bít trực tiếp vào cờ nhớ
MOV bit, C (2,2): Chuyển cờ nhớ vào 1 bít trực tiếp
MOV A,@A+DPTR (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ là
@A+DPTR vào thanh ghi A
MOV A,@A+PC (1,2): Chuyển byte bộ nhớ chương trình có địa chỉ
@A+PC thanh ghi A
MOV A,@Ri (1,2): Chuyển dữ liệu ngoài (8 bit địa chỉ) vào thanh
Trang 25MOVX A,@DPTR (1,2): Chuyển dữ liệu ngoài (16 bit địa chỉ) vàothanh ghi A.
MOVX @Ri,A (1,2):Chuyển dữ liệu nội dung A ra dữ liệu ngo ài (8bit địa chỉ)
MOVX @DPTR, A (1,2):Chuyển nội dung A ra dữ liệu bên ngoài (16bit địa chỉ)
PUSH data (2,2): Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP
POP data (2,2): Chuyển dữ liệu trực tiếp vào ngăn xếp và giảm SP.XCH A,Rn (1,1): Trao đổi dữ liệu thanh ghi Rn và thanh ghi A
XCH A,data (2,1): Trao đổi giũa thanh ghi A và 1 dữ liệu trực ti ếp
XCH A, @Ri (1,1): Trao đổi giữa thanh ghi A và dữ liệu gián tiếp
6 Nhóm lệnh truyền điều
ACALL addr11 (2,2): Gọi chương trình con dùng địa chỉ trực tiếp
LCALL addr16 (3,2): Gọi chương trình con dùng địa chỉ dài
RET (1,2): Trở về từ chương trình con
RETI (1,2): Trở về từ lệnh gọi ngắt
AJMP addr11 (2,2): Nhảy tuyệt đối
LJMP addr16 (3,3): Nhảy dài
SJMP rel (2,2): Nhảy ngắn
JMP @A+DPTR (1,2): Nhảy gián tiếp từ con trỏ dừ liệu
JZ rel (2,2): Nhảy nếu A=0
JNZ rel (2,2): Nhảy nếu A=1
JC rel (2,2) : Nhảy nếu cờ nhớ được dặt
JNC rel (2,2): Nhảy nếu cờ nhớ không được đặt
JB bit,rel (3,2): Nhảy tương đương đối nếu bít trực tiếp được đặt
JNB bit,rel (3,2): Nhảy tương đối nếu bít trực tiêps không được đặt.JBC bit,rel (3,2): Nhảy tương đối nếu bít trực tiếp được đặt, rồi xoá bit.CJNE A,data,rel (3,2): So sánh dữ liệu tức thời với Avà nhảy nếu khôngbằng
Trang 26CJNE A,#data,rel (3,2): So sánh d ữ liệu tức thời với A và nhảy nếukhông bằng.
CJNE @Ri,#data,rel (3,2): So sánh dữ liệu tức thời với dữ liệu gián tiếp
và nhảy nếu không bằng
DJNZ Rn, rel (2,2): Giảm thanh ghi Rn và nhảy nếu không bằng
DJNZ data, rel (3,2): Giảm dữ liệu trực tiếp và nhảy nếu không bằng
IV HOẠT ĐỘNG TIMER CỦA 8051
1 Giới thiệu
Bộ định thời của Timer là 1 chuỗi các Flip Flop được chia làm 2, nó nhậntín hiệu vào là 1 nguồn xung clock, xung clock đưa vào FlipFlop thứ nhất làxung clock của FlipFlop thứ 2 mà nó cũng chia tần số này cho 2 và cứ tiếp tục
Vì mỗi tầng kế tiếp chia cho 2, nên Timer tầng phải chia cho tần số clockngõ vào cho 2n Ngõ ra của tầng cuối cùng là clock của FlipFop tràn Timer hoặc
cờ mà nó kiểm tra bằng phần mềm hoặc sinh ra ngắt.G ía trị nhị phân trong các
FF của bộ Timer có thể được nghỉ như đếm xung clock hoặc đếm các sự kiệnquan trọng bởi vì Timer đựơc khởi động.Ví dụ Timer 16 bit có thể đếm từFFFFH sang 0000H
Các Timer được ứng dụng thực tế cho các hoạt động định h ướng 8051 có
bộ Timer 16 bit, mỗi Timer có 4 mode hoạt động Các Timer d ùng để đếm giờ,đếm các sự kiện cần thiết và sinh ra tốc độ của tốc độ Baud bởi sự gắn liền Portnối tiếp
Mỗi sự định thời là 1 Timer 16 bit,do đó tầng cuối cùng là tầng thứ 16 sẽchia tần số clock vào cho 216=65536
Trong các ứng dụng định thời, 1 Timer được lập trình để tràn ở 1 khoảngthời gian đều đặn và được set cờ tràn Timer Cờ được dùng để đồng bộ chươngtrình để thực hiện 1 hoạt động như việc đưa tới 1 tầng các ngõ vào hoặc gửi dữliệu ra các ngõ ra.Các ứng dụng khác có sử dụng việc ghi g ì đều đều của Timer
để đo thời gian đã trôi qua 2 trạng thái (ví dụ đo độ rộng xung) Việc đếm một sự
Trang 27kiện được dùng để xác định số lần xuất hiện của sự kiện đó, tức th ờii gian trôiqua giữa các sự kiện.
TMOD Mode 88H NOTL0 Timer 0 low - byte 8AH NOTL1 Timer 1 low - byte 8BH NOTH0 Timer 0 high - byte 8CH NOTH1 Timer l high - byte 8DH NO
2 THANH GHI MODE TIMER MOD E
Thanh ghi mode gồm hai nhóm 4 bit: 4 bit thấp đặt mode hoạt động choTimer0 và 4 bit cao đặt mode hoạt động cho Timer 1 8 bit của thanh ghi TMODđược tóm tắt như bảng sau:
Bit Name Timer Description
C/T = 0 : Ghi giờ đều đặn
5 M1 1 Bit chọn Mode của Timer1
4 M0 1 Bit chọn Mode của Timer1
2 C/T 0 Bit chọn Count/Timer của Timer0
1 M1 0 Bit chọn Mode của Timer0
0 M0 0 Bit chọn Mode của Timer0
Hai bit M0 và M1 để chọn chế độ hoạt động của 2 Timer
Trang 28M1 M0 MODE DESCRIPTION
TMOD không có bit định vị, nó thường được LOAD 1 lần bởi phần mềm ởđầu chương trình để khởi động mode Timer Sau đó sự định giờ có thể dừng lại,đựơc khởi động lại như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt củaTimer khác
3 THANH GHI ĐIỀU KHIỂN TIMER TCON (TIMER CONTROL REGISTER).
Thanh ghi điều khiển bao gồm các bit trạng thái v à các bit điều khiển bởiTimer 0 và Timer 1 Thanh ghi TCON có bit định vị Hoạt động của từng bitđược tóm tắt như sau:
Cờ tràn Timer 1 Đặt bởi phần cứngkhi tràn, xoá bằng phần mềm hoặckhi xử lý ngắt quãng
TCON6 TR1 8EH Bit điều khiển Timer 1 chạy/ dừngTCON5 TR0 8DH Cờ báo tràn Timer 0
TCON4 TR0 8CH Bit điều khiển Timer 0 chạy/ dừngTCON3 IE1 8BH Cờ ngắt ngoài 1( cạnh xuống)
TCON2 IT1 8AH Chọn kiểu ngắt cho kênh 1
TCON1 IE0 89H Cờ ngắt ngoài 0(cạnh xuống)
TCON0 IT0 88H Chọn kiểu ngắt cho kênh 0
4 CÁC MODE VÀ CỜ TRÀN(TIMER MODE AND OVERFLOW)
8051 có 2 Timer là Timer 0 và Timer 1.Ta dùng ký hi ệu TLx và THX đểchỉ 2 thanh ghi byte thấp và byte cao của Timer 0 và Timer 1
Trang 29Mỗi Timer có 4 chế độ hoạt động nhưng trong thực tế người ta thường dùng
2 chế độ là
4.1 Chế độ 16 bit (chế độ 1)
Tương ứng M1=0, M0 = 1 Xung clock đ ược dùng kết hợp với các thanhghi cao và thấp (TLx, TLx) Khi xung clock được nhận vào, bộ đếm Timer tănglên 0000H, 0001H, 0002H,… , và một sự tràn sẽ xuất hiện khi có sự chuyển bộđếm Timer từ FFFFH sang 0000H v à set cờ tràn Timer, sau đó Timer đếm tiếp
Cờ tràn là bit TFx trong thanh ghi T.CON mà nó sẽ được đọc hoặc đượcghi bởi phần mềm
Bit trọng số lớn nhất (MSB) của giá trị trong thanh ghi của Timer l à bit 7
THx và bit trọng số nhỏ nhất (LSB) là bit không của TLx.Bit LSB đổi trạng thái
ở tần số clock và được chia cho 216=65536
Các thanh ghi Timer THx và TLx có thể được đọc hoặc được ghi bởi phầnmềm
4.2 Chế độ 8 tự động nạp lại (chế độ 2)
Ở chế độ này thì M0 = 0, M1 =1
Mode 2 là mode tự động nạp lại 8 bit, byte thấp TLxcủa Timer hoạt độngnhư một Timer 8 bit trong khi byte cao TH xcủa Timer giữ giá trị Reload Khi bộđếm tràn từ FFH sang 00H, không chỉ cờ tr àn được set mà cả giá trị trong
THxcung được nạp vào TLx: Bộ đếm tiếp tục từ gía trị này lên đến sự chuyểntrạng thái từ FFH sang 00H kế tiếp v à cứ thế tiếp tục Mode này phù hợp bởi vìcác sự tràn xuất hiện cụ thể mà mỗi lúc thanh ghi TMOD và THxđược khởiđộng
Trang 30V CÁC NGUỒN XUNG CLOCK (CLOCK SOURCE S)
Có 2 nguồn xung clock có thể đếm giờ là sự định giờ bên trong và sự đếmcác sự kiện bên ngoài Bit C/T trong TMOD cho phép ch ọn 1 trong 2 khi Timerđược khởi động
1 Sự bấm giờ bên trong (Interval Timing)
Nếu bit C/T = 0 thì hoạt động của Timer liên tục được chọn vào bộ Timerđược ghi giờ từ bộ dao động trên chíp Một bộ được chia 12 được thêm vào đểgiảm tần số clock tới 1 giá trị thích hợp hầu h ết các ứng dụng Các thanh ghi
THx và TLx tăng tốc độ 1/12 lần tần số dao động trên chip Nếu dùng thạch anh12MHz thì sẽ đưa đến tốc độ clock 1MHz
Các sự tràn Timer sinh ra sau 1 con số cố định của những xung clock, nóphụ thuộc vào giá trị được khởi tạo được LOAD vào các thanh ghi THx và TLx
2 Sự đếm các sự kiện ( Event counting)
Nếu bit C/T = 1 thì bộ đếm Timer được ghi giờ từ bộ nguồn bên ngoài trongnhiều ứng dụng, bộ nguồn bên ngoài này cung cấp 1 sự định giờ với 1 xung trên
sự xảy ra sự kiện Sự định giờ là sự đếm sự kiện Con số sự kiện được xác địnhtrong phần mềm bởi việc đọc các thanh ghi Timer TL x/THx, bởi vì các giá trị
16 bit trong các thanh ghi này tăng lên cho m ỗi sự kiện
Trang 31Nguồn xung clock bên ngoài được đến chân P3.4 là ngõ nhập của xungclock bởi Timer 0 (T0) và chân P3.5 là ngõ nhập của xung clock bởi Timer1(T1).
Trong các ứng dụng đếm thanh ghi Timer được tăng trong sự đáp ứng của
sự chuyển trạng thái từ 1 sang 0 của ng õ nhập Tx Tần số bên ngoài lớn nhất là500KHz nếu dao động thạch anh 12 MHz
3 Sự bắt đầu, sự kết thúc và sự điều khiển các thanh ghi Timer
Bit TRx trong thanh ghi có bit định vị TCON được điều khiển bằng phầnmềm để bắt đầu hoặc kết thúc các Timer Để bắt đầu các Timer ta set các bit
TRx và để kết thúc các Timer ta clr TRx Ví dụ Timer 0 được bắt đầu bởi lệnhSETB TR0 và được kết thúc bởi lệnh CLR TR0 (bit GATE =0) B it TRx bị xoásau khi reset hệ thống do đó các Timer bị cấm bằng sự mặc định
Thêm phương pháp nữa để điều khiển các Timer là dùng các bit GATEtrong các thanh ghi TMOD và ngõ nh ập bên ngoài INTx Điều này dùng để đo
độ rộng xung Gửi xung đưa vào chân INT0 ta khởi động Timer 0 cho mode 1 làmode Timer 16 bit với TL0/TH0 =0000H, GATE = 1, TR0 =1 Nh ư vậy khiINT0 =1 thì Timer “được mở cổng” và ghi giờ với tốc độ của tần số 1MHz KhiINT0 xuống thấp Timer “đóng cổng” và khoảng thời gian của xung tính bằng s
là sự đếm được trong thanh ghi TL0/TH0
4 Sự khởi động và sự truy xuất các thanh ghi Timer
Các Timer đựoc khởi động 1 lần ở đầu chương trình để đặt mode hoạt độngcho chúng Sau đó trong thân chương trình các Timer được bắt đầu , được xoá,các thanh ghi Timer được đọc và được cập nhật… theo yêu cầu của từng ứngdụng cụ thể
Mode Timer TMOD là thanh ghi đ ầu tiên được khởi gán, bởi vì đặt modehoạt động cho các Timer Ví dụ khởi động cho Tim er 1 hoạt động ở mode 1(mode Timer 16 bit) và được ghi giờ bằng bộ dao động trên chip ta dùng lệnh :MOV TMOD, #00001000B Trong lệnh này M1 =0, M0 =1 để vào mode 1 vàC/T=0, GATE =0 để cho phép ghi giờ bên trong đồng thời xoá các bit mode của
Trang 32Timer 0 Sau lệnh trên Timer vẫn chưa đếm giờ, nó chỉ đếm giờ khi set bit điềukhiển chạy TR1 của nó.
Nếu ta không khởi gán các giá trị đầu cho các thanh ghi TL x/THx thì Timer
sẽ bắt đầu từ 0000H và khi tràn từ FFFFH sang 0000H nó sẽ bắt đầu tràn TFx rồitiếp tục đếm từ 0000H lên…
Nếu ta khởi gán giá trị đầu cho TH x/TLx, thì Timer sẽ bắt đầu đếm từ giátrị khỏi gán đó lên nhưng khi tràn từ FFFFH sang 0000H thì lại đếm từ 0000Hlên
Chú ý cờ tràn TFx tự động được set bởi phần cứng sau mỗi sự tr àn và sẽđược xoá bởi phần mềm Vì vậy chúng ta có thể lập trình chờ sau mỗi lần tràn ta
sẽ xoá cờ TFx và quay vòng lặp khởi gán cho TLx /TLx để Timer luôn luôn bắtđầu đếm từ giá trị khởi gán theo mong muốn của ta
Đặc biệt những sự khởi gán nhỏ hơn 256 s, ta sẽ gọi mode Timer tự độngnạp lại 8 bit của mode 2 Sau khi khởi gán giá trị đầu vào THx, khi set bit TRx
thì Timer bắt đầu đếm từ giá trị khởi gán và khi tràn từ FFH sang 00H trong
TLx, cờ TRx tự động được set đồng thời giá trị khởi gán mà ta khởi gán THx tựđộng nạp vào TLx và Timer lại đếm từ giá trị khởi gán này lên Nói cách khácsau mỗi lần tràn ta không cần khởi gán lại giá trị cho các thanh ghi của Timer m àchúng vẫn đếm lại được từ giá trị ban đầu
VI HOẠT ĐỘNG CỦA PORT NỐI TIẾP 8051
1.Gíơi thiệu
Port nối tiếp của 8051 có thể hoạt động trong các mode ri êng biệt trên phạm
vi cho phép của tần số Chức năng chủ yếu của Port nối tiếp l à thực hiện sựchuyển đổi song song thành nối tiếp cho dữ liệu ra và chuyển đổi nối tiếp thànhsong song của dữ liệu đầu vào
Phần cứng truy xuất tới Port nối tiếp qua các chân TXD (P3.1) v à RXD(P3.0)
Trang 33Port nối tiếp tham dự hoạt động đầy đủ (sự phát v à sự thu cùng lúc), và thuvào bộ đếm mà nó cho phép 1 ký tự được nhận vào và cất vào bộ đệm trong khi
ký tự thứ 2 được nhận vào Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ 2được nhận vào hoàn toàn thì dữ liệu không bị mất
Hai thanh ghi chức năng đặc biệt cung cấp cho phần mềm truy
xuất đến Port nối tiếp là SBUF và SCON Sự đệm Port nối tiếp SBUF ởđịa chỉ (99H) là 2 sự đệm thật sự: Ghi lên SBUF LOAD dữ liệu phát và đọcSBUF truy xuất dữ liệu đã nhận Đây là 2 thanh ghi riêng biệt và rõ rệt, mà thanhghi phát chỉ ghi còn thanh ghi thu chỉ đọc
Thanh ghi điều khiển Pport nối tiếp SCON (98H) l à thanh ghi được định vịbit bao gồm các trạng thái và các bit điều khiển Các bit điều khiển set mode củaPort nối tiếp, còn các bit trạng thái cho biết sự kết thúc việc thu phát 1 ký tự Cácbit trạng thái có thể được kiểm tra trong phần mềm hoặc lập tr ình sinh ra ngắt.Tần số hoạt động của Port nối tiếp hoặc tốc độ BAUD có thể đ ược lấy từdao động trên chip 8051 hoặc thay đổi Nếu một tốc độ BAUD thay đổi đ ượcdùng, thì Timer cung cấp một tốc độ Baud ghi giờ và phải được lập trình phùhợp
Mode hoạt động của Port nối tiếp của 8051 được set bởi việc ghi lên thanhghi mode của Port nối tiếp SCON ở địa chỉ 99H Bảng tóm tắt thanh ghi điềukhiển Port nối tiếp SCON như sau:
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 Cho phép chế độ nhiều vi xử lý
SCON.4 REN 9CH Cho phép nhận Lập/xoá mềm
SCON.3 TB8 9BH Bit thứ 9 trong mode 2và 3 Lập/xoá mềm
SCON.2 RB8 9AH Bit thứ 9 nhận vào ( tuỳ mode)
SCON.1 TI 99H Cờ ngắt truyền
SCON.0 RI 98H Cờ ngắt nhận
Trang 34Bảng các chế độ hoạt động của Port nối tiếp
0 0 0 Thanh ghi dịch f C S/12
1 0 2 ỦART 9bit fO C S/64 hoặc / 32
Cờ ngắt thu RI và phát TI trong thanh ghi SCON v ận hành 1 rơle quantrọng sự truyền nối tiếp 8051 Cả 2 bit đều đ ược set bởi phần cứng nhưng phảiđược xoá bằng phần mềm
Điển hình là RI được set ở cuối sự thu ký tự và cho biết: “thanh ghi đệm thu
đã đầy” Điều kiện này có thể kiểm tra trong phần mềm hoặc có thể lập tr ình sinh
ra sự ngắt Nếu phần mềm muốn nhập một ký tự từ một thiết bị đ ã được kết nốitới Port nối tiếp, thì nó phải chờ đến khi RI được set,sau khi xoá RI và đọc ký tự
từ SBUF
TI được set ở cuối sự phát ký tự và cho biết “thanh ghi đệm của sự phát đãrỗng” Nếu phần mềm múò gửi 1 ký tự đến một thiết bị được nối đến Port nốitiếp, trước tiên nó phải kiểm tra xem Port nối tiếp đã sẵn sàng chưa
Nếu ký tự trước đã được gửi đi, thì nó phải chờ cho đến khi sự phát đi hoànthành.Một việc quan trọng truyền thông nối tiếp l à ta phải tạo tốc độ Baud.Thường thì chúng ta dùng Timer 1 để tạo tốc độ Baud
Bảng sau sẽ cho chúng ta các giá trị Baud thường dùng:
Tốc độ Baud Tần số thạch anh SMOD TH1 Tốc độ thực tế Sai số
Trang 352400 11.059MHz 0 -12(F4H) 2400 0
1200 11.059MHz 0 -12(E8H) 1200 0
VII HOẠT ĐỘNG NGẮT CỦA (INTERRUPT) CỦA 8051
Trong nhiều ứng dụng đòi hỏi ta phải dùng phải ngắt mà không dùng Timerbởi vì nếu dùng Timer thì ta mất thời gian để cờ tràn Timer TFx được set mới xử
lý tiếp chương trình Do đó ta không có thời gian để làm các việc quan trọngkhác mà ứng dụng đòi hỏi Đây là chương trình rất quan trọng của 8051
1 Gíơi thiệu
Interrupt là một sự cố điều kiện mà nó gây ra sự ngưng lại tạm thời củachương trình để phục vụ một chương trình khác Các Interrupt vận hành mộtRelay rất quan trọng trong thiết bị và cung cấp đầy đủ các ứng dụng vi điềukhiển Chúng cho phép 1 hệ thống đáp ứng bộ đến sự kiện quan trọng v à giảiquyết sự kiện đó trong khi chương trình khác đang thực thi Một hệ thống đượclái bởi Interrupt cho một kỹ xảo làm nhiều công việc cùng một lúc Tất nhiênCPU không thể thực hiện nhiều lệnh cùng một lúc, nhưng nó có thể tạm treo việcthực thi của chương trình để thực thi chương trình khác và sau đó quay trở lạichương trình chính
Khi chương trình chính đang thực thi mà có một sự ngắt xảy ra thì chươngtrình chính ngưng thực thi và rẽ nhánh đến thủ tục phục vụ ngắt ISR ISR thựcthi để thực hiện hoạt động và kết thúc với lệnh “trở lại từ sự ngắt”: Ch ương trìnhtiếp tục nơi mà nó dừng lại
2 Tổ chức Interrupt của 8051
8051 cung cấp 5 nguồn ngắt, 2 ngắt ngoài, 2 sự ngắt Timer, 1 ngắt Port nốitiếp Tất cả các Interrupt bị mất tác dụng bởi sự mặc định sau khi reset hệ thống
và được cho phép cá biệt bởi phần mềm
Trong trường hợp có 2 hoặc nhiều hơn sự ngắt xảy ra đồng thời hoặc một
sự ngắt đang được phục vụ mà xuất hiện một ngắt khác, thì sẽ có 2 cách thựchiện sự ngắt là sự kiểm tra liên tiếp và sự ưu tiên cấp 2
Trang 362.1 Sự cho phép ngắt và sự cấm ngắt
Mỗi nguồn Interrupt được cho phép riêng biệt hoặc sự cấm riêng biệt quathanh ghi chức năng đặc biệt có bit định vị IE (Interrupt Enable) tại địa chỉ0A8H Cũng như sự cá biệt cho các bit của mỗi nguồn ngắt có 1 bit cho phép(hoặc cấm ) chung mà nó được xoá để cấm tất cả các Interrupt hoặc được để chophép chung các Interrupt
Hoạt động của từng bit trong thanh ghi cho phép ngắt IE đ ược tóm tắt trongbảng sau:
Program excution with interrupt
Trong đó ký hiệu * cho biết ngắt chương trình chính để thực thi chươngtrình con trong trình phục vụ ngắt ISR Còn ký hiệu ** cho biết quay trở lạichương trình chính thực thi tiếp kết thúc chương trình con trong ISR
Bit Symbol Bit Address Sự mô tả (Enable= 1; Dissble)
IE7 EA AFH Cho phép toàn bộ hoặc cấm toàn bộ
IE5 ET2 ADH Cho phép ngắt Timer 2 (8052)
IE4 ES ACH Cho phép ngắt Port nối tiếp
IE3 ET1 ABH Cho phép ngắt Timer 1
IE2 EX1 AAH Cho phép ngắt ngoài External 1IE1 ET0 A9H Cho phép ngắt Timer 0
Trang 37IE0 EX0 A8H Cho phép ngắt ngoài Exxternal 0
Hai bit phải set cho một sự ngắt nào đó : Là bit cho phép riêng và bit chophép chung Ví dụ để cho phép ngắt Timer 1 ta có thể thực hiện trên bit: SETBET1 và SETB EA hoặc sự thực hiện trên byte: MOV IE, #10001000B Cả 2phương pháp này đều có kết quả chính xác sau khi reset hệ thống, nh ưng kết quảkhác nhau nếu thanh ghi IE được ghi trên tuyến ở giữa chương trình
Giải pháp thứ nhất không có tác dụng tr ên các bit còn lại trong thanh ghi IE,còn giải pháp thứ 2 xoá các bit còn lại trong thanh ghi IE Ở đầu chương trình tanên khởi gán IE với lệnh MOV BYTE, nh ưng sự cho phép ngắt và sự cấm ngắttrên tuyến trong 1 chương trình, dùng các lệnh SET BIT và CLR BIT để tránhkết quả phụ với các bit khác trong thanh ghi IE
2.2 Sự ưu tiên ngắt (Interrupt Priority)
Mỗi nguồn ngắt được lập trình cá biệt đến một trong 2 mức ưư tiên quathanh ghi chức năng đặc biệt có định vị IP (Interrupt Priority) tại địa chỉ 0B8H.Hoạt động của từng bit trong thanh ghi IP đ ược tóm tắt trong bảng sau:
Bit Symbol Bit Address Sự mô tả (Enable= 1; Dissble)
IP5 PT2 BDH Cho phép ngắt Timer 2 (8052)IP4 PS BCH Ưu tiên cho phép ngắt Port nối tiếpIP3 PT1 BBH Ưu tiên cho phép ngắt Timer 1IP2 PX1 BAH Ưu tiên cho phép ngắt ngoài
External 1IP1 PT0 B9H Ưu tiên cho phép ngắt Timer 0IP0 PX0 B8H Ưu tiên cho phép ngắt ngoài
Exxternal 0Thanh ghi ưu tiên ngắt IP được xoá sau khi reset hệ thống để đặt tất cả các
sự ngắt ở mức ưu tiên thấp hơn sự mặc định.Ý tưởng “các sự ưu tiên” cho phép 1
Trang 38thủ tục phục vụ ngắt ISR mới được ngắt nếu sự ngắt mới này ưu tiên cao hơn sựngắt hiện hành đang phục vụ.
Trên 8051 có 2 mức ưu tiên cao và 2 mức ưu tiên thấp Nếu một thủ tụcphục vụ ngắt có mức ưu tiên thấp đang thực thi mà có một ngắt có mức ưu tiêncao hơn xuất hiện, thì thủ tục phục vụ ngắt đó bị ngắt để thực thi thủ tục ngắtmới Ngược lại thủ tục phục vụ ngắt có mức ưu tiên cao hơn đang thực thi mà cómột ngắt ưu tiên thấp hơn xuất hiện, thì nó không bị ngắt mà phải chờ thực thixong thủ tục phục vụ cao hơn mới nhảy tới thủ tục phục vụ ngắt thấp
Chương trình thực thi ở mức cơ bản và không kết hợp với sự ngắt nào, nó
có thể luôn luôn bị ngắt bất chấp sự ưu tiên ngắt ở mức cao hay thấp Nếu 2 sựngắt của các ưu tiên khác nhau xuất hiện đồng thời, sự ngắt ưu tiên cao hơn sẽđựơc phục đầu tiên
2.3 Sự kiểm tra vòng quét liên tiếp
Nếu 2 sự ngắt có cùng mức ưu tiên cùng xuất hiện đồng thời, thì sự kiểm travòng quét sẽ ấn định sự ngắt nào được thực thi trước Sự kiểm tra vòng quét liêntiếp ưu tiên từ trên xuống dưới theo thứ tự là: External 0, Timer 0, External 1,Timer1, SERIAL Port, Timer 2
Hình trên minh hoạ 5 nguồn ngắt của 8051, các kỹ xảo cho phép ngắt
riêng và chung, kiểm tra vòng quát liên tiếp và mức ưu tiên Trạng thái củatất cả các nguồn ngắt có hiệu lực thông qua các bit cờ t ương ứng trong các thanhghi đặc biệt Nếu có sự ngắt nào bị cấm thì sự ngắt đó không xuất hiện nhưngphần mềm vẫn kiểm tra cờ ngắt
Sự ngắt của Port nối tiếp đưa đến cổng OR logic của sự ngắt thu RI(Receive Interrupt) hoặc sự ngắt phát TI (Transmit Interrupt) T ương tự sự ngắtcủa Port nối tiếp, các sự ngắt của Timer 2 có thể đ ược sinh ra bởi cờ tràn TF2hoặc cờ nhập ngoài EXF2 (External Input Flag)
Trang 39Interrupt Flag SFR Register and Bit Position
Exxternal 0 IE0 TCON 1
Exxternal 1 IE1 TCON 3
Timer 1 TF1 TCON 7
Timer 0 TF0 TCON 5
Serial Port TI SCON 1
Serial Port RI SCON 0
Timer 2 TF2 T2CON7(8052)
Timer 2 EXF2 T2CON6(8052)
2.4 Việc xử lý các sự ngắt (processing Interrupt)
Khi một sự ngắt xuất hiện và được chấp nhận bởi CPU thì chương trìnhchính bị ngắt Các hoạt động sau đây xuất hiện
Lệnh hiện hành và kết thúc thực thi
Bộ đếm chương trình PC được cất giữ vào Stack
Trạng thái ngắt hiện hành được cất giữ vào bên trong
Những sự ngắt bị ngăn lại tại mức ngắt
Bộ đếm chương trình PC được LOAD với địa chỉ vectơ của thủ tục phục vụngắt ISR
Thủ tục phục vụ ngắt ISR được thực thi
Thủ tục phục vụ ngắt ISR thực thi v à đưa hạt động vào đáp ứng ngắt, thủtục phục vụ ngắt ISR kết thúc với lệnh RETTI (quay trở về ch ương trình chính từStack) Điều này khôi phục lại giá trị cũ của bộ đếm chương trình từ Stack vàhoàn toàn dừng lại ở trạng thái cũ Sự thực thi ch ương trình chính tiếp tục ở nơi
mà nó ngừng lại
2.5 Các vectơ ngắt (Interrupt vectors)
Khi có một sự ngắt được nhận giá trị được LOAD vào PC được gọi bởivectơ ngắt Nó là địa chỉ của sự khởi động thủ tục phục vụngắt ISR của nguồnngắt Các vectơ được cho trong bảng sau:
Trang 40Interrupt Flag Vectors AddressSystem Reset RST 0000H
Vectơ reset hệ thống RST tại địa chỉ 0000H được tính trong bảng này, bởi
vì trong ý nghĩa này nó giống như 1 Interupt: nó ngắt chương trình và LOADvào PC với giá trị mới
Khi đưa một vectơ ngắt đến sự ngắt thì cờ của nó gây ra sự ngắt, tự
động bị xoá bởi phần cứng, ngoại trừ RI và TI của Port nối tiếp và TF2,EXF2 của Timer2 được xoá bởi phần mềm Nguyên nhân trên là có 2 nguồnngắt có thể chịu đựng được cho mỗi sự ngắt mà nó không ứng dụng cho CPU đểxoá cờ ngắt.Vì các vectơ ngắt nằm ở dưới cùng cùng mã nhớ, nên lệnh đầu tiêncủa chương trình chính là lệnh nhảy đến vị trí cao hơn vị trí này như LJMP0030H