全国大学生电子设计大赛-两个步进电机画图

本文提供了一段使用keilc51编译的C语言程序,通过单片机控制两个步进电机来绘制包括玫瑰线、圆、星形线和正弦线在内的图形。程序中包含了步进电机的步距计算、延时函数以及根据不同图形轨迹的运动控制逻辑。

这是两个步进电机画图的源程序,用keilc51编译,用单片机实现的

 

#include<reg52.h>
#include<math.h>

sbit cp1 = P1^0;
sbit cw1 = P1^1;
sbit cp2 = P1^2;
sbit cw2 = P1^3;

float step(float x1,float y1,float x2,float y2)
{
    float buj;
 float chd1;
 chd1 = sqrt((x1) * (x1) + y1 * y1) - sqrt((x2) * (x2) + y2 * y2);
  
 buj = chd1 / 0.01;
    return buj;
}

void delay(int i)
{
 while(i --);
}

void buj(float buj1,float buj2)
{
    int i,j,y,b;
  
    if(buj1 < 0)
 {
  cw1 = 1; 
  buj1 = -buj1;
 }
 else
  cw1 = 0;
  
 if(buj2 < 0)
 {
  cw2 = 1;
  buj2 = -buj2; 
 }
 else
  cw2 = 0;
   
    if(buj1 > buj2){
        b = buj1/buj2;
        y = buj1 - b * buj2;
        for(i = 1; i <= buj2; i ++){
            for(j = 1; j <= b; j ++){
                cp1 = 0;
                delay(100);
                cp1 = 1;
                delay(100);
            }
            cp2 = 0;
            delay(100);
            cp2 = 1;
            delay(100);  
       
            if(y != 0){
               
                cp1 = 0;
                delay(100);
                cp1 = 1;
                delay(100);
           

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值