欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機外中斷匯編語言和C語言程序

作者:于老師   來源:本站原創   點擊數:  更新時間:2014年03月28日   【字體:

      以下兩個程序效果相同,一個使用匯編語言,一個使用C語言,從仿真效果看,c語言程序運行比較流暢。
兩個外中斷跑馬燈匯編語言程序
             ORG 0000H
             LJMP MAIN
             ORG 0003H
             LJMP WZD0
             ORG 0013H
             LJMP WZD1
             ORG 0040H
WZD0: MOV DPTR,#0220H
            MOV R3,#42D
CB0:    CLR A
            MOVC A,@A+DPTR
            MOV P1,A
            INC DPTR
            LCALL DELAY2
            DJNZ R3,CB0
            RETI
WZD1: MOV DPTR,#0220H
           MOV R3,#42D
CB1:  CLR A
          MOVC A,@A+DPTR
          MOV P2,A
          INC DPTR
          LCALL DELAY1
          DJNZ R3,CB1
          RETI
         ORG 0150H
MAIN: MOV P1,#00H
           MOV P2,#00H
           SETB EA
           SETB IT0
           SETB EX0
           CLR PX0
           SETB IT1
           SETB EX1
           SETB PX1
ST:    MOV DPTR,#0270H
          MOV R4,#17D
 DD:   CLR A
          MOVC A,@A+DPTR
          MOV P0,A
         INC DPTR
         LCALL DELAY1
         DJNZ R4,DD
         SJMP ST
         DELAY1: MOV R7,#00H
         DD1: MOV R6,#00H
         DD2: MOV R5,#01H
         DJNZ R5,$
         DJNZ R6,DD2
         DJNZ R7,DD1
         RET
 DELAY2: MOV R7,#00H
    DDD1: MOV R6,#00H
               DJNZ R6,$
               DJNZ R7,DDD1
               RET
  ORG 0220H
  DB 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
  DB 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
  DB 0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18
  DB 0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18
  DB 0x18,0x00,0x3c,0x00,0x7e,0x00,0xff,0x00
  ORG 0270H   
  DB  0xfe,0xfc,0xf8,0xe0,0xe0,0xc0,0x80,0x00
  DB  0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff, 0x00
  END
 
兩個外中斷跑馬燈C語言程序
#include<reg51.h>
int code yu[]={
     0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
  0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,
  0x00,0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18,
  0x00,0x18,0x24,0x42,0x81,0x00,0x81,0x42,0x24,0x18,
  0x00,0x18,0x00,0x3c,0x00,0x7e,0x00,0xff,0x00,0x00,
     0x00     };
int code yu1[]={
               0xfe,0xfc,0xf8,0xe0,0xe0,0xc0,0x80,0x00,
      0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
               0x00};
void delay(int ms)
{
 while(ms--)
   {
    int i;
    for(i=0;i<120;i++);
   }
}
void ddd() interrupt 0
   {
    int k;
    for(k=0;k<47;k++)
      {
    P2=yu[k];
    delay(100);
   }
   }
void dd() interrupt 1
   {
    int k;
    for(k=0;k<48;k++)
      {
    P1=yu[k];
    delay(300);
   }
   P1=0x00;
   }
void main()
{
  int n;
  IT0=0;
  EX0=1;
  PX0=1;
  IT1=0;
  EX1=1;
  PX1=0;
  EA=1;
  P1=0x00;
  P2=0x00;
  while(1)
   {
    for(n=0;n<17;n++)
     {
   P0=yu1[n];
      delay(100);
     }
   }

 

關閉窗口

相關文章