Các ghi liên quan đến so sánh bao gồm: CMCON (đòa 9Ch) CVRCON (đòa 9Dh): xác lập thông số cho so sánh Thanh ghi INTCON (đòa 0Bh, 8Bh, 10Bh, 18Bh): chứa bit cho phép ngắt (GIE PEIE) Thanh ghi PIR2 (đòa 0Dh): chứa cờ ngắt so sánh (CMIF) Thanh ghi PIE2 (đòa 8Dh): chứa bit cho phép so sánh (CNIE) Thanh ghi PORTA (đòa 05h) TRISA (đòa 85h): ghi điềukhiển PORTA Chi tiết ghi trình bày cụ thể phụ lục 2.10.1 BỘ TẠO ĐIỆN ÁP SO SÁNH Bộ so sánh hoạt động Comparator đựơc đònh dạng hoạt động chế độ ‘110’ Khi pin RA0/AN0 RA1/AN1 (khi CIS = 0) pin RA3/AN3 RA2/AN2 (khi CIS = 1) ngõ vào analog điện áp cần so sánh đưa vào ngõ VIN- so sánh C1 C2 (xem chi tiết hình 2.10) Trong điện áp đưa vào ngõ VIN+ lấy từ tạo điện áp so sánh Sơ đồ khối tạo điện áp so sánh đựơc trình bày hình vẽ sau: Hình 2.12 Sơ đồ khối tạo điện áp so sánh Bộ tạo điện áp so sánh bao gồm thang điện trở 16 mức đóng vai trò cầu phân áp chia nhỏ điện áp VDD thành nhiều mức khác (16 mức) Mỗi mức có giá trò điện áp khác tùy thuộc vào bit điềukhiển CVRR (CVRCON) Nếu CVRR mức logic 1, điện trở 8R tác dụng thành phần cầu phân áp (BJT dẫn mạnh dòng điện không qua điện trở 8R), mức điện áp có giá trò VDD/24 Ngược lại CVRR mức logic 0, dòng điện qua điện trở 8R và1 mức điện áp có giá trò VDD/32 Các mức điện áp đưa qua MUX cho phép ta chọn điện áp đưa pin RA2/AN2/VREF-/CVREF để đưa vào ngõ VIN+ so sánh cách đưa giá trò thích hợp vào bit CVR3:CVR0 Bộ tạo điện áp so sánh xem chuyển đổi D/A đơn giản Giá trò điện áp cần so sánh ngõ vào Analog so sánh với mức điện áp tạo điện áp tạo hai điện áp đạt giá trò xấp xỉ Khi kết chuyển đổi xem chứa bit CVR3:CVR0 Các ghi liên quan đến tạo điện áp so sánh bao gồm: Thanh ghi CVRCON (đòa 9Dh): ghi trực tiếp điềukhiển so sánh điện áp Thanh ghi CMCON (đòa 9Ch): ghi điềukhiển Comparator Chi tiết ghi trình bày cụ thể phụ lục 2.11 CCP CCP (Capture/Compare/PWM) bao gồm thao tác xung đếm cung cấp đếm Timer1 Timer2 PIC16F877A tích hợp sẵn hai khối CCP : CCP1 CCP2.Mỗi CCP có ghi 16 bit (CCPR1H:CCPR1L CCPR2H:CCPR2L), pin điềukhiển dùng cho khối CCPx RC2/CCP1 RC1/T1OSI/CCP2 Các chức CCP bao gồm: Capture So sánh (Compare) Điều chế độ rộng xung PWM (Pulse Width Modulation) Cả CCP1 CCP2 nguyên tắc hoạt động giống chức khối độc lập Tuy nhiên số trường hợp ngoại lệ CCP1 CCP2 có khả phối hợp với để để tạo tượng đặc biệt (Special event trigger) tác động lên Timer1 Timer2 Các trường hợp liệt kê baûng sau: CCPx Capture Capture Compare PWM CCPy Capture Compare Compare PWM PWM PWM Capture Compare Tác động Dùng chung nguồn xung clock từ TMR1 Tạo tượng đặc biệt làm xóa TMR1 Tạo tượng đặc biệt làm xóa TMR1 Dùng chung tần số xung clock vàcùng chòu tác động ngắt TMR2 Hoạt động độc lập Hoạt động độc lập Khi hoạt động chế độ Capture có “hiện tượng” xảy pin RC2/CCP1 (hoặc RC1/T1OSI/CCP2), giá trò ghi TMR1 đưa vào ghi CCPR1 (CCPR2) Các “hiện tượng” đònh nghóa bit CCPxM3:CCPxM0 (CCPxCON) tượng sau: Mỗi có cạnh xuống pin CCP Mỗi có cạnh lên Mỗi cạnh lên thứ Mỗi cạnh lên thứ 16 Hình 2.13 Sơ đồ khối CCP (Capture mode) Sau giá trò ghi TMR1 đưa vào ghi CCPRx, cờ ngắt CCPIF set phải xóa chương trình Nếu tượng xảy mà giá trò ghi CCPRx chưa xử lí, giá trò nhận tự động ghi đè lên giá trò cũ Một số điểm cần ý sử dụng CCP sau: Các pin dùng cho khối CCP phải ấn đònh input (set bit tương ứng ghi TRISC) Khi ấn đònh pin dùng cho khối CCP output, việc đưa giá trò vào PORTC gây “hiện tượng” tác động lên khối CCP trạng thái pin thay đổi Timer1 phải hoạt động chế độ Timer chế độ đếm đồng Tránh sử dụng ngắt CCP cách clear bit CCPxIE (thanh ghi PIE1), cờ ngắt CCPIF nên xóa phần mềm set để tiếp tục nhận đònh trạng thái hoạt động CCP CCP tích hợp chia tần số prescaler điềukhiển bit CCPxM3:CCPxM0 Việc thay đổi đối tượng tác động prescaler tạo hoạt động ngắt Prescaler xóa CCP không hoạt động reset Xem ghi điềukhiển khối CCP (phụ lục để biết thêm chi tiết) Khi hoạt động chế độ Compare, giá trò ghi CCPRx thường xuyên so sánh với giá trò ghi TMR1 Khi hai ghi chứa giá trò nhau, pin CCP thay đổi trạng thái (được đưa lên mức cao, đưa xuống mức thấp giữ nguyên trạng thái), đồng thời cờ ngắt CCPIF set Sự thay đổi trạng thái pin điềukhiển bit CCPxM3:CCPxM0 (CCPxCON ) Hình 2.14 Sơ đồ khối CCP (Compare mode) Tương tự chế độ Capture, Timer1 phải ấn đònh chế độ hoạt động timer đếm đồng Ngoài ra, chế độ Compare, CCP có khả tạo tượng đặc biệt (Special Event trigger) làm reset giá trò ghi TMR1 khởi động chuyển đổi ADC Điều cho phép ta điềukhiển giá trò ghi TMR1 cách linh động Khi hoạt động chế độ PWM (Pulse Width Modulation _ khối điều chế độ rộng xung), tín hiệu sau điều chế đưa pin khối CCP (cần ấn đònh pin output) Để sử dụng chức điều chế trước tiên ta cần tiến hành bước cài đặt sau: Thiết lập thời gian chu kì xung điều chế cho PWM (period) cách đưa giá trò thích hợp vào ghi PR2 Thiết lập độ rộng xung cần điều chế (duty cycle) cách đưa giá trò vào ghi CCPRxL bit CCP1CON Điềukhiển pin CCP output cách clear bit tương ứng ghi TRISC Thiết lập giá trò chia tần số prescaler Timer2 cho phép Timer2 hoạt động cách đưa giá trò thích hợp vào ghi T2CON Cho phép CCP hoạt động chế độ PWM Hình 2.15 Sơ đồ khối CCP (PWM mode) Hình 2.16 Các tham số PWM Trong giá trò chu kì (period) xung điều chế tính công thức: PWM period = [(PR2)+1]*4*TOSC*(giá trò chia tần số TMR2) Bộ chia tần số prescaler Timer2 nhận giá trò 1,4 16 (xem lại Timer2 để biết thêm chi tiết) Khi giá trò ghi PR2 với giá trò ghi TMR2 trình sau xảy ra: Thanh ghi TMR2 tự động xóa Pin khối CCP set Giá trò ghi CCPR1L (chứa giá trò ấn đònh độ rộng xung điều chế duty cycle) đưa vào ghi CCPRxH Độ rộng xung điều chế (duty cycle) tính theo công thức: PWM duty cycle = (CCPRxL:CCPxCON)*TOSC*(giá trò chia tần số TMR2) Như bit CCPxCON chứa bit LSB Thanh ghi CCPRxL chứa byte cao giá trò đònh độ rộng xung Thanh ghi CCPRxH đóng vai trò buffer cho khối PWM Khi giá trò ghi CCPRxH với giá trò ghi TMR2 hai bit CCPxCON với giá trò bit chia tần số prescaler, pin khối CCP lại đưa mức thấp, ta có hình ảnh xung điều chế ngõ khối PWM hình 2.14 Một số điểm cần ý sử dụng khối PWM: Timer2 có hai chia tần số prescaler postscaler Tuy nhiên postscaler không sử dụng trìnhđiều chế độ rộng xung khối PWM Nếu thời gian duty cycle dài thời gian chu kì xung period xung ngõ tiếp tục giữ mức cao sau giá trò PR2 với giá trò TMR2 2.12 GIAO TIẾP NỐI TIẾP 1.12.1 USART USART (Universal Synchronous Asynchronous Receiver Transmitter) hai chuẩn giao tiếp nối tiếp.USART gọi giao diện giao tiếp nối tiếp nối tiếp SCI (Serial Communication Interface) Có thể sử dụng giao diện cho giao tiếp với thiết bò ngọai vi, với viđiềukhiển khác hay với máy tính Các dạng giao diện USART ngọai vi bao gồm: Bất động (Asynchronous) Đồng bộ_ Master mode Đồng bộ_ Slave mode Hai pin dùng cho giao diện RC6/TX/CK RC7/RX/DT, RC6/TX/CK dùng để truyền xung clock (baud rate) RC7/RX/DT dùng để truyền data Trong trường hợp ta phải set bit TRISC SPEN (RCSTA) c0để cho phép giao diện USART PIC16F877A tích hợp sẵn tạo tốc độ baud BRG (Baud Rate Genetator) bit dùng cho giao diện USART BRG thực chất đếm sử dụng cho hai dạng đồng bất đồng điềukhiển ghi PSBRG Ở dạng bất đồng bộ, BRG điềukhiển bit BRGH ( TXSTA) Ở dạng đồng tác động bit BRGH bỏ qua Tốc độ baud BRG tạo tính theo công thức sau: Trong X giá trò ghi RSBRG ( X số nguyên 0