历史上的今天
今天是:2025年01月11日(星期六)
2018年01月11日 | 直流电机调速C51程序
2018-01-11 来源:eefocus
直流电机调速C51程序
#include
unsigned char code f_rotation[4]={0x02,0x04,0x08,0x10};//正转表格
unsigned char code b_rotation[4]={0x10,0x08,0x040,0x02};//反转表格
void delay(unsigned int i)//延时
{
while(--i);
}
main()
{
unsigned char i;
while(1)
{
for(i=0;i<4;i++) //4相
{
p1=f_rotation[i]; //输出对应的相 可以自行换成反转表格
delay(10000); //改变这个参数可以调整电机转速
}
}
}
10. 直流电机调速
#include
sbit key1 = p3^1;
sbit PWM = p1^5;
unsigned char cycle; //定义周期 该数字x基准定时时间 如果是10 则周期是10 x 0.1ms
unsigned char pwm_on ;//定义高电平时间
void delay(unsigned int cnt)
{
while(--cnt);
}
main()
{
unsigned char pwm_num;//定义档位
tmod |=0x01;//定时器设置 1ms in 12m crystal
th0=(65536-1000)/256;
tl0=(65536-1000)%256;//定时1ms
ie= 0x82; //打开中断
tr0=1;
cycle = 10;// 时间可以调整 这个是10步调整 周期10ms 8位pwm就是256步
while(1)
{
if(!key1)
{
delay(10000);
if(!key1)
{
pwm_num++;
if(pwm_num==4)pwm_num=0;
switch(pwm_num){
case 0:p1=0xfe;pwm_on=0;break;//高电平时长
case 1:p1=0xfd;pwm_on=4;break;
case 2:p1=0xfb;pwm_on=6;break;
case 3:p1=0xf7;pwm_on=8;break;
default:break;
}
}
}
}
}
void tim(void) interrupt 1 using 1
{
statIC unsigned char count; //
th0=(65536-1000)/256;
tl0=(65536-1000)%256;//定时1ms
if (count==pwm_on)
{
pwm = 1; //灯灭
}
count++;
if(count == cycle)
{
count=0;
if(pwm_on!=0) //如果左右时间是0 保持原来状态
pwm = 0;//灯亮
}
}
上一篇:16进制_10进制互换程序
下一篇:步进电机C51控制程序
史海拾趣
|
哪个帮我搞下这个东西,,十万着急..明天就要交差,,,时间不够 哪个帮我搞下这个东西,,十万着急 ..PROFIBUS协议在变频器上的应用,,上网查下资料..我估计时间不够,,这个工作可以帮我整理不??你也可以提高自己,,我分心就绝对不行,,..还有MODEMBUS的资料 1...PROFIBUS协议在变频器上的应用,, 2.   ...… 查看全部问答> |
|
系统的默认语言是繁体中文,在用浏览器浏览网页的时候简体中文会变成乱码。比如说浏览土豆网,其首页的文字成为乱码,进入它的一个子网又可以看到简体中文。浏览器用的是Wince 自带的。… 查看全部问答> |
|
嵌入式 单片机 嵌入式系统。 arm。都有什么不一样,它们之间是什么关系 还有C写嵌入式在哪写啊, 看了很多介绍,越看越乱。 上面写的,哪个用开发板呢。 比如我想用c语言控制开发板上的哪些灯亮,或控制 ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 13:21 编辑 我用的是2407,C语言编的程序,为什么就进不了main()函数 复位向量写的是_c_int0,没错啊 换了别的程序go main可以直接跳进main()函数 有谁知道怎么回事 … 查看全部问答> |
|
用TI的SwitcherPro 软件生成基于TPS54128的电路不能实现预期要求 我按照软件的提示输入了最小输入电压3.6V最大输入电压5.2V。输出电压3.3V输出最大电流1A。软件然后生成的电路如下。但是我由于买元器件的限制,我把电路调整如下然后我就按照这个电路做的PCB,焊接好元件后测试,实际需要输入电压到4V才有输出,并 ...… 查看全部问答> |
|
低功耗问题已经搞了一段很长时间了,没头绪,希望高手指点. 目前进入STOP模式和外部中断退出都OK. 问题是进入低功耗后电流还有10~30MA 而且是波动的. 我在进入休眠的操作是: 1.将不用的外设模块关闭电源(已关闭) 2.将无用的IO设置成上拉输入模式 ...… 查看全部问答> |
|
背景: USB设备为STM32单片机实现的设备; Linux端为Libusb实现的驱动程序; 程序数据通信已经完全没问题; 在已经完全实现数据通信的USB驱动程序上实现如下功能: 在Linux系统(ubuntu)下,可以实现USB设备唤醒主机的功能,其最终效果就和键 ...… 查看全部问答> |




