Nội dung:
Khảo sát khối chức năng PWM .
Yêu cầu:
Viết chương trình sử dụng chức năng PWM điều khiển độ sáng của LED.
9.1 Các bước hiện thực PWM
Bước 1. Tạo project mới giống như hướng dẫn ở chương 1 lấy tên project là pwm và chọn chip 18f4520. Ta được hình sau:
Bước 2. Include filep18f4520.inc vào filepwm.asm.
Bước 3. Tích hợp module LCD vào project pwm , tham khảo bài tập về LCD. Bước 4. Khởi tạo module PWM để ta có thể sử dụng một cách dễ dàng.
Init_pwm
;configure CCP1 module for buzzer bcf TRISC,2
movlw 0x0F ;chọn active low
movwf CCP1CON movlw .249
movwf PR2 ; period
movlw .120
movwf CCPR1L ; duty cycle bcf CCP1CON,CCP1X
;postscale 1:1, prescaler 4, Timer2 ON movlw 0x05
movwf T2CON return
Để khởi tạo chức năng pwm, đầu tiên ta phải cấu hình cho PORTC2 là output. Tiếp theo khởi tạo chu kì của PWM thơng qua việc cấu hình thanh ghi PR2. Sau đó ta khởi tạo duty cycle của xung pwm bằng cách cấu hình thanh ghi CCPR1L.
9.2 Chương trình mẫu
;=====================================; ; Name: pwm.asm
; Project: Su dung Pwm de xuat am thanh ra loa. ; Author: BKIT HARDWARE CLUB
; Homepage: http://www.bkit4u.com/forum ; Creation Date: 20 - 8 - 2009 ;======================================; list p=18f4520 #include "p18f4520.inc" ; vectors
org 0x000000 ; reset vector
bra START ;************************************************************ ; program START call Init_pwm goto $ Init_pwm bcf TRISC,2
movlw 0x0F ;chọn active low
movwf CCP1CON movlw .249
movwf PR2 ; period
movlw .120
movwf CCPR1L ; duty cycle bcf CCP1CON,CCP1X
Bộ mơn Kỹ Thuật Máy Tính 65 Thực hành Vi xử lý bcf CCP1CON,CCP1Y
;postscale 1:1, prescaler 4, Timer2 ON
movlw 0x05
movwf T2CON
return END
9.3 Bài tập
a) Tính period và duty cycle của xung phát ra trong chương trình mẫu và dùng dao động ký đo lại.
b) Thực hiện phát xung sau ra RC2:
c) Thực hiện phát xung sau ra RC2:
0.3ms 0.4ms