#include<at89x52.h>
typedef unsigned int uint16_t;
typedef unsigned char uint8_t;
//sbit left_motor = P1^0; //×óµç»ú½Ó¿Ú
//sbit right_motor = P1^1; //ÓÒµç»ú½Ó¿Ú
sbit left_motor = P2^0; //×óµç»ú½Ó¿Ú
sbit right_motor = P2^1; //ÓÒµç»ú½Ó¿Ú
void delay_nus(uint16_t i) //ÑÓʱ:i>=12 ,iµÄ×îСÑÓʱµ¥12 us
{
i=i/10;
while(--i);
}
void delay_nms(uint16_t n) //ÑÓʱn ms
{
n=n+1;
while(--n)
delay_nus(900); //ÑÓʱ 1ms,ͬʱ½øÐв¹³¥
}
void motor_motion(uint16_t left_val, uint16_t right_val, uint8_t count)
{
uint8_t i;
for(i=0; i<count; i++)
{
left_motor = 1;
delay_nus(left_val);
left_motor = 0;
right_motor = 1;
delay_nus( right_val );
right_motor = 0;
delay_nms(20); //Êä³öÒ»¶¨ÊýÁ¿µÄPWM²¨ÐÎ
}
}
int main()
{
motor_motion(1700,1300,50);
while(1)
{
while(1)
{
left_motor
仿真控制电机Proteus8.9+Keil5
最新推荐文章于 2025-03-12 16:18:17 发布