Chương 4:Bộ Hoạt Động Đònh thời 4.1 – Bộ định thời TIMER0 Trong phần ta làm bước đầu làm quen với Timer vi điều khiển PIC16F877A thao tác Timer, bao gồm thao tác khởi tạo xử lí ngắt Để cụ thể ta sâu vào ứng dụng sau:hiển thò giá trò cập nhật LED đoạn Bộ định thời/bộ đếm Timer0 có đặc tính sau : Bộ định thời / đếm bit Cho phép đọc ghi Bộ chia bit lập trình phần mềm Chọn xung clock nội ngoại Ngắt có tràn từ FFh đến 00h Chọn cạnh cho xung clock ngồi Bên sơ đồ khối định thời Timer0 chia dùng chung với WDT Chế độ định thời (Timer) chọn cách xóa bit T0CS ( OPTION_REG Trong chế độ định thời , định thời Timer0 tăng dần sau chu kỳ lệnh ( khơng cóbộ chia ) Nếu ghi TMR0 ghi tăng bị ngăn lại sau hai chu kỳ lệnh Chế độ đếm (Counter) chọn cách set bit T0SC (OPTION_REG ) Trong chế độ đếm , Timer0 tăng dần cạnh lên cạnh xuống chânRA4/T0CKI Sự tăng cạnh xác định bit Timer0 Source Edge Select , T0SE (OPTION_REG ) Bộ chia dùng chung qua lại định thời Timer0 định thời Watchdog Bộ chia khơng cho phép đọc ghi Ngắt TMR0 phát ghi TMR0 tràn từ FFh đến 00h Sự tràn set bit T0IF (INTCON) Ngắt giấu cách xóa bit T0IE(INTCON) Bit T0IF cần phải xóa chương trình thủ tục phục vụngắt định thời Timer0 trước ngắt cho phép lại – Sử dụng Timer0 với xung clock ngoại Khi chia khơng sử dụng , clock ngồi đặt vào giống chia ngõ Sự đồng chân T0CKI với clock ngồi thực cách lấy mẫu chia ngõ chân Q2 Q4 Vì thưc cần thiết để chân T0CKIở mức cao chu kỳ máy mức thấp chu kỳ máy 4.2*Bộ định thời TMR1 : Bộ định thời định thời/bộ đếm 16 bit gồm hai ghi TMR1H ( byte cao ) TMR1L ( byte thấp ) mà đọc ghi Cặp ghi tăng số đếm từ0000h đến FFFFh tràn xuất có chuyển số đếm từ FFFFh xuống0000h Ngắt, phép phát có số đếm tràn đặt bit cờ ngắt TMR1IF Ngắt phép cấm cách đặt xóa bit cho phép ngắtTMR1IE.Bộ định thời Timer1 cấu hình để hoạt động hai chế độ sau: _Định thời khoảng thời gian ( Timer ) _Đếm kiện ( Counter ) Việc lựa chọn hai chế độ xác định cách đặt xóa bit chọn clock TMR1CS Trong chế độ định khoảng thời gian, định thời tăng số đếm lênsau chu kỳ lệnh Trong chế độ đếm kiện, định thời tăng sau cạnh lên clock ngồi đặt vào Bộ định thời phép cấm cách đặt xóa bit điều khiển TMR1ON.\ – Chế độ Timer Chế độ Timer chọn cách xóa bit TMR1CS Trong chế độ này, nguồn clock đặt vào Timer mạch dao động FOSC/4 Bit điều khiển đồng khơng bị tác động clock ngồi ln ln đồng *Chế độ counter Trong chế độ này, định thời tăng số đếm qua nguồn clock ngồi Việc tăng xảy sau cạnh lên xung clock ngồi Bộ định thời phải có cạnh lên trước việc đếm bắt đầu 4.3– Bộ định thời Timer2 Bộ định thời định thời bit với chia Postscaler Nó thường dùng chung với CCP chế độ PWM ( đề cập phần sau ) Thanh ghi TMR2 đọc ghi xóa có tín hiệu reset thiết bị.Bộ định thời có ghi chu kỳ bit,PR2.Bộ định thời tăng số đếm lên từ 00hđến giá trị ghi ghi TR2 sau reset lại giá trị 00h chu kỳ kếtiếp PR2 ghi đọc ghi.Giá trị trùng hợp ghi TMR2 qua postscaler bit để phát ngắt TMR2(được đặt bit cờ ngắt TMR2IF) Bộ định thời tắt ( khơng hoạt động ) cách xóa bit điều khiển TMR2ON để giảm thiểu cơng suất tiêu tán nguồn 4.4 NGẮT (INTERRUPT) PIC16F877A có đến 15 nguồn tạo hoạt động ngắt điều khiển ghi INTCON (bit GIE) Bên cạnh ngắt có bit điều khiển cờ ngắt riêng Các cờ ngắt set bình thường thỏa mãn điều kiện ngắt xảy bất chấp trạng thái bit GIE, nhiên hoạt động ngắt phụ thuôc vào bit GIE bit điều khiển khác Bit điều khiển ngắt RB0/INT TMR0 nằm ghi INTCON, ghi chứa bit cho phép ngắt ngoại vi PEIE Bit điều khiển ngắt nằm ghi PIE1 PIE2 Cờ ngắt ngắt nằm ghi PIR1 PIR2 Trong thời điểm cóchương trình ngắt thực thi, chương trình ngắt kết thúc lệnh RETFIE Khi chương trình ngắt thực thi, bit GIE tự động xóa, đòa lệnh chương trình cất vào nhớ Stack đếm chương trình đến đòa 0004h Lệnh RETFIE dùng để thoát khỏi chương trình ngắt quay trở chương trình chính, đồng thời bit GIE set phép ngắt hoạt động trở lại Các cờ hiệu dùng để kiểm tra ngắt xảy phải xóa chương trình trước cho phép ngắt tiếp tục hoạt động trở lại để ta phát thời điểm mà ngắt xảy ra.Đối với ngắt ngoại vi ngắt từ chân INT hay ngắt từ thay đổi trạng thái pin PORTB (PORTB Interrupt on change), việc xác đònh ngắt xảy cần 4chu kì lệnh tùy thuộc vào thời điểm xảy ngắt.Cần ý trình thực thi ngắt, cógiá trò đếm chương trình cất vào Stack, số ghi quan trọng không cất bò thay đổi giá trò trình thực thi chương trình ngắt Điều nên xử lí chương trình để tránh tượng xảy *Giới Thiệu số ghi PIC P2.24 Thanh ghi RCSTA: đòa 18h Thanh ghi chứa bit trạng thái bit điều khiển trình nhận liệu qua chuẩn giao tiếp USART P2.25 Thanh ghi XTREG: đòa 19h Thanh ghi đóng vai trò buffer đệm bit trình truyền liệu thông qua chuẩn giao tiếp USART P2.26 Thanh ghi RCREG: đòa 1Ah Thanh ghi đóng vai trò buffer đệm trình nhận liệu qua chuẩn giao tiếp USART P2.27 Thanh ghi CCPR2L: đòa 1Bh Thanh ghi chứa bit thấp khối CCP2 P2.28 Thanh ghi CCPR2H: đòa 1Ch Thanh ghi chứa bit cao khối CCP2 P2.29 Thanh ghi ADRESH: đòa 1Eh Thanh ghi chứa byte cao kết trình chuyển đổi ADC P2.30 Thanh ghi ADCON0: đòa 1Fh Đây hai ghi điều khiển khối chuyển đổi ADC Thanh ghi lại ghi ADCON1 (đòa 9Fh) P2.32 Thanh ghi TRISA: đòa 85h Thanh ghi điều khiển xuất nhập pin PORTA P2.33 Thanh ghi TRISB: đòa 86h, 186h Thanh ghi điều khiển xuất nhập pin PORTB P2.34 Thanh ghi TRISC: đòa 87h Thanh ghi điều khiển xuất nhập pin PORTC P2.35 Thanh ghi TRISD: đòa 88h Thanh ghi điều khiển xuất nhập pin PORTD P2.36 Thanh ghi TRISE: đòa 89h Thanh ghi điều khiển xuất nhập pin PORTE, điều khiển cổng giao tiếp song song PSP (Parallel Slave Port) P2.37 Thanh ghi PIE1: đòa 8Ch Thanh ghi chứa bit cho phép ngắt ngoại vi P2.38 Thanh ghi PIE2: đòa 8Dh Thanh ghi chứa bit cho phép ngắt ngọai vi P2.39 Thanh ghi PCON: đòa 8Eh Thanh ghi điều khiển chứa cờ hiệu cho biết trạng thái chế độ reset vi điều khiển P2.40 Thanh ghi SSPCON2: đòa 91h Thanh ghi điều khiển chế độ hoạt động chuẩn giao tiếp I2C P2.41 Thanh ghi PR2: đòa 92h Thanh ghi dùng để ấn đònh trước giá trò đếm cho Timer2 Khi vi điều khiển reset, PR2 mang giá trò FFh Khi ta đưa giá trò vào ghi PR2, Timer2 đếm từ 00h giá trò đếm Timer2 với giá trò đếm ghi PR2 Như mặc đònh Timer2 đếm từ 00h đến FFh P2.42 Thanh ghi SSPADD: đòa 93h Thanh ghi chứa đòa vi điều khiển hoạt động chuẩn giao tiếp I2C Slavemode Khi không dùng để chứa đòa (I2C Master mode) SSPADD dùng để chứa giá trò tạo xung clock đồng pin SCL Và số ghi khác ... TMR1CS Trong chế độ này, nguồn clock đặt vào Timer mạch dao động FOSC /4 Bit điều khiển đồng khơng bị tác động clock ngồi ln ln đồng *Chế độ counter Trong chế độ này, định thời tăng số đếm qua nguồn... định thời tắt ( khơng hoạt động ) cách xóa bit điều khiển TMR2ON để giảm thiểu cơng suất tiêu tán nguồn 4. 4 NGẮT (INTERRUPT) PIC16F877A có đến 15 nguồn tạo hoạt động ngắt điều khiển ghi INTCON... thái chế độ reset vi điều khiển P2 .40 Thanh ghi SSPCON2: đòa 91h Thanh ghi điều khiển chế độ hoạt động chuẩn giao tiếp I2C P2 .41 Thanh ghi PR2: đòa 92h Thanh ghi dùng để ấn đònh trước giá trò