❶ 如何用上位机控制单片机停止运行
大致方法就是用PC机的串口或者USB虚拟串口和单片机通信。对PC没什么要求。在PC端的编程可能用到VB的串口控件或者用C++之类写的话要用到WINDOWS的串口通信API。网上有很多“PC机串口编程”的例子。比如你要电机走100步,你在PC机上输入“走100步”,然后PC通过串口(USB虚拟串口)发送到单片机串口,单片机解读后控制电机转动。
❷ 停止单片机运行直接断电就可以吗
是不可以的。
单片机从初始状态开始,一直执行特定的程序,直到断电关机,或者出现特殊情况导致程序终止,直接断电会让文件没有保存。
单片机是将中央处理单元、储存器、输入输出集成在一片芯片上,可以说单片机就是一台微型计算机,单片机可以按照工程师的编写可执行文件,实现各种各样的功能。
❸ 如何实现单片机自动停止工作
用一个PNP(或NPN)三极李链睁管起到开关的作用.控制单片机的电源.E极接5VCC,C极通过限流电阻接单片机的VCC,另外,加一个开关S,一端接单片机的VCC,一端加外加5VCCC.B极接单片要的P1.0口,程序唤携的思路是哪岁:按下开关S,使单片机运行程序从P1.0输出低电平,使三极管导通,单片机供电,然后放开开关S.这时,单片机内部的定时器启动,进行定时,定时1S后,中断使P1.0口输出高电平,三极管截止,单片机断电.因此,要使单片机正常运行,需要在10内对定时器重新赋值,不让其溢出产生中断
❹ 单片机低电压导致的死机
单片机一般是 COMS 结构,电源电压范围已经很宽,如果电压过低,内部程序以及外部的控制电路工作极不稳定,会造成控制错误,还不如停止单片机的工作,这就是低电压复位。 低电压复位就是检测电源电压的结果,就是“不让单片机工作”。 我估计你说的“不让单片机工作”,是指程序继续工作,只是把控制停下,是低电压下,程序工作是不可靠的。具体情况就要看你的设备而定了。现在写程序一般都有看门狗这样的检测程序,如果死机的话,会重启。当然,也不排除看门狗有问题,当然,更多的是程序本身有问题而导致的! 外部可能引起死机可能就是电压不稳、静电过大等原因。单片机程序死机,跑飞了可以从以下几个方面查找原因:
1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象;
2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。
❺ 单片机如何用一个按键实现启停
不知道你想要实现啥样的启停,今天上班有点闲,给你写一个程序做参考,你可以根据你的需要进行更改。//功能是按键,按下启动停止,启动后LED灯闪烁,
停止LED灯灭。
#include
"REG52.H"
sbit
LED1_01
=
P1^1;
//LED灯
sbit
KEY0_01
=
P1^2;
//按键
bit
value_flag
=
0;
//标志位
/*
*
延时1ms延时子函数
**/
void
Delay_1ms(unsigned
int
Time)
{
unsigned
int
x,
y;
for(x
=
Time;
x
>
0;
x--)
for(y
=
120;
y
>
0;
y--);
}
/*
*
按键开关【启动和停止】子函数
**/
void
Scan_keyoutCmd(void)
{
if(KEY0_01
==
0)
//检测按键是否按下
{
Delay_1ms(10);
//延时去抖动
if(KEY0_01
==
0)
//确定按键按下
{
value_flag
=
~
value_flag;
//取反标志位
}
while(KEY0_01
==
0);
//检测松手
}
}
/*
*
程序运行【启动和停止】子函数
**/
void
Disp_layledketCmd(void)
{
if(value_flag
==
1)
//如果标志打开启动单片机运行程序
{
LED1_01
=
0;
Delay_1ms(500);
//启动运行程序后LED灯开始闪烁
LED1_01
=
1;
Delay_1ms(500);
}
else
if(value_flag
==
0)
//如果标志关闭停止单片机运行程序
{
LED1_01
=
0;
//停止运行程序后LED灭。
}
}
/*
*
函数主体
**/
int
main(void)
{
value_flag
=
1;
//打开标志位
while(1)
{
Scan_keyoutCmd();//单片机循环检测是否有按键按下【启动或停止】应运程序
Disp_layledketCmd();
//执行应运程序
}
}
❻ 外部干扰过大导致单片机死机
这方面我有比较丰富的项目经验。
内部看门狗的确可以解决常规的死机现象。但是如果外部干扰过大,导致单片机的晶振停止振荡,内部看门狗同样会停止动作。
最好的解决方法就是外接看门狗芯片。给你推荐一个MAX813L,便宜,简单。肯定没有问题。