用proteus8.0仿真51單片機(jī)控制步進(jìn)電機(jī),實(shí)現(xiàn)簡單的正反轉(zhuǎn)、加減速控制。
ps. 該貼僅為獲取黑幣而法,如有雷同,多多保函
實(shí)驗(yàn)內(nèi)容- 掌握KeilC51軟件與Protues軟件聯(lián)合仿真調(diào)試的方法;
- 掌握步進(jìn)電機(jī)的工作原理及控制方法;
- 掌握步進(jìn)電機(jī)控制的不同編程方法。
電路圖
實(shí)驗(yàn)心得
這次實(shí)驗(yàn)讓我學(xué)到了通過改變延時(shí)函數(shù)的參數(shù)可以實(shí)現(xiàn)步進(jìn)電機(jī)的增減速,改變驅(qū)動(dòng)電機(jī)的數(shù)模可以實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn),中途遇到的困難不少,但在老師的指導(dǎo)下總算是完成任務(wù)。這兩次實(shí)驗(yàn)使我能更熟練地運(yùn)用微機(jī)來控制其他器件,獲益良多。
單片機(jī)源程序如下: - #include<reg52.h>
- sbit KEY0=P0^0;
- sbit KEY1=P0^1;
- sbit KEY2=P0^2;
- sbit KEY3=P0^3;
- sbit KEY4=P0^4;
- unsigned char a[]={0x01,0x02,0x04,0x08};
- unsigned char b[]={0x08,0x04,0x02,0x01};
- unsigned char c[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
- unsigned char i,s=0,f=0;
- unsigned char k=200;
- unsigned char l=4;
- void delay(unsigned int t)
- {
- unsigned char j,b;
- b=t;
- while(b--)
- {
- for (j=0;j<125;j++);
- }
- }
- void key()
- {P0=0x1f;
- if(P0!=0x1f)
- {delay(30);
- if(P0!=0x1f)
- {delay(30);
- if(KEY0==0)
- {s=1;}
- if(KEY1==0)
- {f=1;}
- if(KEY4==0)
- {s=0;
- f=0;}
- if(KEY2==0)
- {if(l>1)
- l--;}
- if(KEY3==0)
- {if(l<7)
- l++;}
- }}
- }
- void speed()
- {switch(l)
- {case 7:k=50;P1=c[l];break;
- case 6:k=100;P1=c[l];break;
- case 5:k=150;P1=c[l];break;
- case 4:k=200;P1=c[l];break;
- case 3:k=250;P1=c[l];break;
- case 2:k=300;P1=c[l];break;
- case 1:k=350;P1=c[l];break;}
- }
- void main()
- {
- while(1)
- {key();
- while(s>0)
- {speed();
- for(i=0;i<4;i++)
- {
- P2=b[i];
- delay(k);
- key();
- }
- delay(100);
- key();
- }
-
- while(f>0)
- {speed();
- for(i=0;i<4;i++)
- {
- P2=a[i];
- delay(k);
- key();
- }
- delay(100);
- key();
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
1.rar
(142.85 KB, 下載次數(shù): 352)
2018-6-13 13:52 上傳
點(diǎn)擊文件名下載附件
|