• 大小: 45KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: 其他
  • 标签: proteus  8086  8255  

资源简介

利用 8255 实现对步进电机的控制,编写程序,用四路 IO 口实现环形脉冲的分配, 控制步进电机按固定方向连续转动。同时,要求按下 A 键时,控制步进电机正转;按下 B 键盘时,控制步进电机反转,最后有一个停止按钮。

资源截图

代码片段和文件信息

/* Main.c file generated by New Project wizard
 *
 * Created:   周一 12月 19 2016
 * Processor: 8086
 * Compiler:  Digital Mars C
 *
 * Before starting simulation set Internal Memory Size 
 * in the 8086 model properties to 0x10000
 */
#define base8255 8000H //设定值

#define PA base8255+00H*2 //PA口
#define PB base8255+01H*2 //PB口
#define PC base8255+02H*2 //PC口(本次未使用)
#define COM8255 base8255+03H*2 //工作方式

void outp(unsigned int addr char data) {
  __asm {
    mov dx addr
    mov al data
    out dx al
  }
}

// Read a byte from the specified I/O port
char inp(unsigned int addr) {
  char result;
  
  __asm {
    mov dx addr
    in al dx
    mov result al
  }
  
  return result;
}

void delay(){
   for(int i=0;i<50;++i){
      for(int j=0;j<120;++j)
 ;
   }
}

void main(void)
 {
    char xiangxu[8]={02H06H04H0CH08H09H01H03H};
    char tmpjudge;
    int i=0;
    //设置工作方式:10010000(特征位=1,A组0方式=00,PA输入=1,PC上半没用到=0,B组0方式=0,PB输出=0,PC下半没用到=0)
    outp(COM8255090H);
   while (1){
      //读PA口
      tmp=inp(PA);
      judge=(tmp&0FH);
      if(judge==0EH){ //顺时针
 outp(PBxiangxu[i]);
 if(i<7)++i;
 else i=0;
      }
      else if(judge==0DH){  //逆时针
 outp(PBxiangxu[i]);
 if(i>0)--i;
 else i=7;
      }
      else if(judge==0BH){  //停止
 outp(PB00H);
      }
      delay();
   }
 }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-12-19 19:45  Exp6_motor\
     目录           0  2016-12-19 18:47  Exp6_motor\8086\
     目录           0  2016-12-19 19:39  Exp6_motor\8086\Debug\
     文件        2060  2016-12-19 19:39  Exp6_motor\8086\Debug\Debug.exe
     文件        1158  2016-12-19 19:39  Exp6_motor\8086\Debug\main.obj
     文件        1296  2016-12-19 19:39  Exp6_motor\8086\Debug\Makefile
     文件         190  2016-12-19 19:39  Exp6_motor\8086\Debug\rtl.obj
     文件        1446  2016-12-19 19:39  Exp6_motor\8086\main.c
     文件         561  2016-12-19 16:09  Exp6_motor\8086\rtl.asm
     文件       20428  2016-12-19 18:47  Exp6_motor\Backup Of Exp6_motor.pdsbak
     文件       19749  2016-12-19 19:45  Exp6_motor\Exp6_motor.pdsprj
     文件        4538  2016-12-30 21:27  Exp6_motor\Exp6_motor.pdsprj.ZALUS.Ben Zalus.workspace

评论

共有 条评论