PIC8λµ¥Æ¬»ú»ã±àÓïÑÔ³£ÓÃÖ¸ÁîµÄʶ¶Á£¨Ï£©

¡¡

    ±¾ÎĹØÓÚÖ¸ÁîµÄ×¢Êͽ«ÓëÇ°ÊöÖ¸ÁîÖеÄÂÔÓв»Í¬¡£Ç°ÊöÖ¸Áî×¢ÊÍʱÊǶÔÖ¸Áî¾ßÌåÍê³ÉµÄ¹¦ÄܸøÒÔ˵Ã÷£¬ÕâÖÖ×¢ÊÍ·½·¨¶Ô³õѧÕßȷʵÒ×ÓÚ½ÓÊܺÍÀí½â£¬µ«ÊÇʵ¼ÊÓ¦ÓÃÖеÄPIC²úÆ·»ã±àÓïÑÔµÄ×¢ÊÍͨ³£ÊÇÒÔ³ÌÐòÒª×öʲô(»òÖ¸ÁîµÄ×÷ÓÃ)¶ø²»ÊÇ˵ָÁîµÄÖ±½Ó¹¦ÄÜ¡£¼øÓÚÉÏÊöÔ­Òò£¬ÏÂÊöµÄÖ¸Áî×¢Êͽ«¸Ä±ä¹ýÈ¥µÄ×¢ÊÍ·½·¨£¬ÓóÌÐòÓ¦ÆðµÄ×÷ÓÃ×÷×¢ÊÍ¡£
¡¡¡¡10ª±¼Ä³ÌÆ÷°ë×Ö½Ú½»»»Ö¸Áî
¡¡¡¡Ö¸Áî¸ñʽ£ºSWAPF¡¡f£¬d
¡¡¡¡ËµÃ÷£ºSWAPFÊÇSwap fµÄºÏд¡£·ûºÅf¡¢dµÄÒâÒåÓëÇ°ÊöµÄÏàͬ¡£¸ÃÌõÖ¸ÁîµÄ¹¦ÄÜÊǼĴæÆ÷fµÄ¸ß4λÓëµÍ4λ½»»»£¬¼´Ö¸ÁîÖ´ÐÐÇ°£¬Èô¼Ä´æÆ÷fµÄ8λ״̬ΪD7¡¢D6¡¢D5¡¢D4¡¢D3¡¢D2¡¢D1¡¢D0£¬Ö´ÐкóµÄ8λ״̬±äΪD3¡¢D2¡¢D1¡¢D0¡¢D7¡¢D6¡¢D5¡¢D4£¬Æä½á¹û´æÈëW(d=0)»òf(d=1)ÖС£
¡¡¡¡ÊµÀý£ºÖжÏÏÖ³¡±£»¤ÊÇÖжϼ¼ÊõÖÐÖØÒª²¿·Ö¡£ÓÉÓÚPIC16C¡Á¡ÁÖ¸ÁîϵͳÖÐûÓнøÕ»PUSHºÍ³öÕ»POPÖ¸ÁËùÒÔÖ»ÄÜÓÃÆäËüÖ¸ÁîÀ´ÊµÏÖ¡£ÒòΪÔÚÖ÷³ÌÐòÖг£³£Óõ½¹¤×÷¼Ä´æÆ÷WºÍ״̬¼Ä´æÆ÷STATUS£¬ËùÒÔÖжÏÏÖ³¡±£»¤³£Òª±£»¤¼Ä´æÆ÷WºÍSTATUS¡£
¡¡¡¡ÏÂÃæÊǶÔPIC16C7¡ÁϵÁÐоƬÖжÏÏÖ³¡±£»¤µÄʵÀý³ÌÐò¡£
MOVWF  W_TEMP ¡¡       £»½«WÄÚÈÝ´æÈëµ½ÁÙʱ¼Ä´æÆ÷
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ W_TEMPÖÐ
SWAPF  STATUS£¬W¡¡   £»½»»»STATUSÓëWÄÚÈÝ
MOVWF STATUS_TEMP   £»½«STATUSµÄÄÚÈÝ´æÈëµ½ÁÙ
¡­¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʱ¼Ä´æÆ÷STATUS_TEMPÖÐ
ÖжϷþÎñ³ÌÐò
¡­
SWAPF  STATUS_TEMP£¬W£»½»»»STATUS_TEMPÓëW
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ µÄÄÚÈÝ
MOVWF STATUS¡¡¡¡¡¡  £»STATUS¸´Ô­³ÉÔ­À´µÄ״̬
SWAPF  W_TEMP£¬F¡¡¡¡ £»½»»»ÄÚÈÝ
SWAPF  W_TEMP£¬W¡¡¡¡£»W¸´Ô­³ÉÔ­À´µÄ״̬
¡¡¡¡ËµÃ÷£ºÉÏÊö³ÌÐòÖи÷ÌõÖ¸ÁîµÄ×¢ÊÍ»ù±¾É϶¼ÊÇÒÔ³ÌÐòÓ¦´ïµ½µÄÄ¿µÄ¶ø×¢Ê͵ģ¬¶ÔÿÌõÖ¸ÁîµÄ¹¦Äܼ¸ºõδÉæ¼°¡£ÕâÊdzõѧÕßÓ¦Ìرð×¢ÒâµÄ¡£
¡¡¡¡11ª±×Ó³ÌÐòµ÷ÓÃÖ¸Áî(Subroutine Call)
¡¡¡¡Ö¸Áî¸ñʽ£ºCALL k£»kΪÁ¢¼´µØÖ·
¡¡¡¡ËµÃ÷£º×Ó³ÌÐòµ÷Ó㬲»Í¬ÐͺÅоƬµÄʵÏÖ·½·¨²»¾¡Ïàͬ£¬Æ乲ͬµãÊÇÊ×ÏȽ«·µ»ØµØÖ·((PC)£«1)ѹջ±£»¤£¬ÔÙתÈëËùµ÷ÓõÄ×Ó³ÌÐòÈë¿ÚµØÖ·Ö´ÐÐ(ÓëMCS£­51Ö¸ÁÄÜÏàËÆ)¡£
Ö¸Áî¸ñʽģʽ£ºHERE   CALL    DELAY£»µ÷ÓÃÑÓʱ×Ó³ÌÐò
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡­
¡¡¡¡¡¡¡¡¡¡¡¡ DELAY MOVLW 0x80¡¡£»ÑÓʱ×Ó³ÌÐò
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡   RETLW 0
¡¡¡¡ËµÃ÷£ºµ÷ÓÃÖ¸ÁîÖ´ÐÐÇ°£¬PC=µØÖ·HERE
¡¡¡¡µ÷ÓÃÖ¸ÁîÖ´Ðкó£¬PC=µØÖ·DELAY(±êºÅ)£¬¶ÑÕ»Ö¸ÕëTOS=HERE£«1(·µ»ØµØÖ·)¡£
¡¡¡¡ÊµÀý£º¼ûÏÂÌõÖ¸ÁîµÄʵÀý
¡¡¡¡12ª±¼Ä´æÆ÷ÄÚÈÝÈ¡·´Ö¸Áî
¡¡¡¡Ö¸Áî¸ñʽ£ºCOMF¡¡f£¬d
¡¡¡¡ËµÃ÷£ºCOMFÊÇComplement fµÄËõд¡£ÆäÖÐd=1ʱ£¬²Ù×÷(f)¡úf£»d=0ʱ£¬²Ù×÷(f)¡úw¡£
¡¡¡¡¹¦ÄÜ£º¼Ä´æÆ÷fÄÚÈÝÈ¡·´ºóËÍÈëW(d=0)»òf×ÔÉí(d=1)¡£
¡¡¡¡ÊµÀý£º¡¡   ORG ¡¡  0x1FF
¡¡¡¡¡¡¡¡¡¡¡¡  GOTO    MAIN
¡¡¡¡¡¡¡¡¡¡¡¡  ORG ¡¡  0
¡¡¡¡  DELAY    ¡­
¡¡¡¡  MAIN     MOVLW  0       £»Ö÷³ÌÐò¿ªÊ¼
¡¡¡¡  ¡¡¡¡¡¡  TRTS     5       £»ÉèÖÃRA¿ÚΪÊä³ö
         ¡¡¡¡¡¡   BCF      5£¬0¡¡ £»ÖÃRA¿Ú0λΪ0
