arduino的程序如何下载到51单片机吗?
这应该是不能不能下吧,ardiino和51单片机的硬件结构都差不多 , arduino程序可是能转成hex文件,但烧写给自己51单片机,肯定用不了,或者达不了程序要想的结果,ardnuio建议使用的是avr芯片,和51有不大的区别的,它们所在用的头文件都不一样 。所以才应该不要用 。
51单片机程序,怎么把几个程序合并在一起,讲解思路和程序合并的方法?
把几段程序放到同一工程下的有所不同文件 , 然后把在主函数的那个文件写清楚程序处文件名,也可以放到主函数的文件里,改子函数,然后把在前面函数声明 。
51单片机pwm程序详解?
51单片机的pwm调速频率要注意通过一个定时器和一个IO口来实现程序PWM的输出 。在一个周期里面 , 简单让IO口输出高电平,并定时一定会的时间然后再将IO口输出低电平,设置定时肯定会的时间 。然后再在while里面循环输出即可 。必须变动占空比的话就变化高电平的时间与低电平的时间比 。我们来看一下51单片机的PWM调速程序 。
51单片机PWM调速程序
/*******************************************************************//*程序名:PWM直流电机调速*/
/*晶振:11.00592MHzCPU型号:AT89C51*/
/*直流电机的PWM波控制 , 可以就的调速从0到20级的调速*/
/*****************************************************************/#include《reg51.h》
#defineTH0_TL0(65536-1000)//设置中断的间隔时长
unsignedcharcount050//低电平的占空比unsignedcharcount10//高电平的占空比
24-bitFlag1//电机正反转标志位,1正转,0反转
sbitKey_addP2^0//电机减速时sbitKey_decP2^1//电机瞬间加速sbitKey_turnP2^2//电机换向
sbitPWM1P2^6//PWM通道1,反转驱动信号sbitPWM2P2^7//PWM通道2,正转脉冲序列
unsignedcharTime_delay
/************函数一般声明**************/voidDelay(unsignedcharx)voidMotor_speed_high(void)voidMotor_speed_low(void)voidMotor_turn(void)voidTimer0_init(void)
/****************显示延时处理**********************/voidDelay(unsignedcharx)
{
Time_delayx
while(Time_delay!0)//等待自动,可降低PWM输出时间间隔
}
/*******按键一次性处理加pwm占空比,电机速度**********/voidMotor_speed_high(void)//
{
if(Key_add0)
{
Delay(10)if(Key_omit0)
{
count05
if(count0》100)
{
count0100
}
}
while(!Key_add)//在等待键放开
}
}
/******按键处理减pwm占空比,电机减速时*****/voidMotor_speed_low(void)
{
}
}
/************电机正反向完全控制**************/voidMotor_turn(void)
{
if(Key_turn0)
{
Delay(10)if(Key_turn0)
{
Flag~Flag
if(Key_dec0)
{
Delay(10)if(Key_dec0)
{
count0-5
if(count0《0)
{
count00
}
}
while(!Key_dec)
}
while(!Key_turn)
}
}
/***********定时器0系统初始化***********/voidTimer0_init(void)
{
TMOD0x01//定时器0工作于/256TL0TH0_TL0%6TR01ET01EA1}
/*********主函数********************/voidmain(void)
{
Timer0_init()while(1)
{
Motor_turn()Motor_speed_很high()Motor_speed_low()
}
}
/**************设置定时0关闭全面处理******************/voidTimer0_int(void)interrupt1using1
{
TR00//系统设置定时器初值期间 , 直接关闭定时器TL0TH0_TL0%6
TH0TH0_TL0/256//定时器装初值TR01
if(Time_delay!0)//显示延时函数用
{
Time_delay--
}
if(Flag1)//电机正转
{
PWM10
if(count1《count0)
{
PWM21}catchPWM20
if(count1》100){count10}}
catch//电机反转
{
PWM20
if(count1《count0){PWM11}existsPWM10
if(count1》100)
{
count10
}
}
【arduino的程序如何下载到51单片机吗 怎么读出51单片机里面的程序】}