求单片机C语言高手以下是计算步进电机速度的程序,帮忙详细的解释一下越详细越好。

void DoSpeed()
{
SPEED[0]=(1000*6/RunSpeed/100)+48;
SPEED[1]=1000*6/RunSpeed%100/10+48;
SPEED[2]=1000*6/RunSpeed%10+48;
}
程序中的RunSpeed=50,在PROTEUS中仿真时,在LCD中初始速度显示值为120,是怎样算出来的?

RunSpeed应该是延时时间,用来控制速度的,RunSpeed值越大,步进电机速度越低。
SPEED[0]=(1000*6/RunSpeed/100)+48;
SPEED[1]=1000*6/RunSpeed%100/10+48;
SPEED[2]=1000*6/RunSpeed%10+48;
以上三个式子是求速度的百位,十位和个位,后面+48即加30H=48用来转换成ASCII码的。
说的对,哥们就采纳下吧~~追问

你好,能不能解释一下为什么要转换成ASCII码?谢谢

追答

用来液晶显示的,你看LCD1602的资料就知道了,它要显示的数据对应的是ASCII码,比如要显示数字1,则你必须给LCD1602写入1+48即1+30H,然后LCD1602到自己的自带的ASCII码字库里去找31H,就是数字1对应的值,然后LCD1602再显示~~

温馨提示:内容为网友见解,仅供参考
无其他回答

求单片机C语言高手以下是计算步进电机速度的程序,帮忙详细的解释一下...
RunSpeed应该是延时时间,用来控制速度的,RunSpeed值越大,步进电机速度越低。SPEED[0]=(1000*6\/RunSpeed\/100)+48;SPEED[1]=1000*6\/RunSpeed%100\/10+48;SPEED[2]=1000*6\/RunSpeed%10+48;以上三个式子是求速度的百位,十位和个位,后面+48即加30H=48用来转换成ASCII码的。说的对,哥们就采...

步进电机驱动程序C语言
\/* P3^2 接齿轮传感器 中断 *\/ sbit bujin_zx_stop = P3^3; \/* 接步进电机 ,正向到位传感器 ,为 0 停机 *\/ sbit bujin_fx_stop = P3^4; \/* 接步进电机 ,反向到位传感器 ,为 0 停机 *\/ sbit shache = P3^5; \/* 接刹车控制继电器 0 电位有效 *\/ sbit...

用单片机控制步进电机正反转,简单易懂的C语言程序,最好带注释,步进电机...
第1行设置由输入端X1作为启动,Y1输出3万个脉冲,脉冲频率600赫兹(每秒600个脉冲的频率),由于只有Y1输出脉冲,没有设置方向输出端,所以电机正转。第3、4行由X2同时启动两行作为反转,Y1输出3万个脉冲,频率为800赫兹,Y1输出脉冲的同时方向输出端Y2同时输出方向信号,因此,电机反转。反转的3万个...

求单片机AT89C52控制步进电机的程序 谢谢! 要C语言的
P1=F_Rotation[i]; \/\/输出对应的相 可以自行换成反转表格 Delay(500); \/\/改变这个参数可以调整电机转速 } } } }

关于51单片机控制步进电机编程(c语言),求助
include <reg52.h> define uchar unsigned char define uint unsigned int uchar key_l,key,i;uchar code temp1[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};uchar code temp2[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};uchar code aa[16]=" :";uchar code smg[...

用c语言程序实现步进电机的正反转加减速的编程
内容:1、本程序用于测试4相步进电机常规驱动 2、需要用跳帽或者杜邦线把信号输出端和对应的步进电机信号输入端连接起来 3、速度不可以调节的过快,不然就没有力矩转动了 4、按s4(设置成独立按键模式)可以控制正反转 ---*\/ include <reg52.h> bit Flag;\/\/定义正反转标志位 unsigned char code ...

求51单片机控制步进电机,实现其间歇运动的程序,最好要有C语言的
switch(t) \/\/ 选出几级速度 { case 1: zz=4;break;case 2: zz=3;break;case 3: zz=2;break;case 4: zz=1;break;} for(i=1;i<=8;i++) \/\/实现转动 { P1=table1[i];delayus(zz*100); \/\/100可以改,晶振不同有所不同,直到感觉转动平滑有力为止 } } else { ...

求用AT89S52单片机控制的 两相四线步进电机 的程序,要C语言的
sbit keydn=P1^1;unsigned char Steprun[8]={0x01,0x05,0x04,0x06,0x02,0x0a,0x08,0x09};\/\/控制方式 A AB B B\/A \/A \/A\/B \/B \/BA unsigned char num;void t0_isr() interrupt 1 { TH0=(65536-speed)\/256;TL0=(65536-speed)%256;StepMotor=Steprun[num];num++;num%=8;} ...

单片机步进电机控制实验 单片机步进电机控制实验报告
2、实验设备。单片机测控实验、系统步进电机控制实验模块、Keil开发环境、STC-ISP程序下载工具。3、实验内容。编制MCS-51程序使步进电机按照规定的转速和方向进行旋转,并将已转动的步数显示在数码管上。步进电机的转速分为两档,当按下S1开关时,加速旋转,速度从10转\/分加速到60转\/分。当松开开关时,...

msp430f169单片机控制步进电机和直流电机的程序
delay(int time){int i;for(i=0;i<=time;i++);} main(){int i;\/\/int count[4];\/\/ int count[9]={0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1,0xf9};\/\/高四位置为高电平,关掉点电机电源,否则三极管会烧坏;while(1){ for(i=0;i<9;i++){ P1=count[i];delay(1000);} } }...

相似回答