CHƯƠNG I: KHẢO SÁT VI ĐIỀU KHIỂN AT89C52 Trang 23 LUẬN VĂN TỐT NGHIỆP SVTH: BÙI THẾ VINH OSC +12 | a Lo-fo- TH2 | TL2 [CONTROL OVERFLOW — TR2 C/T2=1 T2 PIN RELOAD HT TIMER2 - RCAP2H 7 INTERRUP TR ANSITION -~ |-f ore DETECTOR ] $ - _ = D> rxri O-4 n _ | J i aL, CONTROL 1,XI:N2 Hink 1-6: Auto Reload Mode (DCEN = 0) Tim2er TOGGLE OFFH |] OFFH + ¬—¬4 = —* xe | loverrLow] | osc fo} +12 = A Te | TỊ2 TF2 TT eas [CONTROL] | TIMER 2 oO fom INTERRUPT ˆ T2 PIN COUNT RCAP2H|RCAP2H PIRECTION (UP COUNTING RELOAD VALUE) | 0=DOWN Hinh I-7 : Timer 2 Auto Reload Mode (DCEN = 1) CHƯƠNG I: KHAO SAT VI DIEU KHIEN AT89C52 ‘Trang 24 LUẬN VĂN TỐT NGHIỆP. : : SVTH: BÙI THẾ VINH e) Chế độ phát tốc độ baund. Người ta chọn bộ Timer 2 như là bộ phát tốc độ baund bằng cách đặt bit | TCLK và RCLK trong T2CON (xem bảng 2). Chú ý là tốc độ phát và thu có thể khác nhau nếu bộ Timer 2 được dùng cho bộ thu hoặc phát và người ta sử dụng | bộ Timer 1 cho các chức năng khác, việc đặt RCLK hoặc TCLK đặt bộ Timer 2 trong chế độ phát tốc độ baund.
TIMER | OVERFLOW | NOTE OSC FREQ ISDIMIDED BAY 2, NOT 12 ) CSC cet l=) TCONTROL) hogs TR | | p—tem | C/T2= A <—J TPN | RCAPF2H |RCAP2H| TRANSITION 7 DETECTOR L] —N oo EXF2 TIMER 2 2E, PIN T2EX T† GÓNTRoL, INTERRUPT 3 EXEN2 Hinh 1-8 : Timer 2 in Baud Rate Generator Mode. Chế độ phát tốc độ baund tương tự như chế độ tự động nap lại có nghĩa là cùng ấn TH2 làm thanh ghi Timer 2 nap lại với giá trị 16 bit trong thanh ghỉ RCAP2H và RCAP2L và ta cũng có thể đặt lại bằng phần mềm. Người ta xác định công thức tính tốc độ baund tốc độ tràn Timer2 tốc độ baund ở Mode 1 và 3= 16 CHƯƠNG I: KHẢO SAT VI DIEU KHIỂN ATB9C52 ‘Trang 25 LUẬN VĂN TỐT NGHIỆP. SVTH: BÙI THẾ VINH trong hầu hết các ứng dụng người ta đặt cấu hình hoạt động cho bộ Timer va counter là (CP/T2 = 0).
Hoạt động của bộ Timer khác bộ Timer2 khi sử dụng nó như là bộ phát tốc độ baud, bình thường là bộ Timer, nó tăng mỗi chu kỳ máy (1/12 tần số bộ dao động chíp). Tuy nhiên là bộ phát tốc độ baud, nó tăng theo mỗi trạng thái (bằng 1⁄2 tần số dao động trên chip). Công thức tính tốc độ baud như sau: mode] va3 _ số bộ dao động técdébaud 32x [6553 RCAP2H,RCAP2L)] Với (RCAP2H. RCAP2L) là giá trị của RCAP2H, RCAP2L là số nguyên.
Bồ Timer tướng tự như bó phát tốc độ baud, (xem hình 1-8), ở hình này chỉ đúng khi bịt RCL.K hoặc TCL,K bằng [ trong thanh phi T2CON. Chú ý: + Nếu cũng Ấn THỜ thì không đất TE2 và sẽ khóng phát ngắt. PNeu TXNEN2 được đạt chuyển tự } xuống 0 trong T2EX sẽ đặt EXF2. Những sẽ khang nàp bà từ (WCAP2H, RCAI2L) tới €E112, 11.2) mac dt nhu vay bo Timer 2 die diag ah là bộ phát tốc đó baud, 12/-X có thuế được dùng như là MOH NPAT PHU ngoài + Be Timer dang hoat động (TR2 = l) như bộ Timer ởchế độ phát tốc độ baud, TH TL3 sẽ không được đọc hoặc ghi, ở trang thái này, bộ Timer được Ung din, và kết quả đọc hoặc ghi sẽ không đúng, thanh ghi RC.AP2 sẽ đọc nhưng.
Không ghủ bởi vì mỗi lần ghi bị chồng lên, và đó la nguyén nhân tạo ra các lỗi, bộ ‘Timer sé bi ngdt (xóa TR2) lại trước khi truy xuất Timer 2 boặc các thanh ghi RCAP2. d) Chế độ phát xung có thể lập trình được: Xung clock có chu kỳ làm việc là 50% cổ thể lập trình được và đưa đến P1.0 (xem hình 1-9), ở chân này, bên cạnh chân I/O có 2 chức năng luân phiên nhau, nó có thể lập trình được từ nguồn xung clock bên ngoài đưa vào cho bộ tỉmer/counter2 hoặc đưa ra tần số bằng 50% tần số làm việc. Ở dãy tần 61Hz tới 4MHz ở tần số làm việc 16 MHz. Cấu hình bộ Timer/couter 2 giống như máy phát xung clock bit C/T2 (T2CON.1) phải bị xóa, và bit T20E (T2MODI) phải được đặt, bit TR2 (T2CON2) dùng khởi động hoặc dừng bộ Timer.
Tần số chế độ phát xung tùy © thuộc tần số bộ dao động và giá trị nạp lại của các thanh ghi thu nhận Timer 2. (RCAP2H, RCAP2L) công thức tính sau. CHUONG |: KHẢO SÁT VI ĐIỀU KHIỂN AT89C52 Trang 26 LUẬN VĂN TỐT NGHIỆP. : SVTH: BÙI THẾ VINH Tân số bộ dao động Tần số chế độ phát xung Z———————————————— 4x [65536 - (RCAP2H, RCAP2L)] Ở chế độ phát xung, Timer 2 sẽ không phát ngắt, ở chế độ này tương tự như Timer 2 dùng bộ phát tốc độ baud, có thể dùng bộ Timer 2 như bộ phát tốc độ baud và bộ phát xung cùng một lúc, tuy nhiên tốc độ baud và tần số phát xung không thể xác định theo một yếu tố nào khác chỉ khi nào dùng cả RCAP2H và RCAP2L.
¬ 1 TL2 | TH2 OSC + -—+-†⁄ƒ9 (8-BITS) |(8-BITS) | TR2 ị — | | | ˆ (a! | +| r KCAP2H| T RCAP2I. HIRCAmn | plo ¬ _a %1 a | CPN) 2 — 2 mc | Ñ TRANSITION T20E (T2MOD. EXE2 TIMER 2 (T2EX) | INTERRUPT EXEN2 Hình 1-9 : Timer 2 in Clock — Out — Mode I. Giới thiệu : Ngắt là sự xảy ra một diéu kiện - một sự kiện — mà nó gây ra sự treo tạm thời chương trình chính và rẽ nhánh đến một chương trình khác để phục vụ _ chương trình trên.
Chương trình này gọi là chương trình phục vụ ngắt (ISR: Interupt service routine). Khi ISR được thực thi xong chương trình chính được tiếp CHUONG |; KHAO SÁT Vi DIEU KHIỂN AT89C52 ‘Trang 27 LUẬN VĂN TỐT NGHIỆP” SVTH: BÙI THẾ VINH tục ở chỗ mà nó tạm dừng. Như vậy, ngắt có thể xảy ra bất cứ lúc nào và bất cứ nơi đâu trong chương trình chính. Hình ảnh khái quát của ngắt được mô tả dưới đây.
'Thỡi gian ———> Chương tình chính Thực thi chương trình không có ngắt ISR ISR ISR a fax | Y | f ——t Chương tình Chương tình |Chương nh Chương trình chỉnh chính | “HH: ( chính * ngất * * trở về ngắt thực thủ chương trình có ngắt 3. Các ngắt của AT§9C52: AT§9C52 có tổng cộng 6 vectơ ngắt (INTO va INT1), 3 ngdt timer (timer 0, timerl va timer2) và một ngắt port nối tiếp, các ngất này được trình bày như hình 1-10 (xem hình 1-10). Một trong những chương trình ngắt được cho phép hoặc không cho phép lầm việc độc lập bằng cách đặt hoặc xóa bit trong thanh ghi chức năng đặc biệt TE, thanh ghi IE cũng chứa toàn bộ nội dung bit không cho phép thanh ghi EA không cho các ngắt xảy ra cùng một lúc. Trong bảng 1-22 (xem bảng 1-22) trình bày vị trí bit IE.6 thì không được cài đặt còn trong AT§9C5I bịt IE.5 thì không được cài, người sử dụng phần mềm không được viết giá trị 1 vào vị trí bit này.
Ngắt timer 2 được phát bởi cổng OR của các bit TF2, EXF2 trong thanh ghi T2CON. Không có cờ nào bị xóa bởi phần mềm bởi khi cung cấp một chương trình ngắt. Thực tế chương trình ngắt có thể được xác định khi TF2 hoặc EXF2 phát ra tín hiệu ngắt và bit này có thể xóa được bằng phần mềm. HƯƠNG I: KHẢO SÁT VỊ ĐIỀU KHIỂN AT89C52 Trang 28 LUẬN VĂN TỐT NGHIỆP SVTH: BÙI THẾ VINH Các cờ của Timer0 và Timer 1 là TF0 và TFI thì được đặt ở SSŠP2 của chu kỳ trong thời gian các bộ Timer bị tràn sau đó giá trị này được kiểm tra bởi chu kỳ kế tiếp, tuy nhiên cờ của Timer 2 tàTF2 thì được đặt trong S2P2 và cũng được kiểm tra ở chu kỳ kế tiếp.
, m——} I = 1E0 THỦ > oe NHI o Lowel gy Lease TRL TI RI TF2 EXF2 Hình 1-10: Interrupt Sources (MSB) (LSB) EA - | ET2 | ES | ETI | EXI | ET0 | EX0 Bit cho phép=1 cho phép ngắt Bịt cho phép=0 không cho phép ngắt CHƯƠNG I: KHẢO SÁT VI ĐIỀU KHIỂN AT89C52 ‘Trang 29 LUẬN VĂN TỐT NGHIỆP ệ SVTH: BÙI THẾ VINH Ký hiệu Vị trí Chức năng EA IE7 Nếu EA = 0 không cho phép các ngắt Nếu EA = 1 mỗi một nguồn ngắt được cho phép một cách riêng lể hoặc không cho phép đặt hoặc xóa các bit cho phép : IE.6 Không dùng ET2 IE.5 Cho phép bit ngắt Timer 2 Cho phép ngắt port nối tiếp H3 | Cho phép bit ngat Timer 1 t2 | Cho phép bit npat ngoai | Pro et | Cho phép bật ngất Timer0 xo tro | Cho phép bit ng4t ngoai 0 Hing 1-22 Thanh ghi cho phép ngat (IE) W.HOAT DONG PORT NOI TIẾP. Vị điểu khiển §952 có thêm Port nối tiếp hoat đóng ở nhiều chế độ và day Gin so rộng, Chức năng của Port nối tiếp là thực hiền chuyển đổi dữ liệu ra từ song song nối tiếp và từ nối tiếp sang song sonz cho đữ liệu vào. Phần cứng truy xuất Port nối tiếp thông qua các chân TXD và RXD. Các chần này có những chức năng khác nhau (chân tương ứng P3.
Port nối tiếp được đặc trưng bởi hoạt động theo chế độ song công (truyền ˆ và nhận đồng thời) và cách nhận đệm cho phép nhận một ký tự và giữ nó trong, bộ đệm trong kí tự thứ 2 được nhận. Nếu CPU đọc ký tự thứ nhất trước thì ký tự thứ hai được nhận đủ, dữ liệu không bị mất. Hai thanh ghi đặc biệt dùng truy xuất đến Port nối tiếp là SBUF và SCON. Thanh ghi SBUF (đệm Port nối tiếp) ở địa chỉ 99H thật sự là 2 thanh ghi.
Khi ghi vào SBUF là để nạp dữ liệu truyền đi và doc SBUF là truy xuất dữ liệu nhận. Đây là những thanh ghi riêng biệt, thanh ghi truyền là thanh ghi chỉ ghi còn thanh ghi nhận là thanh ghi chỉ đọc. Thanh ghi điều khiển Port nối tiếp SCON ở địa chỉ 98H thanh ghi truy xuất từng bit, chứa các bit trạng thái và các điều khiển. Các bit diéu khiển dùng thiết lập chế độ hoạt động cho Port nối tiếp và các bit trạng thái để sự chấm dứt CHUONG I: KHẢO SÁT VI ĐIỀU KHIỂN AT89C52 Trang 30 LUẬN VĂN TỐT NGHIỆP.
| SVTH: BUI THE VINH việc truyền hoặc nhận 1 ký tự. Các bit trạng thái được kiểm tra bằng phần mềm hoặc được lập trình tạo ngắt. Tân số hoạt động cửa Port nối tiếp tốc độ baud có thể được cố định (lấy từ bộ dao động (ON - CHIP) hay thay đổi được. Nếu sử dụng tốc độ baud thay đổi được thì Timer I cung cấp xung Clock tốc độ baud và phải được lập trình „ tương ứng.