新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用51单片机做的小旋磁美容仪

用51单片机做的小旋磁美容仪

作者:时间:2012-12-01来源:网络收藏
给大家发一个用单片机做的小的c语言代码。99分钟可调倒计显示控制关机设置,同时,有蜂鸣器倒数十秒蜂叫及按键时鸣叫,时间里有小数点按一秒周期闪烁的程序控制,按键为P1端中的P1。0及P1。1做为行线,P1。2~P1。5为列线,按键分别为开关机,时间加减,占空比调节加减键两组共四个按键,有两路实际输出占空比端口,标号为:hotout 和 xuanout 两个引脚,为数码管显示档位状态,控制时以外部硬件低电平时间长使输出功率大的基准而进行调节,0档时输出为高电平,8档(最高档)时输出为低电平低,其它从1~7档时,以占空比为准。且每一档的增量不是线性的,只为配合外部硬件的启动电平要求,低几档导通量较大些。本程序为单片机网http://www.51hei.com会员“狼图腾”呕心沥血的的原创作品,所有的c语言代码都已经测试通过,并且做成了成品投入到了实际的使用中,希望能对大家有所帮助有问题可联系作者帮忙处理的。
#include reg51.H>
#define uint unsigned int
#define uchar unsigned char
#define duan P0
#define ton 2
#define t 20
uchar code tab[]={0x09,0x5f,0x2a,0x1a,0x5c,0x98,0x88,0x1f,0x08,0x18};
sbit xsd_display=P0^3;//小数点的位显示,根据实际情况决定
sbit shila=P2^4;
sbit gela=P2^5;
sbit hotla=P2^6;
sbit xuanla=P2^7;
sbit hotout=P2^0;
sbit xuanout=P2^1;
sbit fmqbit=P2^2;
bit openbit,xsd;//开关机、小数点、加热、旋转标志位
uchar time; //分钟值
uint d; //计分钟变量
bit fmq;
uchar hot,hot1,hotoff,hotoff1,hotled; //加热波形处理相关变量
uchar xuan,xuan1,xuanoff,xuanoff1,xuanled; //旋转相关变量
bit biaobit0,biaobit1,biaobit2,biaobit3;// 控制波形占空时的循环条件标志位//以下为延时子程序
void delay(uint a)
{
uchar c,d;
for(c=a;c>0;c--)
for(d=80;d>0;d--);
}
//以下为显示函数
void display(uchar x,uchar y,uchar k)
{
uchar ge,shi; //对传递时间函数进行分解
shi=x/10;
ge=x%10; duan=tab[shi];
shila=0;
delay(2);
shila=1; duan=tab[ge];
gela=0;
xsd_display=xsd;
delay(2);
gela=1; duan=tab[y];
hotla=0;
delay(2);
hotla=1; duan=tab[k];
xuanla=0;
delay(2);
xuanla=1;// duan_display=0xff;
}//以下为变量改变处理程序
void bianlian(uchar xy)
{
switch(xy)
{
case 2: d=0; //有按键按动时即使计数值初始为0
if(time!=99)
{
time++;
}
break; case 3: d=0; //有按键按动时即使计数值初始为0
if(time!=0)
{
time--;
}
break; case 4: if(hotled!=8)
{
hotled++;
if(hotled==8)
biaobit0=1;
else
biaobit0=0;
if(hotled==0)
biaobit1=1;
else
biaobit1=0;
if(hotled5)
{
hot=hot+3;
}
else
{
hot=hot+ton;
} hot1=hot;
hotoff=t-hot;
hotoff1=hotoff;
}
break; case 5:if(hotled!=0)
{
hotled--; if(hotled==8)
biaobit0=1;
else
biaobit0=0; if(hotled==0)
biaobit1=1;
else
biaobit1=0; if(hotled4)
{
hot=hot-3;
}
else
{
hot=hot-ton;
} hot1=hot;
hotoff=t-hot;
hotoff1=hotoff;
}
break;
case 6:
if(xuanled!=8)
{
xuanled++; if(xuanled==8)
biaobit2=1;
else
biaobit2=0;
if(xuanled==0)
biaobit3=1;
else
biaobit3=0; if(xuanled==1)
xuan=xuan+6;
else
xuan=xuan+ton; xuan1=xuan;
xuanoff=t-xuan;
xuanoff1=xuanoff;
}
break;
case 7:
if(xuanled!=0)
{ if(xuanled==1)
xuan=xuan-6;
else
xuan=xuan-ton; xuan1=xuan;
xuanoff=t-xuan;
xuanoff1=xuanoff;
xuanled--; if(xuanled==8)
biaobit2=1;
else
biaobit2=0;
if(xuanled==0)
biaobit3=1;
else
biaobit3=0; }
default:break;
}
}
蜂鸣器相关文章:蜂鸣器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