STC89C52驱动直流电机基础代码
- /******************************************************/
- ** 作业4:步进的驱动 **
- ** 班 级:电气15-3(创新)班 **
- ******************************************************/
- #include <reg52.h>
- #include <intrins.h>
- typedef unsigned char uchar;
- typedef unsigned int uint; //宏定义
- code uchar bujintable[]={1,2,4,8};//步进电机一相励磁相序表
- void delay(uchar z)//延时程序
- {
- uchar x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main()
- {
- uchar i;
- while(1)
- {
- for(i=0;i<4;i++)
- {
- P1=bujintable[i];
- delay(20);
- }
- }
- }
复制代码
- /******************************************************/
- ** 作业4:舵机的驱动 **
- ** 班 级:电气15-3(创新)班 **
- ** 学 号:15501036 **
- ******************************************************/
- #include <reg51.h>
- typedef unsigned char uchar; //宏定义()
- typedef unsigned int uint;
- sbit duoji=P1^7;
- sbit s2=P3^4; //启动
- uint unm=0;
- void delay(uchar z)
- {
- uchar x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- /****100微妙执行一次中断**********/
- /*****100扫描一次*****************/
- void tiem() interrupt 1
- {
- TH0=(65536-100)/256;
- TL0=(65536-100)%256;//100微妙
- unm++;
- }
- void keycan()
- {
- if(unm==150) //15毫秒 等15毫秒后为高,也就是15毫秒的时间为低电平
- {
- duoji=1;
- }
- if(unm==200) //5毫秒 等加到200时,也就是5毫秒(5毫秒这段时间为高电平)
- {
- duoji=0;
- unm=0;
- while(1); //由低到高转换完后程序停止
- }
- }
- void main()
- {
- duoji=0; //一开始舵机为低电平
- TMOD=0X01;
- TH0=(65536-100)/256;
- TL0=(65536-100)%256;
- EA=1; //开中断
- ET0=1;
- TR0=1;
- while(1)
- {
- keycan();
- }
- }
复制代码
- /******************************************************/
- ** 作业4:直流电机的驱动 **
- ** 班 级:电气15-3(创新)班 **
- ******************************************************/
- #include <reg51.h>
- typedef unsigned char uchar; //宏定义()
- uchar jia,jian;
- sbit zhiliu=P1^7;
- sbit s2=P3^4; //快
- sbit s3=P3^5; //慢
- void delay(uchar z)
- {
- uchar x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void key()
- {
- if(s2==0)
- {
- delay(5);
- if(s2==0)
- {
- jian--;jia++;
- if(jian==0){jian=100;jia=0;}
- }
- while(!s2);
- }
- }
- void main()
- {
- jia=0; //加
- jian=100;//减
- while(1)
- {
- key();
- zhiliu=1;
- delay(jian);
- zhiliu=0;
- delay(jia)
- }
- }
-
复制代码
完整的Word格式文档51黑下载地址:
作业4:直流步进舵机的驱动.docx
(3.05 MB, 下载次数: 28)
|