一、51单片机突然不能下程序了?
51单片机下载不进程序,原因很多。
一是操作问题,没有按正确方法操作,比如STC提供的下载软件,点击下载后再开单片机电源才行。
二是串囗问题,包括电脑串口和单片机串口以及串口线,三者之一出了问题都无法下载。
三是单片机问题,包括接触不良,单片机损坏以及一些设置。
二、51单片机程序多大?
要看编写的内容是多少,最大的可以达到64kb。
三、51单片机CAN通讯程序?
51单片机一般不带can口的,pic单片机或者飞思卡尔单片机一般是内置can口的,没有can口也不要紧,采用sja1000配上82c250就行了,通讯程序我有需要请给邮箱
四、51单片机pwm程序详解?
51单片机的pwm调速频率主要通过一个定时器和一个IO口来实现PWM的输出。在一个周期里面,首先让IO口输出高电平,并定时一定的时间然后再将IO口输出低电平,定时一定的时间。然后在while里面循环输出即可。需要改变占空比的话就改变高电平的时间与低电平的时间比。我们来看看51单片机的PWM调速程序。
51单片机PWM调速程序
/*******************************************************************/ /* 程序名:PWM直流电机调速 */
/* 晶振:11.00592 MHz CPU型号:AT89C51 */
/* 直流电机的PWM波控制,可以直接的调速从0到20级的调速 */
/*****************************************************************/ #include《reg51.h》
#define TH0_TL0 (65536-1000)//设定中断的间隔时长
unsigned char count0 = 50;//低电平的占空比 unsigned char count1 = 0;//高电平的占空比
bit Flag = 1;//电机正反转标志位,1正转,0反转
sbit Key_add=P2 ^ 0; //电机减速 sbit Key_dec=P2 ^ 1; //电机加速 sbit Key_turn=P2 ^ 2; //电机换向
sbit PWM1=P2^6;//PWM 通道 1,反转脉冲 sbit PWM2=P2^7;//PWM 通道 2,正转脉冲
unsigned char Time_delay;
/************函数声明**************/ void Delay(unsigned char x); void Motor_speed_high(void); void Motor_speed_low(void); void Motor_turn(void); void Timer0_init(void);
/****************延时处理**********************/ void Delay(unsigned char x)
{
Time_delay = x;
while(Time_delay != 0);//等待中断,可减少PWM输出时间间隔
}
/*******按键处理加pwm占空比,电机加速**********/ void Motor_speed_high(void)//
{
if(Key_add==0)
{
Delay(10); if(Key_add==0)
{
count0 += 5;
if(count0 》= 100)
{
count0 = 100;
}
}
while(!Key_add);//等待键松开
}
}
/******按键处理减pwm占空比,电机减速*****/ void Motor_speed_low(void)
{
}
}
/************电机正反向控制**************/ void Motor_turn(void)
{
if(Key_turn == 0)
{
Delay(10); if(Key_turn == 0)
{
Flag = ~Flag;
if(Key_dec==0)
{
Delay(10); if(Key_dec==0)
{
count0 -= 5;
if(count0 《= 0)
{
count0 = 0;
}
}
while(!Key_dec );
}
while(!Key_turn);
}
}
/***********定时器0初始化***********/ void Timer0_init(void)
{
TMOD=0x01; //定时器0工作于方式1 TH0=TH0_TL0/256; TL0=TH0_TL0%256; TR0=1; ET0=1; EA=1; }
/*********主函数********************/ void main(void)
{
Timer0_init(); while(1)
{
Motor_turn(); Motor_speed_high(); Motor_speed_low();
}
}
/**************定时0中断处理******************/ void Timer0_int(void) interrupt 1 using 1
{
TR0 = 0;//设置定时器初值期间,关闭定时器 TL0 = TH0_TL0 % 256;
TH0 = TH0_TL0 / 256 //定时器装初值 TR0 = 1;
if(Time_delay != 0)//延时函数用
{
Time_delay--;
}
if(Flag == 1)//电机正转
{
PWM1 = 0;
if(++count1 《 count0)
{
PWM2 = 1; } else PWM2 = 0;
if(count1 》= 100) { count1=0; } }
else //电机反转
{
PWM2 = 0;
if(++count1 《 count0) { PWM1 = 1; } else PWM1 = 0;
if(count1 》= 100)
{
count1=0;
}
}
}
五、怎样读51单片机内程序?
我们在读程序之前呢,首先要明白这么一点内容,对读程序和写程序会有很大的帮助,那就是在51单片机中,每条程序语句都是逐个执行的,因为51单片机是单核CPU,一次只能处理一条指令。不可能一次执行2个甚至跳着执行。C语言中,有且只有一个main函数,也就是主函数,程序永远都是从这里开始执行的,所以读程序也是从main函数开始往后读,读到子程序的话调用,再去看main函数前的子程序声明,或者程序后面的子程序内部的内容。
六、51单片机程序怎么上传?
上传51单片机程序需要以下步骤:
编写C语言程序,将程序保存为.hex文件格式。
将单片机连接到计算机,可以使用串口连接或者USB连接。
打开下载器软件,例如STC-ISP,选择对应的单片机型号。
在下载器软件中设置相关参数,包括端口、波特率等信息。
打开.hex文件,加载程序到下载器软件中。
点击下载按钮,下载程序到单片机中。
下载完成后,断开单片机与计算机的连接,将单片机通电,程序即可运行。
需要注意的是,在上传51单片机程序时,需要根据具体的单片机型号和下载器软件进行相关设置和操作。如果是初学者,可以查看相关的教程或者视频进行学习。
七、51单片机如何烧录程序?
51单片机烧录程序的具体方法是:
1. 准备好51单片机开发板和usbisp烧录器。
2. 将usbisp烧录器连接到电脑上,并从烧录器制造商网站下载并安装烧录器驱动程序。
3. 打开烧录软件,设置预处理器选项、目标芯片型号、烧录地址等参数,然后载入需要烧录的程序代码,生成hex文件。
4. 将hex文件导入烧录软件,检查烧录选项,如芯片类型是否正确等,并确保烧录器与目标芯片的引脚相连正确。
5. 点击开始烧录按钮,等待软件提示烧录成功或失败。
总之,51单片机的烧录过程相对简单,只要掌握好必要的步骤即可轻松完成。
八、51单片机怎么输入程序?
要输入51单片机的程序,首先需要使用一个集成开发环境(IDE)来编写代码。常用的IDE有Keil C51和SDCC等。在IDE中,你可以使用C语言或汇编语言编写程序。编写好程序后,将其保存为.c或.asm文件。
接下来,你需要将程序通过编译器进行编译。编译器将源代码转换为机器语言,生成可执行文件。在IDE中,你可以选择编译选项并执行编译操作。
编译成功后,你需要将可执行文件烧录到51单片机中。这可以通过使用烧录器或编程器来完成。将烧录器连接到计算机,并将51单片机与烧录器连接。然后,选择烧录选项并执行烧录操作。
完成烧录后,你的程序就被成功地输入到了51单片机中。现在,你可以将单片机上电并运行程序了。记得在程序中设置好IO口的输入模式,以便接收外部输入信号。
九、51单片机,下载不了程序?
因为机器的下载设置被关闭,需要打开之后就可以下载
十、51单片机怎样下载程序?
51单片机下载程序主要有两种方式:串口下载和仿真下载。
串口下载通过PC与51单片机的串口进行通信,将编译好的程序下载到单片机的内部存储器(如Flash)中。
首先,将单片机与PC通过串口连接好,并设定好通信参数。
然后,在PC上使用专门的下载程序将编译好的HEX文件发送给单片机,单片机接收并存储该程序。
仿真下载通过仿真器将程序下载到单片机。
首先,将仿真器与单片机进行连接,并将仿真器与PC连接。
然后,在PC上使用相应的仿真软件,选择程序文件并开始下载,仿真器会将程序下载到单片机中。
两种方式都需要确保下载电路连接正确,并通过相应的软件进行设置和操作。