基于单片机的步进电机控制器设计(八按键) 下载本文

内容发布更新时间 : 2024/5/9 7:48:53星期一 下面是文章的全部内容请认真阅读。

else if(flag==1) A1=0xf9;//显示1 else

A1=0x3f;//显示— A2=0x3f; A3=speed/10; A4=speed;

P0=A1;//第一个数码管显示正反转 P2=0x01; delay(1); P2=0x00;

P0=A2;//第二个自定义显示— P2=0x02; delay(1); P2=0x00;

P0=table[A3];//第三个显示转速等级十位 P2=0x04; delay(1); P2=0x00;

P0=table[A4];//第四个显示转速等级个位 P2=0x08; delay(1); P2=0x00; }

void key()//按键判断 {

if(key_reset==0)

{ delay(5); if(key_reset==0) reset();} { delay(5); if(key_z==0) { delay(5); if(key_f==0)

{ flag=1; speed=10; {flag=0;speed=10;

while(key_z==0);}}

if(key_z==0)

if(key_f==0)

{

while(key_f==0);}}

if(key_jia==0)

delay(5); if(key_jia==0) { delay(5); if(key_jian==0)

{ speed--;

if(speed<=0) speed=0;

while(key_jian==0);}} { speed++;

if(speed==21) speed=20;

while(key_jia==0);}}

if(key_jian==0)

if(key_dan==0) {

delay(5); if(key_dan==0) style=1;

while(key_dan==0);}

if(key_shuang==0) {

delay(5);

if(key_shuang==0) style=2;

while(key_shuang==0);}

if(key_hun==0) {

delay(5); if(key_hun==0) style=3;

while(key_hun==0);} }

void dispose()//控制电机旋转的快慢 {if(speed==0) flag=2; else

maichong=450-speed*20;}

void zhuandong(void) {uint i,j;

if(speed>0&&speed<=20) if(flag!=2) {{if(style!=0) {if(style==1) {for(j=0;j<4;j++) {if(flag==0)

void main() {reset(); display(); for(;;) {key();

dispose(); if(flag==2)

display(); P1=motorCode[j]; else

P1=unmotorCode[j]; for(i=0;i

P1=unmotorCode1[j]; for(i=0;i

{for(j=0;j<8;j++) {if(flag==0) P1=motorCode2[j]; else

P1=unmotorCode2[j]; for(i=0;i

else

zhuandong(); }}