• 沒有找到結果。

使用微控制器SN8P1708晶片實現三相永磁馬達之控制

N/A
N/A
Protected

Academic year: 2021

Share "使用微控制器SN8P1708晶片實現三相永磁馬達之控制"

Copied!
96
0
0

加載中.... (立即查看全文)

全文

(1) 

(2)    SN8P1708 

(3)   Realization for Permanent Magnet Synchronous Motor Control by Micro Controller SN8P1708 Chip.    .

(4)  

(5) .  ! "#$ %&'()*+, -./0%123456789:;" <=>?@A.BCDEFGHIJK LMNOCPQRST UVOCWX!YZ[U\] ^_"`abcde%fZ[gh.Bij.klmDBnopT %fqrsU !WXtuvwxyh.z {.|}.l~!%€.:‚.ƒ„. †‡ˆ‰Š‹Œ Ž_D)‘7’“”" •–—˜™]š›œžŸ ¡ž¢_D£ ¤‘7¥¦§¨©OCª«"#¬ZV­OC®¯°™] !<š£±.L² f[³x>?´›".

(6)  

(7)    SN8P1708 

(8)   Realization for Permanent Magnet Synchronous Motor Control by Micro Controller SN8P1708 Chip.    .

(9)  SN8P1708 

(10)   Realization for Permanent Magnet Synchronous Motor Control by Micro Controller SN8P1708 Chip.  µ ¶   :

