- UID
- 1036135
- 阅读权限
- 50
- 推广
-
- 幽默
-
- 注册时间
- 2018-2-23
- 最后登录
- 1970-1-1
|
注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。
您需要 登录 才可以下载或查看,没有帐号?快速注册
x
本帖最后由 爱电器维修 于 2020-7-15 20:51 编辑
各位朋友我是新学单片机的,现在有一个果汁机单片机坏了。是PIC16F54的单片机。现在我想用51单片机代替它。因为PIC的编程不会。
所以想用STC15F104W这款单片机。
编了个程序试了不能运行。请各位朋友帮忙看看哪里有问题,帮忙解决这个问题?谢谢了!!!
果汁机有自动和手动功能,还有调速功能但这个功能和单片机没关系。它其实就是自动功能时的一个定时器功能分35S,60S,120S。
#include<stc15.h>
#define unchar unsigned char
sbit ys1=P3^0;//定义P3.0为运行定时1
sbit ys2=P3^1;//定义P3.1为运行定时2
sbit kz=P3^2;//定义P3.2为运行控制口
unchar dshm,dsm,yshm1=0,ysm1=35,yshm2=0,ysm2=60,yshm3=0,ysm3=120;
void delay (void)
{unchar i,j;
for(i=0;i<200;i++)
{for(j=0;j<20;j++)
{;}}
}
/******************************************************************************************/
void initial(void)
{
TMOD=0x11;
CLK_DIV=0x00;
TH0=-(10000/256);
TL0=-(10000%256);
ET0=1;TR0=1;
EA=1;
}
/*****************************************************************************************/
void time0(void) interrupt 1
{
TH0=-(10000/256);
TL0=-(10000%256);
dshm++;
if(dshm>99){dsm++;dshm=0;}
if(dsm>120){dsm=0;dshm=0;}
if((yshm1>0)||(ysm1>0)||(yshm2>0)||(ysm2>0)||(yshm3>0)||(ysm3>0)) //确认运行时间
{
if(ys1==1&&ys2==0&&dshm==yshm1&&dsm==ysm1)
{kz=0;TR0=0;}
if(ys1==0&&ys2==0&&dshm==yshm2&&dsm==ysm2)
{TR0=0;kz=0;}
if(ys1==0&&ys2==1&&dshm==yshm3&&dsm==ysm3)
{TR0=0;kz=0;}
}
}
/***********************************************************************/
void main(void)
{
while(1)
{
kz=0;
P3=0x00;
ys1=P3^0;
delay();
ys2=P3^1;
delay();
}
} |
|