#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 = 1;
delay_nus(1700);
left_motor = 0;
right_mot
仿真控制电机Proteus8.9+Keil5
最新推荐文章于 2024-09-06 22:41:58 发布
本文介绍如何使用Proteus8.9仿真工具配合Keil5 IDE,进行51单片机的电机控制实践。通过C语言编程,详细阐述了仿真过程及关键代码实现,帮助读者掌握单片机控制电机的基础技能。

最低0.47元/天 解锁文章
3048

被折叠的 条评论
为什么被折叠?



