Tải bản đầy đủ (.docx) (7 trang)

Luu do thuat toan

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (58.32 KB, 7 trang )

Báo cáo nghiên cứu khoa học -Trường đại học Mỏ-Địa chất
 Chương trình chính:
Bắt đầu

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

CT con PWM_INIT ()

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

S

CT con PWM_STOP()

Đ
CT con PWM_START ()

CT con SET_DUTY(DUTY)

Hiển thị LCD

1

PWM=0




Báo cáo nghiên cứu khoa học -Trường đại học Mỏ-Địa chất
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 ()
Bắt đầu

Không cho phép ngắt timer1

Đặt chu kì đầu cho xung

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

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

Kết thúc

2


Báo cáo nghiên cứu khoa học -Trường đại học Mỏ-Địa chất
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
Bắt đầu

Cho phép timer 1 đếm

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

Dừng timer1 đếm

Kết thúc

3


Báo cáo nghiên cứu khoa học -Trường đại học Mỏ-Địa chất
 Chương trình con SET_DUTY(DUTY):
Bắt đầu

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

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

Duty==0


Đ

PWM=0

S
Duty==100

Đ

PWM=1

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

Cho phép ngắt timer1

Kết thúc

4


Báo cáo nghiên cứu khoa học -Trường đại học Mỏ-Địa chất
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)
Bắt đầu

PWM=! PWM

PWM=0

S

Đ
SET_TIMER1(T_OFF_RELOAD)

Kết thúc

5

SET_TIMER1(T_ON_RELOAD)


Báo cáo nghiên cứu khoa học -Trường đại học Mỏ-Địa chất
 Chương trình con phục vụ ngắt ngoài
Bắt đầu

Cho timer1 đếm
Count=count+1
S

Count==2

Cho ngắt timer0

Đ

Không cho ngắt timer0

Tính toán tốc độ

Count=0
Count_TMR0=0

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

Xoá LCD

Cho timer1 đếm

Kết thúc

6

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


Báo cáo nghiên cứu khoa học -Trường đại học Mỏ-Địa chất
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

7



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×