切换到宽版
  • 2996阅读
  • 14回复

[C51]做了一个控制电机自动正反转程序 有一个问题想请教一下 [复制链接]

上一主题 下一主题
离线yyou58
 

发帖
170
M币
1362
专家
2
粉丝
11
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2018-09-25
#include <reg52.h>
//就是按下key 继电器1开启计时1分钟关闭 然后继电器2开启 计时1分钟关闭 停止 来达到控制电动推杆的目的,问题来了 当我按下key按键 继电器1定时器工作 在按下key没有反应 必须要等程序跑完 在按key才会重新控制继电器1工作,有什么办法在按下key 让程序在重新走一遍呢
#define uchar unsigned char
#define uint unsigned int
sbit key=P1^0;//用P1.0做按键输入开!



sbit led=P1^7;//定义输出继电器1开
sbit led1=P1^6;//定义输出继电器2开


void UARTinit()
{
SCON=0x50;
TMOD=0x20;
TH1=0xFD; //11.0592MHz 9600bps
TL1=0xFD;
TR1= 1; //
}






void delay(uint n) {//延时代码
uint aa,bb;
for(aa=0;aa<n;aa++){
for(bb=0;bb<850;bb++)
;
}
}






void sc (uchar c)
{
SBUF =c ;
while(!TI);
TI=0;
}


void main(void)
{
UARTinit();
{
while(1)


{
if(!key)
{
delay(30);//如果按键按下就延时30毫秒去抖动再判断




led = 0; delay(99999);// 继电器1开启,延时60秒

led = 1; delay(3000);// 继电器1关闭


led1 = 0; delay(99999);//继电器2开启,延时60秒

led1 = 1; // 继电器2关闭








while(!key);//按键不放就死循环




}







}
}
}
离线夕阳飞雪

发帖
1085
M币
1599
专家
8
粉丝
44
只看该作者 1楼 发表于: 2018-09-25
请登录后查看
离线testmu

发帖
306
M币
538
专家
1
粉丝
3
只看该作者 2楼 发表于: 2018-09-25
请登录后查看
离线a931948882

发帖
1772
M币
1898
专家
1
粉丝
89
只看该作者 3楼 发表于: 2018-09-25
请登录后查看
离线飞向狙沙

发帖
13086
M币
7080
专家
48
粉丝
10374
只看该作者 4楼 发表于: 2018-09-25
请登录后查看
离线温力口

发帖
60313
M币
51283
专家
569
粉丝
909
只看该作者 5楼 发表于: 2018-09-25
请登录后查看
离线yyou58

发帖
170
M币
1362
专家
2
粉丝
11
只看该作者 6楼 发表于: 2018-09-25
请登录后查看
离线yyou58

发帖
170
M币
1362
专家
2
粉丝
11
只看该作者 7楼 发表于: 2018-09-25
请登录后查看
离线testmu

发帖
306
M币
538
专家
1
粉丝
3
只看该作者 8楼 发表于: 2018-09-25
请登录后查看
离线yyou58

发帖
170
M币
1362
专家
2
粉丝
11
只看该作者 9楼 发表于: 2018-09-25
请登录后查看
快速回复
限80 字节
温馨提示:所有技术区严禁灌水,“沙发”“顶”字样;禁止广告贴;以免被删除
 
上一个 下一个