(11)  `a. Student Advisor. µ µ. ·¸¹º»% ¼½!¾¿Às%Á ÂaOC A Thesis Submitted to Department of Electrical and Control Engineering National Chiao Tung University in partial Fulfillment of the Requirements for the Degree of Master in Electrical and Control Engineering June 2005.  Taiwan Republic of China ÃÄ·ÅÆÇÈÉ. Hsinchu. Yu-Zhong Wu Dr. Shir-Kuan Lin.

(12)  SN8P1708 

(13)     !"#$%&'()*+&,  ÊËÌÍÎÏÐÑKÒr ¢Ӕ!ÔÕÖÌÍÀרÙÒ 42Ú ÛÜÝޘGßàáâã‹ä¼åæƒpçèÛZéêÌ Ízë4ìí½îïåðñ½òñ ... ó"ô#õö¾¿ÌÍ ÷©ø2\ޘ%ù" VúOCû˜4‘æ Sonix ãüý SN8P1708 þÿK‰Ö¾¿  ÌÍJ" §æ

(14) K‰Ö¾¿AA¾¿ ÌÍ"ò ‘æÈå (six-step inverter) ¼ K ÌÍråŒJ¾¿‘ÌÍ— !r"#$ÌÍJt%& LCD display '()‘æ*—+ ,-.#Á/". i.

(15) Realization for Permanent Magnet Synchronous Motor Control by Micro Controller SN8P1708 Chip. Student : Yu-Zhong Wu. Advisor : Dr. Shir-Kuan Lin. Department of Electrical and Control Engineering National Chiao Tung University. ABSTRACT Since the motor is invented, through people’s constant improvement and innovation, the motor becoms a kind of indispensable important component in the industry now. We can nearly all see the existence of the motor in the electric products inside all offices, it is like a printer, scanner, CD-ROM driver, hard disk,etc...So, how to control the motor becomes an important knowledge. This thesis mainly describes the realization for permanent magnet synchronous motor control by SN8P1708 chip manufactured by Sonix. In firmware, we use assembler codes to relaize control transfer between host and device. In hard ware, we drive permanent magnet synchronous motor by six-step inverter circuit. It’s stabilize to motor running by close-loop control used with hall sensor. It is more easy to operate this system by used with keyboard and LCD display.. ii.

(16)  . i. . ii. . ii. . v. . vii.

(17)  1.1 1.2. 1. ½!0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OC12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..   2.1 2.2 2.3. 1 2. 4. A/ðñ½û3ÌÍJ9 . . . . . . . . . . . . . . . . . . . . ÌÍ®2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÌÍe4 . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 56?7 K . . . . . . . . . . . . . . . . . . . . . . . . . . . . t. iii. 4 5 8 8.

(18) 08. iv. 89 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.3 : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;<ÌÍ=Jã:> . . . . . . . . . . . . . . . . . . . . . . . .. 2.3.2. 2.4.   3.1 3.2 3.3 3.4 3.5 3.6. LCD Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 3.7. LCM. ®2!E¥. 4.2 4.3. 15. 16 16 20 22 24 26. . . . . . . . . . . . . . . . . . . . . . . . . .. 26. ò¼F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 28.   4.1. 10. 16. ?@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A¾å12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BîC"# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D¼ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Èå¼ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.1. 9. ?@ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BÏGÁ/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . §æ Sonix J SN8P1708 K‰Ö ÌÍJ¾¿ . . . . . . . . 4.3.1 ûs:12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Hs: CLR 12 . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.3 Hs: SPEED 12 . . . . . . . . . . . . . . . . . . . . . . . . 4.3.4 Hs: FORWARD 12 . . . . . . . . . . . . . . . . . . . . . 4.3.5 Hs: REVERSE 12 . . . . . . . . . . . . . . . . . . . . . . 4.3.6 Hs: RUN 12 . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.7 ¢Hs:12 . . . . . . . . . . . . . . . . . . . . . . . . . .. 30 30 30 32 32 34 34 35 35 37 37.

(19) 08. v.   !". 40. # !$%&'(. 50. 6.1 6.2. ®O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IKGJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 50 50. ) A. SN8P1708. *+,-./01, [1]. 52. ) B. SN8P1708. *+,-234. 53. ) C ./5678 C.1 C.2 C.3 C.4. C.5 C.6 C.7 C.8. s:KLJM!Ns . . . . . . . . . . . . . . . . . . . . . . . . ûs: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hs: CLR s:O . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hs: SPEED s:O . . . . . . . . . . . . . . . . . . . . . . . . . . C.4.1 Hs: UPDATESPEED s:O . . . . . . . . . . . . . . . . . Hs: FOREARD s:O . . . . . . . . . . . . . . . . . . . . . . . . Hs: REVERSE s:O . . . . . . . . . . . . . . . . . . . . . . . . Hs: RUN s:O . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¢Hs:s:O . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.8.1 Hs: SCAN LCD DISP s:O . . . . . . . . . . . . . . . . C.8.2 Hs: STEPMOVE s:O . . . . . . . . . . . . . . . . . . .. 56 56 58 61 65 69 70 71 72 73 76 78.

(20)  ÌÍŽ (ROTOR) !!Ž (STATOR)[2] . . . . . . . . 2.2 Ì͟PQRF [2] . . . . . . . . . . . . . . . . . . . . . . 2.3 ÌÍ®2F [2] . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 θ ! θ (F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 89(F [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 ÌÍŽ!!ŽGKF [2] . . . . . . . . . . . . . . . 2.7 S K F ( T3ST :degreeU3ST :g*cm/A) . . . . . . . . . 2.8 Vº¼N K F ( T3ST :degreeU3ST :g*cm/A)[2] 2.9 åWMX [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10 åÑYZF [2] . . . . . . . . . . . . . . . . . . . . . . . . 2.11 FG YZ(F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. r. s. t. t. 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8. þÿÁ/[F [1] . . . . . . . . . . . . . . . . . . . . . . B"#îCJ¼F . . . . . . . . . . . . . . . . . . . . . . . . . 74138 \Oå . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . D¼ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SN8P1708. IC LM358 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. S2]^å¼ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Èå¼ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TLP250 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi. 5 6 7 8 9 10 11 11 13 14 15 19 21 22 23 23 24 25 25.

(21) F_08. vii. 3.9. 26. `TF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10 Á/12F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11 a¾b¼F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 4.2. LCM. þÿJ‰cdås:ÏGB [1] . . . . . . . . . . s:NsF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SN8P1708. Á/$e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 ûs:NsF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 LCD Displayer f( ”Wait for Command :” . . . . . . . . . . . . . . . 5.4 LCD Displayer f( ”SURE CLEAR DATA?” . . . . . . . . . . . . . . 5.5 Hs: CLR JNsF . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 LCD Display f( ”CLEAR OK !!!” . . . . . . . . . . . . . . . . . . . 5.7 LCD Display f( ”Please Input Speed :” . . . . . . . . . . . . . . . . 5.8 Hs: SPEED JNsF . . . . . . . . . . . . . . . . . . . . . . . . . 5.9 LCD Display f( ”Speed Set ok !!!” . . . . . . . . . . . . . . . . . . . 5.10 LCD Display f( ”Sure Forward ?” . . . . . . . . . . . . . . . . . . . 5.11 Hs: Forward JNsF . . . . . . . . . . . . . . . . . . . . . . . . 5.12 LCD Display f( ”Forward ok !!!” . . . . . . . . . . . . . . . . . . . . 5.13 LCD Display f( ”Sure Reverse ?” . . . . . . . . . . . . . . . . . . . 5.14 Hs: Reverse JNsF . . . . . . . . . . . . . . . . . . . . . . . . . 5.15 LCD Display f( ”Reverse ok !!!” . . . . . . . . . . . . . . . . . . . . 5.16 LCD Display f( ”Forward Speed : gggg ” . . . . . . . . . . . . 5.17 LCD Display f( ”Reverse Speed : gggg ” . . . . . . . . . . . . 5.18 Hs: RUN JNsF . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. 28 29 31 33 40 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 48 49.

(22)  2.1 2.2 2.3 3.1 4.1 4.2 4.3 A.1 B.1 B.2 B.3. ÌÍ®2hÐí . . . . . . . . . . . . . . . . . . . . . . . . ¼NijX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . åklí . . . . . . . . . . . . . . . . . . . . . . . . . . . LCD. c:mní . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7 12 14 27. hÐí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E¥;å TC0 hÐí [1] . . . . . . . . . . . . . . . . . . . . . . TC0M =-M!í . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 36. Á/ozå&pí [1] . . . . . . . . . . . . . . . . . . . . . . . . . . .. 52. Request. qr [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . qr ( s ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . qr ( s ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. viii. 34. 37. 53 54 55.

(23)   1.1. . A¾å9æÙÒ4t "?u¼ŽýƒvõAwx.¼Ž y.¼z{|.S}¼å~¾åó ; À×ýƒõÌ;¿å€‚ƒ „¾¿åóè4 A¾åK‰Ö"8 TG¾¿å4•†SA¾å‡ ˆ‰Š‹ŒÛZŽV»7A¾åýƒ"ê 8 TG¾¿å»™ èê 8051 A‘4å<’»E¥[“”• –—˜‘™¡Òš ð2"›K’œ ˜þÿžŸ ¡¡>џWړ”•  A¾å¢£ 8051 A‘4夥"A¾å‹Œ,‰Š¦§¼¨ ©žDs:KϪ+ó"VOC§æ«¬­®ãü>Ñ SN8P1700 Á ¯A¾å<2°A¾å SN8P1708 A¾åK‰Ö ÌÍ (Permanent Magnet Synchronous Motor) Y±[=-¾¿rGßDYZ KÍ©¾¿Ì͈²,Z³K¾¿Ìͪ+Ï´= Öµ¾¿¶‘ÌÍ— !"«¬­®ãü>Ñ SN8P1708 A¾åˆ·¯pX¸¹ : 1.. qø 16 TG½ºO<ŸJs:T»Oø 12 TGZ 4K » s:¼½èÛZ‘æ3Q¾¿ (JMP D CALL)"ÀÁA¾å½ºO¬  10 TGT»OZ us:¼½à (page of ROM) ¾¿ ˜<šqK.‘4"2\¼½Ãø 1K T»ªÄ" 1.

(24) Å 1 Æ ÇO 2 2. Á/¾¿å¼½ˆÈÉ©žZÊ\Á/ozåËÂu˜Ì Í7TGÎÏÐÑ\Z' u˜ÌÍ7æ2\Á/ozåKÒ4 õ#‘æ]^ ÓÔ" 3. ¶Á/ozå!2ÕozåèÖu2\¼½J‰ (a physical RAM)tבæuqKØÙD«$"#}¸XÚÛ

(25) s: ª«Ü-D'Ý

(26) s:ÞØßD˜"A/A‘4åØ «Á/ozåq4DØ«2Õozåq4 uZª«.

(27) s:^ø ÷" 4. éàá;åÞpâãc:M!èæ2ÕqKäN ˜‘æ¸ !qåæqr\7" 5. Ú u7Ä`TþÿÛçÑ$`èKmn uþÿ Ñ$`•ÛÍ 33 " 6. 2é‰cdå (In-Circuit EmulatorICE) êëÁ¯A¾å" 7. 8 TGA¾¿åÛ]ìˆ 12 TG\í-î]7Tjå (Analog-toDigital ConverterADC)–»9æïð" 8. 숨¾¿“”"‰ñ!¤ 2ÕA¾å2ò÷ó" ôõ SN8P1708 A¾åˆõ#‹Xö×÷] 8051 A¾å—wæ Z›ÛZ‘æ™K¾¿ ÌÍ" 1.2. . VúOCøùúøÈÆ<Å2ƶhÐû ; ÅÑÆ¶•ü V‰Š˜æê£ý1 ; ŠƶhÐòM;:Z[•üA¾ åò12 ; ÅÇÆ¶hÐB12!s:Ns ; Åþƶ‰Š®¯Œ 2\G( ; ÅÈÆ¶Œ2\ÿO!ø®" VOC12ÛúøÈ»Æ¦ú@ õ· :.

(28) Å 1 Æ ÇO 3   U [½MNhÐ"   hÐ ÌÍŸP2!e4"    ‰Œ¼JM;!A¾åJò®2hÐ" 

(29)  2hÐs:Ns!BKÏv"   G(ò¼Z[‰Š®¯"   ¶ÿOV‰ŠJÓ!<šA¾åŒ ÌÍ ¾¿J]^t'ÑIKÓMû[WX".

(30)   !" ø‘Ø*UVOC‰Šˆ—5$\#¶U :ÌÍ ®2.:Z[2Á£e4[ý1ŒV•ü)Ø*¥F \J–4O> !‰Œ9" 2.1.

(31) . 2Õðñ½û3ÌÍ9ørû3ÌÍ IC( _õ BA6849 þ ÿ ) Kijå (Inverter)ZÑÈwû3ÌÍ<:Û úøˆå!tåÚ:"ˆåJ:øt Ì͟P.  (Hall) å.jJæÌÍ

(32) ¥Y?ötå (sensorless)  94Í ÌÍK9¼Œ (back-emf) X (zero-crossing) .j JæÌ͟ ˜ ' (Hall) å"ˆåJ¾¿4O^t å†Ståôø ˜ ' (Hall) åZ^§ ". 4.

(33) Å 2 Æ Vý1•ü 2.2. . 5. ›mæ ÌÍ ( õF 2.1( ) 4 9  12  ÌÍ ( ŸP!ŽˆÅ\$PŽˆ 12  )$PŽÊ£-4 30 - 2©ŸP!Ž4±'R±”RS£ 5 -ô#Ê£½º-ø 30 -!±X 40 -< ©øR©žrGߎ!!ŽUTpÓR ¼NNûý2Yû56>$PŽ) ÌÍ ¥Éu2û" Ì͟PQRFõF 2.2 P®2õF 2.3<ŸPSGß!"õí 2.1".  2.1: 

(34) (ROTOR) 

(35) (STATOR)[2].

(36) Å 2 Æ Vý1•ü.  2.2:   [2]. 6.

(37) Å 2 Æ Vý1•ü. 7.  2.3:   [2] NO. 1 2 4 5 6 7 8 9 10. #ß!" $%ÿ &'' û3 Hub .é . Gß PCB ¨. QTY NO. 1. 11. 1. 12. 1. 13. 1. 14. 1. 15. 1. 16. 1. 17. 3. 18. 1. 19. #ß!" ± ()* +,ÿ $>ÿ „3& 3&é /0R 1¨ FFC.  2.1:  . QTY 1 1 1 1 1 1 1 1 1.

(38) Å 2 Æ Vý1•ü. 8. . 2.3. ÌÍ$PŽ4 2#Ì2©34‘Ž5 6˜‘ŸP!Ž¥ç7ŽTpÓ" ŸP!Ž'R æ$Ø$¼N©¼¥Óô#öý6ŸP!ŽÙÒ8 !9ô#ý2\±.æ:>$PŽZ

(39) ¥‘ ÌÍ "#;<2·Ve=³–ê£ý1—¥>?@Aµ 2.3.1. 9:;< K. t. ›!BŽ!!ŽTpõF 2.4.  2.4: θ θ  r. CDEKÐFG!H F = I · L × B F = N · I · L × B(. s. 3ˆ N I ) <. !BøR'¼N L !BøR'a¥9ˆ8fB !BøºJÌÍ56ø T = F · r = N · I · L × B · r = K · I < I. t.

(40) Å 2 Æ Vý1•ü 9 K !Bø56?7 r !Bø:K ôø B ! θ ,θ -ˆ£ B = B(θ , θ ) = B · cos[P/2(θ − θ )] < P !BøŽ'7 θ !BøŽ'U!ŽX-L θ !Bø!Ž'À2XU!ŽX-L Ò ><Z–›7ý ÌÍ56?7 K MNŽö© sin wO" K = 6 · N · B · L · r · sin(P θ /2) t. r. s. r. s. max. r. s. r. s. t. t. 2.3.2. max. r. =>?@.  2.5:  [2] F 2.5øhÐ89e4P ¥Q›9ê¼TL ôø¼ŽN!¥9©Tû¼Œ#¼Œ!¥»R Oˆ£"89hÐõ·µ º¼NÒ2 ¼ST2D¼NU3JVW¥¼NXD ¥U3ûÛÄ72¼TL#89"ø89"( õF 2.5).

(41) Å 2 Æ Vý1•ü 2.3.3. 10. ABC7. U, Ìͺ?Yæ:ˆ 120 -wZ[ 180 -w "#›ËU 120 -:ZhÐ" [120 -Èwe4 ] ›!B ÌÍŽ!!Ž[LTpõF 2.6.  2.6:  

(42) 

(43)   [2] F 2.7øP Ì͝ú² S1S2S3 \!ŽTp Äê K MN¼\!½ºOw]F ( ¼\ / ½º =pole 70 /2=6Z¼\^ 360 -½ºË^ 60 -R@4hÌÍË 60 -) F 2.8ø S1S2S3 \!ŽVº¼N_`· ( 2\ø$b 2\øÑba2bøK )K MN¼\!½ºOw]F" 3˜‘ ÌÍÑ6n)•»6 ã: T = K · I ýb ›56˜¶ K ) n)•»6ô# F 2.8w]F›ÛZ4ij ¼NžXõí 2.2 t. t. t. t.

(44) Å 2 Æ Vý1•ü. 11.  2.7: ! K  ( "#!$ :degree%&#!$ :g*cm/A) t.  2.8: '()*+ K  ( "#!$ :degree%&#!$ :g*cm/A)[2] t.

(45) Å 2 Æ Vý1•ü c, ºZ¼Nû mn¼\c,2 S2 → S3 [-30,30] c,Ñ S1 → S3 [30,90] c, S1 → S2 [90,150] c,Ç S3 → S2 [150,210] c,þ S3 → S1 [210,270] c,È S2 → S1 [270,330] c,2 d d £"ijX -30,30,90 150,210,270. 12.  2.2: *+,-. _õ¼\ [-3030] ž˜‘ K •»6ô#mnº¼Nûø t. S2 → S3.  ¼ \  [3090] ž ˜ ‘ K  • » 6  ô # m n º ¼ N  û ø t. S1 → S3. ›råKe¼\Tp#å•Þ˜E¥4¥ tQfc`·9ê¥OMög!Ž!!ŽUTp# åh4§æN!89iHall effectj¶¥Oý9¼ Nr¼k]:íÖÑK"><Ñ£"ijX–›@ÛZ¶ åWlijX ( õF 2.9( )§æå7êklYZm ¢ ÌÍŽTn2\c,Xõ–Ó ¼k6".

(46) Å 2 Æ Vý1•ü. 13.  2.9: /0123. [2] Òreo›ÏÖ¶åWlS\!ŽžXpwDi jžXÞ "ÛZÒ åj7ýYgijžZÍê •»56Ñ"F 2.104ú²4 Wlw HaHb Z[ Hc Äê åÑYZF"  åÑYZFÛZ4Ñõí 2.3 6 \c," ›ÛZråýb ÌÍn2\c,X–§æ ¼Nij÷ÛZÍꕻ6" ›ÛZråýb  ÌÍn2\c,X–§æ¼Nij÷ÛZÍꕻ6".

(47) Å 2 Æ Vý1•ü. 14.  2.10: /014567 [2]. c, c,2 c,Ñ c, c,Ç c,þ c,È. S1. S2. S3. Ha Hb Hc. -. H. L. H. +. open -. L. L. H. +. -. open L. H. H. +. L. H. L. -. open +. H. H. L. -. +. open H. L. L. open +. open -.  2.3: /01 89.

(48) Å 2 Æ Vý1•ü 2.4. 15. !"#$%&. 2ÕKhۑæ=;KÄ7ÌÍJ=ÄqLr»7Ä =ÙJsV6‘æ FG(Frequency Generator) tK;<ÌÍJ =^ø÷§qLR^R"9øÊ=Ñ2ÈwuÌ͝ŒÑ2 wYZP·2ÈwuÌ͝¶#wYZŒ±û (Not) \ FG w]õ·J(F ( F 2.11):.  2.11: FG 67 #ÛýÑ2¨JÈwYZŸˆ \ FG “v÷2¨JÈ w˽º 60 -R@4 1/6 wÌÍ 1 øùˆ 6 \¨JÈ wR@4 18 \ FG “vxM FG Jtø fZ2úyˆ 60 z f \ FGw FG. YZ;<ÌÍ=Jã: = 60 z f/18 (  / úy )= 60 z f/18. ". (rpm).

(49) # $%&' 3.1. '(. ÏG#Á/òP­4Y櫬­®ãü{‰cdå ICE r RS-232C • A!V]{.Ja¾b¼! ÌÍZ[\ ]¼| ©Jò12#Ɛç}•üÏGÀ‡òP­Z[cd¼ ¨!a¾b¼" 3.2. )*+. VOC‘æJA¾å12õF 3.1(™42~>?¨A¾å" <&kl<å ALU øA¾å€çqozå (instruction register) Ÿ ½ºOKäN<&Ükl<ös:½ºO48‚ؼ½ ROM  s:;7å PC ƒ„¼ N·2\˜äNq ROM T»"ÊP äN¨2q@Ë PC  ROM Tp‘ÙÑqzêqozåõ– PC @ 1Zê·2\q"õ¯q4äN<&Ükl<˜ \<G<2\564†å ACC Ÿªa$2\ÛZ4ÛØ«¼ ½ RAM ÀT»JŸªÜ4½ºO‡3Q76"<®¯ý 2Ác,ˆ‰_õMT.®¯ó@z,ozå Flags"ø÷ª« 16.

(50) Å 3 Æ ò12 17 s:DŠ<=-A‘4åè ALU ‹'Œ ACC ! Flags $7\ ¸ozåÁozå SN8P1700 Á¯A¾å".À.ozå"ALU äNq=-¨ë Žå¾¿‘gè4 $P-’ Žå'“”õA¾åŸPR'“ RC ¼•ŽåŽåÒ r2\–Œå–

(51) ]© CPU " uq˜äNž u• ÕA¾åèM;—Û¥2\ CPU “vŸ¨©2\qZ÷˜ <s:äNž"SN8P1708 A¾å»P­qäNžè42\ CPU “vˈæ7¾¿q˜ 2 \ CPU “v"2ÕA‘4åŒ <E¥$™˜‡š¢¾¿E¥ (interrupt control)@4ÛZ›¢s :äNs}‘42Áœöžs:–DrK‘4Ÿs:" A¾å“”• R(,F 3.1"Á¯A¾å•ˆþ. Ñ$  :Port0 ¡ Port2Port4 D Port5"Œ Port0 ¬¥P$`$< šÇ èÛZM¢£ø$`DÑ`";å (timer) ÛZ§æ CPU  K;<žæZý;¢.ѐœYZ PWM.“v˜w Ñ"SN8P1708 ìˆ 2 PWM ýå PWM0 D PWM14YZÑ`D Port5  2 `ùæ" 2 PWM ýåR‡ˆý“v˜wE¥ ZÑÚYZùæ2\• " SN8P1708. A¾å'“ 8 ºbî]7Tjå (ADC)î]YZÛ ZÒ Port4 ¤`$4 ADC Ê=¬¥‘42\ºbî]YZ Zs::Kij$ºb"2Õ 8 TGA¾åJ ADC —¥'“ 8 TG \í-4 SN8P1708 A¾åÛZæs:Kmn 8 TG 12 TG\í -–»9æ;¥"7Tî]jå DAC ø ADC J±4¶7T YZ©î]YZÑ4˜¦SN8P1708 A¾å DAC Ñø¼N YZ4§à¼N¾¿ p‘æ" SN8P1708. ¨¯:º©ޘ˜!ª«"2 \Z'þÿ¬A5˜˜ ÙÒÑÖžýƒ'"öþÿžAZ¨¯:AøûNôøÛ Z¦§Ñ$`T"SN8P1708 A¾åŸÂ2\¨¯:º©• SIO\•.

(52) Å 3 Æ ò12 18 ‚!¨¯­”• SPI(Serial Peripheral Interface) ¢ñªR@4Û Z3Q‘æ SIO KD‡ˆ SPI þÿ.¨¯:A"<š?樯: Aø RS232 D I2C ¢ñ5˜ SN8P1708 A¾å¬¥Zs:K.Á ¨¯:A" ø'ÝA¾åÛ®-Û¼Teå (low voltage detector) Déàá ;å (watchdog timer) Ñ}E¥R©ø SN8P1078 5šE¥"P¼¯ À.¼kr۝Û¼Teå|Þp.ZÎÏA¾åô¼k È ö.Ñq.q.*ޝ°±“”¼"éàá;åV²õu2Õ ;å2òçD CPU K;4™E捠u"éàá; å;ê¢!³ž@fÏÁ/Þp."ZY?s: Ê´µPTp@˜.2=éàá;å¶.ZÎÏϳ ù·"t9–v¸¹Üc`·s:Û¥M$tº@ Ïéàá;å³öfÏÞp)Á/ÞÕäN" ,éàá;å ³žè», 0.3 ¼Z»žs:½q™ u,©Á/¾°" <š£,#A¾å`ThÐ!M! , ™ˆs:¼½ ROM !¼½  RAM J12 , ÛÍ

(53) N¿À¾¿åe4!®&‘æ SN8P1700 Á¯þÿ [1] 2Á , ¶ˆZ J•ü".

(54) Å 3 Æ ò12. 19.  3.1: SN8P1708 :;<=>? [1].

(55) Å 3 Æ ò12 3.3. ,-./01. 20. •? Â"ˆ½º:!ÃÄ:½º:§æÅÆKDÅ"öÃÄ:h ÇÈÃÄÉN-ÊK.k·ô-ÊQf¼ö ¼ËKÇÈÅ :‘-ÊÌK¼"tOöÚÂ"èˆÅ¾ÖµÍ·DÖKèˆn ) 3ms ¡ 10ms Qfú̹Π !Öµ”õÛZæòRKŒÅ¾ 4ø¦§©Vè4æBÏÐs:KŒÅ¾",]±9=- ·Â"uÖK•»ž», 40ms›ÛZM;2\ÏÐs:Ê 10ms ÑÒ2=Â"c,3ˆc,ӝÓÕc,ÔsuÍ 2 =Z'

(56) gÕ øÓc,U,gÕÖKÂ"RYÙuJ:" Z2\ 4 z 4 "#ø_õF 3.2(Ñ øÛ¼TÖ¥îC" $ mæŸPÝQ• (pull-high)Ê2¯Q,2$`$`mn `Tø P1.0 ¡ P1.3; öÊ2NQ,2×îïRÒr2~ 74138 \Oå ( F 3.3( )

(57) Q,A¾å P5.5 ¡ P5.7 `"74138 \OåÑ` (Y0 ¡ Y7) s ?øÝ¼T2=ÛZmn2`øÛ¼TÑÑ`Ö¥Û¼T  $` A.B ! C ¼TK¾¿M2¢!DisplayBit=0 ø Y0 Û¼T DisplayBit=1 ø Y1 Û¼TDisplayBit=2 ø Y2 Û¼TDisplayBit=3 ø Y3 Û¼T"R@4P DisplayBit=0 Ö¥ÔQÂØ 0123 îïR ; õ¯ #Ç"À2"ηÝQ•$`¶Ò#îïRÔê 74138  Û¼T ( ÍQÙ )®¯$`6@Ës?ø 1( ݼT ) © 0( Û¼T )" Z$` P1.0 ¡ P1.3 søÝ¼T2ˆ2`øÛ¼T@í(ˆ Â"Îk·CDk·îïR`TÛZj<ÑÎk·"ZO" ÚOJã: : A = 4 z Column No. + Row No. a$P A.B ! C $`¼TVøÛ¼TÖ¥ Y7 îïR#3 ˆV2"Îk·äN$P¢ INT0 JE¥"#îCJHs:¶ÅÇ Æˆ•ü".

(58) Å 3 Æ ò12. 21.  3.2: @ABCDEF*G.

(59) Å 3 Æ ò12. 22.  3.3: 74138 HI1 3.4. 234567. D¼õF 3.4( Wl Ì͟Gß 9ÑJYÛw¼kw]Ò ]^å IC LM358( F 3.5) ýݑT!ۑT ¼kÒ Ñ$uA¾å P2.0.P2.1 ! P1.4 `TKm¢ÌÍŽJ Tp"§æ<ÑS ºJ¸˜ÎÏr»J]^åѼNNuSþ ÿŸ‘JÜ"IC LM358 ŸˆÑ\]^å¼<Ê2\]^å¼õF 3.6(".

(60) Å 3 Æ ò12. 23.  3.4: JK*G.  3.5: IC LM358.

(61) Å 3 Æ ò12. 24.  3.6: !LMN1*G 3.5. 89:;+67. rÈå (six-step inverter) ¼ ( F 3.7( ) }ijý JîÝYÛwJÈPwÛZæK ÌÍJ"<‘æðÞ IC TLP250( F 3.8) Kß´ MOS Ìͼ!A¾åÑ`ÎÏà2 MOS ^»J¼NáNDA¾å©þÿJ¾".

(62) Å 3 Æ ò12. 25.  3.7: OPQR1*G.  3.8: TLP250.

(63) Å 3 Æ ò12 3.6. 26. LCD Display. 2Õ LCD Display ø LCD+ ¾¿¼ + ¼ © Module( † " LCM)ˆCâ•!ãF•ÚV‰Š‘æø 20 âz 2 ¯C╠LCM`T!Bõ·F ( 3.9) ( :.  3.9: LCM S$ ùˆ 14  pin< Pin1 ø VSS ¼¯QÙ ;Pin2 ø VDD;Pin3 ø VO `æK œ LCD ä- ;Pin4 ø RSE¥ø Register SelectæKmn Instruction Register ! Data Register;Pin5 ø R/WæKmn Read Ü Write;Pin6 ø E(Enable) æKÖ ¥«$ÜØÙ LCD;Pin7 ¡ Pin14 ø DB0 ¡ DB7 åû Næ (Data Bus)" 3.6.1. LCM. LCM. !$DE. ˆ2§æ¾¿þÿ :HD44780û˜¸˜õ·µ.  80 bytes Display Data RAM ( DD RAM )  ŸW 192 \ 5 z 7 X6çâ• Character Generator ROM ( CG ROM )  64 bytes Character Generator RAM( CG RAM ) (1) Ê\╠(character) æ 8 bytes © (2) ‘æ*ÛÊNM; 8 \ characters.

(64) Å 3 Æ ò12 27 ŸPˆÑ\ozå (Register) ú²øqozå (Instruction Register) D ozå (Data Register)<‘æ*·qzêqozår ozåAê DD RAM Ü CG RAM-.:õ·íñ ( í 3.1 ) ( : E RS R/W Operation 0. X. X. Read/Write Disable. 1. 0. 0. Write to Instruction Register. 1. 0. 1. Read Busy flag and Address Counter. 1. 1. 0. Write to Data Register. 1. 1. 1. Read from Data Register.  3.1: LCD TUVW LCD ŸPˆ2 Busy Flag (BF)P BF=1  LCM busyt9Qè Data Bus KqP BF=0  LCM ÛQèKÊ Data Bus q" DD RAM ùˆ 80 \ bytest>ëP舑æê< Address ú&ø : Å 2¯ 00h ¡ 27h(00 ¡ 39); Åѯø 40h ¡ 67hPâ7R, 40 âSٟ  Address" CG ROM ŸW 192 \ 5 z 7 X6çâ•< Character Code ø 20H ¡ FFH(ASCII Codes);CG RAM ùˆ 64 bytes_õ2\ 5 z 7 X6çâ•Ü F]Púæ 7 ¯ (7 bytes)a$éê2¯ë‰ (1 byte)╝56 M! CG RAM Address"ZÊNM;2╘ 8 bytes CG RAM•Û ÊNM; 8 \â•ÜF]" ˜ØÙÜ«$ DD RAM Ü CG RAM 56M! AC(Address Counter) K !T»"<M! AC ìø : ¶T» (Address) «$ IR(Instruction Register)" 2. IR ʶ«$Au AC" 3. ŒØÙÜ«$ DD RAM Ü CG RAM ." 4. AC Ê 1 Üå 1" 1..

(65) Å 3 Æ ò12 3.7. 28. <-67=. õF 3.10(Á/12FZ PC øûØ ª«s:Or‰ cdå ICEÔQêa¾bÁ/t ¼¯“9åKÌÍ"a¾b ¼Fõ 3.11(<0 LCD Display æKf(ÌÍYD¼ æKeÌÍŽTpÈ弿KÌÍ"#îC¼ æK$A¾å".  3.10: <=X.

(66) Å 3 Æ ò12. 29.  3.11: YZ[*G.

(67) ( )%&' 4.1. '(. Vƶ•üÁ/BPú"ÅѦ¶•üÏG#Á/B• "Å ¦¶ç}hÐV‰Šs:O0íûs:[£Hs:" 4.2. ,->?@A. äN SASM199A –@ÑÖõF 4.1Jv"À‡¯ (toolbar) Dc, ¯ (statusbar) ûÑÖ4¼½ (memory) DÁ/ozß (register)  ˜·îmS [View] Xm

(68) ÑÖ"c,¯‘fÖ0Ÿøcdc: (simu) Ü4‘æ‰cdå (ICE)< BÊNm¢–ý"cdc: ·ÛZ ïs:DäNs:õu ICE c:_`Ë4t9.òŠ ð"·îmS [File] D [Edit] è!ABB WORD E¥2ò"ˈ [View] D [Tools] ˜ZhÐ<šP­3 4? æ9@4ææê" [View] ·îmSf(F 4.1æKñmf(ß" f(ß Toolbar øF( À‡Â"ßð"f(ß register ø2ÁޘÁ/ozåf(ß0 ˆÀ.ozå†å ACCs:;7å PCHLˆÑ$ Dò óôõß STACK"f(ß Memory ø¼½ RAM f(ߺ?S äNmæ [Auto] Ké͝O7 ; öm [Mem Name] ÛZéˆ!B 30.

(69) Å 4 Æ B12. 31.  4.1: SN8P1708 :;F\AT]1 ^U_@A [1] 76 ; m [Mem wnd] ÛZéˆ RAM 6 ; 34m [ROM Code] 4és :O" <™£, SN8P1708 þÿJ‰cdås:ÏGBvZ -.J• ü , ÛÍ

(70) N¿ÀA¾¿åe4!®&‘æ SN8P1700 Á¯þÿ [1] 2Á".

(71) Å 4 Æ B12 4.3. 32. BC Sonix  SN8P1708 DEF *G. #b4 Sonix ãüÑý SN8P1708 K‰Ö•û˜ ª«s: K‰Ö›04Z PC ª«w Assembler Code Ò ICE ÔQêa¾¼ Ò B"#îCK¾¿Ì͝±[œ¦=-t& LCD Kf (Y" <s:Jª«Nsˆ2!JìÅ2ø!þÿJ!"ÅÑø ª«¢Jörs: .(Note: ör!B56Ö‘æ÷örJŸÍûs:J Ÿ .)Å ìøøùˆ‘æê7˜æê¼½Tp!!B? 7 . ÅÇø¾¿uûs:‘ ( R@4T» 0x10 ‘ )#‘

(72) úYøûs:K L‘<Z Js:OÛÍ Q8 C.1 ¦" Z·SR¦¶22•üûs:!Hs:ª«JNs!9 : 4.3.1. F67. b

(73) ûs:NsFõF 4.2(s:NsJìÅ2ø‘Á /[‘OM!$!Ñ`T×FŒˆÑôõozå"ÅÑ øFŒˆozå"Å øÖ¥$P¢ INT0 !;å TC0 ¢ tK|¢øK£"ÅÇøM! LCD f(ñ:ø 8 TGzÙ / å¯ â /5*10 X6ç╠/ f(å ON/ ë‰Îf(T»;7å"Åþø˜û ÌÍü$‘ÈåK£'·K PMOS ! NMOS u£"ÅÈø M!f(âGýLT»ø 00ht LCD 'f( ”Wait for Command”"Åþ øÖ¥ Y7 îCR–M$ Loop óÓÿq˜û"#Â·VöÂ" M$ INT0 ¢ŒBîC"#"<Z Js:ÛÍ Q8J C.2 ¦".

(74) Å 4 Æ B12. 33.  4.2: `A^U+^.

(75) Å 4 Æ B12 34 ûs:‰¼ loop ‘23e Request J˜û£, Request hÐõ· í ( í 4.1) (P7 Request TG 0 ÎM!ø 1  ( U9Â" A)¾u CLR Hs:ŒFŒJ. ;Request.1=1  ( U9Â" B)¾u SPEED Hs:ŒM!=-J. ; P Request.2=1( U9Â" C)¾u FORWARD Hs:M!ÌÍøY ; P Request.3=1  ( U9Â" D) ¾u REVERSE H s:M!ÌÍø± ; P Request.4=1  ( U9Â" E) ¾u RUN Hs: CDŸ M!JŒÌÍJ." bit. E¥ Â". 7 6. 5. 4. 3. 2. 1. 0. ENTER RUN REVERSE FORWARD SPEED CLR F. E. D. C. B. A.  4.1: Request  4.3.2. G67 CLR . Hs: CLR •û˜4ŒFŒJ. , <s:Nsìú²øÅ2 4FŒ Request.0 ø 0× LCD f( ”SURE CLEAR DATA?”. ÅÑømn Y7 îCRóÓ$"•–2øm¢3· F "FŒˆÌÍLCD f ( ”CLEAR OK” tDê Begin ‘3ø<šE¥" D Begin ‘äNU 9J."<.NsF!s:OÛÍ F 5.5 !Q8 C.3 ¦" 4.3.3. G67 SPEED . Hs: SPEED J.øM!ÌÍJ=-<.NsF!s: O Û Í F 5.8 ! Q 8 C.4" s : N s  ì ú ² ø Å 2  4 F Œ Request.1 ø 0, × LCD f( ”PLEASE INPUT SPEED :”"ÅÑømn Y7 îCR× KEYTYPE.0 Mø 1 Œ7â"#îCóÓ$=-Ôs$ÇT7â øˆ8=-$3ø<šE¥"øt8t D Loop ‘.<U9 JE¥"Å øP=-$¨©– UPDATESPPED Hs:Œ= -—ÕJ. . ÅÇøP=-M!¨©–LCD f( ”Speed Set OK”t.

(76) Å 4 Æ B12 35 KEYTYPE.0 FŒø 0 – Dûs: Begin ‘"Hs: UPDATESPEED Js: OÍ Q8 C.4.1 ¦" Hs: UPDATESPEED Ûú© \ì : Å2ø BUFFER 6z$ Ö=-ozå SBUFFERõ–rHs: BIN2BCDtoHEX  10 M ¿=-j© 16 M¿J=-9ø¶ BUFFER[3] Œå 1 J .Êå2= 1 @ 1000 ê SPEEDBUFFER ŸPåu 0 å 1 ÏT ¾ê DO HEX 100 Œ 100 u SPEEDBUFFER J.9! DO HEX 1000 u"HEX 10 ŸŒ9ø¶ BUFFER[1] Ÿ6 10 u SPEEDBUFFER Ÿ HEX 1 ŸŒ9ø3Q¶ BUFFER[0] Ÿ6u SPEEDBUFFER Ÿ" V‰Š=-¢£ø 2048 \ST§æE¥;å TC0( í 4.2) KŒ =-M!J.§æ<–Œ6![L6Ê $JE¥ÛM!¢“v žZ¾¿ÌÍ=-" s:NsJÅÑøm¢=-4 », 20473», 2047 ø 2047 ôø=-mn;¥ø 0 ¡ 2047; Å ìøm¢n\=-ߞõ–CD ®¯M! TC0M ozå<M!=-ÛÍ ·í ( í 4.3)m¢Ñ– Œ6z$ TC0M× SPEEDBUFFER z$ TC0R" 4.3.4. G67 FORWARD . Hs: FORWARD J.øM!ÌÍJûø¦ û<s:Ns ìú²øÅ24FŒ Request.2 ø 0× LCD f( ”SURE FORWARD ?”" ÅÑømn Y7 îCRóÓ$"Å øx3· F "ÌÍM!ø YLCD f( ”FORWARD OK” tDê Begin ‘3ø<šE¥" D Begin ‘äNU9J."<.JNsF!s:OÛÍ F 5.11 !Q 8 C.5 ¦" 4.3.5. G67 REVERSE .

(77) Å 4 Æ B12. 36.  4.2: abcde1 TC0  [1] Hs: REVERSE J.øM!ÌÍJûøá û<s:Ns ìú²øÅ24FŒ Request.3 ø 0× LCD f( ”SURE REVERSE ?”" ÅÑømn Y7 îCRóÓ$"Å øx3· F "ÌÍM!ø± LCD f( ”REVERSE OK” tDê Begin ‘3ø<šE¥" D Begin ‘äNU9J."<.JNsF!s:OÛÍ F 5.14 !Q8 C.6 ¦".

(78) Å 4 Æ B12 ߞ. 37 TC0rate2,TC0rate1,TC0rate0. Interval0. 000. Interval1. 001. Interval2. 010. Interval3. 011. Interval4. 100. Interval5. 101. Interval6. 110. Interval7. 111. =0 ¡ 255 256 ¡ 511 512 ¡ 767 768 ¡ 1023 1024 ¡ 1279 1280 ¡ 1535 1536 ¡ 1791 1792 ¡ 2047.  4.3: TC0M fg3 4.3.6. G67 RUN . Hs: RUN JE¥øäNÌÍJ.‘æ TC0 KŒ;¢ M!;å¢J“vÊÏ2=;¢@Ñ2Èw2c, uÌÍwÛ M!¢J“vKœÌÍJ=<s:ìNsÅ2 PøFŒ Request.4 ø 0õ–m¢ÌÍøYܱ"ÅÑøx3øY @¾uHs: FORWARDSTEP äN3ø±¾u BACKWARDSTEP ä N× LCD Åѯf(=-"Å ømn Y7 îCRt×KL;  TC0 ;å3· F "ü$;;å TC0 t D Begin ‘3ø< š" s; TC0"£, TC0 ¢äNJHs:¶·¦•ü"< Z J.NsF!s:OÛÍ F 5.18 !Q8 C.7 ¦" 4.3.7. HG67. PÁ/Qaꢯ©Z¸Í˜äN¢. : @4¾ê ROM T» ø 0008h ‘t¸Í¶ GIE( ¢øK£ ) Mø 0 )–s¢¯©Z

(79) 0Ÿ¢Hs:"ZP¢Hs:äN¨–Œ Des:$™.

(80) Å 4 Æ B12 38 ˜Ö¥Á/¢E¥Z˜äN GIE=1 M!"<£ìõ·( : ;************************************** ; Interrupt Vector on ROM address 0x8 ;************************************** ORG 0x8 Begin Interrupt BTS0 INTRQ.0. ;. ¢T»éêß ; ¢KLörs: ; m¢4 ø INT0 $P¢. JMP INT0 IRS BTS0 INTRQ.5 JMP TC0 IRS. ;. m¢4 ø TC0 ;å¢. PÏ¢s:¾uT» 0008h ‘õ–ç}m¢øöÚîJ¢˜ ûgÕø#¢¾uU9J¢Hs:" #‰Šˆ INT0 ! TC0 ÑÚ¢Œ.ú²ø"#îC!ÑÈ wuÌÍ @ INT0 ¢Hs:JìhÐõ· : s:NsÛÍQ8J C.8 ¦"<s:ìJÅ2ø LCD ë‰ f(M!øÅѯFŒ SET OK.0 ø 0‰ FUNCTION KEY ‘øqîC RË Y3 KLîC"ÅÑøHs: SCAN DISP ! KEY SCAN øŒij îCR!ŒBîC"#ʌ¨2=îCR"#îCîCR6 å 1 ZijîCRPîCR6ø 0  ( R@4 Y0 îCR ) å 1 Ï T¾D‰ FUNCTION KEY ‘ sË Y3 îCRKL·2î C"Å øm¢k·Â"øö"3ø A " REQUEST.0 Mø 1; 3ø B " REQUEST.1 Mø 1; 3ø C " REQUEST.2 Mø 1; 3ø D " REQUEST.3 Mø 1; 3ø E " REQUEST.4 Mø 1; 3ø F "Œ¥ TC0 ; å;"M!U9E¥–õ–¾u‰ KEYEND ‘FŒ INT0 ¢ ˜ûõ–äN®¢örs:" x3øHs: SPEED 7â"#îCLCD ÅѯÍÙ f($J7â""ÛÍ Q8 C.8.1 ¦Js:" #‰Š TC0 E¥;åEæøP;åÏT¢äNÑ ÈwuÌÍJ.¶·¯s:ZhÐ :.

(81) Å 4 Æ B12 39 s:NsìJÅ2øPÏ TC0 ¢Hs: STEPMOVE ŒÑÈwuÌÍJ.PäN¨ STEPMOVE Hs:FŒ TC0 ¢˜ûõ–äN®¢örs:"ÅÑøäNHs: STEPMOVE ˆ£Hs: STEPMOVE Js:OÛÍ Q8J C.8.2 ¦" Hs: STEPMOVE s:JìÅ2øm¢ûTGÅÑø m¢D¼k‘TZm¢ÌÍŽTp"Å øCDm¢ 7ÌÍŽTpÍ í 2.3 JíñÑYgJÈw‘ÌÍJ © J6wø•»".

(82) * +,-. VÁ/û˜4Œ ÌÍJY±[=-¾¿·F 5.1ø\Á /$e".  5.1: <=hi 40.

(83) Å 5 Æ ‰Š®¯ 41 -.ìõ 5.2JNsF(K½–s:[LOõ– LCD Display f( ”Wait for Command :”( F 5.3) óÓÿq$#ÛZ· A.B.C. D.E JE¥"ŒFŒ.M!=-.M!Y.M!±!äNJ .Â<™"øt8 sóÓÿq$".  5.2: j^U+^.

(84) Å 5 Æ ‰Š®¯. 42.  5.3: LCD Displayer k ”Wait for Command :” P· A "# LCD Display f( ”SURE CLEAR DATA?”( F 5.4)A "FŒJ.Nsõ·( ( F 5.5):.  5.4: LCD Displayer k ”SURE CLEAR DATA?”.

(85) Å 5 Æ ‰Š®¯. 43.  5.5: l^U CLR F+^ #3· F "øgÕFŒÌÍtf( ”CLEAR OK”( F 5.6) ¼– DNsF A ‘3ø<™E¥" DNsF A ‘äNU 9JE¥3ø7â"$t8".  5.6: LCD Display k ”CLEAR OK !!!”.

(86) Å 5 Æ ‰Š®¯ 44 P· B "# LCD Display f( ”Please Input Speed :”( F 5.7)M! =-J.NsFõ·( ( F 5.8):.  5.7: LCD Display k ”Please Input Speed :”.  5.8: l^U SPEED F+^.

(87) Å 5 Æ ‰Š®¯ 45 #3Ôs$ÇT7â$øˆ8$=-u$J7â f(, LCD Display 't$J 10 M¿=-j© 16 M¿=- •–f( ”Speed Set ok!!!”( F 5.9) ¼–DêNsF A ‘3ø<™E ¥" DNsF A ‘äNU9JE¥".  5.9: LCD Display k ”Speed Set ok !!!” P· C "# LCD Display f( ”Sure Forward ?”( F 5.10)M!Y J.NsFõ·( ( F 5.11):.  5.10: LCD Display k ”Sure Forward ?” #3· F "øgÕM!ÌÍYtf( ”Forward ok !!!”( F 5.12) ¼ – DNsF A ‘3ø<™E¥" DNsF A ‘äNU9JE ¥3ø7â"$t8".

(88) Å 5 Æ ‰Š®¯. 46.  5.11: l^U Forward F+^.  5.12: LCD Display k ”Forward ok !!!”.

(89) Å 5 Æ ‰Š®¯ 47 P· D "# LCD Display f( ”Sure Reverse ?”( F 5.13)M!± J.NsFõ·( ( F 5.14):.  5.13: LCD Display k ”Sure Reverse ?”.  5.14: l^U Reverse F+^.

(90) Å 5 Æ ‰Š®¯ 48 #3· F "øgÕM!Ìͱtf( ”Reverse ok !!!”( F 5.15) ¼– DNsF A ‘3ø<™E¥" DNsF A ‘äNU9JE¥ 3ø7â"$t8".  5.15: LCD Display k ”Reverse ok !!!” P· E "# LCD Display CDJŸM!f(f( ”Forward Speed : gggg ”( F 5.16) äNYÜ ”Reverse Speed : gggg ”( F 5.17) ä N±äNJ.NsFõ·( ( F 5.18): #3· F "ÌÍ.  5.16: LCD Display k ”Forward Speed : mmmm ”.  5.17: LCD Display k ”Reverse Speed : mmmm ”.

(91) Å 5 Æ ‰Š®¯. 49.  5.18: l^U RUN F+^ ü$t¾DNsF A ‘3ø<™"t8ÌÍ s".

(92) / -0123 6.1. . ‰Ö ÌÍJ¾¿˜ J& "Œò!$U¹ NÌÍJ:!4OR˜ˆ2!JÕ1SPú¬&

(93) ¥‘ÌÍY ?." VC4Ë SN8P1708 þÿ•üKL ‘æ: (Close Loop Control) ¾¿ ÌÍò rÌÍ“”• ¼M ;%&¹NÌÍJÈå¼.¼¯“9åó¨©  Ì;¿Á/JW2" §æ

(94) K‰Ö ÌÍJ¾¿ 9"-.• '§æ"#îC$%& LCD DISPLAY '(-. ÷‘æ*—ª+,Á/J-." 6.2. HD?I. VOC'Ñ Ì;¿Á/ , E¥ˆÏG©ž"IKÏ GûÛúø»ÞX : 1. r‰Š:Ä7‰ÌÍ=8!“9¼kW¸2=U; å TC0M M!Jíñ¶Û‘g¾¿ÌÍJ=" 2. ۉæKðñ½ÜòñJÌÍ" 50.

(95) Å 6 Æ ®O!IKGJ 3. Û$w-œ (PWM) JE¥K¾¿ÌÍ=". 51.

(96) 4 A SN8P1708. 5 67 89:6 [1]. Z·Á/ozå&pí(¶ÛT»¯,F”òÛZDA¾åÏ GÁ/B¼½ŸªÒíñ2Ö".  A.1: <=no1pq [1]. 52.

(97) 4 B SN8P1708. 5 67;<=.  : q“vø ”1/2” í(s?ø 1P¾¿ø 2".  B.1: rst [1]. 53.

(98) Q8 B. SN8P1708. A¾åqr.  B.2: rst ( u ). 54.

(99) Q8 B. SN8P1708. A¾åqr.  B.3: rst ( u ). 55.

(100) 4 C 8>

(101) ?@ C.1. J-K$LMNOPK. ;step1 chip SN8P1708OTP. ;step2 Begin Interrupt macro. ;. KL¢ör. .data stack A ds 1. ; stack for ACC. .code PUSH MOV stack A, A. ;. ¶ˆÀ.ozåz$Á/lôõß ;  ACC z$ stack A. endm. End Interrupt macro MOV A, stack A POP. ®¢ör ;  ACC 6ÙD ; ËÁ/lôõßÙшÀ.ozå ;. 56.

(102) Q8 C Á/Js:O. 57. RETI endm. ;step3 ;************** VARIABLES address******************************* .data SBUFFER ds 4 Buffer ds 4 DisplayBit ds 1. ; (P57, P56, P55). Timer ds 1 LastKey ds 1 KeyIn ds 1 ReleaseHold ds 1 KeyBuffer ds 1 R1 ds 1 Delta1 ds 1 Delta2 ds 1 Delta3 ds 1 DIRECTION ds 1 SPEEDBUFFER ds 2 KEYTYPE ds 1 SET OK ds 1 REQUEST ds 1 .Code ;************** CONSTANTS ******************************* TimeC2 = 1. ; constant for Delta2 in subprogam DELAY1MS. TimeC3 = 1. ; constant for Delta3 in subprogam DELAY3. ;step4 JMP Initialization.

(103) Q8 C Á/Js:O. C.2. 58. K$. ;step1 ORG 0x10 Initialization: MOV A, #00000111b OR P0UR, A. ; pin P0.0. ¡ P0.2 as PULL-HIGH. ; pin P1.0. ¡ P1.4 as PULL-HIGH (for OTP chip). MOV A, #00011111b OR P1UR, A MOV A, #11100000b MOV P1M, A. ; pin P1.0. ¡ P1.4 as inputs , P1.4 as Hallw. MOV A, #00000011b OR P2UR, A MOV A, #11111100b MOV P2M, A. ¡ P2.1 as inputs, P2.0 as Hallu, P2.1 as Hallv, pin P2.2 ¡ P2.7 as outputs. ; pin P2.0. MOV A, #11100111b MOV P5M, A. ; pin P5.0. ¡ P5.2, P5.5 ¡ P5.7 as outputs,. 5.2=E , 5.1=RW,5.0=RS MOV A, #11111111b. ¡ P4.7 as outputs, as LCD DB0 ¡ DB7. MOV P4M, A. ; pin P4.0. BSET OSCM.6. ; reset Watch Dog Timer, WDT=0. CLR P5 CLR P4 CLR P2 CLR P1.

(104) Q8 C Á/Js:O. 59. ;step2 CLR TC0C CLR TC0R CLR KEYTYPE CLR REQUEST CLR BUFFER CLR BUFFER+1 CLR BUFFER+2 CLR BUFFER+3 CLR DisplayBit B0MOV X, #0 CLR ReleaseHold BSET ReleaseHold.1 MOV A, #0xFF MOV LastKey, A. ;step3 BSET INTEN.0. ; enable INT0 interrupt. BSET INTEN.5. ; enable TC0 interrupt. BSET STKP.7. ; enable Global Interrupt Handler. ;step4 CALL DELAY5MS. ; Wait for LCD Power-on Ready. MOV A, #00111111b. ;. CALL COMMAND MOV A, #00001110b CALL COMMAND. ;step5. ;. Yæ 8 TGzÙ / å¯â /5*10 X6 çâ•. f(å ON/ ë‰Îf(T»;7å.

(105) Q8 C Á/Js:O. 60. MOV A, #01010100b XOR A, P2 AND A, #11111100b XOR P2, A. ;for motor stop. ;step6 MOV A, #00000001b. ;. FŒë. ;. M! DD RAM T»ø 0. CALL COMMAND CALL DELAY2MS MOV A, #10000000b CALL COMMAND CALL VIEW WAITKEY ;============================================== VIEW WAITKEY: CLR Y CLR Z B0MOV Y, #WAITKEY$M B0MOV Z, #WAITKEY$L Begin1: MOV A, #0 MOVC CMPRS A, #0 JMP @F RET @@: CALL SDATA XCH A, R CALL SDATA INCMS Z JMP Begin1. ;. $zÖ WAITKEY T»6.

(106) Q8 C Á/Js:O. 61. ;============================================== WAITKEY: DB ”Wait for Command : ” RET. ;step7 MOV A, #11100000b XOR A, P5 AND A, #11100000b XOR P5, A. ;. mn Y7 îCR. Loop: BTS0 REQUEST.0 JMP CLR DATA BTS0 REQUEST.1 JMP SPEED BTS0 REQUEST.2 JMP SET FORWARD BTS0 REQUEST.3 JMP SET REVERSE BTS0 REQUEST.4 JMP RUN JMP Loop. C.3. QK$ CLR K$R. ;step1 CLR DATA: BCLR REQUEST.0 BCLR INTEN.0.

(107) Q8 C Á/Js:O MOV A, #00000001b. 62 ;. FŒë. ;. M! DD RAM T»ø 0. CALL COMMAND CALL DELAY2MS MOV A, #10000000b CALL COMMAND CALL VIEW CLR DATA ;============================================== VIEW CLR DATA: CLR Y CLR Z B0MOV Y, #CLRDATA$M B0MOV Z, #CLRDATA$L MARK1: MOV A, #0 MOVC. ;SHOW ”SURE CLEAR DATA ?”. CMPRS A, #0 JMP @F RET @@: CALL SDATA XCH A, R CALL SDATA INCMS Z JMP MARK1 ;============================================== CLRDATA: DB ”SURE CLEAR DATA?” RET. ;step2.

(108) Q8 C Á/Js:O. 63. MOV A, #11100000b XOR A, P5 AND A, #11100000b XOR P5, A. ;. mn Y7 îCR. MOV A, #0xAA MOV BUFFER, A NOP BSET INTEN.0 MOV A, BUFFER CMPRS A, #0xAA JMP @F JMP $-3. ;step3 @@: CMPRS A, #0x0F JMP Begin CLR BUFFER CLR BUFFER+1 CLR BUFFER+2 CLR BUFFER+3 CLR SBUFFER CLR SBUFFER+1 CLR SBUFFER+2 CLR SBUFFER+3 CLR SPEEDBUFFER CLR SPEEDBUFFER+1 MOV A, #4 MOV TC0M, A CLR TC0R. ; WAIT FOR INPUT ”F” OR OTHERS.

(109) Q8 C Á/Js:O. 64. CLR DIRECTION CALL CLEAR OK JMP Begin ;============================================== CLEAR OK: MOV A, #00000001b. ;. FŒë. ;. M! DD RAM T»ø 0. CALL COMMAND CALL DELAY2MS MOV A, #10000000b CALL COMMAND B0MOV Y, #CLROK$M B0MOV Z, #CLROK$L MARK2: MOV A, #0 MOVC. ; SHOW ”CLEAR OK”. CMPRS A, #0 JMP @F CALL DELAY2S RET @@: CALL SDATA XCH A, R CALL SDATA MOV A, #1 ADD Z, A JMP MARK2 ;============================================== CLROK: DB ”CLEAR Ok !!!” RET.

(110) Q8 C Á/Js:O C.4. QK$ SPEED K$R. ;step1 SPEED: BCLR REQUEST.1 BCLR INTEN.0 MOV A, #00000001b. ;. FŒë. ;. M! DD RAM T»ø 0. CALL COMMAND CALL DELAY2MS MOV A, #10000000b CALL COMMAND CALL VIEW SPEED ;============================================== VIEW SPEED: CLR Y CLR Z B0MOV Y, #SET SPEED$M B0MOV Z, #SET SPEED$L MARK7: MOV A, #0 MOVC. ;SHOW ”PLEASE INPUT SPEED :”. CMPRS A, #0 JMP @F RET @@: CALL SDATA XCH A, R CALL SDATA INCMS Z JMP MARK7 ;==============================================. 65.

(111) Q8 C Á/Js:O. 66. SET SPEED: DB ”Please Input Speed :” RET. ;step2 MOV A, #11100000b XOR A, P5 AND A, #11100000b XOR P5, A BSET KEYTYPE.0. ;. mn Y7 îCR ; mn7â KEY. MOV A, #0xAA MOV BUFFER+3, A NOP BSET INTEN.0 MOV A, BUFFER+3 CMPRS A, #0xAA JMP @F JMP $-3. ;step3 BIN2BCDtoHEX: BCLR PFLAG.2 CLR R CLR SPEEDBUFFER CLR SPEEDBUFFER+1 DO HEX 1000: MOV A, BUFFER+3 CMPRS A, #0 JMP $+2 JMP DO HEX 100. ; WAIT FOR INPUT NUMBERS.

(112) Q8 C Á/Js:O MOV R, A HEX 1000: DECMS R JMP @F JMP $+7 @@: MOV A, #11101000b ADD SPEEDBUFFER, A MOV A, #00000011b ADC SPEEDBUFFER+1, A BCLR PFLAG.2 JMP HEX 1000 MOV A, #11101000b ADD SPEEDBUFFER, A MOV A, #00000011b ADC SPEEDBUFFER+1, A BCLR PFLAG.2 DO HEX 100: MOV A, BUFFER+2 CMPRS A, #0 JMP $+2 JMP HEX 10 MOV R, A HEX 100: DECMS R JMP @F JMP $+7 @@: MOV A, #01100100b ADD SPEEDBUFFER, A MOV A, #0. 67.

(113) Q8 C Á/Js:O. 68. ADC SPEEDBUFFER+1, A BCLR PFLAG.2 JMP HEX 100 MOV A, #01100100b ADD SPEEDBUFFER, A MOV A, #0 ADC SPEEDBUFFER+1, A BCLR PFLAG.2 HEX 10: MOV A, #10 MUL A, BUFFER+1 ADD SPEEDBUFFER, A BTS0 PFLAG.2. ; C=1 , IF CARRY. INCMS SPEEDBUFFER+1 BCLR PFLAG.2 HEX 1: MOV A, BUFFER ADD SPEEDBUFFER, A BTS0 PFLAG.2. ; C=1 , IF CARRY. INCMS SPEEDBUFFER+1 BCLR PFLAG.2 RET. @@: CALL UPDATESPEED ;step4 CALL SPEED SETOK BCLR KEYTYPE.0 JMP Begin. ;LCD. f( ”Speed Set ok”.

(114) Q8 C Á/Js:O C.4.1. 69. G67 UPDATESPEED 678. UPDATESPEED: ;step1 MOV A, BUFFER MOV SBUFFER, A MOV A, BUFFER+1 MOV SBUFFER+1, A MOV A, BUFFER+2 MOV SBUFFER+2, A MOV A, BUFFER+3 MOV SBUFFER+3, A CALL BIN2BCDtoHEX ;step2 MOV A, #11111111b. ;. 4 », 2047 , A=2047-SPEED. SUB A, SPEEDBUFFER MOV A, #00000111b SBC A, SPEEDBUFFER+1 BTS1 PFLAG.2 CALL MORETHAN2047 ;step3 BCLR PFLAG.2 CALL JUDGE INTERVAL BCLR PFLAG.2 MOV TC0M, A MOV A, SPEEDBUFFER MOV TC0R, A RET. ; C=0, IF. T.

(115) Q8 C Á/Js:O C.5. QK$ FOREARD K$R. ;step1 SET FORWARD: BCLR REQUEST.2 BCLR INTEN.0 MOV A, #00000001b. ;. FŒë. ;. M! DD RAM T»ø 0. CALL COMMAND CALL DELAY2MS MOV A, #10000000b CALL COMMAND CALL VIEW SETFORWARD. ;step2 MOV A, #11100000b XOR A, P5 AND A, #11100000b XOR P5, A. ;. mn Y7 îCR. MOV A, #0xAA MOV BUFFER, A NOP BSET INTEN.0 MOV A, BUFFER CMPRS A, #0xAA JMP @F JMP $-3. ;step3 @@: CMPRS A, #0x0F. ; WAIT FOR INPUT KEY. 70.

(116) Q8 C Á/Js:O. 71. JMP Begin BCLR DIRECTION.0. ;DIRECTION.0=0. CALL FORWARD OK. ;LCD. Y ;1 ±. f( ”FORWARD OK”. JMP Begin. C.6. QK$ REVERSE K$R. ;step1 SET REVERSE: BCLR REQUEST.3 BCLR INTEN.0 MOV A, #00000001b. ;. FŒë. ;. M! DD RAM T»ø 0. CALL COMMAND CALL DELAY2MS MOV A, #10000000b CALL COMMAND CALL VIEW SET REVERSE. ;SHOW ”REVERSE OK”. ;step2 MOV A, #11100000b XOR A, P5 AND A, #11100000b XOR P5, A. ;. mn Y7 îCR. MOV A, #0xAA MOV BUFFER, A NOP BSET INTEN.0 MOV A, BUFFER CMPRS A, #0xAA. ; WAIT FOR INPUT KEY.

(117) Q8 C Á/Js:O. 72. JMP @F JMP $-3. ;step3 @@: CMPRS A, #0x0F JMP Begin BSET DIRECTION.0 CALL REVERSE OK JMP Begin. C.7. QK$ RUN K$R. ;step1 RUN: BCLR REQUEST.4 BCLR INTEN.0 MOV A, #00000001b. ;. FŒë. ;. M! DD RAM T»ø 0. ;. ûm¢. ;. FŒë. CALL COMMAND CALL DELAY2MS MOV A, #10000000b CALL COMMAND BTS0 DIRECTION.0 JMP BACKWARDSTEP. ;step2 FORWARDSTEP: CALL VIEW FORWARDSTEP MOV A, #11000000b CALL COMMAND.

(118) Q8 C Á/Js:O. 73. CALL VIEW SPEED DATA. ;LCD. Åѯf(=-. JMP RUNF BACKWARDSTEP: CALL VIEW BACKWARDSTEP MOV A, #11000000b. ;. FŒë. CALL COMMAND CALL VIEW SPEED DATA. ;LCD. Åѯf(=-. JMP RUNR. ;step3 RUN1: MOV A, #11100000b XOR A, P5 AND A, #11100000b XOR P5, A. ;. mn Y7 îCR. MOV A, SPEEDBUFFER MOV TC0R, A BSET TC0M.7. ; enable TC0 , start running TC0. BSET INTEN.0 MOV A, BUFFER CMPRS A, #0x0F. ;. JMP CALL VIEW SPEED DATA. 3· F " , ÌÍü$ ;LCD Åѯf(=-. JMP Begin. C.8. STQK$K$R. ;step1 ;******* Interrupt Service Subprograms *************** INT0 IRS:.

(119) Q8 C Á/Js:O MOV A, #11000000b. 74 ;LCD. f(Åѯ. CALL COMMAND BCLR SET OK.0 MOV A, #0xFF MOV BUFFER, A MOV BUFFER+1, A MOV BUFFER+2, A MOV BUFFER+3, A FUNCTION KEY: MOV A, #3 MOV DisplayBit, A. ; DisplayBit=3. B0MOV Z, #BUFFER+3. ;step2 KEYLOOP: MOV A, @YZ CALL SCAN DISP CALL KEY SCAN @@: BTS0 SET OK.0 JMP KEYEND MOV A, #256-1 ADD DisplayBit, A. ; DisplayBit=DisplayBit-1. BTS1 PFLAG.2. ; if flag C=1. JMP FUNCTION KEY ADD Z, A JMP KEYLOOP. ;step3 MOV A, BUFFER. tT , skip. ; if DisplayBit =0-1, go to FUNCTION KEY.

(120) Q8 C Á/Js:O. 75. CMPRS A, #0x0A JMP @F BSET REQUEST.0 JMP KEYEND @@: CMPRS A, #0x0B JMP @F BSET REQUEST.1 JMP KEYEND @@: CMPRS A, #0x0C JMP @F BSET REQUEST.2 JMP KEYEND @@: CMPRS A, #0x0D JMP @F BSET REQUEST.3 JMP KEYEND @@: CMPRS A, #0x0E JMP @F BSET REQUEST.4 JMP KEYEND @@: CMPRS A, #0x0F JMP @F BCLR TC0M.7 JMP KEYEND KEYEND: BCLR INTRQ.0. ; IF KEY=ENTER THAN END KEYSCAN.

(121) Q8 C Á/Js:O. 76. End Interrupt. ;. ¢®örs:. ;******* Interrupt Service Subprograms *************** TC0 IRS: CALL STEPMOVE BCLR INTRQ.5 End Interrupt. C.8.1. ;. ¢®örs:. G67 SCAN LCD DISP 678. SCAN LCD DISP:. ;subprogram. MOV A, LASTKEY SUB A, #0x0A BTS0 PFLAG.2 JMP CLRSECONDROW MOV A, LASTKEY SCAN LCD DISP1: CMPRS A, #0 JMP @F MOV A, #0x30 JMP MARK0 @@: CMPRS A, #1 JMP @F MOV A, #0x31 JMP MARK0 @@: CMPRS A, #2 JMP @F MOV A, #0x32 JMP MARK0. ; C=0, IF. T.

(122) Q8 C Á/Js:O @@: CMPRS A, #3 JMP @F MOV A, #0x33 JMP MARK0 @@: CMPRS A, #4 JMP @F MOV A, #0x34 JMP MARK0 @@: CMPRS A, #5 JMP @F MOV A, #0x35 JMP MARK0 @@: CMPRS A, #6 JMP @F MOV A, #0x36 JMP MARK0 @@: CMPRS A, #7 JMP @F MOV A, #0x37 JMP MARK0 @@: CMPRS A, #8 JMP @F MOV A, #0x38 JMP MARK0 @@:. 77.

(123) Q8 C Á/Js:O. 78. CMPRS A, #9 JMP @F MOV A, #0x39 JMP MARK0 @@: JMP $+2 MARK0: CALL SDATA RET. C.8.2. G67 STEPMOVE 678. ;step1 STEPMOVE: BTS0 DIRECTION.0. ;. ûm¢. JMP BACKWARD ;step2 FORWARD: BTS1 P2.0. ;. m¢ HALLu ‘T. ;. m¢ HALLv ‘T. JMP @F JMP CASE1 @@: JMP CASE2 CASE1: BTS1 P2.1 JMP @F JMP STATE5TO6 @@: JMP JUDGEF CASE2:.

(124) Q8 C Á/Js:O BTS1 P2.1. 79 ;. m¢ HALLv ‘T. ;. m¢ HALLw ‘T. ;. m¢ HALLw ‘T. JMP @F JMP CASE3 @@: JMP STATE2to3 CASE3: BTS1 P1.4 JMP @F JMP STATE3to4 @@: JMP STATE4to5 JUDGEF: BTS1 P1.4 JMP @F JMP STATE1TO2 @@: JMP STATE6TO1 ;———————————————————————BACKWARD: BTS1 P2.0. ;. m¢ HALLu ‘T. ;. m¢ HALLv ‘T. JMP @F JMP CASE4 @@: JMP CASE5 CASE4: BTS1 P2.1 JMP @F JMP STATE5TO4 @@: JMP JUDGEB CASE5:.

(125) Q8 C Á/Js:O BTS1 P2.1. 80 ;. m¢ HALLv ‘T. ;. m¢ HALLw ‘T. ;. m¢ HALLw ‘T. JMP @F JMP CASE6 @@: JMP STATE2to1 CASE6: BTS1 P1.4 JMP @F JMP STATE3to2 @@: JMP STATE4to3 JUDGEB: BTS1 P1.4 JMP @F JMP STATE1TO6 @@: JMP STATE6TO5. ;step3. ;. Y STATE1to2:. MOV A, #11000100b XOR A, P2 AND A, #11111100b XOR P2, A BCLR P1.5 RET ;================================ STATE2to3: MOV A, #11010000b XOR A, P2.

(126) Q8 C Á/Js:O AND A, #11111100b XOR P2, A BSET P1.5 RET ;================================ STATE3to4: MOV A, #01110000b XOR A, P2 AND A, #11111100b XOR P2, A BCLR P1.5 RET ;================================ STATE4to5: MOV A, #00110100b XOR A, P2 AND A, #11111100b XOR P2, A BSET P1.5 RET ;================================ STATE5to6: MOV A, #00011100b XOR A, P2 AND A, #11111100b XOR P2, A BCLR P1.5 RET ;================================ STATE6to1: MOV A, #01001100b. 81.

(127) Q8 C Á/Js:O XOR A, P2 AND A, #11111100b XOR P2, A BSET P1.5 RET ;================================ ;. ± STATE1to6:. MOV A, #11010000b XOR A, P2 AND A, #11111100b XOR P2, A BSET P1.5 RET ;================================ STATE6to5: MOV A, #11000100b XOR A, P2 AND A, #11111100b XOR P2, A BCLR P1.5 RET ;================================ STATE5to4: MOV A, #01001100b XOR A, P2 AND A, #11111100b XOR P2, A BSET P1.5 RET ;================================ STATE4to3:. 82.

(128) Q8 C Á/Js:O MOV A, #00011100b XOR A, P2 AND A, #11111100b XOR P2, A BCLR P1.5 RET ;================================ STATE3to2: MOV A, #00110100b XOR A, P2 AND A, #11111100b XOR P2, A BSET P1.5 RET ;================================ STATE2to1: MOV A, #01110000b XOR A, P2 AND A, #11111100b XOR P2, A BCLR P1.5 RET. 83.

(129) ABC

(130) ¿ÀA¾¿åe4!®&‘æ SN8P1700 Á¯þÿ . ëí ® 2003. [2] gh ÌÍ9¼Œ?7Օ²9 . ¹º»%¼½ !¾¿ÂaOC 2004. [3] -0GZ USB ‰ÖMÌ;¿ . ¹º»%¼½!¾¿ÂaO C 2003. [4] ESþÿA¼| 8048/8748 9æ‰ . ëí® 1993. [5] 0 8048/8049 Ý §·{. . ëí® 1991. [6] !"© 8051 Sþÿ§·{. . “#Y 1991. [7] BBDûN¼|$²¼M; :Protel 99 SE. ëí® 2002. [8] %}¼½¾¿ . ݸFÁ 1999. [1]. [9] SN8P1700 Series USER’S MANUAL [10] http://www.sonix.com.tw. 84.

(131)

參考文獻

相關文件

請繪出交流三相感應電動機AC 220V 15HP,額定電流為40安,正逆轉兼Y-△啟動控制電路之主

files Controller Controller Parser Parser.

在直流馬達控制系統中,為了減少流經馬達繞線電流及降低功率消耗等 目的,常常使用脈波寬度調變信號 (PWM)

專案導向應用程式開發 階梯程式編輯畫面 狀態的監視與控制 階梯程式助憶碼輔助顯示 階梯程式註解功能

FPPA 是 Filed Programmable Processor Array 的縮寫,簡 單的說:它就是一個可以平行處理的多核心單晶片微控器。與一般 微控器如 8051、pic,…

可程式控制器 (Programmable Logic Controller) 簡稱 PLC,是一種具有微處理機功能的數位電子 設備

Z Topological Superconductors hosting Majorana chiral edge modes.. In Beijing, Jan 8th to

之意,此指依照命令動作的意義。所謂伺服 系統,就是依照指示命令動作所構成的控制