1. Trang chủ
  2. » Luận Văn - Báo Cáo

0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN

83 3 0

Đ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

Thông tin cơ bản

Tiêu đề Thiết Kế Bộ Dụng Cụ Thực Hành PIC 16F877A Đơn Giản
Tác giả Huỳnh Văn Quang
Người hướng dẫn ThS. Phan Văn Hiệp
Trường học Trường Đại Học Mở Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Án Tốt Nghiệp
Năm xuất bản 2012
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 83
Dung lượng 2,35 MB

Nội dung

TR NG I H C M THÀNH PH H CHÍ MINH KHOA XÂY D NG VÀ I N K S ÁN T T NGHI P NGÀNH CÔNG NGHI P THI T K B D NG C TH C HÀNH PIC 16F877A N GI N SVTH : HU NH V N QUANG MSSV : 20702025 GVHD : ThS PHAN V N TP H Chí Minh, tháng n m 2012 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P L IM U Ngày k thu t vi u n tr nên quen thu c ngành k thu t dân d ng Các b vi u n có kh n ng x lý nhi u ho t đ ng ph c t p mà ch c n m t chip vi m ch nh , thay th t u n l n ph c t p b ng nh ng m ch n g n nh , d dàng thao tác s d ng Vi u n khơng nh ng góp ph n vào k thu t u n mà cịn góp ph n to l n vào vi c phát tri n thơng tin Chính lý trên, vi c tìm hi u, kh o sát vi u n u mà sinh viên ngành n mà đ c bi t chuyên ngành k thu t n-đi n t ph i h t s c quan tâm đ tài đ ó m t nhu c u c n thi t c p bách đ i v i m i sinh viên, c th c hi n đáp ng nhu c u Các b u n s d ng vi u n đ n gi n nh ng đ v n hành s d ng đ ng c l i m t u r t ph c t p Ph n cơng vi c x lý v n ph thu c vào i, ch ng trình hay ph n m m Do v y nói đ n vi u n c ng gi ng nh máy tính bao g m ph n ph n c ng ph n m m M c dù vi u n đ c nh ng b k thu t khơng th m t vi c có đ c dài nh v y nh ng đ ti p c n đ c m t s m m t chi u cv i tìm hi u b vi u n m t cách khoa h c mang l i hi u qu cao làm n n t n cho vi c xâm nh p vào nh ng h th ng t i tân h n Vi c trang b nh ng ki n th c v vi u n cho sinh viên h t s c c n thi t Xu t phát t th c ti n em đ n quy t đ nh thi t k b Kit th c hành Vi i u Khi n PIC 16F877A đ n gi n nh m đáp ng nhu c u ham mu n h c h i c a b n thân giúp cho b n sinh viên d ti p c n hi u sâu h n v Vi i u Khi n PIC 16F877A Trong trình th c hi n đ tài v n cịn nhi u sai sót, mong nh n đ c nhi u ý ki n đóng góp t th y cô b n.Xin chân thành c m n! Tp HCM, ngày 19 tháng n m 2012 Hu nh V n Quang HU NH V N QUANG - 20702025 ÁN T T NGHI P K S CÔNG NGHI P L IC M GVHD: ThS PHAN V N HI P N Tr c tiên em xin g i l i cám n chân thành sâu s c t i th y cô giáo tr ng i h c M Thành ph H Chí Minh nói chung th y cô giáo khoa Xây D ng i n nói riêng t n tình gi ng d y,truy n đ t cho em nh ng ki n th c, kinh nghi m quý báu su t th i gn qua c bi t em xin g i l i c m n đ n th y Phan V n Hi p, th y t n tìnhgiúp đ , tr c ti p ch b o, h ng d n em su t trình làm đ án t t nghi p Trong th i gian làm vi c v i th y, em không ng ng ti p thu thêm nhi u ki n th c b ích mà cịn h c t p đ c tinh th n làm vi c, thái đ nghiên c u khoa h c nghiêm túc, hi u qu , nh ng u r t c n thi t cho em q trình h c t p cơng tác sau Sau xin g i l i c m n chân thành t i gia đình, b n bè đ ng viên,đóng góp ý ki n giúp đ trình h c tâp, nghiên c u hoàn thành đ án HU NH V N QUANG - 20702025 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P M CL C CH NG 1: T NG QUAN V VI I U KHI N Error! Bookmark not defined 1.1 Gi i thi u chung Error! Bookmark not defined 1.1.2Phân lo i Error! Bookmark not defined 1.1.3C u trúc t ng quan c a VDK Error! Bookmark not defined 1.2 Khái quát v vi u n pic Error! Bookmark not defined 1.2.1PIC ? Error! Bookmark not defined 1.2.2Ki n trúc PIC Error! Bookmark not defined 1.2.3RISC CISC Error! Bookmark not defined 1.2.4Ngơn ng l p trình cho PIC Error! Bookmark not defined 1.2.5Các dòng PIC cách l a ch n vi u n PICError! Bookmark not defined CH NG 2: VI I U KHI N PIC16F877A 2.1 Các d ng s đ chân Error! Bookmark not defined 2.2 Ch c n ng chân c a PIC16F877A Error! Bookmark not defined 2.3 c m vi u n PIC16F877A Error! Bookmark not defined 2.4.1 B nh ch ng trình Error! Bookmark not defined 2.4.2 B nh d li u Error! Bookmark not defined 2.5 Các c ng xu t nh p c a PIC16F877A Error! Bookmark not defined 2.5.1PORT A Error! Bookmark not defined 2.5.2PORT B Error! Bookmark not defined 2.5.3PORT C Error! Bookmark not defined 2.5.4PORT D Error! Bookmark not defined 2.5.5PORT E Error! Bookmark not defined 2.6 TIMER Error! Bookmark not defined 2.7 TIMER Error! Bookmark not defined 2.8 TIMER Error! Bookmark not defined 2.9 ADC Error! Bookmark not defined 2.10COMPARATOR – B so sánh Error! Bookmark not defined 2.11CCP (CAPTURE/COMPARE/PWM) Error! Bookmark not defined 2.12Giao ti p n i ti p Error! Bookmark not defined 2.13C ng giao ti p song song PSP (PARALLEL SLAVE PORT)Error! Bookmark not defined HU NH V N QUANG - 20702025 ÁN T T NGHI P K S 2.14T 2.14.1 2.14.2 2.14.3 2.14.4 2.14.5 CÔNG NGHI P GVHD: ThS PHAN V N HI P ng quan v m t s đ c tính c a CPU Error! Bookmark not defined B dao đ ng (OSCILLATOR) Error! Bookmark not defined RESET Error! Bookmark not defined Ng t (INTERRUPT) Error! Bookmark not defined WATCHDOG TIMER (WDT) Error! Bookmark not defined Ch đ SLEEP Error! Bookmark not defined CH NG 3: THI T K VÀ THI CÔNG B KIT TH C HÀNH VI I U KHI N PIC 16F8777A Error! Bookmark not defined 3.1 Gi i thi u chung Error! Bookmark not defined 3.2 S đ kh i c a b kit nguyên t c v n hành Error! Bookmark not defined 3.2.1 S đ kh i b KIT Error! Bookmark not defined 3.2.2 S đ b trí b KIT Error! Bookmark not defined 3.2.3 Nguyên t c v n hành b KIT Error! Bookmark not defined 3.3 Hình nh th c t b KIT 33 3.4 Nguyên lý ho t đ ng c a t ng kh i Error! Bookmark not defined 3.4.1Kh i x lý trung tâm Error! Bookmark not defined 3.4.2Kh i quét LED đo n Error! Bookmark not defined 3.4.3Kh i quét LED ma tr n Error! Bookmark not defined 3.4.4Kh i hi n th LCD Error! Bookmark not defined 3.4.5Kh i bàn phím KEYPAD Error! Bookmark not defined 3.4.6Kh i u n đ ng c DC Error! Bookmark not defined 3.4.7Hi n th vào b ng LED đ n Error! Bookmark not defined 3.4.8Kh i nút nh n( Button): Error! Bookmark not defined 3.4.9 Kh i ADC 49 3.4.10Kh i RTC: Error! Bookmark not defined 3.4.11Kh i ngu n Error! Bookmark not defined CH NG 4: DEMO M T S CH NG TRÌNH 52 4.1Xu t d li u lên 74HC595 u n 32 LED đ n 52 4.2 ng h th i gian th c hi n th LED đo n 53 4.3Quang báo v i LED ma tr n 54 4.4Hi n th chu i ký t lên LCD 55 4.5 i u n LED đ n b ng ADC đ n gi n 55 4.6Gi i mã bàn phím hi n th LED đo n 56 CH NG 5: H NG M RÔNG TÀI 58 5.1Thay th b LED ma tr n m t màu b ng LED ma tr n màu 58 5.2Thay th dãy 32 LED d n b ng dãy LED đ n màu 59 HU NH V N QUANG - 20702025 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P PH L CCÁC CH NG TRÌNH DEMO 60 i u n 32 led đ n 60 ng h th i gian th c hi n th led đo n 61 Quang báo 68 Xu t ký t lên lcd 71 ADC 73 G i mã bàn phím 74 TÀI LI U THAM KH O 77 HU NH V N QUANG - 20702025 ÁN T T NGHI P K S CÔNG NGHI P CH GVHD: ThS PHAN V N HI P NG 1: T NG QUAN V VI I U KHI N 1.1 Gi i thi u chung B Vi x lỦ có kh n ng v tốn, x lỦ, vƠ thay đ i ch t b c so v i h th ng khác v kh n ng tính ng trình linh ho t theo m c đích ng i dùng, đ c bi t hi u qu đ i v i bƠi toán vƠ h th ng l n Tuy nhiên đ i v i ng d ng nh , t m tính tốn khơng địi h i kh n ng tính tốn l n vi c ng d ng vi x lỦ c n nh c B i h th ng dù l n hay nh , n u dùng vi x lỦ c ng địi h i kh i m ch n giao ti p ph c t p nh Các kh i nƠy bao g m b nh đ ch a d li u vƠ ch ng trình th c hi n, m ch n giao ti p ngo i vi đ xu t nh p vƠ u n tr l i, kh i nƠy liên k t v i vi x lỦ m i th c hi n đ hi u bi t tinh t th ng đ c công vi c k t n i kh i nƠy đòi h i ng i thi t k ph i ng v thƠnh ph n vi x lỦ, b nh , thi t b ngo i vi H c t o ph c t p, chi m nhi u không gian, m ch in ph c t p vƠ v n đ lƠ trình đ ng i thi t k K t qu lƠ giá thƠnh s n ph m cu i r t cao, không phù h p đ áp d ng cho h th ng nh Vì m t s nh c m nên nhƠ ch t o tích h p m t b nh vƠ m t s m ch giao ti p ngo i vi v i vi x lỦ vƠo m t IC nh t đ c g i lƠ MICrocontroller- Vi u n Vi u n đ c ng d ng dơy chuy n t đ ng lo i nh , robot có ch c n ng đ n gi n, máy gi t, ôtô v.v 1.1.2 Phơn lo i dài ghi  D a vƠo đ dƠi c a ghi vƠ l nh c a V K mƠ ng i ta chia lo i V K 8bit, 16bit, hay 32bit  Ki n trúc CISC RISC VXL ho c V K CISC lƠ V K có t p l nh ph c t p Các V K nƠy có m t s l ng l n l nh nên giúp cho ng h n vi t ch m ts l i l p trình có th linh ho t vƠ d dƠng ng trình V K RISC lƠ V K có t p l nh đ n gi n Chúng có ng nh l nh đ n gi n DO đó, chúng địi h i ph n c ng h n, HU NH V N QUANG - 20702025 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P giá thƠnh th p h n, vƠ nhanh h n so v i CISC Tuy nhiên địi h i ng trình ph i vi t ch il p ng trình ph c t p h n, nhi u l nh h n  Ki n trúc Harvard ki n trúc Vonneumann Ki n trúc Harvard s d ng b nh riêng bi t cho ch ng trình vƠ d li u Bus đ a ch vƠ bus d li u đ c l p v i nên trình truy n nh n d li u đ n gi n h n Ki n trúc Vonneumann s d ng chung b nh cho ch ng trình vƠ d li u i u nƠy lƠm cho V K g n nh h n, giá thƠnh nh h n 1.1.3 C u trúc t ng quan c a VDK  CPU: LƠ trái tim c a h th ng LƠ n i qu n lí t t c ho t đ ng c a V K Bên CPU g m: - ALU lƠ b ph n thao tác d li u - B gi i mã l nh vƠ u n, xác đ nh thao tác mƠ CPU c n th c hi n - Thanh ghi l nh IR, l u gi opcode c a l nh đ c th c thi - Thanh ghi PC, l u gi đ a ch c a l nh k ti p c n th c thi - M t t p ghi dùng đ l u thông tin t m th i  ROM: ROM lƠ b nh dùng đ l u gi ch ng trình ROM cịn dùng đ ch a s li u b ng, tham s h th ng, s li u c đ nh c a h th ng Trong trình ho t đ ng n i dung ROM lƠ c đ nh, không th thay đ i, n i dung ROM ch thay đ i ROM  ch đ xóa ho c n p ch ng trình RAM: RAM lƠ b nh d li u B nh RAM dùng lƠm môi tr ng x lỦ thông tin, l u tr k t qu trung gian vƠ k t qu cu i c a phép toán, x lí thơng tin Nó c ng dùng đ t ch c vùng đ m d li u, thao tác thu phát, chuy n đ i d li u  BUS: BUS đ HU NH V N QUANG - 20702025 ng d n dùng đ di chuy n d li u Bao g m: bus đ a ch , ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P bus d li u , vƠ bus u n  B NH TH I: c s d ng cho m c đích chung v th i gian  WATCHDOG: B ph n dùng đ reset l i h th ng h th ng g p s c ắb t th  ng” ADC: B ph n chuy n tín hi u analog sang tín hi u digital Các tín hi u bên ngoƠi vƠo VDK th ng d ng analog ADC s chuy n tín hi u nƠy v d ng tín hi u digital mƠ VDK có th hi u đ 1.2 1.2.1 c Khái quát v vi u n pic PIC ? PIC lƠ vi t t t c a ắProgramable Intelligent Computer”, có th t m d ch lƠ ắmáy tính thơng minh kh trình” hãng Genenral Instrument đ t tên cho vi u n đ u tiên c a h : PIC1650 đ c thi t k đ dùng lƠm thi t b ngo i vi cho vi u n CP1600 Vi u n nƠy sau đ c nghiên c u phát tri n thêm vƠ t hình thƠnh nên dịng vi u n PIC ngày 1.2.2 Ki n trúc PIC C u trúc ph n c ng c a m t vi u n đ c thi t k theo hai d ng ki n trúc: ki n trúc Von Neuman vƠ ki n trúc Havard Hình 1.1: Ki n trúc Havard ki n trúc Von-Neuman T ch c ph n c ng c a PIC đ HU NH V N QUANG - 20702025 c thi t k theo ki n trúc Havard i m khác ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P bi t gi a ki n trúc Havard vƠ ki n trúc Von-Neuman lƠ c u trúc b nh d li u vƠ b nh ch ng trình i v i ki n trúc Von-Neuman, b nh d li u vƠ b nh ch ng trình n m chung m t b nh , ta có th t ch c, đ i m t cách linh ho t b nh ch ng trình vƠ b nh d li u Tuy nhiên u nƠy ch có Ủ ngh a t c đ x lí c a CPU ph i r t cao, v i c u trúc đó, m t th i m CPU ch có th t ng tác v i b nh d li u ho c b nh ch ng trình Nh v y có th nói ki n trúc Von-Neuman khơng thích h p v i c u trúc c a m t vi u n i v i ki n trúc Havard, b nh d li u vƠ b nh ch ng trình tách thành hai b nh riêng bi t Do m t th i m CPU có th t tác v i c hai b nh , nh v y t c đ x lí c a vi u n đ ng c c i thi n đáng k M t m c n Ủ n a lƠ t p l nh ki n trúc Havard có th đ ct i u tùy theo yêu c u ki n trúc c a vi u n mƠ không ph thu c vƠo c u trúc d li u Ví d , đ i v i vi u n dòng 16F, đ dƠi l nh lƠ 14 bit (trong d li u đ c t ch c thƠnh t ng byte), đ i v i ki n trúc Von- Neuman, đ dƠi l nh lƠ b i s c a byte (do d li u đ c t ch c thƠnh t ng byte) 1.2.3 RISC CISC Qua vi c tách r i b nh ch ng trình vƠ b nh d li u, bus ch vƠ bus d li u, CPU có th m t lúc truy xu t c b nh ch ng trình ng trình vƠ b nh d li u, giúp t ng t c đ x lí c a vi u n lên g p đôi ng th i c u trúc l nh khơng cịn ph thu c vƠo c u trúc d li u n a mƠ có th linh đ ng u ch nh tùy theo kh n ng vƠ t c đ c a t ng vi u n VƠ đ ti p t c c i ti n t c đ th c thi l nh, t p l nh c a h vi u n PIC đ c thi t k cho chi u dƠi mã l nh ln c đ nh (ví d đ i v i h 16Fxxxx chi u dƠi mã l nh lƠ 14 bit) vƠ cho phép th c thi l nh m t chu kì c a xung clock ( ngo i tr m t s tr HU NH V N QUANG - 20702025 ng h p đ c bi t nh l nh nh y, l nh g i ch ng ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P keyscan(); }} void set_blink() { switch (mode) { case 1: blink_sec= 1; break; case 2: {blink_min= 1;blink_sec= 0;} break; case 3: {blink_hour= 1;blink_min= 0;} break; case 4: { blink= 0;mode = 0;blink_sec= 0; blink_min= 0;blink_hour= 0; } break; }} void change_time() { if(mode = = 1) {blink_sec= 1;set_sec();} if(mode = = 2) {blink_min= 1;set_min();} if(mode = = 3) {blink_hour= 1;set_hour();} if(mode = = 4) { blink= 0;mode = 0; blink_sec= 0; blink_min= 0; blink_hour= 0; }} void update_1307() { write_DS1307(0,sec); write_DS1307(1,min); } HU NH V N QUANG - 20702025 63 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P void keyscan() { RD0= 1;RD1= 1;RD2= 1;RD3= 1; if(SW1 != 1) { key= 0;SW1= 1;delay_ms(150);} if(SW2 != 1) { key= 1;SW2= 1;delay_ms(150);} if(SW3 != 1) { key= 2;SW3= 1;delay_ms(150);} if(SW4 != 1) { key= 3;SW4= 1;delay_ms(150);} if(key != 5) { switch (key) { case 0: {mode+ + ;key = 5;blink= 1;set_blink();} break; case 1: {change_time();key = 5;update_1307();} break; case 2: {clear_status();key = 5;} break; } } } void set_sec() { sec= read_ds1307(0); if (sec> = 0x30) {sec= 0; min+ + ; write_ds1307(1,min);} else sec= 0; write_ds1307(0,sec); } void set_min() { byte j; min= read_ds1307(1); min+ + ; j= & 0x0F; HU NH V N QUANG - 20702025 64 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P if (j> = 0x0A) min= min+ 0x06; if (min> = 0x60) min= 0; write_ds1307(1,min); } void set_hour() { hour= hour & 0x1F; hour+ + ; if(hour= = 0x0a) hour = hour+ 0x06; if(hour = = 0x13) { hour = 0x00; if (ampm = = 0) ampm = 1; else ampm = 0; } } void clear_status() { mode= 4; set_blink(); } void read_time() { sec = read_DS1307(0); = read_DS1307(1); hour = read_DS1307(2); update_time(); } void update_time() { ampm = bit_test(hour,5); //test AM PM if(ampm = = 0) {RD2 = 0;RD3= 1;} //AM HU NH V N QUANG - 20702025 65 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P if(ampm = = 1) {RD2 = 1;RD3= 0;} // PM TG1= sec & 0x0F; TG2= (sec & 0xF0)> > 4; //convert to BCD SEC TG3= & 0x0F; TG4= (min & 0xF0)> > 4; //convert to BCD MIN TG5= hour & 0x0F; TG6= (hour & 0x10)> > 4; //convert to BCD HOUR } void display() { TRISB= 0x00; TRISA= 0x00; if(blink= = 0) goto hienthi; if(on_off= = 0) goto LED_blink; hienthi: PortB= MAP[TG6]; RA5= 0; delay_ms(1); RA5= 1; PortB= MAP[TG5]; RA4= 0; delay_ms(1); RA4= 1; PortB= MAP[TG4]; RA3= 0; delay_ms(1); RA3= 1; PortB= MAP[TG3]; RA2= 0; HU NH V N QUANG - 20702025 66 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P delay_ms(1); RA2= 1; PortB= MAP[TG2]; RA1= 0; delay_ms(1); RA1= 1; PortB= MAP[TG1]; RA0= 0; delay_ms(1); RA0= 1; if(count!= 0) goto exit; else { count= 15; on_off= 0; } goto exit; LED_blink: PortB= MAP[TG1]; if (blink_sec= = 1) RA5= 1; else RA5= 0; delay_ms(3); RA0= 1; PortB= MAP[TG2]; if (blink_sec= = 1) RA4= 1; else RA4= 0; delay_ms(3); RA4= 1; PortB= MAP[TG3]; HU NH V N QUANG - 20702025 67 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P output_low(PIN_B7); if(blink_min= = 1) delay_ms(3); RA3= 1; else RA3= 0; RA3= 1; PortB= MAP[TG4]; if(blink_min= = 1) delay_ms(3); RA2= 1; else RA2= 0; RA2= 1; PortB= MAP[TG5]; output_low(PIN_B7); if(blink_hour= = 1) RA1= 1; delay_ms(3); else RA1= 0; RA1= 1; PortB= MAP[TG6]; if(blink_hour= = 1) RA0= 1; delay_ms(3); else RA0= 0; RA0= 1; if(count= = 0) { count= 15;on_off= 1; } exit: count ; } Quang báo #include < 16f877a.h> #include < font5x7.c> #use delay(clock= 20m) #byte Port_B = 0x06 // Dinh nghia ghi Port B #byte Port_C #byte TRIS_B = 0x86 // Dinh nghia ghi Tris B #byte TRIS_C #byte LED_data = Port_B #bit = 0x07 // Dinh nghia ghi Port C = 0x87 // Dinh nghia ghi Tris B data = Port_C.4 // Dinh nghia chan data la pin C.4 HU NH V N QUANG - 20702025 68 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P #bit clock = Port_C.6 // Dinh nghia chan data la pin C.5 #bit latch = Port_C.5 // Dinh nghia chan data la pin C.6 char LED[32];//4LED matran char font_buffer[6]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};// unsigned char string1[]= "DO AN TOT NGHIEP NAM 2012 LED matrix 8x32 HUYNH VAN QUANG 20702025"; char dem_ngat, addr, leng, ky_tu, vi_tri; void HC595(char cot) { char i; for(i= 0;i< cot;i+ + ) { //DUA CAC BIT VAO` TRUOC data= 1; // Dua bit vao 595 clock= 1; // Tao xung o chan Clock de dua du lieu vao 595 clock= 0; } data= 0; // Dua bit vao vi tri cot can hien thi clock= 1; clock= 0; for(i= (cot+ 1);i< = 31;i+ + ) { data= 1; //Tiep tuc dua bit vao 595 cho du 32bit clock= 1; clock= 0; } latch= 1; // Tao xung o chan Latch de day du lieu cac cong va chot latch= 0; } #int_timer0 // Khai bao su dung timer HU NH V N QUANG - 20702025 69 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P void Scan(void){ set_timer0(200); //cai dat gia tri ban dau cho timer0 if((+ + dem_ngat)= = 5) { LED_data= 0xff; HC595(addr); LED_data= LED[addr]; addr+ + ; if(addr> = 32) addr= 0; dem_ngat= 0; }} void leng_string(void){ leng= 0; while((string1[leng])!= '\1') // Chay tu dau cho toi ket thuc chuoi leng+ + ; } void copy_font(void){ char j; for(j= 0;j< = 4;j+ + ) font_buffer[j]= font[(string1[ky_tu] -32)].b[j]; font_buffer[j]= 0xff; } void kieu_1(void) { char j; for(j= 31;j> 0;j ) LED[j]= LED[j-1]; if(vi_tri> 5) { HU NH V N QUANG - 20702025 70 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P vi_tri= 0; copy_font(); ky_tu+ + ; } else{ LED[0]= font_buffer[vi_tri]; vi_tri+ + ; }} void main() { int i; TRIS_B= 0x00; TRIS_C= 0x00; Port_B= 0x00; Port_C= 0x00; setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16); //tan so timer0 set_timer0(20); enable_interrupts(global);//cho phep ngat toan cuc enable_interrupts(int_rtcc); leng_string(); // Lay dai ky_tu= 0; while(true) { for (i= 0;i< = 32;i+ + ) LED[i]= 0xFF; while(ky_tu< = leng){ kieu_1(); delay_ms(40); } } } Xu t ký t lên lcd #include < 16f877a.h> #use delay(clock= 20000000) #fuses HS HU NH V N QUANG - 20702025 71 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P #use fast_io(d) #use fast_io(c) void ghilenh(); void xuatdulieu(); char ten[]= "Met lam roi";// char ten1[]= "Muon nghi ngoi"; int8 i; void main() {set_tris_c(0b00000000);//0x00 set_tris_d(0b00000000); output_d(0x38); ghilenh(); output_d(0x0e); ghilenh(); output_d(0x80); ghilenh(); while(true) {for(i= 0;i< = 12;i+ + ) {output_d(ten[i]); xuatdulieu(); } output_d(0xC0); ghilenh(); for(i= 0;i< = 14;i+ + ) {output_d(ten1[i]); xuatdulieu(); } do{} while(true); HU NH V N QUANG - 20702025 72 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P } } void ghilenh() { output_low(pin_C0); output_low(pin_C1); output_high(pin_C2); output_low(pin_C2); delay_ms(5); } void xuatdulieu() { output_high(pin_C0); output_low(pin_C1); output_high(pin_C2); output_low(pin_C2); delay_ms(5); } ADC #include < 16F877.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #devICe 16F877*= 16 ADC= #use delay(clock= 20000000) Int8 adc; main() { setup_adc(adc_clock_internal); setup_adc_ports(AN0); set_adc_channel(0); delay_ms(10); HU NH V N QUANG - 20702025 73 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P while(true) { adc= read_adc(); output_B(adc); } } Gi i mƣ bƠn phím #include < 16f877a.h> #include "def_877a.h” #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, #use delay(clock= 20000000) #use fast_io(b) #DEFINE KEYPORT PORTC #DEFINE TRISKEYPORT TRISC #DEFINE BASEKEY PIN_C4 ConstcharLED7[16]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //CAC HAM CO BAN CHO QUET PHIM char xoayTrai(char value);//XOAY VONG MOT BIEN BIT char readKey(); void main(void) { char key= 0; TRISB= 0X00;//OUPUT CHO PORTB DE DEBUG PORTB= 0XF0;//DANH DAU XUAT PORT OK delay_ms(1000); while(true) { key= readKey();//DOC PHIM HU NH V N QUANG - 20702025 74 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P if(key!= 0) PORTB= LED7[key-1];//HIEN THI PHIM NEU CO MOT PHIM NHAN } } char xoayTrai(char value) { char temp; temp= value; temp= temp> > 7; value= value< < 1; value= value|temp; return value; } char readKey() { char temp;//LUU GIA TRI XOAY CHO PORT QUET PHIM char key;//LUU GIA TRI KEY DA NHAN int i;//BIEN DEM VONG TRISKEYPORT= 0XF0; KEYPORT= 0X00; temp= 0x7F; for( i= 0;i< 4;i+ + ) { temp= xoayTrai(temp);//XOAY MOT BIT KEYPORT= temp;//DUA RA PORT DE QUET QUA HANG/COT MOI KEY= 0; if( input_state(BASEKEY)= = ) { HU NH V N QUANG - 20702025 75 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P KEY= i*4+ 1; break; } else if( input_state(BASEKEY+ 1)= = ) { KEY= i*4+ 2; break; } else if( input_state(BASEKEY+ 2)= = ) { KEY= i*4+ 3; break; } else if( input_state(BASEKEY+ 3)= = ) { KEY= i*4+ 4; break; } } return KEY; } HU NH V N QUANG - 20702025 76 ÁN T T NGHI P K S CÔNG NGHI P GVHD: ThS PHAN V N HI P TÀI LI U THAM KH O Datasheet PIC16F877a www.PICvietnam.com www.dientuvietnam.net www.mICrochip.com www.ccsinfo.com www.engineersgarage.com VƠ nhi u đ a ch khác Internet HU NH V N QUANG - 20702025 77

Ngày đăng: 20/10/2022, 03:43

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Vi đi u kh in PIC16F877A/PIC16F874A và cá cd ng sđ chân - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 2.1 Vi đi u kh in PIC16F877A/PIC16F874A và cá cd ng sđ chân (Trang 13)
Hình 2.2: Sđ chân PIC16F877A - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 2.2 Sđ chân PIC16F877A (Trang 14)
Hình 2.3: B ng tóm tt đc đi m ca VDK PIC16F877A - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 2.3 B ng tóm tt đc đi m ca VDK PIC16F877A (Trang 17)
Hình 2.4 Sđ khi ca Timer0. - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 2.4 Sđ khi ca Timer0 (Trang 21)
Hình 2.5 Sđ khi ca Timer1. - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 2.5 Sđ khi ca Timer1 (Trang 23)
Hình 2.6 Sđ khi Timer2. - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 2.6 Sđ khi Timer2 (Trang 24)
Hình 2.7: Sđ khi b chu yn đi ADC. - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 2.7 Sđ khi b chu yn đi ADC (Trang 26)
Hình 2.9 Sđ khi CCP (Compare mode). - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 2.9 Sđ khi CCP (Compare mode) (Trang 29)
Hình 3.1: sđ khi b kit th c hành PIC16F877A - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.1 sđ khi b kit th c hành PIC16F877A (Trang 38)
Hình 3.2: Sđ khi b KIT - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.2 Sđ khi b KIT (Trang 39)
Hình 3.3.1 Bên trong b KIT - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.3.1 Bên trong b KIT (Trang 40)
Hình 3.3. Bên ngồi b KIT - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.3. Bên ngồi b KIT (Trang 40)
Hình 3.4: Sđ nguyên lý bx lý trung tâm - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.4 Sđ nguyên lý bx lý trung tâm (Trang 41)
Hình 3.5: M chin - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.5 M chin (Trang 42)
Hình 3.7: Sđ nguyên lý khi LE D2 đ on - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.7 Sđ nguyên lý khi LE D2 đ on (Trang 44)
Hình 3.10: đm 74HC595 - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.10 đm 74HC595 (Trang 45)
Hình 3.11: Khi LED mat rn - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.11 Khi LED mat rn (Trang 46)
Hình 3.12: B khu ch đi dòng - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.12 B khu ch đi dòng (Trang 46)
Hình 3.13: M chin lp TOP - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.13 M chin lp TOP (Trang 47)
Hình 3.16: M chin khi LCD - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.16 M chin khi LCD (Trang 49)
 Nhi v: Dùng đ hin th giá tr lên mƠn hình LCD 16x2( có th lƠ chu i kỦ t , nhi t đ , l chầ). - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
hi v: Dùng đ hin th giá tr lên mƠn hình LCD 16x2( có th lƠ chu i kỦ t , nhi t đ , l chầ) (Trang 49)
Hình 3.19: M chin lp TOP - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.19 M chin lp TOP (Trang 50)
HÌnh 3.18: M chin lp BOTTON - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
nh 3.18: M chin lp BOTTON (Trang 50)
Hình 3.20: Sđ nguyên lý b đi u khi nđ ng c DC - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.20 Sđ nguyên lý b đi u khi nđ ng c DC (Trang 51)
Hình 3.23: Sđ nguyên lý - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.23 Sđ nguyên lý (Trang 53)
Hình 3.27: Sđ nguyên lý khi ADC - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.27 Sđ nguyên lý khi ADC (Trang 55)
Hình 3.29: M chin khi RTC - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.29 M chin khi RTC (Trang 56)
Hình 3.28: Sđ nguyên lý khi RTC - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.28 Sđ nguyên lý khi RTC (Trang 56)
Hình 3.30: Sđ nguyên lý b ngun chun 5V - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 3.30 Sđ nguyên lý b ngun chun 5V (Trang 57)
Hình 5.1: Sđ nguyên lý khi đi u kh in LED mat rn 8×1 63 màu - 0804THIẾT KẾ BỘ DỤNG CỤ THỰC HÀNH PIC 16F877A ĐƠN GIẢN
Hình 5.1 Sđ nguyên lý khi đi u kh in LED mat rn 8×1 63 màu (Trang 64)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w