《直流电机控制C语言程序》由会员分享,可在线阅读,更多相关《直流电机控制C语言程序(7页珍藏版)》请在人人文库网上搜索。
1、*/*/* */* 电子兴趣小组 */*/* */* 单片机组 */* */*/*/* */* 直流电动机控制 C语言程序 * */* */*/*/*功能:运行速度设置为40转/秒,经过若干秒后,直流电机转速慢慢下降到运行速度,以设定的速度运行。接线:1、把7279阵列式键盘的J9四只短路帽打在上方,J10打在VCC处2,用8P排线将JD7和八位动态数码显示的JD11相连,JD8和JD12相连。 2、最小系统的1.0口接电机单元的Control口,最小系统的T1接电机单元的PulseOut。*/#include /头文件定义#define uint unsigned int /宏定义#defi。
2、ne uchar unsigned char#define Pwm CCAP1Hsbit HD7279_cs=P27; / 7279片选脚sbit HD7279_clk=P16; / 7279时钟脚sbit HD7279_dat=P17; / 7279数据脚sbit Control =P10;uchar Time0_num; / 记录定时器0中断次数uint Hz;/ 保存频率变量bit Time0_bit;/ 显示频率标示uchar i,Str2 ; / 显示频率中间变量/*函数名称:delayms;函数功能:延时z毫秒;形 参:z (延时时间参数)*/void Delayms(int z)。
3、uint x,y;for(x=z;x0;x-)for(y=11;y0;y-);/*函数名称:Delay;函数功能:延时函数;形 参:z (延时时间参数)*/void Delay(uint z) while(z-);/*函数名称:Write_Com_7279函数功能:向7279芯片写一条纯指令形 参:com 写进7279芯片的指令*/void Write_Com_7279(uchar com)uchar i;HD7279_cs=0;HD7279_clk=0;for(i=0;iZS)Pwm+=(Hz-ZS)*Kp;if(Hz255)num=255;if(num0)num=0;Pwm=num;PWM。
4、=num;e2=e1;e3=e2;for(i=0;i2;i+) / 分解数据显示Stri=Hz%10;Hz/=10;Write_Dis_7279(0x80+i,Stri); / 转速显示void Time0() interrupt 1TH0=0x4c; TL0=0x00;/ 50MS 初值Time0_num+;if(Time0_num=10)/ 一秒到,读计数器值Time0_num=0;Time0_bit=1;Hz=TH1;Hz=8;Hz|=TL1;TL1=0;TH1=0; / 读取计数器值 Hz/=6; / 12个脉冲为一转PID_PID();void Int0() interrupt 0u。
5、char num;Key_num=Read_Key_7279(); / 读取按键值if(Key_num=12)Set_num=1;TR0=0; TR1=0;Write_Com_7279(0xa4);Write_Dis_7279(0x87,0x0a); Write_Dis_7279(0x81,ZS/10); Write_Dis_7279(0x80,ZS%10); if(Key_num=13)Set_num=2;TR0=0; TR1=0;Write_Com_7279(0xa4);Write_Dis_7279(0x87,0x0a); Write_Dis_7279(0x81,ZS/10); Write。
6、_Dis_7279(0x80,ZS%10); if(Key_num=15)Set_num=0;TR0=1; TR1=1;Write_Com_7279(0xa4);Write_Dis_7279(0x82,0x0e); / 转速显示if(Set_num=1)if(Key_num=0)ZS+;Write_Dis_7279(0x81,ZS/10); Write_Dis_7279(0x80,ZS%10);if(Key_num=1)ZS-;Write_Dis_7279(0x81,ZS/10); Write_Dis_7279(0x80,ZS%10);if(Set_num=2)if(Key_num=0)Kp+=0.1;if(Key_num=1)Kp-=0.1;num=Kp*10;Write_Dis_7279(0x81,num/10+0x80); Write_Dis_7279(0x80,num%10。