C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发森野。C语言能稿春租以简易的方式编译、处理低级存储器。C语言键兆是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
可以声控、光线亮度自动控制、人体红外控制、手机控制,电脑控制等。
1.具有异常启动和自动保护功能。
2.具有灯具启动时弯野间、累计记录、灯具使用寿命统计等功能。当电源出现故障时,具有双回路接电柜自动切换和应急照明组启动功能。系统配有自动/手动切换开关,可在需要时手动 *** 作各灯组的开启和关闭。
3.系统设置了与其他系统的接口连接,如楼宇自控系统(BA系统),以提高综合管理水平。
4.具有场景预置、亮度调节、定时、定时控袜冲制、软启动、软关闭等功能。随着智能系统告闹歼的进一步发展和完善,其功能将进一步增强。
扩展资料:
注意事项:
1、智能照明控制系统设备应使用在良好的环境中,不应放置在潮湿、粉尘、通风等环境中。
2.用户应确认设备及部件是否齐全,外观是否良好。
3.用户应注意设备是否正常工作,电压是否异常,零线火线是否反向连接,有无缺零线、短路等现象。
4.用户应注意设备的负载状态,是否有过载、负载类型变化或不合格产品。
5.用户应注意设备连接是否正确,系统主机之间的电路、集中供电、配电或智能灯具之间是否有未经授权的变化。
#include<reg52.h>#define uint unsigned int
#define uchar unsigned char
sbit QB1=P1^0
sbit QB2=P1^1 //数码管段选
sbit QB3=P1^2
sbit QB4=P1^3
sbit QB5=P1^4
sbit QB6=P1^5
sbit fm=P1^6//蜂鸣器
sbit s1=P2^4//s5按键,切换显示
sbit s2=P2^3//s2按键,设置调时
sbit s3=P2^2//s3按键,加滚袜1
sbit s4=P2^1//s4按键,减1
sbit led1=P0^0
sbit led2=P0^1
sbit led3=P0^2
uchar count
uchar sec,minu,hour,day,week,mon
uchar n_sec,n_minu,n_hour
uint year
uchar set_2=1,set_1=1
uchar hs,hg,mis,mig,ss,sg
uchar nhs,nhg,nms,nmg,nss=0,nsg=0
uchar ms,mg,ds,dg,w
uchar code table[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,
0X90,0X88,0X83,0XC6,0XA1,0X8E,0X86,0xbf}//0~F,-,共阳
//uchar code tableyi[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
//0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40}//0-F,-,共阴
uchar code table_d[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
0x87,0xff,0xef}//0~9数组,带小数点
uchar table1[]={31,31,29,31,30,31,30,31,31,30,31,30,31}//闰年
uchar table2[]={31,31,28,31,30,31,30,31,31,30,31,30,31}//非闰年
void delay(uint)//延时函数
void timer0()//走时中断函数
void jishi()//计时函数
void key_change()//切换显示按键函数
void key_set()//设置时间按键函数
void disp(uchar,uchar,uchar,uchar,uchar,uchar)//显示函数
void zd_clock()//整点报时函数
void nz_clock()//闹钟函数
uchar incone(uchar)//加1函数
uchar decone(uchar)//减1函数
void set_time()//设置时间函数
void set_clock()//设置闹钟函数
void set_mdw()//设置月日星期函数
void main() //主函数
{
EA=1
ET0=1
TR0=1
TMOD=0x01
TH0=0x4c//50ms初值 晶振11.0592
TL0=0x00
hour=23minu=59sec=49//赋初值:11点59分0秒
n_hour=12n_minu=56n_sec=0//闹钟赋初值12点1分0秒
year=2008mon=5day=14week=3//年月日星期赋初值2008年5月11日星期天;祝天下所有母亲节日快乐
while(1)
{
hs=hour/10//时分大衫激秒HH.MM.SS
hg=hour%10
mis=minu/10
mig=minu%10
ss=sec/10
sg=sec%10
ms=mon/10//月日-星期MM.DD.-W
mg=mon%10
ds=day/10
dg=day%10
w=week
nhs=n_hour/10//闹钟定时HH.MM.SS
nhg=n_hour%10
nms=n_minu/10
nmg=n_minu%10
nss=n_sec/10
nsg=n_sec%10
key_change()//s4按键扫描
key_set()//s2按键扫描
set_time()//设置时间
set_mdw()//设置月日星期
set_clock()/塌冲/设置闹钟
if(set_1==1) //正常走时显示
{
disp(hs,hg,mis,mig,ss,sg)
}
if(set_1==2) //设置时间,LED1闪亮
{
disp(hs,hg,mis,mig,ss,sg)
if(sec%2==0)
{led2=1led3=1led1=~led1}
// else
// {led1=1}
}
if(set_1==3) //正常显示月日-星期
{
disp(ms,mg,ds,dg,16,w)
}
if(set_1==4) //设置月日-星期,LED2闪亮
{
disp(ms,mg,ds,dg,16,w)
if(sec%2==0)
{led1=1led3=1led2=~led2}
// else
// {led2=1}
}
if(set_1==5) //正常显示定时
{
disp(nhs,nhg,nms,nmg,nss,nsg)
}
if(set_1==6) //设置闹钟定时,LED3闪亮
{
disp(nhs,nhg,nms,nmg,nss,nsg)
if(sec%2==0)
{led1=1led2=1led3=~led3}
// else
// {led3=1}
}
zd_clock()//整点报时
nz_clock()//闹钟
}
}
void timer0() interrupt 1 //50ms中断函数
{
TMOD=0x01
TH0=0x4c//50ms初值 晶振11.0592
TL0=0x00
count++
if(count==20)
{
count=0
sec++
jishi()//调计时函数
}
}
void jishi() //计时函数
{
if(sec==60)
{
sec=0
minu++
if(minu==60)
{
minu=0
hour++
if(hour==24)
{ hour=0
day++
week++
if(week==8)
{week=0}
if(year%4==0&&year%100!=0||year%400==0) //闰年
{
if(day==table1[mon]+1)
{
day=0
mon++
if(mon==13)
{mon=0year++}
}
}
else //非闰年
{
if(day==table2[mon]+1)
{
day=0
mon++
if(mon==13)
{mon=0year++}
}
}
}
}
}
}
void key_change() //s1按键扫描
{
if(s1==0)
{
delay(200)
if(s1==0)
{
set_1++
while(!s1)
if(set_1==7)
{set_1=1}
}
}
}
void key_set() //s2按键扫描
{
if(s2==0)
{
delay(10)
if(s2==0)
{
set_2++
while(!s2)
if(set_2==4)
{set_2=1}
}
}
}
void disp(uchar a1,uchar a2,uchar a3,uchar a4,uchar a5,uchar a6) //显示函数
{
QB1=1
QB2=0
QB3=0
QB4=0
QB5=0
QB6=0
P3=table[a1]//段码送P0口
delay(10)//延时一小会
QB1=0
QB2=1
QB3=0
QB4=0
QB5=0
QB6=0
P3=table[a2]//第2个数码管显示,带小数点
delay(10)
QB1=0
QB2=0
QB3=1
QB4=0
QB5=0
QB6=0
P3=table[a3]//第3个数码管显示
delay(10)
QB1=0
QB2=0
QB3=0
QB4=1
QB5=0
QB6=0
P3=table[a4]//第4个数码管显示,带小数点
delay(10)
QB1=0
QB2=0
QB3=0
QB4=0
QB5=1
QB6=0
//第5个数码管显示
P3=table[a5]
delay(10)
QB1=0
QB2=0
QB3=0
QB4=0
QB5=0
QB6=1
P3=table[a6]//第6个数码管显示
delay(10)
QB1=0
QB2=0
QB3=0
QB4=0
QB5=0
QB6=0
}
void zd_clock() //整点报时函数
{
if(minu==59&&(sec==53||sec==55||sec==57))
{
fm=0
delay(5)
fm=1
delay(5)
}
fm=0
if(minu==59&&sec==59)
{
fm=0
delay(5)
fm=1
delay(5)
fm=0
}
}
void nz_clock() //闹钟函数
{
if(hour==n_hour&&minu==n_minu&&sec==n_sec)
//if((sec%2==0)&&sec<30)
{
fm=0
delay(1)
fm=1
delay(1)
}
}
void set_time() //设置时间函数
{
if(set_1==2)
{
if(set_2==1)
{
hour=incone(hour)
if(hour==24)
{hour=0}
// if(hour<0)
// {hour=23}
hour=decone(hour)
}
if(set_2==2)
{
minu=incone(minu)
if(minu==60)
{minu=0}
// if(minu<0)
// {minu=59}
minu=decone(minu)
}
}
}
void set_mdw() //设置月日星期函数
{
if(set_1==4)
{
if(set_2==1)
{
mon=incone(mon)
if(mon==13)
{mon=1}
mon=decone(mon)
// if(mon==0)
// {mon=12}
}
if(set_2==2)
{
day=incone(day)
if(day==32)
{day=0}
day=decone(day)
// if(day==0)
// {day=0}
}
if(set_2==3)
{
week=incone(week)
if(week==8)
{week=0}
week=decone(week)
// if(week==0)
// {week=7}
}
}
}
void set_clock() //设置闹钟函数
{
if(set_1==6)
{
if(set_2==1)
{
n_hour=incone(n_hour)
if(n_hour==24)
{n_hour=0}
n_hour=decone(n_hour)
if(n_hour==0)
{n_hour=0}
}
if(set_2==2)
{
n_minu=incone(n_minu)
if(n_minu==60)
{n_minu=0}
n_minu=decone(n_minu)
if(n_minu==0)
{n_minu=0}
}
}
}
uchar incone(uchar n) //加1函数
{
if(s3==0)
{ delay(200)
if(s3==0)
{
n++
while(!s3)
}
}
return(n)
}
uchar decone(uchar m) //减1函数
{
if(s4==0)
{
delay(200)
if(s4==0)
{
m--
while(!s4)
if(m<0)
{m=0}
}
}
return(m)
}
void delay(uint k) //延时函数
{
uint i,j
for(i=ki>0i--)
for(j=80j>0j--)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)