标题:
求STC15F104W的一个程序设计思路
[打印本页]
作者:
kevind
时间:
2020-4-1 16:48
标题:
求STC15F104W的一个程序设计思路
哪位大佬能帮搞一个程序测试下硬件,小弟刚接触单片机,程序实在是搞不懂~ 想搞一个程序研究下,谢谢各位~~
单片机:STC15F104W
key1=P3^0; //S1 按键
key2=P3^1; //S2 备用按键
led1=P3^2; //指示灯 绿色
led2=P3^3; //指示灯 红色 初始化为低电平
relay1=P3^4; //继电器1
relay2=P3^5; //继电器2
程序要求:
程序初始化后P3.3为低电平,其他默认高电平。
1、P3.0由高变低(S1按下)——P3.4由高变低并保持2秒后再恢复到高并保持;P3.3由低变高并保持;P3.2间隔1秒低高输出(LED1闪烁),30秒后低电平保持(LED1常亮);30秒内重复S1按下无效,超过30秒才能有效。
2、P3.0由高变低(S1 30秒后再按下)——P3.5由高变低并保持2秒后再恢复到高并保持;P3.2由低变高并保持;P3.3间隔1秒低高输出(LED2闪烁),30秒后低电平保持(LED2常亮);30秒内重复S1按下无效,超过30秒才能有效。
-----------------
一个按键控制2个LED和2个继电器。每30秒按键执行1次相应的动作,30秒内重复触发无效。
作者:
man1234567
时间:
2020-4-1 18:54
你的思路已经很清楚了,直接写代码就好。预祝顺利。
作者:
kevind
时间:
2020-4-1 22:26
man1234567 发表于 2020-4-1 18:54
你的思路已经很清楚了,直接写代码就好。预祝顺利。
思路是有,这个代码实在是弄不懂(=_=)
作者:
kevind
时间:
2020-4-17 00:09
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key =P3^0; //开始结束按键
sbit LED1=P3^2; //开始绿灯
sbit LED2=P3^3; //停止红灯
sbit relay =P3^4; //开始继电器
sbit relay1=P3^5; //结束继电器
uint count;//计时存储器
void DelayMS(uint x)
{
uchar i;
while(x--);
{
for(i=0;i<120;i++);
}
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0 =1;
TR0 =0;
EA =1;
}
void main()
{
relay1=1;
relay=1;
LED1=1;
LED2=0;
init();
while (1)
{
if (key==0)//按键按下
{
TR0 =1;//启动定时器
}
}
}
void timer0()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if (count ==1 && LED2==0)//到达设定时间
{
relay =~relay;
DelayMS(50000);
relay =~relay;
}
if (count ==1 && LED1==0)
{
relay1 =~relay1;
DelayMS(50000);
relay1 =~relay1;
}
if (count <=450 && LED1==0)
{
LED1=~LED1;
DelayMS(3000);
LED1=~LED1;
}
else
{
LED2=~LED2;
DelayMS(3000);
LED2=~LED2;
}
if (count >=450)
{
LED1=~LED1;
LED2=~LED2;
count =0;
TR0 =0;
}
}
---------------------------------------------------------------------------------------------------------
把以上程序下载到STC15F104W里运行不正常,LED不闪烁,始终常亮,搞不懂哪里问题。Proteus里仿真是正常的(这个程序仿真效果是2个指示灯切换显示和原先要求不一样,类似红绿灯切换方式)。
下载程序的时候发现下载不进去,始终再检测。3.0和3.1口只接了开关,没有其他元件,后来发现3.4和3.5口要把限流电阻(控制三极管B极)拆掉才能下载……
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1