TÀI LIỆU MÔN KĨ THUẬT VI XỬ LÍ PIC18F4520 TÀI LIỆU MÔN KĨ THUẬT VI XỬ LÍ PIC18F4520 TÀI LIỆU MÔN KĨ THUẬT VI XỬ LÍ PIC18F4520 TÀI LIỆU MÔN KĨ THUẬT VI XỬ LÍ PIC18F4520 TÀI LIỆU MÔN KĨ THUẬT VI XỬ LÍ PIC18F4520 TÀI LIỆU MÔN KĨ THUẬT VI XỬ LÍ PIC18F4520 TÀI LIỆU MÔN KĨ THUẬT VI XỬ LÍ PIC18F4520
BÀI BIẾN ĐỔI TƯƠNG TỰ - SỐ (ADC) Mục tiêu học: (1) Trình bày số khái niệm, đặc điểm hoạt động ADC; (2) Trình bày đặc điểm, hoạt động tính chọn giá trị cho ghi ADC PIC18F4520; (3) Thiết lập điều khiển chuyển đổi tương tự - số sử dụng thư viện ADC.h; (4) Lập trình ứng dụng chuyển đổi tương tự - số hiển thị kết led đơn; Lập trình đo điện áp điều khiển thiết bị 7.1 Giới thiệu chuyển đổi tương tự - số (ADC) - Bộ chuyển đổi tương tự sang số – ADC (Analog to Digital Converter), lấy mức điện vào tương tự, sau khoảng thời gian sinh mã đầu dạng số - Đầu vào tưng tự: VA - Lệnh START: Ra lệnh bắt đầu biến đổi - ECO: Tín hiệu báo chuyển đổi xong - VA > VAX: dừng chuyển đổi - Xung Clock: xung nhịp chuyển đổi ADC - Độ phân giải: biểu thị số bit tín hiệu số đầu Số lượng bit nhiều sai số lượng tử nhỏ, độ xác cao Thông thường số bit đầu 4, 8, 16, 32 bit … - Điện áp tham chiếu: Là giải điện áp sử dụng để so sánh với tín hiệu đầu vào, bao gồm điện áp tham chiếu trên(+) VREF+; điện áp tháp chiếu dưới(-) VREF- - Tốc độ chuyển đổi: Tốc độ chuyển đổi xác định thời gian cần thiết hoàn thành lần chuyển đổi A/D - Công thức chuyển đổi tương tự - số 𝑽𝑨 = 𝑫𝒐𝒖𝒕 ∗(𝑽𝒓𝒆𝒇+ − 𝑽𝒓𝒆𝒇− ) + 𝑽𝒓𝒆𝒇− 𝟐𝒏 −𝟏 VA Điện áp vào tương tự Dout Đầu số (10 bit) 𝑉𝑟𝑒𝑓+ Điện áp thap chiếu (+) 𝑉𝑟𝑒𝑓− Điện áp tham chiếu (-) 7.2 Bộ ADC vi điều khiển PIC18F4520 - Giới thiệu: Một biến đổi ADC 10 bit; 13 kênh đầu vào AN0-AN12, chuyển kênh phần mềm; Điện áp tham chiếu lựa chọn từ nguồn cấp(VSS, VDD) hoạc bên (AN2, AN3) phần mềm; Nguồn xung lấy từ FOSC - Lựa chọn hệ số chia tần cho ADC - Lựa chọn cách ghi giá trị số ghi + Ghi dồn bên phải: 10 bit ADC lưu vào D9 đến D0 ghi chứa + Ghi dồn bên trái: 10 bit ADC lưu vào D15 đến D6 ghi chứa 7.3 Lựa cọn giá trị cho ADCON1 Ví dụ: Thiết lập giá trị than ghi ADCON1 để AN3 đầu vào tương tự? Để lựa chọn cho AN3 đầu vào tương tự PCFG3:PCFG0 thiết lập giá trị từ 0000 đến 1011 Nếu cần sử dụng AN4 đến AN12 đầu vào/ra số thiết lập giá trị cho PCFG3:PCFG0 1011 Vì vậy: ADCON1 = 0b00001011; hay portconfig = 11 7.4 Ví dụ áp dụng - Mạch điện - Yêu cầu: Cho sơ đồ mạch điện mô hình bên Lập trình chuyển đổi tín hiệu tương tự từ AN0 sang số Tám bit trọng số thấp D7-D0 giá trị số gán PORTC; bit trọng số cao D9, D8 gán D1, D0 PORTD, FOSC=8MHz - Chương trình điều khiển - Kết mô Dout = 0b1011111111 = 767 (D) Vref+ = 5V; Vref- = 0V Nên : VA = (767 * 5)/1023 = 3.74877 (V), Nhận xét: Điện áp đo vi điều khiển với điện áp đo đồng hồ 3.5V BÀI ĐIỀU CHẾ ĐỘ RỘNG XUNG (PWM) Mục tiêu học (1) Trình bày số khái niệm ứng dụng xung PWM; (2) Trình bày đặc điểm, hoạt động tính chọn giá trị cho ghi điều chế độ rộng xung (PWM) PIC18F4520; (3) Lập trình điều khiển PWM sử dụng thư viện pwm.h; (4) Lập trình ứng dụng tạo xung PWM kênh CCP1 để điều khiển tốc độ MOTOR chiều 8.1 Một số khái niệm, quy ước chung - Điều chế độ rộng xung (PWM) viết tắt cụm từ tiếng Anh (PulseWidth Modulation) Đây phương pháp điều chế độ rộng xung vng có chu kỳ khơng đổi - Ứng dụng xung PWM: • Điều khiển góc quay động RC Servo • Trong viễn thơng, PWM dạng điều chế tín hiệu, độ rộng xung tương ứng với giá trị liệu cụ thể mã hoá đầu giải mã đầu • Điều khiển độ sáng đèn (đèn hình LCD, độ sáng led quảng cáo…) • Điều khiển tốc độ motor DC( robot, xe đạp điện…) • Điều chỉnh điện áp 8.2 Bộ tạo xung PWM PIC18F4520 - Chu kì khoảng cách từ S tới S Tín hiệu S tạo so sánh đếm TMR2 với giá trị ghi PR2 - Độ rộng khoảng cách từ S tới R Tín hiệu R tạo so sánh đếm TMR2 với 10 bit (CCPRxL:CCPxCON) - Thiết lập chu kì - Thiết lập độ rộng Chú ý: 1 cần dùng Timer0 tạo khoảng thời gian -> xác định giá trị bit ghi T0CON để thực sau: TMR0ON T08BIT T0CS T0SE 0 0 PSA T0PS2 T0PS1 T0PS0 0 16 bit, xung clock nội Chia tần 32 Bài Các định thời/đếm (5) Lập trình cho Timer0 #15 • Lập trình tạo khoảng thời gian xác định cho Timer0 Cho mạch điện hình vẽ, lập trình điều khiển để LED D1 sáng nhấp nháy với chu kỳ giây (giả sử vi điều khiển hoạt động tần số Fosc=4MHz) • Thực tốn B3: Tính tốn giá trị nạp lại cho ghi TMR0H TMR0L: FTimerClock FOSC / / PrescaleValue TTimerClock FTimerClock PrescaleValue FOSC / PrescaleValue Delay TimerCount * FOSC / Delay * FOSC / PrescaleValue TimerRegInit TimerMaxValue TimerCount TimerCount Bài Các định thời/đếm (5) Lập trình cho Timer0 #16 • Lập trình tạo khoảng thời gian xác định cho Timer0 Cho mạch điện hình vẽ, lập trình điều khiển để LED D1 sáng nhấp nháy với chu kỳ giây (giả sử vi điều khiển hoạt động tần số Fosc=4MHz) • Thực tốn B3: Tính tốn giá trị nạp lại cho ghi TMR0H TMR0L: Khi hệ số chia trước 32, để tạo thời gian xác định 0,5s -> áp dụng công thức tính số xung cần đếm, tổng số xung clock để Timer0 đếm từ bắt đầu đến tràn là: 15625 (giá trị phải số nguyên) Tính toán giá trị nạp cho ghi chứa bit thấp: TMR0L = (65536-15625)%256 (phép chia lấy phần dư) Tính tốn giá trị nạp cho ghi chứa bit cao: TMR0H = (65536-15625)/256 (phép chia lấy phần nguyên) Bài Các định thời/đếm (5) Lập trình cho Timer0 #17 • Lập trình tạo khoảng thời gian xác định cho Timer0 Cho mạch điện hình vẽ, lập trình điều khiển để LED D1 sáng nhấp nháy với chu kỳ giây (giả sử vi điều khiển hoạt động tần số Fosc=4MHz) • Thực tốn B4: Viết chương trình điều khiển theo yêu cầu tốn (xem chương trình đầy đủ đề cương giảng) Chạy mô kết Bài Các định thời/đếm (5) Lập trình cho Timer0 #18 • Lập trình đếm kiện ngồi sử dụng Timer0 Cho mạch điện hình vẽ, lập trình điều khiển sử dụng Timer0 đếm số lần nhấn nút, hiển thị số lần đếm dạng số nhị phân LED (D8: MSB, D1: LSB) R1 10k U1 14 13 33 34 35 36 37 38 39 40 D8 D7 D6 D5 D4 D3 D2 D1 LED-GREEN LED-GREEN LED-GREEN LED-GREEN LED-GREEN LED-GREEN LED-GREEN LED-GREEN RA0/AN0/C1INRC0/T1OSO/T13CKI RA1/AN1/C2INRC1/T1OSI/CCP2B RA2/AN2/C2IN+/VREF-/CVREF RC2/CCP1/P1A RA3/AN3/C1IN+/VREF+ RC3/SCK/SCL RA4/T0CKI/C1OUT RC4/SDI/SDA RA5/AN4/SS/HLVDIN/C2OUT RC5/SDO RA6/OSC2/CLKO RC6/TX/CK RA7/OSC1/CLKI RC7/RX/DT RB0/AN12/FLT0/INT0 RB1/AN10/INT1 RB2/AN8/INT2 RB3/AN9/CCP2A RB4/KBI0/AN11 RB5/KBI1/PGM RB6/KBI2/PGC RB7/KBI3/PGD RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 RE3/MCLR/VPP PIC18F4520 R9 R8 R7 R6 R5 R4 R3 R2 330 330 330 330 330 330 330 330 RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5/P1B RD6/PSP6/P1C RD7/PSP7/P1D 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 10 +5V Bài Các định thời/đếm (5) Lập trình cho Timer0 #19 • Lập trình đếm kiện ngồi sử dụng Timer0 Cho mạch điện hình vẽ, lập trình điều khiển sử dụng Timer0 đếm số lần nhấn nút, hiển thị số lần đếm dạng số nhị phân LED (D8: MSB, D1: LSB) • Thực toán B1: khởi tạo PORT Các LED nối với PORTB, cần thiết lập PORTB để chân có chiều -> TRISB = 0x00 Nút nhấn nối với chân RA4, cần thiết lập PORTA để chân RA4 có chiều vào -> TRISAbits.TRISA4 = B2: Khởi tạo ghi T0CON: T0CON = 01111000b Bài Các định thời/đếm (5) Lập trình cho Timer0 #20 • Lập trình đếm kiện ngồi sử dụng Timer0 Cho mạch điện hình vẽ, lập trình điều khiển sử dụng Timer0 đếm số lần nhấn nút, hiển thị số lần đếm dạng số nhị phân LED (D8: MSB, D1: LSB) • Thực tốn B3: Tính tốn giá trị nạp lại cho ghi TMR0L (chỉ sử dụng ghi lựa chọn Timer0 làm việc chế độ bit): Với yêu cầu đề TMR0L khởi tạo B4: Viết chương trình điều khiển theo u cầu tốn (xem chương trình đầy đủ đề cương giảng) • Thảo luận Nếu muốn timer đếm tăng nhả nút cần sửa lại chương trình điều khiển lệnh nào? SV tự sửa chạy mô chương trình để kiểm tra Bài Các định thời/đếm • Tổng kết (1) Khái niệm cần thiết hoạt động định thời/đếm (2) Cấu tạo nguyên lý hoạt động timer (3) Ứng dụng timer/counter (4) Timer0 (5) Lập trình sử dụng Timer0 tạo khoảng thời gian xác định lập trình đếm kiện #21 ... (x=0, 2) tra cứu ? ?Tài liệu tra cứu PIC” tài liệu ? ?PIC18F4520 Data Sheet” Hình minh họa cách sử dụng tài liệu ? ?PIC18F4520 Data Sheet” để tra cứu bit INT0IE b Các lệnh theo đề Các lệnh vi? ??t chương trình... khiển PWM sử dụng thư vi? ?n pwm.h - Các hàm thư vi? ??n ADC.h Tra cứu nội dung hàm tong Tài liệu tra cứu PIC, Giáo trình Vi điều khiển PIC hoạc tài liệu hướng dẫn sử dụng thư vi? ??n MCC18 8.4 Ví dụ... thấp (xem thêm mục 4.2 giáo trình mục 9.0 tài liệu PIC18F4520 datasheet) - PIC18F4520 có 15 nguồn ngắt khác (xem thêm mục 4.2 giáo trình mục 9.0 tài liệu PIC18F4520 datasheet - Ngắt (External Interrupt):