找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机C语言变量不起作用

查看数: 3038 | 评论数: 12 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-3-21 21:45

正文摘要:

达到目的:开关打开后一直处于闭合状态,输出只要发出一个20ms的高电平后维持低电平,用虚拟示波器发现20ms高电平,60ms低电平,再20ms高电平,一直反复。特来讨教,谢谢 #include<reg51.h> #define uint un ...

回复

ID:895574 发表于 2021-3-24 14:08
要加循环,不然就执行了一遍
ID:286211 发表于 2021-3-23 17:05
此程序只执行了一遍就停止了
ID:895034 发表于 2021-3-23 16:25
少了尾巴啊,要加一个循环
ID:293479 发表于 2021-3-22 20:19
zhangxiaozi 发表于 2021-3-21 23:51
void main()
{
        Lout=0;

那么再请教一下,谢谢。
main里的程序既然只运行了一次,那么a=1才对,但是输出始终在动作,基本60ms有一次动作,这是哪个语句在起作用?
ID:894309 发表于 2021-3-22 11:15
给case加个循环就好了
ID:894851 发表于 2021-3-22 09:59
加一个死循环
ID:517951 发表于 2021-3-22 09:41
可以采用中断方式,设置T0,T1两个定时器间隔时间输出高低电平,main()函数里面初始化T0,T1中断,就可以不需要while(1)了。
ID:293479 发表于 2021-3-22 09:11
taotie 发表于 2021-3-21 23:53
尾巴加  while (1);

ID:293479 发表于 2021-3-22 09:11
zhangxiaozi 发表于 2021-3-21 23:51
void main()
{
        Lout=0;

谢谢,按照你的方法可以了。
ID:420836 发表于 2021-3-22 02:05
该程序的主函数没有执行case1代码的无限循环。
ID:342822 发表于 2021-3-21 23:53
尾巴加  while (1);
ID:287575 发表于 2021-3-21 23:51
void main()
{
        Lout=0;
       while(1)
      {
        case1();
      }
}
这样就可以了,不过由于你改了a的值为i1后,没程序把他改为0,你的程序只能执行一次20Ms高电平,以后永远是低电平了,再按键也不起作用了

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表