LAễP TRèNH CHO VI ẹIEĂU KHIEƠN 1 LệU ẹOĂ GIẠI THUAễT

Một phần của tài liệu Điều khiển số tốc độ, vị trí động cơ điện một chiều sử dụng vi điều khiển (Trang 87 - 93)

ch− ơng IV: thiết kế và thi công mạch điều khiển tỉc đĩ và vị trí đĩng cơ điện mĩt chiều

4.4. LAễP TRèNH CHO VI ẹIEĂU KHIEƠN 1 LệU ẹOĂ GIẠI THUAễT

4.4.1. LệU ẹOĂ GIẠI THUAễT

Bạng danh saựch caực lửu ủoă giại thuaụt ủửụùc sửỷ dỳng

Teđn lửu ủoă Nhieụm vỳ

TIMER 0_ISR Trỡnh phỳc vỳ ngaĩt Timer 0

INT0_ISR Trỡnh phỳc vỳ ngaĩt do ủẽm tõc ủoụ

MAIN Chửụng trỡnh chớnh

HIENTHITOCDO Hieơn thũ tõc ủoụ ủo

BINTOBCD ẹoơi sõ nhũ phađn 16 bit thaứnh maừ BCD neựn

DIV_16_8 Chia sõ nhũ phađn 16 bit cho sõ 8 bit Chửực naớng caực ođ nhụự ủửụùc duứng trong chửụng trỡnh:

OĐ nhụự nhụự

Chửực naớng

7FH Byte cao cụa giaự trũ khoạng ủũnh thụứi mửực 1 (byte cao cụa TH)

7EH Byte thãp cụa giaự trũ khoạng ủũnh thụứi mửực 1 (byte thãp cụa TH)

7DH Byte cao cụa giaự trũ khoạng ủũnh thụứi mửực 0 (byte cao cụa TL)

7CH Byte thãp cụa giaự trũ khoạng ủũnh thụứi mửực 0 (byte thãp cụa TL)

7BH Boụ nhụự caụp nhaụt tõc ủoụ ủo theo chu kyứ laứm vieục cụa Timer 0 (~50ms)

7AH OĐ nhụự tõc ủoụ ủo (Caụp nhaụt giaựn tiẽp qua 7BH) 79H OĐ nhụự tõc ủoụ chuaơn

77H OĐ nhụự lửu tõc ủoụ ủaịt cụa ADC0809 (caụp nhaụt giaựn tiẽp qua 75H)

75H OĐ nhụự caụp nhaụt tõc ủoụ ủaịt tửứ ADC0809 74H Tửụng tửù thanh ghi R7

73H Tửụng tửù thanh ghi R6

Chửực naớng caực thanh ghi trong bank thanh ghi default:

Thanh ghi Chửực naớng

R2 ẹeơ ủẽm sõ laăn dũch bit khi chia sõ 16 bit cho sõ 8 bit

R3 ẹeơ phaựt hieụn tớn hieụu yeđu caău ủạo chieău ủoụng cụ

R5 laứm boụ ủẽm trong chửụng trỡnh con DELAYMS

haứng chỳc-ủụn vũ cụa giaự trũ tõc ủoụ ủo

R7 ễÛ dỏng nhũ phađn chửựa byte cao, BCD thỡ chửựa haứng ngaứn-traớm cụa giaự trũ tõc ủoụ ủo

PUSH ACC CLR TR0

Bit dãu: 00H=#0?

ẹúc tõc ủoụ tửứ ADC vaứo ođ nhụự 75H Yes No (75H)≠(77H)? Nỏp (75H) vaứo (77H) Nỏp (75H) vaứo Yes Nỏp (75H) vaứo (77H) Nỏp (75H) vaứo Y1: Khụỷi ủoụng ADC0809 Nỏp (7BH) vaứo (7AH) Xoựa (7BH) Set bit dãu: 00H=#1 Nỏp (7FH) vaứo TH0 Nỏp (7EH) vaứo TL0

SKIP_1

Khụỷi ủoụng timer 0: TR0=1

POP ACC RETI

Y2:

* INT0_ISR:

* MAIN:

Taớng noụi dung boụ ủẽm tõc ủoụ 7BH

RETI

Nỏp 50.000às (thụứi gian mửực 0 cụa tớn hieụu ủieău khieơn ủoụng cụ) vaứo hai byte: Cao 7DH, thãp 7CH Nỏp 00000às (thụứi gian mửực 1 cụa tớn hieụu ủieău khieơn ủoụng cụ) vaứo hai byte: cao 7FH, thãp 7EH

Khụỷi ủoụng ADC0809

79H>7AH (Chuaơn>ủo)

?

Nỏp SCON, TH1, SP Nỏp TMOD, TCON, IE,

IP Set bit: TR1=1 Set bit: TR0=1 No Yes 79H<7AH (Chuaơn<ủo) ? No Yes

Giạm ođ nhụự 7EH, nẽu traứn 00→FF thỡ giạm ođ nhụự 7FH. Taớng ođ nhụự 7CH, nẽu traứn FF→00

thỡ taớng ođ nhụự 7DH

Taớng ođ nhụự 7EH, nẽu traứn 00→FF thỡ taớng ođ nhụự 7FH. Giạm ođ nhụự 7CH, nẽu traứn FF→00

thỡ giạm ođ nhụự 7DH

X1:

Hieơn thũ tõc ủoụ

X0:

* HIENTHITOCDO

Nỏp (7AH) vaứo thanh ghi A

Nỏp 60 vaứo thanh ghi B Nhađn A vụựi B Nỏp B vaứo R7 Nỏp A vaứo R6 Nỏp B vaứo (74H) Nỏp A vaứo (73H) BINTOBCD Nỏp R7 vaứo 74H Nỏp R6 vaứo 73H

Nỏp 73H vaứo thanh ghi A Nỏp sõ BCD ủụn vũ trong A

(ANL)

Chún led ủụn vũ: ACC.4=0 (ORL) Xuãt A ra port 0

DELAYMS (6 laăn)

Nỏp 73H vaứo thanh ghi A Hoaựn vũ hai nible trong A Nỏp sõ BCD chỳc trong A (ANL)

Chún led chỳc: ACC.5=0 (ORL)

Xuãt A ra port 0

DELAYMS (6 laăn)

Nỏp 74H vaứo thanh ghi A Nỏp sõ BCD traớm trong A (ANL)

Chún led traớm: ACC.6=0 (ORL)

Xuãt A ra port 0

DELAYMS (6 laăn)

Nỏp 74H vaứo thanh ghi A Hoaựn vũ hai nible trong A Nỏp sõ BCD ngaứn trong A

(ANL)

Chún led chỳc: ACC.7=0 (ORL) Xuãt A ra port 0

DELAYMS (6 laăn)

* DELAYMS

Một phần của tài liệu Điều khiển số tốc độ, vị trí động cơ điện một chiều sử dụng vi điều khiển (Trang 87 - 93)

Tải bản đầy đủ (PDF)

(112 trang)