1. Trang chủ
  2. » Thể loại khác

Luu do thuat toan

7 424 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 165,76 KB

Nội dung

 Chương trình chính:CT con PWM_STOP PWM=0 S Đ CT con CT con PWM_START Speed >50 Tính toán độ mở bướm ga Đọc giá trị ADC CT con PWM_INIT Khởi tạo portB Khởi tạo bộ đếm timer0 Khởi tạo

Trang 1

 Chương trình chính:

CT con PWM_STOP()

PWM=0

S

Đ

CT con

CT con PWM_START ()

Speed >50 Tính toán độ mở bướm ga Đọc giá trị ADC

CT con PWM_INIT ()

Khởi tạo portB Khởi tạo bộ đếm timer0 Khởi tạo ngắt ngoài Cho phép ngắt toàn cục Khởi tạo bộ ADC Khởi tạo LCD Bắt đầu

Trang 2

Bắt đầu chương trình cho phép khởi tạo portB,bộ đếm timer0,ngắt ngoài,cho

phép,ngắt toàn cục.khởi tạo bộ ADC,khởi tạo LCD

Vào chương trình con PWM_INIT() Đọc giá trị ADC và tính toán độ mở bướm ga nếu tốc độ lớn hơn 50 cho phép chạy chương trình con PWM_START() và

SET_DUTY(DUTY) nếu sai thì chạy chương trình con PWM_STRAT() và cho PWM=0 Cuối cùng cho hiển thị kết quả kên LCD

 Chương trình con PWM_INIT ()

Kết thúc

Tính toán giá trị đặt on cho timer1 Tính toán giá trị đặt off cho timer1

Tính toán thời gian on xung Tính toán thời gian off xung

Đặt chu kì đầu cho xung Không cho phép ngắt timer1

Bắt đầu

Trang 3

Bắt đầu chương trình không cho timer1 ngắt sau đó đặt chu kì đầu cho xung tính toán thời gian on off xung Tính toán giá trị đặt on off cho timer1, kết thúc chương trình

 Chương trình con: PWM_START ()

Bắt đầu cho timer1 đếm Sau đó kết thúc

 Chương trình con: PWM_STOP ()

Bắt đầu dừng timer1 đếm sau đó dừng chương trình

Bắt đầu

Cho phép timer 1 đếm

Kết thúc

Dừng timer1 đếm Bắt đầu

Trang 4

 Chương trình con SET_DUTY(DUTY):

Tính toán thời gian on của xung

Tính toán thời gian off của xung

Tính toán chu kì xung từ biến speed

Bắt đầu

PWM=0

PWM=1 Duty==100

Duty==0

Cho phép ngắt timer1

Tính toán đặt on timer 1

Tính toán đặt off timer 1

Đ

S

Đ

S

Trang 5

Bắt đầu chương trình tính toán chu kì xung từ biến speed và thời gian on off của xung.Nếu duty=0 thì cho PWM=0 duty==100 thì cho PWM=1.Tính toán on off cho timer1 rồi cho phép ngắt timer1 kết thúc chương trình

 Chương trình con phục vụ ngắt timer1

Bắt đầu chương trình gán PWM =! PWM nếu PWM=0 thì

SET_TIMER1(T_OFF_RELOAD) nếu không thì

SET_TIMER1(T_ON_RELOAD)

Kết thúc

SET_TIMER1(T_OFF_RELOAD)

Đ

S SET_TIMER1(T_ON_RELOAD) PWM=0

PWM=! PWM Bắt đầu

Trang 6

 Chương trình con phục vụ ngắt ngoài

Bắt đầu

Đ

Xoá LCD Đặt giá trị đầu timer0=0

Count=0 Count_TMR0=0

Tính toán tốc độ

Không cho ngắt timer0 Đặt giá trị đầu

timer0=0

S

Cho ngắt timer0 Count==2

Count=count+1 Cho timer1 đếm

Trang 7

Bắt đầu chương trình cho timer1 đếm, count=count+1 nếu count=2 thì tính toán tốc

độ sau đó cho count = 0 và count_TMR=0, xóa LCD nếu conut không bằng 0 thì cho ngắt timer0 đặt giá trị đầu cho timer0=0.Cho timer1 đếm rồi kết thúc chương tình

 Chương trình con phục vụ ngắt timer0:

Bắt đầu chương trình không Cho timer1 đếm tăng Count_TMR0 lên 1 giá trị cho timer1 đếm và kết thúc

Bắt đầu

Không cho timer1 đếm

Count_TMR0=Count_TMR0+1

Cho timer1 đếm

Kết thúc

Ngày đăng: 14/04/2017, 00:21

Xem thêm

TỪ KHÓA LIÊN QUAN

w