Khóa luận thiết kế mạch điều khiển thiết bị điện qua điện thoại di động luận văn, đồ án, đề tài tốt nghiệp
Trang 1ĐỒ án tốt nghiệp
Gs
HỌC VIEN CONG NGHE BUU CHINH VIEN THONG
KHOA LUAN TOT NGHIEP DAI HOC
Đề tài: “ THIẾT KẾ MẠCH ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA ĐIỆN
THOẠI DI ĐỘNG ”
Giảng viên hướng dẫn : Sinh viên thực hiện :
Lớp : Khoá :
Hệ :
ThS NGUYEN HONG HOA NGUYEN TRUNG KIEN D07-KTDT1
2007-2012 Chinh quy
Hà Nội, tháng 12 năm 2011
SVTH : Nguyễn Trung Kiên - D07KTDTI
Trang 2ĐỒ án tốt nghiệp
LỜI NÓI ĐẦU
Ngày nay, ngành công nghệ thông tin đã đạt được những tiến bộ vượt bậc với sự ra đời của ngành công nghiệp phần cứng, cũng như phần mềm việc giải quyết các công việc giúp con người trở nên dễ dàng, thuận tiện và nhanh chóng
Cùng với sự phát triển của ngành công nghệ thông tin là sự phát triển mạnh mẽ của
các hệ thống thông tin liên lạc, sự ra đời của các dịch vụ điện thoại mà cụ thế là điện thoại
di động với ưu thế đễ dàng hoạt động khi di chuyển mọi lúc mọi nơi Chính vì vậy ngoài
việc dùng điện thoại đề liên lạc một vấn đề được đặt ra là chúng ta có thể sử dụng điện thoại như một chiếc Remote để điều khiển các thiết bị điện từ xa Từ yêu cầu trên và
những kiến thức em được học ở trường em đã lựa chọn đề tài: “Điều khiển thiết bị điện điện sử dụng điện thoại di động.”
Giới hạn đề tài: Việc thiết kế các ứng dụng của PIC với điện thoại di động, IC thu phát DTMF rất phong phú và phức tạp, do vay trong dé tài này em tập trung giải quyết
các vấn đề chính:
> Thiết kế phần cứng điều khiển thiết bị điện thong qua IC MT8870
> Điều khiển bật/tắt thiết bị điện
> Hen giờ bật/tắt thiết bị điện
> Hién thị trên LCD mã điều khiển dé kiểm tra
Trang 3ĐỒ án tốt nghiệp
LỜI CẢM ƠN
Lời đầu tiên trong khoá luận em xin bày tỏ lòng biết ơn tới toàn thể
các thầy, cô giáo trong Khoa Kĩ Thuật Điện Tử - Học Viện Công Nghệ Bưu
Chính Viễn Thông đã nhiệt tình chỉ bảo, dạy đỗ em trong suốt những năm
học vừa qua
Em xin chân thành cảm ơn cô giáo Nguyễn Hồng Hoa đã hướng dẫn,
quan tâm, chỉ bảo tận tình để em hoàn thành khoá luận tốt nghiệp này
Cảm ơn gia đình, bạn bè đã động viên, khích lệ, giúp đỡ về mọi mặt
trong quá trình em hoàn thành đồ án tốt nghiệp
Hà Nội, tháng 12 năm 2011 Sinh viên thực hiện
Nguyễn Trung Kiên
Trang 4(ky, ho tén)
NGUYEN HONG HOA
Trang 5ĐỒ án tốt nghiệp
MỤC LỤC MỤC LỤC 2-5 Sk SE SE EE2E1211111111111211 1111111121111 1111 T11 1 1111210111111 cy 1 DANH MUC CAC HINH VE vu.ecescssesssesssssesssesecsecssssvcsvesecsusssecsucsecsutssessesessusssesseesesseeese 5 DANH MỤC CÁC TỪ VIẾT TẮTT -2- 2 + E‡+Et+EESEEEEEEEEESEEEEEEEE1121121111111111 112 8 CHUONG Uoieeescceccsscessessesssessessesscssvcsvsssessessussvcssessessvssvcasessessessessucsscsuessesssesueeuessesssseeeneese 9 GIGI THIEU DE TAL oc.ccecceccececscssesssessessessecsvessessessssvcssessessessesssesscsuessessvesecsuessessessneeseese 9 LLY tur@ng bai ton ooo eee eecceessesssecssesssesssecssessvesseessesssesssesssesseesseesseessesssesssesaseesetseeess 9
1.2 Cấu tạo cơ bản và nguyên lý hoạt động của điện thoại .-. - + +-s++s++x++sx++ 9 1.2.1 cấu tạo CO DAMN eeecceccsesessesessesesecsesecerscecsvsucecsesusersusessvsrsavstsasevsesasstetsevevesevaees 9
1.2.2 Nguyén ly hoat GONG 10 1.3 Tin higtu DIME ececcesecssesscessessesssssessessesssssessesecsassssssuessesucssessvessssasssessvessesnesseess 10 1.3.1 Dinh ghia eee 10 1.3.2 KEYPAD ooececcecccsscessessessessessvessessessesovesssssessessvesessuessessesecssessessessseanessesseeseees II 1.3.3 IC MT§870 thu tín hiệu DTME ¿- 2 2 E£SE2E2EEEEEEEEEEEEEEEEEEErkerkrrek 13 CHƯNG 2 522221 2 2112212212211211211211112111111111 11.11.211.111 11 01111 ye 19 TÌM HIẾU VI DIEU KHIEN PIC 16F877A 2© £+52+EE+EE+EE££E2EE2EE+EE£Ezresrxee 19 2.1 Giới thiệu PIC I6FÑ77A - ¿+ ©SE+EE+EE2EEEEEE2E1211211111111111111111 1111111111 xe 19 2.2 Các thành phần chính trong vi điều khiển PIC 16FÑ77A -¿-¿52z2cs+¿ 21 2.3 Tổ chức bộ nhhớ - 2 ®+ +£EE+EE+EE+E£EE+EEEEEEEEEE211111111111111111111 1111111 1xeU 23 2.3.1 Thanh ghi chức năng đặc biệt SFR - ¿5< S* + E+vEseEsesresrerresxe 26
Trang 6; y8 727 ”'4+4 32
"hy ¡1 h 34
PT on 36 2.7 NGẮT (INTERRUPTT) 22 ©22222+22EE+2SEEE2EEEEEEEEE22212731227112221122112711 221 re, 37
2.7.1 Ngắt INT ác sec St T211 211211 11 T1 T1 11 11 1 11111 erey 38 2.7.2 Ngắt do sự thay đổi trạng thái các Pin trong PORTTB 2-54 39
PA (19096000) 39
2.7.4 Chế độ SleepD - + + s+x2 E2 19E1921211211211711112112111111211 111111 c0 39
2.7.5 “Đánh thức” Vi điều khiển -2¿©2222x+222x 2211271127112 21121 tr re 40 0:09) 44 43
THIET KE MACH DIEU KHIẺN THIẾT BỊ ĐIỆN QUA ĐIỆN THOẠI DI ĐỘNG 43
h7 43 3.2 Sơ đồ khối của mạch ¿2+ +++E+++2E++22EY+22211271112711127112211221112211 11 re 44
Trang 7ĐỒ án tốt nghiệp
3.3 Nguyén ly hoat (011157 45
3.3.1 Thực hiện đối U00 4AỤ 46
3.3.2 Thực hiện bật tắt thiết bị điện 22-©222222x22EE22EEEEEESEEEcrkrrrrkee 46 3.3.3 Thực hiện hẹn giờ bật tắt thiết bị 2-22 ©2z+2EES2E222122712271 22121 czrxe 48 3.4 Thiết kế phần cứng 2 %©k£SE£EEE2E12E1E7111121121111112111111 111.1 11 11a 48 3.4.1 Thiết kế mạch nguyên lý ¿- ¿+ 2+SE+EE£EE£EE2EE2E1EE17121121111 1111, 48 3.4.2 Khối xử lý trung tâm ¿2 2+x++E£2EE+EE2EEEEEE2121121127171211211 21111 c0, 49 3.4.3 Khối thu và giải mã D'TME 2- 2-22 +E+SEE2EE2EEEE211271127122712271 2212 xe 51 3.4.4 Khối hién thi thong tit ceccceccccsesssesssesseesseesseesseessecssecssessssssesseesseesseesees 51 3.4.5 KhOi nguOn 0 5 52 3.4.6 Khối diéu khién thiét bi Gin cece essesssesseesssesseceseesseessecssecseeseeseesses 53 3.4.7 Khối tín hiệu phản hồi - 2-2-2 £+SE+EE£EE£EE2EE2EEEEEEEE2EE211221 212k, 33
3.4.8 Mạch in thực tế sau khi thiết KẾ - 2c sSk+EEE£EEeEEEEEEEEEEEEkeEkrkrrkerkee 33
3.5.1 Lap trinh Cho PIC 0 ⁄134 54 3.5.2 Thuật todn didu Khi6n oe ceccecccsccsssssssssesssecsssecsssecsssscsseccssscssseesssecsseceasecease 55 3.5.3 Giới thiệu VE CCS cecccccecsssesssessssesssecsssscsssecsssecssecssneessnecsusecssecesneesseesseesies 55 3.5.4 Thuat toán điều khiển . 2-22©2+++++E++EEtEEEtEEEvEErerxrerkrsrxrerrrrrvee 72
CHUONG 277.5 -.4‹{gŒg䣌gÂ.,.BH H,H,H, 73
KÉT LUẬN VÀ HƯỚNG PHÁT TRIÊN ĐÈ TÀI ¿- 2¿22+2c+++2zxe+cxxesres 73 4.1 Đánh giá kẾt quả 2¿- 21x 2 12E157171121121121171121121111 1111.111111 11 xe 73 4.1.1 Tổng quan kết quả - 2 25s + +E£SE2EE+EE£EEEEEEEEEEEEEEEEE1711211211 2121 73
Trang 8ĐỒ án tốt nghiệp
4.1.2 Mạch thực tế sau khi thiết kế và chạy thử . ¿- 2c 5+ z+E++xxerxerxerxez 73
4.3 Hướng phát triỀn d6 tai cc ccccccsssssseesseesseessessuessseessesseessecssecsneesseesueeseesseesseessees 75 DANH MUC CAC TAI LIEU THAM KHAO cscsssesssesssesssesssessssessessecssecasecssecsteesveesecs 77
Trang 9DANH MUC CAC HiNH VE
Dạng tín hiệu DTMP uo eee eceeseeseeseeeeseeseeeeeeceeeeeceeeceeeeeeeaeeaeeaeeaeeaeeaeeaeeate 11
Bàn phím chuẩn 12 mt c.cccccessessessssssessessesssssessessussssssessessessseesessessessseeees 12 Bàn phím mở rộng l6 phím - ¿6+ +3 *+tE+tE+EE+EE+eExekekreterkrrerrerre 12
i@8099).50Ẻ76012300ã00057 13
Sơ đồ khối của MTT8Ñ70 22¿22+22++222E+222122711271127112211 2221 11 cre, 15
Sơ đồ mạch test thử với IC M T8Ñ70 ¿ 2¿+©++2++2x++zx++zx++rxsrxesrx 17
Sơ đồ chân của PIC1@FÑ77A -2 ©2+22+++22++2EEE2EEEtEEEEtEEEvrtrkrerkrrrrkr 19
Sơ đồ khối của PICI6FÑ77A -:-2+2++22+++2E++2EEE22E1223E221E2221 2E re 22
Bộ nhớ chương trình PIC IÓEFÑ777A - ¿- 6- +++*£+xE+vE+vE+vEeekeekeekreersrrvrs 24
Bộ nhớ đữ liệu của PIC 16Fѧ77A ¿-©2¿22++22S+2EEEvEEE+erxxrerrerrrreeee 25
} 0500 0 0 31 } 0500 o0 0 aa 33
Sơ đồi khối của Tiimer2 - 2: 2:22 ©22+x+2EE2EEvEEEeEEErEEEeEErerkrerkrsrkrsrkrres 34
Sơ đồ khối bộ chuyển đổi ADC - 2-2-2 t+EE+EE£EEEEE£EESEEEEEEEErErrrkrree 37
Sơ đồ logic của tất cả các ngắt trong PICI6F877A - 2-2 ++cxzx+rscrez 38
Sơ đồ khối của mạch -2¿- 2¿©2+2E+++2E++2EEE+2EE12711271122112221 221 cre, 44
Sơ đồ mạch nguyên lý hệ thống 2-2-2 2+2 +E+EE£+E£2E£+EE+EE+EEezEz+rxrree 49
Trang 10ĐỒ án tốt nghiệp
Hình 3.3: Sơ đồ nguyên lý của PIC16F877A trong mạch - 2-2 sx2+zz2zz+cx+¿ 50 Hình 3.4: Sơ đồ nguyên lý kết nói trong mạch của IC MT8§70 - 2 ¿s2 =5+- 51 Hình 3.5: Sơ đồ nguyên lý kết nối của LCD1602 trong mạch điện . 52
Hình 3.6: Sơ đồ nguyên lý nguồn nuôi của mạch 2 2 + 2+2 ££E+£EtzEz+Exerxz 52
Hình 3.7 : Sơ đồ nguyên lý khối dong ngat thiét bi Gi@m eee esseeseeeeeseeseeeeeeees 53 Hình 3.8: Sơ đồ nguyên lý khối tín hiệu phan Gi oo ceccececsesseeseesecsesseeseeesesseesesseeeees 53
Hình 3.9: Sơ đồ mạch in thực té sau thiét Ko eee eeeeesssssssseeesesessssnneeeessssssneneess 54
Hình 3.10: Giao diện của PIC C COImpIÏ€T - óc 3 31311331 EE+eEEeeEeeeeeeerrve 55
Hinh 3.11: Tao Project bang PIC Wizard 0 cccccscssssesseessessessessesssesessesstsssesessessessseeeee 56
0000 co co 57
Hình 3.13: Tab eneral ¿+5 SE 121191231 1E 111 111 101 1H HH HH Hi 57 Hình 3.14: Tab CommuniCafiOTNS .- -¿ ¿6 6 S31 E2E E521 E21 11 1E Ekrkrkree 58 Hinh 3.15: Tab SPI and LCTD - ¿+ + E‡EEE+E+EEEEeEeEEkekkkEkrekrkekekrkrkrrkrkrkrkre 59 I§0)i6 (11100), 11 60
Hình 3.17: Tab AnalOg - óc + 11921111919 T1 TH ng TH HH ng 61
Hình 3.18: Tab Other ¿65c 1S 21 1211912111121 11 0121010101 TH HH Hi 62 I0) E108) 5uiì) 11111 63 Iÿ00)i6 20060.190.110 63 Hình 3.21: PG2C mạch nạp PIC qua cổng COM - 2 2 + +E£2E£+EE£EE+EEtzE+rxeree 64
Trang 11ĐỒ án tốt nghiệp
Hình 3.22: Giao diện phần mềm nạp WinPic800 - 2-2 s2 +222++zx+zxezxezxesrxee 65 I§0)i6 Xá 65 Hình 3.24: Test Har(WAarG - c1 1n TH TH TH HH TH TT Thu nh nh TC nành 66
Hình 3.25:Vi điều khiển PIC 40 chân : ©22+t S2+vvttEEEEvtitttkttrrirtrttrrrrrrrrrrre 67 Hình 3.26: Vi điều khiển PIC 18 chân -¿ ©2c+++2+++++ttEEEkerrrtrtkrrrrrrrrrr 67 Hình 3.27:Vi điều khiển PIC 28chân ¿ ©22+++tE++++ttEEEkrrrtrtrrrrrrrrrrr 68 Hình 3.28:Vi điều khiển PIC § chân . - 22c 52SvvttEEEktrittttrtrrrrtrtrrrrrrrrre 68 Hình 3.29: Quá trình Dectect Vỉ điều khiển 5ccctttttiittttiirrrtriirrrrrire 69
Hình 3.30:Quá trình nạp file Hex vào Vi điều khiển PIC . 2- 2 52+5z2zz+c5+2 70 Hình 3.31:Đọc chương trình ra từ Vi điều khiển PIC -2 ¿©2¿+s+z+zxz£z+zxe+rxee 71
Hình 3.32: So sánh đề kiểm tra quá trình nạp file Hex cecceecceseescessesseeseessessesseesesseeee 71
Hình 3.33: Luru dé thuat todin di€u Khi6n a eeeeeceseeeeeeeeeesssnsneeeeeeeeessnnneeeeessesssnnneess 72
Hình 4.1: Mạch thực tế sau khi thiết kế và ð 0111111577 74
Trang 12ĐỒ án tốt nghiệp
DANH MỤC CÁC TỪ VIẾT TẮT
1 | ADC Analog-to-Digital Converter
2 | CCP Capture/Compare/PWM
3 | CCS Custom Computer Services
4 |DTMF Dual Tone Multi Frequency
5 | FSG File Select Register
6 | GPR General Purpose Register
7 |I2C Inter Intergrated Circuit
8 | ICSP In-Circuit Serial Programming
9 | LCD Liquid Crytal Display
10 | MCLR Master Clear
11 | PIC Programmable Intergrated Circuit
12 | PWM Pulse Width Modulation
13 | SFG Special Function Register
14 | SPI Serial Pripheral Interface
15 | SSP Synchronous Serial Port
16 | WDT 'Watchdog Timer
Trang 13
Dé an tốt nghiệp Chuong 1: Giới thiệu đề tài
điện thoại di động đề điều khiển các thiết bị điện như Tủ lạnh, TV, điều hoà nhiệt độ, máy
tính, lò vi sóng, quạt điện, đèn chiếu sáng, bình nóng lạnh vv không?
Trong thực tế cuộc sống có không ít lần chúng ta đi đến công ty hay đi ra ngoài mà quên không tắt máy tính, điều hoà, bình nóng lạnh .vv và nhiều khi chúng ta phải trở về nhà chỉ để tắt các thiết bị này bởi nhiều lý đo như: nguy cơ cháy nổ, nguy hiểm, hỏng hóc,
tốn điện Trong những ngày mùa đông lạnh trước khi đi làm về chúng ta muốn có sẵn
nước nóng đề tắm cho thoải mái sau một ngày làm việc hay chúng ta muốn ngồi một chỗ
để điều khiển công việc từ xa vv
Xuất phát từ những yêu cầu thực tế cuộc sống đề tài của em nghiên cứu thu tín
hiệu DTMF từ điện thoại đi động để từ đó giải mã và đưa ra được các tín hiệu điều khiến bật /tắt thiết bị điện Với khả năng này chúng ta chỉ cần mang điện thoại ra và gọi điện nhập mã điều khiến là có thể yên tâm các thiết bị điện chúng ta đã ở trạng thái tắt/bật như
ý muốn
1.2 Cấu tạo cơ bản và nguyên lý hoạt động của điện thoại
1.2.1 cấu tạo cơ bản
Gồm ba phần chính sau:
> Phần chuyển đổi mạch điện: Phần này gồm hệ thống lá mạ tiếp điểm và có
nhiệm vụ đóng mở mạch điện khi có yêu cầu
Trang 14Dé an tốt nghiệp Chuong 1: Giới thiệu đề tài
> Phan thu và phát tín hiệu gọi: Phần này gồm hai phần chính là máy điện quay tay
có nhiệm vụ phát tín hiệu gọi lên đường truyền và phần chuông máy có nhiệm vụ
biến dòng tín hiệu gọi thành tín hiệu gọi
> Phan thu phat thoai: Gồm có loa và mỉc Loa có nhiệm vụ biến đổi tín hiệu âm thanh thành tín hiệu điện và mic thì có nhiệm vụ ngược lại biến tín hiệu điện thành tín hiệu âm thanh
1.2.2 Nguyên lý hoạt động
Khi ta thực hiện cuộc gọi dao động âm thanh của tiếng nói sẽ tác động vào màng
rung của mic làm xuất hiện dòng điện biến đổi tương ứng trong mạch Dòng điện biến đồi
này được truyền trên đường dây điện thoại và được chuyên mạch đến máy điện thoại
được gọi, làm cho màng rung của loa dao động, lớp không khí trước màng sẽ dao động theo phát ra âm thanh tác động đến tai người nghe và quá trình truyền dẫn ngược lại cũng
tương tự
1.3 Tín hiệu DTMEF
1.3.1 Định nghĩa
DTMF(Dual Tone Multi Frequency): 1a tín hiệu gồm có hai tần số xếp trồng lên
nhau Mỗi tần số được lựa chọn sao cho có lợi cho việc thiết kế bộ lọc và dễ dàng truyền
đi trên đường dây điện thoại có băng thông khoảng chừng 3,5SKHz DTMEF phát ra là 1 tín hiệu âm thanh ghép của 2 tín hiệu trong dải tần số từ 697Hz đến 1633Hz
Phiên bản của DTME sử dụng cho tín hiệu điện thoại được biết đến như hãng
Touch-Tone, và được tiêu chuẩn hoá bởi ITU-T là Q.23 Tín hiệu DTME có thé được phát
hoặc thu bằng một IC chuyên dụng (VD: MTD887X)
Hệ thống DTMF đang phát triển và trở thành phổ biến trong hệ thống điện thoại hiện nay Hệ thống này được hình thành vào năm 1960 nhưng mãi đến năm 1970 mới
được phát triển rộng rãi
Trang 15Dé an tốt nghiệp Chuong 1: Giới thiệu đề tài
đồng thời Đặc biệt là hai âm thanh này không cùng âm, tức là tần số của âm thanh này không có cùng ước số chung với âm thanh kia, điều này để tránh sự nhầm lẫn vô tình với
âm hiệu nói, sự phân tách rõ ràng giữa hai loại này là rất cần thiết Ví dụ như hai tần số
750 và 500 là hai tần số không thể kết hợp thành tín hiệu DTMF vì có cùng ước số chung
là 250, hai tần số này là hai âm thanh cùng âm
Keypad chuẩn là một ma trận chữ nhật gồm ba cột và bốn hàng (3x4) tạo nên tổng cộng là 12 phím nhấn: trong đó có 10 phím cho chữ số (từ 0 đến 9), hai phím đặc biệt là
“*' và #', Mỗi hàng trên bàn phím bam được gán cho một tần số tín hiệu thấp, mỗi cột được gán cho tần số tín hiệu cao Mỗi một phím sẽ có một tín hiệu DTMEF riêng được tổng hợp bởi hai tần số tương ứng với hàng và cột mà phím đó đang đứng Những tần số này đã được lựa chọn cần thận sao cho có lợi cho việc thiết kế bộ lọc và dễ dàng truyền đi
trên đường dây điện thoại
Trang 16ĐỒ án tốt nghiệp
L1 =697 Hz L2 = 770 Hz L3 = 852 Hz L4 = 941 Hz
Hình I.2: Bàn phím chuẩn 12 nit
Chương 1: Giới thiệu dé tai
Ngày nay, người ta còn cho thêm một vài phím đề tạo nên bảng mã được nằm trong một ma trận (4x4) với mỗi hàng miêu tả bằng một tần số thấp và mỗi cột miêu tả bằng
một tân sô cao
1209 Hz 1336 Hz 1477 Hz 1633 Hz
High Tone Group
Trang 17
ĐỒ án tốt nghiệp Chương 1: Giới thiệu dé tai
1.3.3 IC MT8870 thu tin hiệu DTMF'
—#lvss Toe | 104
MT8870
Hinh 1.4: IC thu DTMF MT8870 Định nghĩa các chân như sau:
PIN 1 (IN+) Non- Investing op-amp: Ngõ vào không đảo
PIN 2 (IN-) Investing op-amp: Ngõ vào đảo
PIN 3 (GS) Gain Select: Giúp truy xuất ngõ ra của bộ khuếch đại vi sai đầu cuối qua điện trở hồi tiếp
PIN 4 (Vref ) Reference Voltage: Ngõ ra (Thông thường bằng
VDD/2)
PIN 5 (INH) Inhibit: Ngõ vào (Khi chân này ở mức logic cao thì
không nhận được ký tự A,B,C ở ngõ ra)
PIN 6 ( PWDN) Power down: Ngõ vào tác động mức cao (Khi chân này tác động thì sẽ cắm mach dao động và IC 8870 hoạt động) PIN 7 (OSC 1): Clock ngõ vào MHz
PIN 8 (OSC 2): Clock ngõ ra (Nối hai chân 7 và 8 với thạch anh 3.579545 MHz, để tạo một mạch dao động nội)
SVTH: Nguyễn Trung Kiên - D07KTDTI 13
Trang 18ĐỒ án tốt nghiệp Chương 1: Giới thiệu dé tai
điện áp trên ST/GT nhỏ hơn điện áp ngưỡng V+st, PIN 16 (EST): Early Steering (ngõ ra), chân này lên mức [I] khi bộ thuật toán nhận được cặp tone và trở về mức[0] khi mất Tone
PIN 17 (ST/GT): Steering Input /Guard tune output (ngõ ra), khi điện
dp Vc lớn hơn V+sr thì ST sẽ điều khiển đò tìm cặp Tone và chốt ngõ
Ta
PIN 18 (VDD): Điện áp cung cấp, thường là +5V
IC nhận tín hiệu DTMF từ đường điện thoại qua chân 2 (IN -), sau khi thực hiện
giải mã nó đưa đữ liệu ra 4 chân (từ chân 11 đến chân 14) dưới dạng 4 bit nhị phân
Trang 19ĐỒ án tốt nghiệp Chương 1: Giới thiệu dé tai
Algorithm and Latch
051 0502 SUGT ESt STD TOE
Hình 1.5: Sơ đồ khối cúa MT8870
Trang 21va ‘i 1 ấ 3 = RB + i ! ! 250V At 8S 10K FoF! Dag SIRI
& —AMW AM 390K $ 1 100K
=_ L ne 16 FES i '
SeV 47K£ OPTIONAL ZENER Vee
TELEPHONE
LINE "
Bt Sev R4 88K MT8870/ so P15 LEDS sek ZENER 56K KT3170 1°
Trang 22Dé an tốt nghiệp Chuong 1: Giới thiệu đề tài
Khi bam s6 dién thoai thi StD cé mite logic 1a ‘1’, còn khi ta không bắm thì StD có mức
logic là ‘0’ Con các chân QI, Q2, Q3, Q4 là mã BCD cua số điện thoại
Trang 23ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
CHƯƠNG 2
TIM HIEU VI DIEU KHIEN PIC 16F877A 2.1 Giới thiệu PIC 16F877A
Vi điều khiển với chức năng là bộ sử lý trung tâm, nhận tín hiệu từ bộ thu và giải mã
DTME đưa ra tín hiệu điều khiển thiết bị
Sơ đồ chân VĐK PIC 16F877A:
40-Pin PDIP
THETRVrP——~llt `7 4oH~—Rgzrep
RAŒANO ~—+~ [j2 3s FI~——~ ResreC
RA1⁄ANt —>la 38 [l— res
RA2IAN2/Uner-CVner =—+ [| 4 37 + Rea
RA2/AN3WREF+ =— [j5 2s l—— RBxroew RA4/TOCKIC1OUT ——~ LÌ6 3sH—— R£=
RASIAN4/SSC2OUT =—~ 7 £ 3H~—~ REi REGIRDVANS =— L] 2 3sH~—— Rmiwr RE1ANRJANS =—* Lj 9 320 —Voo RE2SIAN7 =—~ L] 1O 3t Fl=———vss
Vop—— LÍ +! E ao l~—— RDz/PsP7
OSCICLKI——.[]2a 285ƑFI—— RCSPsrs GSC2/CLKO ~———L| 14 2 27 —— RDwPsPa RCO(T 1OSO/T1CKI ~—~ [| 15 2ø [~——~ RC7/RXIDT RC1/T1OSVUCCP2 =— [] 16 25 ÏH—— Rcerrx/ck RC2/CCP1 —— L| 17 24 H—— Rcsspo RC3SCK/SCL =—~ F] 18 23 FI——~ RC4/sDusDa RDO/PSPoO —— L t9 z2 Ï—— Rnssr3
'Vpp: Ngõ vào nhận điện áp lập trình khi lập trình cho pic
SVTH: Nguyễn Trung Kiên - D07KTDTI 19
Trang 24ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
Chân RA0/AN0(2), RA1/ANI(3), RA2/AN2 có 2 chức năng:
RA0, 1, 2: Ngõ vào xuất/nhập SỐ
ANO, 1, 2: Ngõ vào tương tự của kênh 0, 1, 2
Chân RA2/AN2/VREF-/VREF+(4): xuất nhập số/ ngõ vào tương tự kênh thứ 2/ ngõ vào điện áp chuẩn thấp bộ AD/ ngõ vào điện áp chuẩn cao bộ AD
Chân RA3/AN3/VREF+(5): xuất nhập số/ ngõ vào kênh tương tự 3/ ngõ vào điện
áp chuân(cao) của bộ AD
Chân RA4/TOCKI1/CIOUT(6): xuất nhập số/ ngõ vào xung clock bên ngoài cho TIMER(0/ ngõ ra bộ so sánh I
Chân RA5/AN4/ SS /C2OUT(7): xuat nhập số/ ngõ vào tương tự kênh 4/ ngõ vào
Chân RC3/SCK/SCL(18): xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ, ngõ
ra chế độ SPI/ ngõ vào xung clock đồng bộ, ngõ ra chế độ I2C
Chân RC4/SDI/SDA(23): xuất nhập số/ dữ liệu vào SPI/ xuất nhập I2C
Chân RC5/SDO(24): xuất nhập só/ dữ liệu ra SPI
Chân RC6/TX/CK(25): xuất nhập số/ truyền bất đồng bộ USART/ xung đồng bộ USART
Chân RC7/RX/DT(26): xuất nhập số/ nhận bất đồng bộ USART
Chân RD0+ 7/PSP0+ 7(19-+ 30): xuất nhập sô/ đữ liệu port song song
Chân RE0/ RD /AN5(8): xuất nhập số/ điều khiển port song song/ ngõ vào tương
tự kênh 5
Chân REI/ WR /AN6(9): xuất nhập số/ điều khiến ghi port song song/ ngõ vào tương tự kênh 6
Chân RE2/ CS /AN?7(10): xuất nhập số/ chân chọn lựa điều khiển port song song/
ngõ vào tương tự kênh 7
e Chân VDD(I1, 32) và VSS(12, 31): là chân nguồn của Pic
Trang 25
Timi ont ‘Watchdog I RC0/T10SO/T1CKI
Dats EEPROM CCPt¿2 een USART Comparator cua
Device Program Flash Data Memory Date EEPROM PIC16F873A 4K words 192 Bytes 128 Bytes
PIC 16F 876A BK words 368 Bytes 256 Bytes
Note 1: Higher order bits ave from the Stetus register
SVTH: Nguyễn Trung Kiên - D07KTDTI
21
Trang 26ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
Hình 2.2: Sơ đồ khối cúa PICI6F877A
Đây là vi điều khiển thuộc họ PICI6Fxxx với tập lệnh gồm 35 lệnh có độ dai 14
bit Mỗi lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns Bộ nhớ chương trình 8KxI14 bit, bộ nhớ dữ
liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte Số PORT
VO là 5 với 33 pin LO
Các đặc tính ngoại vi bao gồm các khối chức năng sau:
Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit
Timer1: bộ đếm 16 bit với bộ chia tần số, có thê thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep
Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler
Hai bộ Capture/so sánh/điều chế độ rộng xung
Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C
Chuan giao tiếp nối tiếp USART với 9 bit địa chỉ
Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD,
WR, CS ở bên ngoài
Các đặc tính Analog:
8 kênh chuyên đổi ADC 10 bit
Hai bộ so sánh
Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
Bộ nhớ Flash với khả năng ghi xóa được 100.000 lần
Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần
Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm
Khá năng tự nạp chương trình với sự điều khiển của phần mềm
Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial
Trang 27ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
'Watchdog Timer với bộ dao động trong
Chức năng bảo mật mã chương trình
Stack Level 1
Stack Level 2
Trang 28
ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
Hình 2.3: Bộ nhớ chương trình PICI6F877A
Bộ nhớ chương trình của vi điều khiển PICI6F877A là bộ nhớ flash, dung lượng
bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page0 đến page 3) Như vậy, bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng | word (14 bit)
Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình
có dung lượng 13 bit (PC<12:0>) Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector) Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector)
Bộ nhớ chương trình không bao gồm bộ nhớ Stack và không được địa chỉ hóa bởi
bộ đếm chương trình
Bộ nhớ đữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiêu bank Đôi với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFG (Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR(General Purpose Register) nằm ở vùng địa chỉ con lai trong bank Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cả các bank của bộ nhớ dữ liệu giúp thuận tiện
trong quá trình truy xuất và làm giám bớt lệnh của chương trình Sơ đồ cụ thé của bộ nhớ
dữ liệu PIC16F877A như sau:
Trang 29ĐỒ án tốt nghiệp
Indirect addr] 00h | Indirect addr") gon ‘| Indirect addr") 100n | Indirect addr.) 420n
TMRO 01h OPTION_REG| 81h TMRO 101h =| OPTION_REG| 181h PCL 02h PCL 82h PCL 102h PCL 182h
STATUS _| 03h §TATUS | 83h STATUS | 103h STATUS | 183h
INTCON |0Bh INTCON_ | 8Bh INTCON_ | 10Bh INTCON_ | 18Bh
PIR1 0Ch PIE1 8Ch EEDATA | 10Ch EECON1 | 18Ch
PIR2 0Dh PIE2 8Dh EEADR | 10Dh EECON2 | 1aDh TMR1L | OEh PCON _ | 8Eh EEDATH_ | 10Eh Reservedz | 18Eh TMRIH |0Fh 8Fh EEADRH | 10Fh Reserved®) | 18Fh
T1CON 10h 90h 110h 190h
T2CON |12h PR2 92h 112h 192h SSPBUF _| 13h SSPADD | 93h 113h 193h SSPCON | 14h $$PSTAT | 94h 114h 194h CCPRIL | 15h 95h 115h 195h
CCPR1H 16h 96h Pere 116h gees 196h
CCPICON | 17h 97h ene! 117h neral 197h
RCSTA _ | 18h TXSTA | 98h Roser | liên Rover | 198h
TXREG | 18h §PBRG_ | 99h 16Bytes | 119h l6Byes | 199h
€CPR2L | 1Bh 98h 11Bh 198h CCPR2H | 1Ch 9Ch 11Ch 19Ch CCP2CON | 1Dh 9Dh 11Dh 190h ADRESH | !Eh ADRESL | 9Eh 11Eh 19Eh
General General General General
Purpose Purpose Purpose Purpose
Register Register Register Register
96 Bytes Eyes EFh 16Fh So Byes | trrn
accesses | F0h accesses | 170h accesses | TF0h T0h-7Fh 70h-7Fh T0h - TFh
Bank 0 Bank 1 Bank 2 Bank 3
Hình 2.4: Bộ nhớ dit ligu cua PIC 16F877A
SVTH: Nguyễn Trung Kiên - D07KTDTI
Chương 2: Tìm hiểu về VDK PIC 16F877A
25
Trang 30ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
2.3.1 Thanh ghi chức năng đặc biệt SFR
Đây là các thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và điều khiến các khối chức năng được tích hợp bên trong vi điều khiển Có thể phân thanh ghi SER làm hai lọai: thanh ghi SFR liên quan đến các chức năng bên trong (CPU) và thanh ghi SRF dùng để thiết lập và điều khiển các khối chức năng bên ngoài (ví dụ như ADC, PWM, .) Phần này sẽ đề cập đến các thanh ghi liên quan đến các chức năng bên trong Các thanh ghi dùng để thiết lập và điều khiển các khối chức năng sẽ được nhắc đến khi ta
đề cập đến các khối chức năng đó
Thanh ghi STATUS (03h, 83h, 103h, 183h): thanh ghi chứa kết quả thực hiện phép toán
của khối ALU, trạng thái reset và các bit chọn bank cần truy xuất trong bộ nhớ dữ liệu
Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đọc và ghi, cho phép
điều khiển chức năng pull-up của các chân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0
Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh): thanh ghi cho phép đọc và ghi, chứa các
bit điều khiển và các bit cờ hiệu khi timer0 bị tràn, ngắt ngoại vi RB0/INT và ngắt interrput-on-change tai cac chan cla PORTB
[PsPlEf?| AplE | RGIE | TXIE | $$PIE | CCPtIE | TMR2IE | TMRIIE |
bít 7 bit 0
Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chỉ tiết các ngắt của các khối chức
năng ngoại vi
Trang 31Dé an tốt nghiệp Chuong 2: Tim hiéu vé VDK PIC 16F877A
|PsPIFf? | apie | RciF | TxIF | sspiF | ccPtiF | TMR2IF | TMRIIF |
Thanh ghi PIE2 (SDh): chứa các bit điều khiển các ngắt của các khối chức năng
CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM
U-0 Riw-0 U-0 RWw-0 8/w-0 U-0 U-0 RiW-0
2.3.2 Thanh ghi muc dich chung GPR
Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi FSG (File Select Register) Đây là các thanh ghi dữ liệu thông thường, người sử dụng
có thể tùy theo mục đích chương trình mà có thể dùng các thanh ghi này để chứa các biến
số, hằng số, kết quả hoặc các tham sỐ phục vụ cho chương trình
Trang 32ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
2.3.3 Stack
Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một vùng
nhớ đặc biệt không cho phép đọc hay ghi Khi lệnh CALL được thực hiện hay khi một ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chương trình PC tự động
được vi điều khiển cất vào trong Stack Khi một trong các lệnh RETURN, RETLW hat RETFIE được thực thị, giá trị PC sẽ tự động được lấy ra tir trong Stack, vi diéu khién sé thực hiện tiếp chương trình theo đúng qui trình định trước
Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa được 8 địa
chỉ và hoạt động theo cơ chế xoay vòng Nghĩa là giá trị cất vào bộ nhớ Stack lần thứ 9 sẽ ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần thứ 10 sẽ ghi đè lên giá trị 6 cất vào Stack lần thứ 2
Cần chú ý là không có cờ hiệu nào cho biết trạng thái Stack, do đó ta không biết được khi nào Stack tràn Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không có
lệnh POP hay PUSH, các thao tác với bộ nhớ Stack sẽ hoàn toàn được điều khiển bởi
CPU
2.4 Các công xuất nhập của PIC16F877A
Cổng xuất nhập (I/O port) chinh là phương tiện mà vi điều khiến dùng dé tương tác
với thế giới bên ngoài Sự tương tác này rất da dang va thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng
Một cổng xuất nhập của vi điều khiến bao gồm nhiều chân (I/O pin), tùy theo cách
bố trí và chức năng của vi điều khiển mà số lượng công xuất nhập và số lượng chân trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong
các đặc tinh giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường,
một số chân xuất nhập còn có thêm các chức năng khác đề thể hiện sự tác động của các
đặc tính ngoại vi nêu trên đối với thế giới bên ngoài Chức năng của từng chân xuất nhập trong mỗi công hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó
Trang 33ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
Vi điều khiến PICI6F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE
2.4.1 PORTA
PORTA (RPA) bao gồm 6 I/O pin Đây là các chân “hai chiều” (bidirectional pin),
nghĩa là có thể xuất và nhập được Chức năng I/O này được điều khiển bởi thanh ghi
TRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trong PORTA là input, ta
“set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là TRISA, đối với
PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD và đối với
PORTE là TRISE) Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào
analog ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port)
Các thanh ghi SFR liên quan đến PORTA bao gồm:
PORTA (địa chỉ 05h): chứa giá trị các pin trong PORTA
TRISA (địa chỉ 85h): điều khiển xuất nhập
CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ so sánh
CVRCON (địa chỉ 9Dh): thanh ghi điều khiển bộ so sánh điện áp
ADCONI (địa chỉ 9Fh): thanh ghi điều khiển bộ ADC
2.4.2 PORTB
PORTB (RPB) gồm 8 pin LO Thanh ghi điều khiển xuất nhập tương ứng là
TRISB Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp
chương trình cho vi điều khiến với các chế độ nạp khác nhau PORTB còn liên quan đến
ngắt ngoại vi và bộ Timer0 PORTB còn được tích hợp chức năng điện trở kéo lên được
điều khiển bởi chương trình
Các thanh ghi SFR liên quan đến PORTB bao gồm:
PORTB (địa chỉ 06h,106h): chứa giá trị cac pin trong PORTB
SVTH: Nguyễn Trung Kiên - D07KTDTI 29
Trang 34ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A TRISB (dia chi 86h,186h): diéu khién xuất nhập
OPTION_REG (địa chỉ 81h,181h): điều khiển ngắt ngoại vi và bộ Timer0
2.4.3 PORTC
PORTC (RPC) gồm 8 pin /O Thanh ghi điều khiển xuất nhập tương ứng là
TRISC Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timerl, bộ PWM và các chuẩn giao tiếp nói tiếp I2C, SPI, SSP, USART
Các thanh ghi điều khiển liên quan đến PORTC:
PORTC (địa chỉ 07h): chứa giá trị các pin trong PORTC
TRISC (địa chỉ 87h): điều khiển xuất nhập
2.4.4 PORTD
PORTD (RPD) gồm § chân I/O, thanh ghi điều khiển xuất nhập tương ứng là
TRISD PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port)
Các thanh ghi liên quan đến PORTD bao gồm:
Thanh ghi PORTD: chứa giá trị các pin trong PORTD
Thanh ghi TRISD: điều khiển xuất nhập
Thanh ghi TRISE: điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP
2.4.5 PORTE
PORTE (RPE) gém 3 chan I/O Thanh ghi diéu khiển xuất nhập tương ứng là TRISE Cac chân của PORTE có ngõ vào analog Bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP
Các thanh ghi liên quan đến PORTE bao gồm:
PORTE: chwa gia tri cac chan trong PORTE
TRISE: điều khiển xuất nhập và xác lập các thông số cho chuẩn PSP
ADCON: thanh ghi điều khiến khối ADC
2.5 Các bộ định thời
2.5.1 TIMER 0
Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A
Trang 35ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock Ngắt
Timer0 sẽ xuất hiện khi Timer0 bị tràn Bit TMR0IE (INTCON<2>) là bit điều khiển của Timer0
TMRO0IE=I cho phép ngắt Timer0 tác động, TMR0IF= 0 không cho phép ngắt Timer0 tác động Sơ đồ khối của Timer0 như sau:
Hình 2.5: Sơ đồ khối cia Timer 0
Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC (OPTION_REG<5>),
khi đó giá trị thanh ghi TMRO sẽ tăng theo từng chu kì xung đồng hồ (tần số vào Timer0 bằng 1⁄4 tần số oscillator) Khi giá trị thanh ghi TMR0 từ FFh trở về 00h, ngắt Timer0 sẽ xuất hiện Thanh ghi TMRO cho phép ghi và xóa được giúp ta ấn định thời điểm ngắt
Timer0 xuất hiện một cách linh động
Muốn Timer0 hoạt động ở chế độ counter ta set bit TOSC (OPTION_REG<5>) Khi đó
xung tác động lên bộ đếm được lấy từ chân RA4/TOCKI Bit TOSE (OPTION_REG<4>)
SVTH: Nguyễn Trung Kiên - D07KTDTI 31
Trang 36ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
cho phép lựa chọn cạnh tác động vào bộ đếm Cạnh tác động sẽ là cạnh lên nếu TOSE=0
và cạnh tác động sẽ là cạnh xuống nếu TOSE=I
Khi thanh ghi TMRO bị tràn, bít TMROIF (TNTCON<2>) sẽ được set Đây chính là cờ ngắt của Timer0 Cờ ngắt này phải được xóa bằng chương trình trước khi bộ đếm bắt đầu
thực hiện lại quá trình đếm Ngắt Timer0 không thể “đánh thức” vi điều khiển từ chế độ
sleep
Bộ chia tần số (prescaler) được chia sẻ giữa Timer0 và WDT (Watchdog Timer)
Điều đó có nghĩa là nếu prescaler được sử dụng cho Timer0 thì WDT sẽ không có được
hỗ trợ của prescaler và ngược lại Prescaler được điều khiển bởi thanh ghi
OPTION_REG Bit PSA (OPTION_REG<3>) xac dinh đối tượng tác động của prescaler Các bit PS2:PS0 (OPTION_REG<2:0>) xác định tỉ số chia tần số của prescaler Xem lại thanh ghi OPTION_REG để xác định lại một cách chỉ tiết về các bit điều khiển trên
Các lệnh tác động lên giá trị thanh ghi TMRO sẽ xóa chế độ hoạt động của prescaler Khi
đối tượng tác động là Timer0, tác động lên giá trị thanh ghi TMRO sẽ xóa prescaler nhưng không làm thay đổi đối tượng tác động của prescaler Khi đối tượng tác động là WDT, lệnh CLRWDT sẽ xóa prescaler, đồng thời prescaler sẽ ngưng tác vụ hỗ trợ cho WDT Các thanh ghi điều khiển liên quan đến Timer0 bao gồm:
TMRO (dia chỉ 01h, 101h): chứa giá trị đếm của Timer0
INTCON (địa chi 0Bh, §Bh, 10Bh, I§Bh): cho phép ngắt hoạt động (GIE và PEIE)
OPTION_REG (địa chi 81h, 181h): điều khiển prescaler
2.5.2 TIMER 1
Timerl là bộ định thời 16 bịt, giá trị của Timerl sẽ được lưu trong hai thanh ghi (TMRIH:TMRIL) Co ngat của Timerl là bit TMRIIF (PIRI<0>) Bit điều khiển của
Timerl sé la TMRIIE (PIE<0>)
Tương tự như Timer0, Timerl cũng có hai chế độ hoạt động: chế độ định thời
(timer) với xung kích là xung clock của oscillator (tần số của timer bằng 1⁄4 tần số của oscillator) và chế độ đếm (counter) với xung kích là xung phản ánh các sự kiện cần đếm
Trang 37ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
Việc lựa chọn xung tác động (tương ứng với việc lựa chọn chế độ hoạt động là timer hay counter) được điều khiến bởi bit TMRICS (TICONK<1>)
Sau đây là sơ đồ khối của Timerl:
1,2,4,8 -TIOSCEN Fos det
' Fee 9 Internal foe
Hình 2.6: Sơ đồ khối của Timerl
Ngoài ra, Timer1 còn có chức năng reset input bên trong được điều khiển bởi một
trong hai khéi CCP (Capture/Compare/PWM)
Khi bit TIOSCEN (TICON<3>) được set, Timer1 sẽ lấy xung clock từ hai chan:
RC1/TIOSLU/CCP2 và RC0/T1OSO/TICKI làm xung đếm Timerl sẽ bắt đầu đếm sau cạnh xuống đầu tiên của xung ngõ vào Khi đó PORTC sẽ bỏ qua sự tác động của hai bit TRISC<1:0> va PORTC<2:1> duge gan giá trị 0 Khi clear bit TIOSCEN Timer! sé lay xung đếm từ oscillator hoặc từ chân RC0/T1OSO/TICKI Timerl có hai chế độ đếm là đồng bộ (Synchronous) và bất đồng bộ (Asynchronous)
Chế độ đếm được quyết định bởi bit điều khiển TISYNC (TICON<2>)
Khi TISYNC = 1 xung đếm lấy từ bên ngoài sẽ không được đồng bộ hóa với xung clock bên trong, Timer1 sẽ tiếp tục quá trình đếm khi vi điều khiển đang ở chế độ sleep và ngắt
do Timerl tạo ra khi bị tràn có khả năng “đánh thức” vi điều khiển Ở chế độ đếm bất đồng bộ, Timerl không thể được sử dụng để làm nguồn xung clock cho khối CCP (Capture/Compare/Pulse width modulation)
Khi TISYNC = 0 xung đếm vào Timerl sẽ được đồng bộ hóa với xung clock bên trong
Ở chế độ này Timer1 sẽ không hoạt động khi vi điều khiển đang ở ché dé sleep
SVTH: Nguyễn Trung Kiên - D07KTDTI 33
Trang 38ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
Các thanh ghi liên quan đến Timer1 bao gồm:
INTCON (địa chỉ 0Bh, §Bh, 10Bh, I8Bh): cho phép ngắt hoạt động (GIE và
PEIE)
PIRI (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMRIIF)
PIEI( địa chỉ 8Ch): cho phép ngắt Timer1 (TMRIIE)
TMRIL (địa chỉ 0Eh): chứa giá trị 8 bit thấp của bộ đếm Timerl
TMRIH (địa chỉ 0Eh): chứa giá trị 8 bit cao cua bộ đếm Timerl
TICON (địa chi 10h): xác lập các thông số cho Timerl
2.5.3 TIMER2
Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số prescaler và
postscaler Thanh ghi chứa giá trị đếm của Timer2 là TMR2 Bit cho phép ngắt Timer2 tác động là TMR2ON (T2CON<2>) Cờ ngắt của Timer2 là bit TMR2IF (PIRI<I>) Xung ngõ vào (tần số bằng 1⁄4 tần số oscillator) được đưa qua bộ chia tần số prescaler 4 bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc 1:16 và được điều khiến bởi các bit T2CKPSI:T2CKPS0 (T2CON<I:0>)
Note 1: TMR2 register output can be software selected by the
SSP module as a baud clock
Hình 2.7: Sơ đồi khối ctia Timer2
Trang 39ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A
Timer2 còn được hỗ trợ bởi thanh ghi PR2 Giá trị đếm trong thanh ghi TMR2 sẽ tăng từ 00h đến giá trị chứa trong thanh ghi PR2, sau đó được reset về 00h Khi reset thanh ghi PR2 được nhận giá trị mặc định FFh
Ngõ ra của Timer2 được đưa qua bộ chia tần số postscaler với các mức chia từ 1:1 dén 1:16 Postscaler được điều khiến bởi 4 bit T2OUTPS3:T2OUTPS0 Ngõ ra của postscaler đóng vai trò quyết định trong việc điều khiển cờ ngắt
Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó Timer2 còn đóng vai trò tạo ra xung clock đồng bộ cho khối giao tiép SSP
Các thanh ghi liên quan đến Timer2 bao gồm:
INTCON (dia chi OBh, 8Bh, 10Bh, 18Bh): cho phép toàn bộ các ngat (GIE va
PEIE)
PIRI (địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF)
PIEI (địa chị §Ch): chứa bit điều khiển Timer2 (TMR2IE)
TMR2 (địa chỉ 11h): chứa giá trị đếm của Timer2
T2CON (địa chỉ 12h): xác lập các thông số cho Timer2
PR2 (địa chỉ 92h): thanh ghi hỗ trợ cho Timer2
Ta có một vài nhận xét về Timer0, Timer1 và Timer2 như sau:
Timer0 và Timer2 là bộ đếm § bit (giá trị đếm tối đa là FFh), trong khi Timer1 là bộ đếm
16 bít (giá trị đếm tối đa là FFFFh)
Timer0, Timerl và Timer2 đều có hai chế độ hoạt động là timer va counter Xung clock
có tần số bằng 1⁄4 tần số của oscillator
Xung tác động lên Timer0 được hỗ trợ bởi prescaler và có thế được thiết lập ở
nhiều chế độ khác nhau (tần số tác động, cạnh tác động) trong khi các thông số của xung tác động lên Timerl là cố định Timer2 được hỗ trợ bởi hai bộ chia tần số prescaler và postcaler độc lập, tuy nhiên cạnh tác động vẫn được có định là cạnh lên
Timerl có quan hệ với khối CCP, trong khi Timer2 được kết nối với khối SSP
Một vài so sánh sẽ giúp ta dễ dàng lựa chọn được Timer thích hợp cho ứng dụng
SVTH: Nguyễn Trung Kiên - D07KTDTI 35
Trang 40ĐỒ án tốt nghiệp Chương 2: Tìm hiểu về VDK PIC 16F877A 2.6 ADC
ADC (Analog to Digital Converter) là bộ chuyên đổi tín hiệu giữa hai đạng tương
tự và số PICI6F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0) Hiệu điện thế chuẩn VREE có thể được lựa chọn là VDD, VSS hay hiệu điện thế chuẩn được xác lập trên hai chân RA2 và RA3
Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit số tương ứng và được lưu trong hai thanh ghi ADRESH:ADRESL Khi không sử dụng bộ chuyền đối ADC, các thanh ghi này có thê được sử dụng như các thanh ghi thông thường khác Khi quá trình chuyển đổi hoàn tất, kết quả sẽ được lưu vào hai thanh ghi ADRESH:ADRESL, bit (ADCON0<2>) được xóa về 0 và cờ ngắt ADIF được set
Qui trình chuyên đổi từ tương tự sang số bao gồm các bước sau:
> Thiết lập các thông số cho bộ chuyến đổi ADC
Chọn ngõ vào analog, chọn điện áp mẫu (dựa trên các thông số của thanh ghi
ADCONI)
Chọn kênh chuyên đối AD (thanh ghi ADCON0)
Chọn xung clock cho kênh chuyên đổi AD (thanh ghi ADCON0)
Cho phép bộ chuyển đổi AD hoạt động (thanh ghi ADCON0)
> Thiết lập các cờ ngắt cho bộ AD
Clear bit ADIF
Set bit ADIE
Set bit PETE
Set bit GIE
> Doi cho toi khi quá trình lấy mẫu hoàn tắt
> Bắt đầu quá trình chuyến đối (set bit comove `)
> Doi cho téi khi quá trình chuyển đổi hoàn tất bằng cách:
Kiểm tra bit eopone Nếu 6opoxe_ =0, quá trình chuyên đổi đã hoàn tắt
Kiểm tra cờ ngắt
> Đọc kết quá chuyến đối và xóa cờ ngắt, set bit copoxr (nếu cần tiếp tục