¡¡¡¡  LOOP ¡¡  CALL    DELAY£»ÉÁ¶¯ÑÓʱ
¡¡¡¡¡¡¡¡¡¡¡¡   COMF    5ª±      £»RA¿ÚÇó·´(ÁÁ¡ªÃð¡ª
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡  ÁÁ¡­¡­¿ØÖÆ)
¡¡¡¡¡¡¡¡¡¡¡¡   GOTO    LOOP  £»Ñ­»·
  ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡­
¡¡¡¡ËµÃ÷£ºÉÏÊöÖ¸ÁîÊÇÒ»ÖÖPIC16C54 LED·¢¹â¿ØÖÆʵÑ鲿·Ö³ÌÐò¡£ÆäÖÐÑÓʱ×Ó³ÌÐòDELYδÁгö£¬µ«²»Ó°Ïì±¾ÌõÖ¸ÁîµÄʶ¶Á¡£³ÌÐòÖеÄÖ÷³ÌÐò¿ªÊ¼µÄÈýÌõÖ¸Á¾ùÒѽéÉܹý£¬½ô¸ú×ŵÄCALLÖ¸ÁîÊǵ÷ÓÃÖ´ÐÐ×Ó³ÌÐò£¬ÆäÈë¿ÚµØַΪ±êºÅDELAY¡£×Ó³ÌÐòÖ´ÐнáÊøºó£¬ÓÖÖ´ÐÐCOMF 5µÄLED·¢¹âÁÁ¡ªÃð¡­ÁÁ¡ªÃð¡­¡­¿ØÖÆÖ¸Áî¡£ºóÃæÒ»ÌõGOTO LOOPÖ¸ÁîÊÇ´ïµ½LEDÑ­»·µãÁÁÄ¿µÄ¡£
¡¡¡¡13ª±ÃæÏòλµÄ²Ù×÷Ö¸Áî(¹²4Ìõ£¬PIC¸ß¼¶²úÆ·¶àÔöÒ»Ìõ)
¡¡¡¡¸ÃÀàÖ¸Áî³ýÒ»ÌõλÇåÁãÍ⣬ÁíÓÐÒ»Ìõ¼Ä´æÆ÷fλbµÄÖÃ1Ö¸ÁîºÍÁíÍâÁ½ÌõλÌø²½Ö¸Áî(PIC¸ß¼¶²úÆ·¶àÔöÒ»ÌõfµÄbλ´¥·¢×ª»»Ö¸Áî)¡£
¡¡¡¡(1)λÖÃ1Ö¸Áî¡£Ö¸Áî¸ñʽ BSF¡¡f£¬b
¡¡¡¡ËµÃ÷£ºBSFÊÇBit Set fµÄËõд¡£FºÍbµÄÒâÒåÓëÇ°ÊöÏàͬ£¬¸ÃÌõÖ¸ÁîµÄ¹¦ÄÜÊǽ«¼Ä´æÆ÷fµÄbλÖÃ1¡£
¡¡¡¡(2)λ²âÊÔ¡¢ÎªÁã¼äÌøÖ¸Áî¡£Ö¸Áî¸ñʽ BTFSC   f£¬b
¡¡¡¡ËµÃ÷£ºBTFSCÊÇBit Test£¬Skip if ClearµÄËõд¡£Ö¸ÁÄÜÊDzâÊԼĴæÆ÷fλ¡°b¡±£¬ÈçΪ0£¬Ìø¹ýÏÂÒ»ÌõÖ¸ÁΪ1˳ÐòÖ´ÐУ¬¼´µ±f(b)=0ʱ£¬¾Í²»Ö´Ðе±Ç°Ö¸Áî¶øÖ´ÐÐÏÂÒ»ÌõÖ¸Áî(¼äÌø)£¬¼´ÓÃÒ»Ìõ¿ÕÖ¸ÁîNOP´úÌæËü£¬ËùÒÔ¸ÃÌõÖ¸ÁîÕ¼ÓÃ2¸öÖ¸ÁîÖÜÆÚ¡£
¡¡¡¡(3)λ²âÊÔ¡¢Îª1¼äÌøÖ¸Áî¡£Ö¸Áî¸ñʽ BTFSS¡¡f£¬b
¡¡¡¡ËµÃ÷£ºBTFSSÊÇBit Test£¬Skip if SetµÄËõд¡£ÆäÖ¸ÁîµÄÂß¼­¹¦ÄÜÓëÉÏÌõÏà·´£¬Î»²âÊÔf(b)=1¾Í¼äÌøÖ´ÐУ¬f(b)=0˳ÐòÖ´ÐС£
¡¡¡¡ÉÏÃæ½éÉܵÄPIC 8λµ¥Æ¬»ú»ã±àÓïÑÔÖ¸Áî½öÊDz¿·ÖÖ¸Á´ËÍ⻹ÓÐÑ­»·×ó¡¢ÓÒÒÆÖ¸ÁWºÍ¼Ä´æÆ÷fÏà¡°¼Ó¡±¡¢Ïà¡°Ó롱ָÁîºÍ½øÈë˯Ãß·½Ê½µÈÖ¸Áî¡£¼øÓÚ±¨Ö½°æÃæµÄÏÞÖÆ£¬²»ÔÚÕâÀïÒ»Ò»½éÉÜ£¬½ñºó½«ÔÚ³ÌÐòµÄÓ¦ÓÃÊÔÑéÖÐÔÙ×÷²¹³ä˵Ã÷¡£¡¡¡¡«ù³É¶¼¡¡Ê·Îª¡¡
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ֪ʶ¾ºÈüÊÔÌ⣺
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡13ª±Çë°ÑÏÂÁгÌÐò¼Ó×¢ÊÍ£¬³ÌÐòÖеġ°5¡±´ú±íRA(F5)¿Ú£»¡°6¡±´ú±íRB(F6)¿Ú¡£
¡¡¡¡CLRW      ¡¡¡¡£»MOVLW OFFH
¡¡¡¡TRIS   5  ¡¡       TRIS¡¡  6
¡¡¡¡BCF   5£¬1 ¡¡ ¡¡BCF¡¡   5ª±0
¡¡¡¡BSF   5£¬0¡¡¡¡¡¡ ¡­¡¡¡¡ÓÒÅŽÓ×ó¡¡¡¡¡¡¡¡
¡¡

¡¡

      

ÒÔÉÏ×ÊÁÏÀ´×ÔÓÚ»¥ÁªÍø£¡±à¼­ÕûÀí£ºÎåÒ»µç×Ó¼ÓÓÍÕ¾£»ÍøÖ·£ºhttp://www.51dz.com
»¶Ó­¹âÁÙÎåÒ»µç×ÓÉ̳Ç!Ãâ·Ñѧϰµç×Ó¼¼Êõ£¬ÃæÏòÈ«¹úÓʹºµç×ÓÔª¼þ¡¢ÊµÑéÌ×¼þ!