找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4627|回復(fù): 1
收起左側(cè)

LPC2124+L297+L298+驅(qū)動(dòng)電機(jī)proteus仿真

[復(fù)制鏈接]
ID:137190 發(fā)表于 2016-9-4 21:36 | 顯示全部樓層 |閱讀模式
0.png

  1. /****************************************************************************
  2. * File:Main.C
  3. * 功能:
  4. ****************************************************************************/
  5. #include  "config.h"

  6. /*******************************************************************************
  7. *名稱:IRQ_Eint0()
  8. *功能:外部中斷EINT0服務(wù)函數(shù)
  9. *******************************************************************************/
  10. void  __irq  IRQ_Eint0(void)
  11. {  uint32   i;
  12.    
  13.    i=VICIRQStatus;                //讀出VICIRQStatus的值
  14.    i=IO0SET;                      //讀取當(dāng)前P0.5控制值
  15.    if((i&1<<5)==0)                //控制P0.5輸出
  16.    { IO0SET=1<<5;
  17.    }
  18.    else
  19.    { IO0CLR=1<<5;
  20.    }
  21.    while((EXTINT&0x01)!=0)        //等待外部中斷信號(hào)恢復(fù)為高電平
  22.    { EXTINT=0x01;                  //清除EINT0中斷標(biāo)志
  23.    }
  24.    VICVectAddr=0x00;
  25. }
  26. /*******************************************************************************
  27. *名稱: IRQ_Eint1()
  28. *功能: 外部中斷EINT1服務(wù)函數(shù)
  29. *******************************************************************************/
  30. void  __irq IRQ_Eint1(void)
  31. { uint32  i;

  32.   i=VICIRQStatus;                   //讀出VICIRQStatus的值
  33.   
  34.   i=IO0SET;                         //讀出當(dāng)前P0.4控制值
  35.   if((i&1<<4)==0)                   //控制P0.4控制值
  36.   { IO0SET=1<<4;
  37.   }
  38.   else
  39.   { IO0CLR=1<<4;
  40.   }
  41.   while((EXTINT&0x02)!=0)           //等待外部中斷信號(hào)恢復(fù)為高電平
  42.   { EXTINT=0x02;                    //清除EINT1中斷標(biāo)志
  43.   }
  44.   
  45.   VICVectAddr=0x00;
  46. }
  47. /*******************************************************************************
  48. *名稱:main()
  49. *功能:初始化外部中斷0,外部中斷1及I/O連接等
  50. *******************************************************************************/
  51. int main(void)
  52. {
  53.   PINSEL0=0x20080000;               //設(shè)置I/O口工作模式,P0.14設(shè)置為EINT1
  54.   PINSEL1=0x00000001;               //P0.16設(shè)置為EINT0
  55.   TargetInit();   
  56.   IO0DIR=1<<5|1<<4|1<<9;            //設(shè)置P0.4,P0.5和P0.9為輸出,其它I/O為輸入
  57.   IO0CLR=1<<5|1<<4;
  58.   
  59.   IO0SET=1<<5|1<<4;
  60.   VICIntSelect=0x00000000;          //設(shè)置所有通道為IRQ中斷
  61.   VICVectCntl0=0x2E;                //EINT0通道分配到IRQ Slot0,即優(yōu)先級(jí)最高
  62.   VICVectAddr0=(int)IRQ_Eint0;      //設(shè)置EINT0向量地址
  63.   VICVectCntl1=0x2F;
  64.   VICVectAddr1=(int)IRQ_Eint1;
  65.   VICIntEnable=0x0001C000;           //使能EINT0,EINT1中斷
  66.   EXTINT=0x07;                       //清除外部中斷

  67.   while(1)                           //等待中斷
  68.   {
  69.       
  70.     PWMMR0=Fpclk/4;                  //設(shè)置PWM周期
  71.     PWMMR6=Fpclk/4/2;                //設(shè)置PWM占空比
  72.     PWMLER=0x41;                     //PWMMR0,PWMMR6鎖存,更新PWM占空比
  73.   }

  74. }
復(fù)制代碼


0.png

全部資料下載: LPC2124 L297 L298 驅(qū)動(dòng)電機(jī)proteus仿真.rar (201.42 KB, 下載次數(shù): 59)

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:138626 發(fā)表于 2016-9-6 17:41 | 顯示全部樓層
好東西頂起來(lái)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表