sách hướng dẫn học vi xử lý

264 617 1
sách hướng dẫn học vi xử lý

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

sách đại học sư phạm kỹ thuật........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

I H C S PH M K THU T KHOA I N – I N T – B MƠN I N T CƠNG NGHI P GIÁO TRÌNH VI X LÝ NGUY N ÌNH PHÚ TP HCM 08/2016 LỜI NÓI ĐẦU Bộ vi xử lý ngày phát triển hoàn thiện sử dụng hầu hết hệ thống điều khiển công nghiệp thiết bò điện tử dân dụng Chính nhờ vai trò, chức vi xử lý đem lại nhiều ưu điểm, nhiều tính đặc biệt cho hệ thống điều khiển Các nhà nghiên cứu không ngừng nghiên cứu hệ thống điều khiển sử dụng vi xử lý để thay nhằm nâng cao khả tự động thay cho người, thúc đẩy lónh vực vi xử lý ngày phát triển không ngừng, thích nghi với yêu cầu điều khiển Để đơn giản bớt phức tạp phần cứng dùng vi xử lý nên nhà nghiên cứu tích hợp hệ vi xử lý, nhớ, ngoại vi thành vi mạch gọi vi điều khiển Nội dung giáo trình nghiên cứu kiến thức vi điều khiển Do có nhiều họ vi điều khiển khác nhau, từ hệ bit hệ 32 bit, mức độ tích hợp từ đơn giản đến phức tạp, nhiều hãng chế tạo khác nhau, nhiều chủng loại khác làm cho người bắt đầu học hay nghiên cứu gặp nhiều bỡ ngỡ hệ cho phù hợp, giáo trình trình bày họ vi điều khiển bit hảng Microchip nhằm giúp bạn sinh viên ngành điện nói chung có giáo trình để học tập nghiên cứu cách dễ dàng Các ứng dụng dùng vi điều khiển nhiều cấp độ khác từ đơn giản đến phức tạp, giáo trình trình bày ứng dụng đơn giản để bạn đọc hiểu, từ kiến thức bạn thực ứng dụng điều khiển phức tạp hơn, phần tập kèm theo giúp bạn giải yêu cầu phức tạp Từ kiến thức vi điều khiển bit giúp bạn tự nghiên cứu vi điều khiển nhiều bit 16 bit, 32 bit Giáo trình biên soạn chia thành chương, chủ yếu trình bày vi điều khiển PIC 16F887: Chương Đặc tính, cấu trúc, chức port Chương Tổ chức nhớ, ghi Chương Lệnh hợp ngữ Chương Ngôn ngữ lập trình C Chương Giao tiếp LED, LCD, phím đơn, ma trận phím Chương Timer - Counter Chương Chuyển đổi tín hiệu tương tự sang số Chương Ngắt Chương Điều chế độ rộng xung - PWM Chương Truyền liệu UART Nội dung chương chủ yếu giới thiệu đặc tính, cấu trúc chức port vi điều khiển người đọc cần phải biết đặc tính vi điều khiển nghiên cứu Để so sánh khả vi điều khiển khác ta phải dựa vào đặc tính Phần cấu trúc bên cho bạn biết tổ chức, mối quan hệ khối với nhau, chức khối Bạn phải biết tên, ký hiệu đặt tên cho port, chức port để giúp bạn sử dụng port kết nối với đối tượng điều khiển Nội dung chương giới thiệu cấu trúc tổ chức loại nhớ tích hợp bên vi điều khiển bao gồm nhớ chương trình, nhớ liệu RAM, nhớ ngăn xếp, nhớ Eeprom, cách truy xuất nhớ Nội dung chương giới thiệu tập lệnh hợp ngữ vi điều khiển để viết chương trình hợp ngữ lập trình hợp ngữ khó dài giải yêu cầu tính toán phức tạp nên phần giới thiệu không nghiên cứu sâu Nội dung chương giới thiệu ngôn ngữ lập trình C cho vi điều khiển PIC, có nhiều trình biên dòch ngôn ngữ lập trình C cho vi điều khiển tài liệu trình bày trình biên dòch CCS Lập trình ngôn ngữ C giúp bạn viết chương trình dễ so với hợp ngữ, toàn chương trình tài liệu viết ngôn ngữ lập trình C Để hiểu chương trình giáo trình vie át chương trình theo yêu cầu bạn cần phải nắm rõ tổ chức moat chương trình C, kiểu liệu, toán tử, thư viện viết sẵn lệnh C Nội dung chương khảo sát chi tiết chức port, sơ đồ mạch port, sử dụng port để xuất nhập tín hiệu điều khiển led đơn, led đoạn trực tiếp, led đoạn quét, LCD, nút nhấn, bàn phím ma trận Trong yêu cầu cho bạn biết cách kết nối phần cứng, nguyê n lý hoạt động, viết lưu đồ hay trình tự điều khiển chương trình mẫu, có giải thích lệnh chương trình Nội dung chương khảo sát chi tiết chức timer-counter tích hợp vi điều khiển, cách sử dụng timer – counter để đònh thời đếm kiện Nội dung chương khảo sát chi tiết chức chuyển đổi tín hiệu tương tự thành tín hiệu số (ADC) tích hợp vi điều khiển, cách sử dụng ADC để chuyển đổi tín hiệu tương tự cảm biến nhiệt để thực ứng dụng đo nhiệt độ, cảnh báo nhiệt độ điều khiển nhiều ứng dụng khác Nội dung chương khảo sát chi tiết chức ngắt vi điều khiển, biết tính ưu việc ngắt, cách sử dụng ngắt để đáp ứng tối ưu yêu cầu điều khiển nhằm đáp ứng nhanh kiện xảy Nội dung chương khảo sát chi tiết chức điều chế độ rộng xung PWM vi điều khiển, biết nguyên lý hoạt động, tính toán thông số xung điều chế, biết lập trình sử dụng chức PWM để điều khiển thay đổi độ sáng đèn, thay đổi tốc độ động DC nhie àu ứng dụng khác Nội dung chương khảo sát chi tiết chức truyền liệu nối tiếp UART vi điều khiển, biết ợc trình tự thực gởi liệu nhận liệu, thực yêu cầu truyền liệu vi điều khiển với máy tính vi điều khiển với Ngoài kiến thức mà tác giả trình bày nhiều chức khác vi điều khiển mà tác giả chưa trình bày bạn tham khảo thêm tài liệu nhà chế tạo cung cấp Trong trình biên soạn tránh sai sót nên mong bạn đọc đóng góp xây dựng xin gởi tác giả theo đòa phu_nd@yahoo.com Tác giả xin cảm ơn bạn bè đồng nghiệp đóng góp nhiều ý kiến, xin cảm ơn người thân gia đình cho phép tác giả có nhiều thời gian thực biên soạn giáo trình Nguyễn Đình Phú HỊNH VÀ B NG Hình 1-1 Các thi t b s d ng vi x lý Hình 1-2 H th ng vi x lý Hình 1-3 Vi u n đ c tích h p t vi x lý, b nh ngo i vi Hình 1-4 Các thi t b vào, vi u n Hình 1-5 C u hình c a vi u n Hình 1-6 C u trúc bên c a vi u n Hình 1-7 S đ chân c a PIC 16F887 10 Hình 2-1 Ki n trúc Von Neumann Harvard 20 Hình 2-2 S đ b nh ch 21 ng trình ng n x p Hình 2-3 N i dung ghi PC th c hi n l nh Call hay Goto 22 Hình 2-4 Nh y trang khác trang b nh 22 Hình 2-5 B nh ng n x p th c hi n ng t k t thúc ng t 24 Hình 2-6 T ch c b nh theo byte 24 Hình 2-7 T ch c b nh ch a c mã l nh d li u 24 Hình 2-8 Q trình th c hi n l nh b c 25 Hình 2-9 Q trình th c hi n l nh b c 25 Hình 2-10 Q trình th c hi n l nh b Hình 2-11 Ký hi u b Hình 2-12 Các b c c c a q trình th c hi n l nh b 26 c c th c hi n chi ti t c a q trình th c hi n l nh b 26 c 26 Hình 2-13 Làm xong vi c m i đ n vi c khác 27 Hình 2-14 Làm theo c u trúc pipeline hay dây chuy n 28 Hình 2-15 Minh h a c u trúc đ th y hi u qu v th i gian 29 Hình 2-16 C u trúc pipeline c a vi u n PIC 16F887 29 Hình 2-17 T ch c File ghi 30 Hình 2-18 Truy xu t tr c ti p gián ti p b nh RAM 31 Hình 2-19 Thanh ghi tr ng thái 32 Hình 3-1 H th ng u n đèn giao thơng – nh minh h a 36 Hình 3-2 Trình t biên so n ch 37 ng trình Assembly cho đ n n p code Hình 3-3 Logo ph n m m MPLAB 38 Hình 3-4 Ch 39 ng trình dùng h p ng Hình 3-5 Biên d ch ch ng trình h p ng Hình 3-6 Biên d ch liên k t nhi u ch Hình 3-7 Biên d ch ch ng trình h p ng ng trình h p ng t o file hex file bin 40 40 41 Hình 3-8 Các d ng mã l nh 41 Hình 4-1 Bi u t 64 ng ph n m m CCS Hình 4-2 Giao di n ph n m m CCS 64 i Hình 5-1 S đ k t n i port v i đ i t ng u n 54 Hình 5-2 S đ k t n i port xu t nh p tín hi u u n 54 Hình 5-3 PortA ghi đ nh h 55 ng port A Hình 5-4 C u hình chân RA0 56 Hình 5-5 C u hình chân RA1 56 Hình 5-6 C u hình chân RA2 56 Hình 5-7 C u hình chân RA3 56 Hình 5-8 C u hình chân RA4 57 Hình 5-9 C u hình chân RA5 57 Hình 5-10 C u hình chân RA6 57 Hình 5-11 C u hình chân RA7 57 Hình 5-12 PortB ghi đ nh h ng port B Hình 5-13 Thanh ghi ANSELH đ nh c u hình s t 58 ng t cho portB 58 Hình 5-14 Thanh ghi WPUB thi t l p cho phép/c m n tr treo 58 Hình 5-15 Thanh ghi IOCB cho phép/c m ng t portB thay đ i 59 Hình 5-16 C u hình chân RB< 3:0> 60 Hình 5-17 C u hình chân RB 61 Hình 5-18 Các chân PortB giao ti p v i m ch n p, g r i 62 Hình 5-19 Port C ghi TRISC 62 Hình 5-20 C u hình chân RC0 63 Hình 5-21 C u hình chân RC1 63 Hình 5-22 C u hình chân RC2 63 Hình 5-23 C u hình chân RC3 63 Hình 5-24 C u hình chân RC4 64 Hình 5-25 C u hình chân RC5 64 Hình 5-26 C u hình chân RC6 64 Hình 5-27 C u hình chân RC7 64 Hình 5-28 Port D ghi TRISD 65 Hình 5-29 C u hình chân RD 65 Hình 5-30 C u hình chân RD 65 Hình 5-31 Port E ghi TRISE 66 Hình 5-32 C u hình chân RE 66 Hình 5-33 C u hình chân RE 66 Hình 5-34 Các d ng tín hi u c a ngu n, MCLR, PWRT, OST 71 Hình 5-35 Các d ng tín hi u b s t gi m ngu n BOR 71 Hình 5-36 S đ kh i m ch dao đ ng c a PIC 72 Hình 5-37 Dao đ ng RC bên ngồi 73 Hình 5-38 Dao đ ng RC bên 73 Hình 5-39 Dao đ ng l y t bên ngồi 73 ii Hình 5-40 Các d ng dao đ ng LP, XT, HS 74 Hình 5-41 Ch c n ng c a b đ nh th i giám sát - WDT 75 Hình 5-42 S đ kh i c a b đ nh th i giám sát - WDT 76 Hình 5-43 Các tín hi u c a PIC giao ti p v i m ch n p d ng n i ti p ICSP 75 Hình 5-44 S đ u n led đ n 77 Hình 5-45 L u đ u n led đ n ch p t t 78 Hình 5-46 L u đ u n led đ n ch p t t 10 l n 79 Hình 5-47 L u đ u n led đ n sáng d n t t d n t ph i sang trái 80 Hình 5-48 S đ k t n i portB v i led đo n 81 Hình 5-49 Hình led đo n 81 Hình 5-50 L u đ đ m t đ n 82 Hình 5-51 S đ k t n i portB, C u n led đo n 84 Hình 5-52 L u đ đ m t 00 đ n 99 84 Hình 5-53 S đ k t n i port B D u n led đo n qt 86 Hình 5-54 L u đ u n led qt sáng s 87 Hình 5-55 S đ k t n i port B D u n led đo n qt 88 Hình 5-56 L u đ đ m t 00 đ n 99 hi n th led qt 88 Hình 5-57 S đ u n led nút nh n 91 Hình 5-58 L u đ u n led đ n b ng nút nh n ON-OFF 91 Hình 5-59 S đ u n led nút nh n 93 Hình 5-60 L u đ u n led b ng nút ON-OFF-INV 93 Hình 5-61 L u đ u n led có ch ng d i phím INV 94 Hình 5-62 S đ k t n i port u n led đo n, nút nh n 95 Hình 5-63 L u đ đ m có u n b ng nút nh n Start-Stop 96 Hình 5-64 Bàn phím ma tr n 4×4 97 Hình 5-65 Bàn phím ma tr n 4×4 v i c t C1 b ng 98 Hình 5-66 Bàn phím ma tr n 4×4 v i c t C2 b ng 98 Hình 5-67 Bàn phím ma tr n 4×4 v i c t C3 b ng 99 Hình 5-68 L u đ qt bàn phím ma tr n 4×4 100 Hình 5-69 L u đ qt bàn phím ma tr n 4×4 có ch ng d i 101 Hình 5-70 Vi u n giao ti p bàn phím ma tr n 101 Hình 5-71 L u đ qt hi n th ma tr n phím 102 Hình 5-72 Vi u n giao ti p bàn phím ma tr n led đo n 104 Hình 5-73 L u đ qt ma tr n phím hi n th mã phím 104 Hình 5-74 Hình nh c a LCD 105 Hình 5-75 Giao ti p vi u n PIC16F887 v i LCD 107 Hình 5-76 D ng sóng u n c a LCD 108 Hình 5-77 L u đ hi n th thơng tin hàng 109 Hình 5-78 L u đ hi n th thơng tin đ m giây 112 iii Hình 6-1 S đ kh i c a timer0 c a PIC16F887 118 Hình 6-2 Thanh ghi OPTION_REG 119 Hình 6-3 Thanh ghi INTCON 120 Hình 6-4 B chia tr cđ c gán cho timer T0 120 Hình 6-5 B chia tr cđ c gán cho WDT 121 Hình 6-6 Thanh ghi l u k t qu c a T1 121 Hình 6-7 C u trúc timer T1 122 Hình 6-8 Thanh ghi T1CON 122 Hình 6-9 Timer1 ho t đ ng đ nh th i 123 Hình 6-10 T1 ho t đ ng đ m xung ngo i t m ch dao đ ng T1 124 Hình 6-11 T1 ho t đ ng đ m xung ngo i đ a đ n ngõ vào T1CKI 124 Hình 6-12 Gi n đ th i gian xung đ m c a Counter1 124 Hình 6-13 K t n i th ch anh t o dao đ ng 125 Hình 6-14 S đ kh i c a Timer2 126 Hình 6-15 Thanh ghi T2CON 127 Hình 6-16 PIC u n led sáng t t 130 Hình 6-17 L u đ u n led sáng t t– đ nh th i 210ms 130 Hình 6-18 L u đ u n led sáng t t dùng ng t – đ nh th i 200ms 131 Hình 6-19 L u đ u n led sáng t t – đ nh th i 1s 132 Hình 6-20 L u đ u n led sáng t t, đ nh th i 13,107ms dùng T0 134 Hình 6-21 L u đ u n led sáng t t, đ nh th i 1s dùng T0 135 Hình 6-22 L u đ u n led sáng t t, đ nh th i 13,107ms dùng T2 136 Hình 6-23 m xung ngo i dùng counter T0 Hình 6-24 L u đ đ m xung ngo i dùng counter T0 Hình 6-25 m xung ngo i dùng counter T0 Hình 6-26 L u đ đ m xung ngo i dùng counter T1 Hình 6-27 m xung ngo i dùng counter T1 hi n th led qt Hình 6-28 L u đ ch ng trình đ m dùng counter T1 c a PIC 16F887 137 138 139 149 141 141 Hình 7-1 S đ kh i c a ADC PIC 16F887 146 Hình 7-2 Thanh ghi ADCON0 147 Hình 7-3 Thanh ghi ADCON1 148 Hình 7-4 nh d ng c p ghi l u k t qu 149 Hình 7-5 Th i gian chuy n đ i 10 bit 150 Hình 7-6 S đ m ch đo nhi t đ dùng PIC16F887 hi n th led tr c ti p 152 Hình 7-7 L u đ chuy n đ i ADC đo nhi t đ kênh th 152 Hình 7-8 S đ m ch giao ti p u n relay, triac, buzzer 154 Hình 7-9 L u đ chuy n đ i ADC đo nhi t đ kênh th 154 Hình 7-10 S đ m ch đo nhi t đ dùng PIC16F887, hi n th led qt 155 Hình 7-11 L u đ chuy n đ i ADC đo nhi t đ hi n th led qt 156 iv Hình 8-1 CPU th c hi n ch ng trình tr ng h p khơng có ng t 160 Hình 8-2 M ch n ng t c a PIC16F887 162 Hình 8-3 B nh ng n x p th c hi n ng t k t thúc ng t 162 Hình 8-4 Th c hi n ch 162 ng trình chính, b ng t k t thúc ng t Hình 8-5 Thanh ghi INTCON 163 Hình 8-6 Thanh ghi PIE1 PIR1 164 Hình 8-7 Thanh ghi PIE2 PIR2 165 Hình 8-8 i u n led sáng t t 167 Hình 8-9 L u đ u n led sáng t t– đ nh th i 210ms dùng ng t 167 Hình 8-10 M ch giao ti p led đo n qt hi n th đ m giây 168 Hình 8-11 L u đ đ m giây dùng Timer đ nh th i báo ng t 169 Hình 8-12 M ch đo nhi t đ dùng c m bi n LM35 170 Hình 8-13 L u đ chuy n đ i ADC có báo ng t 170 Hình 8-14 o nhi t đ dùng c m bi n LM35 đ m giây 172 Hình 8-15 L u đ chuy n đ i ADC có báo ng t đ m giây dùng timer báo ng t 173 Hình 9-1 D ng sóng u ch đ r ng xung 178 Hình 9-2 D ng sóng u ch đ r ng xung n áp trung bình c p đ 179 Hình 9-3 S đ kh i PWM c a kh i CCP1 c a PIC16F887 180 Hình 9-4 S bit c a ghi dùng kh i PWM c a PWM PIC16F887 180 Hình 9-5 D ng sóng PWM 181 Hình 9-6 S đ kh i PWM nâng cao 182 Hình 9-7 Ch đ ho t đ ng n a c u 183 Hình 9-8 Ch đ ho t đ ng n a c u, u n m ch c u H đ y đ 183 Hình 9-9 Ch đ ho t đ ng c u đ y đ u n m ch c u H 184 Hình 9-10 Ch đ ho t đ ng c u đ y đ u n motor m ch c u H, quay thu n 184 Hình 9-11 D ng sóng tín hi u u n motor quay thu n 185 Hình 9-12 Ch đ ho t đ ng c u đ y đ u n motor m ch c u H, quay ngh ch 185 Hình 9-13 D ng sóng tín hi u u n motor quay ngh ch 186 Hình 9-14 M ch u n thay đ i c 188 Hình 9-15 Các d ng tín hi u thay đ i c ng đ sáng c a đèn dùng PWM ng đ sáng c a đèn dùng PWM 188 Hình 9-16 L u đ u n đèn sáng dùng PWM 189 Hình 9-17 M ch thay đ i c 190 ng đ sáng c a đèn dùng PWM nút nh n Hình 9-18 L u đ u n đèn sáng dùng PWM nút nh n 190 Hình 9-19 M ch u n thay đ i t c đ đ ng c dùng PWM 192 Hình 9-20 L u đ u n thay đ i t c đ đ ng c dùng PWM 193 Hình 10-1 H th ng truy n đ ng b 198 Hình 10-2 H th ng truy n b t đ ng b 198 Hình 10-3 S đ kh i c a kh i phát d li u c a PIC16F887 200 v Hình 10-4 D ng sóng truy n d li u 200 Hình 10-5 D ng sóng truy n byte d li u 201 Hình 10-6 Thanh ghi TXSTA 201 Hình 10-7 Thanh ghi RCSTA 201 Hình 10-8 S đ kh i c a kh i nh n d li u c a PIC16F887 203 Hình 10-9 D ng sóng nh n d li u 205 Hình 10-10 Thanh ghi BAUDCTL 205 Hình 10-11 H th ng truy n d li u gi a máy tính vi u n 208 Hình 10-12 D ng sóng m c c a chu n RS232 208 Hình 10-13 L u đ u n truy n d li u 209 Hình 10-14 Giao di n ph n m m Terminal đ g i d li u 210 Hình 10-15 H th ng truy n d li u gi a máy tính vi u n, hi n th LCD 211 Hình 10-16 L u đ u n truy n d li u, hi n th LCD 211 Hình 10-17 H th ng truy n d li u gi a máy tính vi u n, có LCD, bàn phím 212 Hình 10-18 L u đ u n truy n d li u, có thêm LCD bàn phím 213 Hình 10-19 H th ng truy n d li u gi a máy tính vi u n, có LCD, bàn phím 214 Hình 10-20 L u đ u n truy n d li u, có thêm LCD bàn phím 215 B ng 1-1 Trình bày tóm t t c u trúc c a lo i PIC16F88X B ng 3-1 Các tác t 42 B ng 3-2 Tóm t t t p l nh c a PIC 42 B ng 4-1 Các ki u d li u c a ph n m m PIC-C 54 B ng 4-2 Các tốn t ph bi n ngơn ng C 55 B ng 5-1 Tên tín hi u ch c n ng c a m ch n p ICSP 77 B ng 5-2 Mã đo n cho s th p phân 81 B ng 5-3 Các chân c a LCD 106 B ng 5-4 Các l nh u n LCD 107 B ng 5-5 109 a ch c a t ng kí t B ng 5-6 Thơng tin hi n th hàng kí t 112 B ng 6-1 L a ch n h s chia c a Timer0 119 B ng 6-2 L a ch n t n s t t 125 B ng 7-1 Ch n kênh t ng ng c a Timer1 ng t c a bit CHS 148 B ng 7-2 T n s xung clock tùy ch n ph thu c vào t n s b dao đ ng 150 B ng 8-1 Tóm t t ch c n ng bit ghi INTCON có đ a ch 0x0B 163 B ng 8-2 Tóm t t ch c n ng bit ghi PIE1 164 B ng 8-3 Tóm t t ch c n ng bit ghi cho phép ng t PIR1 164 B ng 8-4 Tóm t t ch c n ng bit ghi cho phép ng t PIE2 165 B ng 8-5 Tóm t t ch c n ng bit ghi cho phép ng t PIR2 165 B ng 9-1 Các ch đ ho t đ ng c a PWM nâng cao 183 vi Nguyễn Đình Phú Bộ môn điện tử công nghiệpù nh n s phát sinh l i tràn Ph n m m khơng th truy xu t b đ m FIFO ghi RSR mà ch đ c phép truy xu t ghi RCREG Kh i t o q trình nh n d li u:  Thi t l p giá tr cho c p ghi SPBRGH SPBRG BRGH bit BRG16 đ có t c đ baud mong mu n  Cho phép truy n d li u b t đ ng b b ng cách xóa bit SYNC làm bit SPEN lên  N u nh n d li u bit thi t l p bit cho phép RX9 lên  Làm bit CREN lên đ cho phép nh n d li u  N u mu n s d ng ng t cho bit RCIE lên 1, cho phép ng t ngo i vi cho phép ng t tồn c c  C báo ng t RCIF s lên m t kí t chuy n t RSR sang b đ m, ng t s phát sinh n u đ c phép c ghi tr ng thái nh n RCSTA đ ki m tra c báo l i   Nh n d li u bit t ghi RCREG  N u có l i tràn x y xóa bit cho phép nh n CREN Kh i t o q trình nh n d li u ch đ phát hi n bit đ a ch : ch đ th dùng h th ng truy n theo chu n RS-485 ng đ c  Thi t l p giá tr cho c p ghi SPBRGH SPBRG BRGH bit BRG16 đ có t c đ baud mong mu n  Cho phép truy n d li u b t đ ng b b ng cách xóa bit SYNC làm bit SPEN lên  N u mu n s d ng ng t cho bit RCIE lên 1, cho phép ng t ngo i vi cho phép ng t tồn c c  N u nh n d li u bit thi t l p bit cho phép RX9 lên  Cho phép phát hi n đ a ch bit b ng cách cho bit ADDEN lên  Làm bit CREN lên đ cho phép nh n d li u  C báo ng t RCIF s lên m t kí t chuy n t RSR sang b đ m, ng t s phát sinh n u đ c phép c ghi tr ng thái nh n RCSTA đ ki m tra c báo l i Bit th ln   Nh n d li u bit t ghi RCREG, ph n m m s ti n hành ki m tra đ a ch c a thi t b  N u có l i tràn x y xóa bit cho phép nh n CREN  N u đ a ch c a thi t b ti n hành xóa bit ADDEN đ cho phép nh n d li u vào b đ m phát sinh ng t D ng sóng nh n d li u nh hình 10-9: 204 Chương 10 Truyền liệu uart Khoa Điện – Điện Tử Đại Học Sư Phạm Kỹ Thuật Hình 10-9 D ng sóng nh n d li u t c D ng sóng tín hi u th nh t: d li u nh n v chân RX/DT, có kí t đ c nh n liên D ng sóng tín hi u th hai: cho bi t sau nh n xong kí t (nh n xong bit stop) n p l u vào ghi b đ m D ng sóng tín hi u th ba: cho bi t tín hi u RCIDL xu ng m c phát hi n bit start lên phát hi n bit stop D ng sóng tín hi u th n m: cho bi t c nh n RCIF lên m c nh n đ xu ng m c ti n hành đ c xong kí t nh n c kí t D ng sóng tín hi u th sáu: cho bi t bit báo l i tràn OERR lên m c nh n t i kí t D ng sóng tín hi u th b y: cho bi t xóa bit CREN xóa ln bit báo l i tràn OERR D ng sóng tín hi u th t : cho bi t ti n hành đ c byte d li u (đã m t byte), đ c xong xóa ln c báo ng t 10.4.5 THANH GHI T O T C BAUD C A PIC16F887 T ch c c a ghi u n t c đ baud (BAUDCTL – Baud Rate Control) nh hình 10-10 R(0) ABDOVF R(1) RCIDL - R/W(0) R/W(0) SCKP BRG16 - R/W(0) R/W(0) WUE ABDEN Hình 10-10 Thanh ghi BAUDCTL B ng 10-3 Tóm t t ch c n ng bit ghi BAUDCTL Bit BAUDCTL.7 Kí hi u ABDOVF BAUDCTL.6 RCIDL Ch c n ng (cho phép = 1; c m = 0) Auto – Baud detect Overflow bit: bit t đ ng phát hi n tràn t c đ baud ch đ khơng đ ng b : ABDOVF = 1: cho bi t timer t o t c đ baud t đ ng b tràn ABDOVF = 1: cho bi t timer t o t c đ baud t đ ng khơng b tràn ch đ đ ng b : khơng có tác d ng Receive Idle Flag bit: bit c ng ng nh n ch đ khơng đ ng b : RCIDL = 1: cho bi t b nh n ng ng – lên phát hi n bit stop Chương 10 Truyền liệu uart 205 Nguyễn Đình Phú BAUDCTL.4 SCKP BAUDCTL.3 BRG16 BAUDCTL.1 WUE BAUDCTL.0 ABDEN Bộ môn điện tử công nghiệpù RCIDL = 0: cho bi t b t đ u nh n bit start cho đ n bit d li u cu i ch đ đ ng b : khơng có tác d ng Synchronous Clock Polarity bit: ch đ khơng đ ng b : SCKP = 1: phát d li u đ o đ n chân TX/CK SCKP = 0: phát d li u khơng đ o đ n chân TX/CK ch đ đ ng b : SCKP = 1: d li u đ c d ch có c nh lên c a xung clock SCKP = 0: d li u đ c d ch có c nh xu ng c a xung clock 16 bit Baud Rate generator bit BRG16 = 1: s d ng b t o t c đ baud 16 bit BRG16 = 0: s d ng b t o t c đ baud bit Wake – up Enable bit: bit cho phép đánh th c CPU ch đ khơng đ ng b : WUE = 1: cho phép b nh n ch cho đ n có xung c nh xu ng S khơng có kí t đ c nh n n u bit RCIF thi t l p m c WUE s t đ ng xóa sau bit RCIF lên WUE = 0: B nh n ho t đ ng bình th ng ch đ đ ng b : khơng có ch c n ng Auto-Baud Detect Enable bit: bit cho phép phát hi n t c đ baud t đ ng ABDEN = 1: cho phép ho t đ ng t c đ baud t đ ng ABDEN = 0: khơng cho phép ho t đ ng t c đ baud t đ ng B phát t c đ baud (Baud Rate Generator) timer bit ho c 16 bit đ t o t c đ cho ho t đ ng truy n d li u ESUART đ ng b b t đ ng b M c nhiên kh i t o t c đ baud BRG ho t đ ng ch đ bit, n u cho bit BRG16 b ng ho t đ ng ch đ 16 bit C p ghi SPBRGH SPBRG xác đ nh chu k t o t c đ baud c a timer Trong ch đ truy n đ ng b b nhân chu k t c đ baud đ c xác đ nh b i c bit BRGH ghi TXSTA bit BRG16 ghi BAUDCTL Trong ch đ truy n b t đ ng b b nhân chu k t c đ baud ch đ bit BRGH c xác đ nh b i B ng 10-4 Tóm t t cơng th c tính t c đ baud ng v i t ng tr ng thái c a bit SYNC, BRG16 BRGH mà có cơng th c tính t c đ baud t ng ng Trong cơng th c tính t c đ baud n giá tr c a c p ghi SPBRGH SPBRG Ví d 10-1: 206 Hãy tính giá tr n c a c p ghi đ t c đ truy n 9600BAUD, s d ng th ch anh có t n s 16MHz, ho t đ ng b t đ ng b , b phát t c đ BRG bit Chương 10 Truyền liệu uart Khoa Điện – Điện Tử FOSC FOSC  Cơng th c tính t c đ baud: TDTDL  TDBAUD  64(n  1) 64([ SPBGRH : SPBRG]  1) Đại Học Sư Phạm Kỹ Thuật Tính giá tr c a c p ghi: SPBGRH : SPBRG  FOSC 16000000 1    25,041 64  9600 64  TDBAUD Giá tr đ n p cho c p ghi 25, t c đ th c là: TDBAUDTINH  FOSC 16000000   9615 64([ SPBGRH : SPBRG]  1) 64(25  1) Sai s so v i t c đ 9600 là: SAISO  10.5 CÁC L NH TRUY N D TDBAUDTINH  TDBAUD 9615  9600   0,16% TDBAUD 9600 LI U EUSART C A PIC16F887 Các l nh c a ngơn ng l p trình C liên quan đ n ng t bao g m: 10.5.1 L NH SETUP_UART(BAUD, STREAM) Cú pháp: setup_uart(baud, stream), setup_uart(baud), set_uart_speed(baud,[stream]) Thơng s : baud, stream có th ho c h ng s : h ng s th nh t t c đ , h ng s th tên c a c ng giao ti p n u h th ng có nhi u c ng giao ti p EUART đ phân bi t N u ch có khơng c n thơng s th Ch c n ng: thi t l p t c đ baud cho EUART Có hi u l c: cho t t c vi u n PIC Ví d 10-2: thi t l p t c đ 9600 baud: setup_uart(9600); 10.5.2 L NH PUTS(STRING) Cú pháp: puts(string) Thơng s : string chu i ký t g i Ch c n ng: có ch c n ng g i t ng kí t port n i ti p, sau g i xong chu i kí t t đ ng g i thêm kí t RETURN (có mã 13) kí t xu ng hàng (LINE-FEED có mã 10) Có hi u l c: cho t t c vi u n PIC Ví d 10-3: puts(“ | HELLO| ”); 10.5.3 L NH Value = Getc(),Value = Fgetc(Stream), Value = Getch(), Value = Getchar() Cú pháp: value = getc(),value = fgetc(stream), value = getch(), value = getchar() Thơng s : stream tên c a c ng EUART n u có Ch c n ng: có ch c n ng ch cho đ n có kí t g i đ n nh n Có hi u l c: cho t t c vi u n PIC Ví d 10-4: kitu = getch(); 10.5.4 L NH value = KBHIT() Cú pháp: value = KBHIT() Thơng s : khơng có Ch c n ng: có ch c n ng tr v k t qu n u có kí t nh n tr v k t qu sai n u khơng có kí t Chương 10 Truyền liệu uart 207 Nguyễn Đình Phú Bộ môn điện tử công nghiệpù Có hi u l c: cho t t c vi u n PIC Ví d 10-5: if (KBHIT) kitu = getch(); // n u có kí t nh n NG D NG TRUY N D 10.6 LI U EUSART C A PIC16F887 Ph n trình bày ng d ng truy n d li u đ n gi n c a PIC16F887, qua ng d ng giúp b n bi t s d ng ch c n ng truy n d li u c a PIC16F887 10.6.1 TRUY N D Bài 10-1:  LI U GI A PIC16F887 VÀ MÁY TÍNH I U KHI N LED M t h th ng truy n d li u gi a máy tính vi u n PIC 16F887: máy tính s g i d li u xu ng vi u n, vi u n s nh n d li u g i portD n i v i led đ n Máy tính s d ng ph n m m Terminal T c đ truy n 9600 baud S đ m ch: nh hình 10-11 Hình 10-11 H th ng truy n d li u gi a máy tính vi u n Trong s đ m ch có dùng IC2 có tên MAX232 dùng đ chuy n đ i tín hi u RS232 c a c ng COM c a máy tính thành chu n TTL đ t ng thích v i vi u n, xem hình 1012 Hình 10-12 D ng sóng m c c a chu n RS232 208 Chương 10 Truyền liệu uart Khoa Điện – Điện Tử Đại Học Sư Phạm Kỹ Thuật M c logic c a chu n RS232 có n áp 12V, m c logic có n áp -12V, chu n khác v i chu n TTL nên ph i chuy n đ i IC MAX232 có tích h p b chuy n đ i, m ch ch dùng b chuy n đ i Các t n m ch theo s tay c a IC nhà ch t o cung c p Truy n d li u UART th ng dùng c ng giao ti p chân có tên COM1 (tr c dùng c ng 25 chân nh ng b ) Chú ý v m ch in (PCB) b n ph i ch n c ng COM chân lo i hàn vào m ch in ch n linh ki n b n ph i ch n lo i Các dây cáp k t n i s d ng đ u jack đ c nên s giúp b n k t n i S d ng portD đ u n led đ n, th ch anh s d ng 20Mhz  L u đ : nh hình 10-13  Ch ng trình: cho vi u n nh n d li u #INCLUDE #USE rs232(baud=9600,xmit=pin_c6,rcv=pin_c7) UNSIGNED INT8 RDATA=0; VOID MAIN() { SET_TRIS_D(0x00); OUTPUT_D(RDATA); WHILE(TRUE) { IF(KBHIT()) { RDATA = GETCH(); OUTPUT_D(RDATA); } } } BEGIN - PC KH I T O PH N M M TERMINAL CH N C NG, CH N T C Đ BEGIN - VĐK KH I T O TRUY N D LI U, PORT CĨ D LI U Đ G I D LI U S NH N D LI U G I RA PORT0 Hình 10-13 L u đ u n truy n d li u  Gi i thích ch ng trình: Hàng th khai báo th vi n s d ng gi ng vi t Hàng th khai báo thi t l p truy n d li u g m thơng s : ch n t c đ truy n 9600 baud, ch n port phát d li u chân th c a portC, ch n port nh n d li u chân th c a portC Theo s đ chân chân RC6 RC7 TD RD nh ng b n c ng có th ch n chân khác đ k t n i c ng đ c, b n ph i hi u ch nh m ch n c ch ng trình Trong vòng l p while ti n hành ki m tra xem n u có d li u ti n hành nh n xu t portD Chương 10 Truyền liệu uart 209 Nguyễn Đình Phú Bộ môn điện tử công nghiệpù 10.6.2 PH N M M TRUY N D LI U TERMINAL TRÊN MÁY TÍNH truy n d li u t máy tính xu ng vi u n ta ph i ti n hành xây d ng ng trình, nhiên đ đ n gi n ta s d ng ph n m m có ph bi n Terminal ch  Giao di n ph n m m Terminal nh hình 10-14 Hình 10-14 Giao di n ph n m m Terminal đ g i d li u B n ph i xem “Device Manager” đ xem c ng COM s d ng COM th ti n hành ch n cho c ng COM port, tài li u máy tính s d ng c ng COM5 T c đ m c nhiên c a ph n m m 9600 baud B n ti n hành ch n m c “Connect”, sau k t n i thành cơng tên c a nút nh n tr thành “Disconnect” Hàng tr ng bên d i b n đánh ký t c n g i nh n enter ph n m m s g i xu ng máy tính Trong hình g i ký t s Ph n m m Terminal g i ký t d ng mã ASCII Khi g i s máy tính s g i mã ASCII c a s 0x32, d li u u n portD s 00110010 M c đích c a cho b n th y cách vi t ch ng trình truy n d li u đ n gi n, ti p theo s hi n th đ c nhi u ký t rõ rang h n ví d b n g i s máy tính b n có th nhìn th y đ c s hi n th LCD bên vi u n, b n có th g i chu i nhi u ký t 10.6.3 TRUY N D Bài 10-2: 210 LI U GI A PIC16F887 VÀ MÁY TÍNH HI N TH LCD M t h th ng truy n d li u gi a máy tính vi u n PIC 16F887: máy tính s g i d li u xu ng vi u n, vi u n s nh n d li u hi n th LCD Máy tính s d ng ph n m m Terminal T c đ truy n 9600 baud Chương 10 Truyền liệu uart Khoa Điện – Điện Tử Đại Học Sư Phạm Kỹ Thuật  S đ m ch: nh hình 10-15 Hình 10-15 H th ng truy n d li u gi a máy tính vi u n, hi n th LCD S đ m ch dùng LCD đ hi n th đ  L u đ : nh hình 10-16 c mã ASCII đ t BEGIN - PC KH I T O PH N M M TERMINAL CH N C NG, CH N T C Đ ng thích v i máy tính BEGIN - VĐK KH I T O TRUY N D LI U, KH I T O PORT, LCD CĨ D LI U Đ G I D LI U S NH N D LI U HI N TH TRÊN LCD Hình 10-16 L u đ u n truy n d li u, hi n th LCD  Ch ng trình: cho vi u n nh n d li u #INCLUDE #INCLUDE #USE rs232(baud=9600,xmit=pin_c6,rcv=pin_c7) UNSIGNED INT8 RDATA=0,I; const unsigned char HANG1[16]={"GIAO TIEP MAY TINH"}; VOID MAIN() { SET_TRIS_E(0x00); SET_TRIS_D(0x00); LCD_SETUP(); LCD_COMMAND(ADDR_LINE1); DELAY_US(10); FOR (I=0;I[...]... TÀI LI U THAM KH O 216 216 216 217 219 vii viii Chương 1 Nguyễn Đình Phú Bộ môn điện tử công nghiệp 1.1 GI I THI U Vi x lý có r t nhi u lo i b t đ u t 4 bit cho đ n 32 bit, vi x lý 4 bit hi n nay khơng còn nh ng vi x lý 8 bit v n còn m c dù đã có vi x lý 64 bit Lý do s t n t i c a vi x lý 8 bit là phù h p v i m t s u c u đi u khi n trong cơng nghi p Các vi x lý 32 bit, 64 bit th ng s d ng cho các máy... các thi t b ngo i vi cùng v i vi x lý t o thành m t IC g i là vi đi u khi n – Microcontroller nh hình 1-3 Hình 1-3 Vi đi u khi n đ c tích h p t vi x lý, b nh và các ngo i vi Khi vi đi u khi n ra đ i đã mang l i s ti n l i là d dàng s d ng trong đi u khi n cơng nghi p, vi c s d ng vi đi u khi n khơng đòi h i ng i s d ng ph i hi u bi t m t l ng ki n th c q nhi u nh ng i s d ng vi x lý V i m t ng d ng... các vi x lý càng m nh càng t t Các h th ng đi u khi n trong cơng nghi p s d ng các vi x lý 8 bit hay 16 bit nh h th ng đi n c a xe h i, h th ng đi u hòa, h th ng đi u khi n các dây chuy n s n xu t, … Hình 1-1 Các thi t b s d ng vi x lý Khi s d ng vi x lý thì ph i thi t k m t h th ng g m có: Vi x lý, có b nh , các ngo i vi B NH PORT NH P PORT XU T B Đ A CH CPU B D LI U B ĐI U KHI N Hình 1-2 H th ng vi. .. khi n đ n gi n thì h th ng vi x lý c ng ph i có đ y đ các kh i trên k t n i các kh i trên t o thành m t h th ng vi x lý đòi h i ng i thi t k ph i r t hi u bi t v t t c các thành ph n vi x lý, b nh , các thi t b ngo i vi H th ng t o ra khá ph c t p, chi m nhi u khơng gian, m ch in, và v n đ chính là đòi h i ng i thi t k hi u th t rõ v h th ng M t lý do n a là vi x lý th ng x lý d li u theo byte ho c word... CPU B D LI U B ĐI U KHI N Hình 1-2 H th ng vi x lý 2 Chương 1 Đặc tính, cấu trúc, chức năng các port Khoa Điện – Điện Tử Đại Học Sư Phạm Kỹ Thuật B nh dùng đ l u ch ng trình cho vi x lý th c hi n và l u d li u c n x lý, các ngo i vi dùng đ xu t nh p d li u t bên ngồi vào x lý và đi u khi n tr l i Các kh i này liên k t v i nhau t o thành m t h th ng vi x lý u c u đi u khi n càng cao thì h th ng càng... BAUDCTL 205 B ng 10-4 Tóm t t các cơng th c tính t c đ baud 206 vii viii M CL C Hình và b ng Ch ng 1 Trang VI I U KHI N PIC 16F887: T TÍNH, C U TRÚC, CH C N NG CÁC PORT 1.1 GI I THI U 2 1.2 KH O SÁT VI I U KHI N MICROCHIP 4 1.2.1 C u hình c a vi đi u khi n pic16f887 4 1.2.2 S đ c u trúc c a vi đi u khi n pic 16f887 7 1.2.3 Kh o sát s đ chân vi đi u khi n pic16f887 9 1.3 Ch CỂU H I ƠN T P – TR C NGHI M... cùng v i vi đi u khi n đ c th hi n tiêu bi u nh hình 1-4 Hình 1-4 Các thi t b vào, ra và vi đi u khi n Ph n ti p theo chúng ta s kh o sát vi đi u khi n đ th y rõ s ti n l i trong đi u khi n Có r t nhi u hãng ch t o đ c vi đi u khi n, hãng s n xu t n i ti ng là TI, Microchip, ATMEL, tài li u này s trình bày vi đi u khi n tiêu bi u là PIC16F887 c a MICROCHIP 1.2 KH O SÁT VI I U KHI N MICROCHIP Vi đi u... cấu trúc, chức năng các port Khoa Điện – Điện Tử Đại Học Sư Phạm Kỹ Thuật C u hình c a vi đi u khi n đ c minh h a b ng hình nh nh hình 1-5: Hình 1-5 C u hình c a vi đi u khi n 1.2.2 S C U TRÚC C A VI I U KHI N PIC 16F887 S đ c u trúc vi đi u khi n đ c trình bày hình 1-6 Các kh i bên trong vi đi u khi n bao g m: - Có kh i thanh ghi đ nh c u hình cho vi đi u khi n - Có kh i b nh ch - Có kh i b nh ng n... so sánh v i vi đi u khi n AT89S52 Chương 1 Đặc tính, cấu trúc, chức năng các port 15 Nguyễn Đình Phú Bộ môn điện tử công nghiệp Câu s 1-13: Hãy tìm hi u c u hình vi đi u khi n AT89S8252 và so sánh v i vi đi u khi n AT89S52 Câu s 1-14: Hãy tìm hi u c u hình vi đi u khi n AT89C51RD2 và so sánh v i vi đi u khi n AT89S52 Câu s 1-15: Hãy tìm hi u c u hình vi đi u khi n PIC16F877A và so sánh v i vi đi u khi... n ng portE c a vi đi u khi n PIC16F887 1.3.2 CÂU H I M R NG Câu s 1-8: Hãy nêu c u hình c a vi đi u khi n AT89S52 Câu s 1-9: Hãy cho bi t các lo i b nh mà vi đi u khi n AT89S52 tích h p và m r ng Câu s 1-10: Hãy trình bày tên và ch c n ng các port c a vi đi u khi n AT89S52 Câu s 1-11: Hãy tìm hi u q trình phát tri n c a h vi đi u khi n MCS51 và MCS52 Câu s 1-12: Hãy tìm hi u các port vi đi u khi n AT89C52

Ngày đăng: 12/10/2016, 19:15

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan