• 大小: 1.05M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2025-05-09
  • 语言: 其他
  • 标签: 其他  

资源简介

文件总共有三个部分,分别是89C51的源代码,原理图及PCB文件,所用元器件清单等。

资源截图

代码片段和文件信息

//宏定义
#define uint unsigned int
#define uchar unsigned char
#define DUAN P0
//头函数
#include     

uchar code ssw[]=
{
0xC00xF90xA40xB00x990x920x820xF80x800x90
};         

uchar code wei[]=
{
0xfe0xfd0xfb0xf7
};


uchar pdata tt[51];    //定义空数组用于AD0809取平均值
uchar scale=20rsd_secput[4]; //定义占空比比例,热释电计时秒变量
char minsec; //定义计时分秒

bit bdata flag_autossflag_bsflag_rsdflag_jiejin=1;   //位定义自动切换的,闪烁标志,报警位标志,热释电动作标志,接近传感器标志
uchar flag_set=0time; //设置变量:0 正常  1 调分  2 调秒
uint lum;
bit beep1; //ad0809读出值

//函数声明
void delay(uchar i);

//管脚声明
sbit LED = P3^5; //灯光控制输出
sbit change= P1^4;   //自动模式切换按键
sbit set = P1^5;  //设置按键
sbit add = P1^6; //加按键
sbit sub = P1^7; //减按键
sbit rsd = P3^6;   //热释电
sbit jiejin=P3^4;  //接近开关
sbit buzz=P3^7;

sbit led_1=P3^2;
sbit led_2=P3^3;

sbit  CS=P1^2;       
sbit CLK=P1^0;      
sbit DIO=P1^1; 

void display()
{
uchar i;    
if(flag_set==1&&ss==0)
{
put[0]=0xff;
put[1]=0xff&0x7f;
}else
{
put[0]=ssw[min/10%10];
put[1]=ssw[min%10]&0x7f;
}
if(flag_set==2&&ss==0)
{
put[2]=0xff;
put[3]=0xff;
}else
{
put[2]=ssw[sec/10%10];
put[3]=ssw[sec%10];
}

for(i=0;i<4;i++)
{
P2=wei[i];
P0=put[i];
delay(1);
P0=0xff;
}
}


unsigned int A_D()
{
unsigned char idat;
CS=1;   //一个转换周期开始
CLK=0;  //为第一个脉冲作准备
CS=0;  //CS置0,片选有效
DIO=1;    //DIO置1,规定的起始信号  
CLK=1;   //第一个脉冲
CLK=0;   //第一个脉冲的下降沿,此前DIO必须是高电平
DIO=1;   //DIO置1, 通道选择信号  
CLK=1;   //第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道CH0 
CLK=0;   //第二个脉冲下降沿 
DIO=0;   //DI置0,选择通道0
CLK=1;    //第三个脉冲
CLK=0;    //第三个脉冲下降沿 
DIO=1;    //第三个脉冲下沉之后,输入端DIO失去作用,应置1
CLK=1;    //第四个脉冲
for(i=0;i<8;i++)  //高位在前
{
CLK=1;         //第四个脉冲
CLK=0; 
dat<<=1;       //将下面储存的低位数据向右移
dat|=(unsigned char)DIO;   //将输出数据DIO通过或运算储存在dat最低位 
}            
CS=1;          //片选无效 
return dat;  //将读出的数据返回     
}



/*****************按键函数*****************/
void KEY()
{
uint lum_meanlum_all;
uchar bc;
if(change==0)   //自动切换按键按下
{
delay(10);   //去抖
if(change==0)   //再次判断按键按下
{
buzz=0;   //蜂鸣器鸣响
flag_auto=!flag_auto; //自动模式标志位取反
if(flag_auto==1)   //当切换到手动模式时  首先将LED发光比例设置在50%
scale=20;
if(flag_auto==0)
{
led_1=0;
led_2=1;
}else
{
led_1=1;
led_2=0;
}

}
while(!change) display();buzz=1; //按键释放  松开按键后关闭蜂鸣器
}
if(jiejin==0&&flag_jiejin==1)  //接近传感器检测到障碍时  开启报警
{
buzz=0;
flag_jiejin=0;
}
if(jiejin!=flag_jiejin)   //接近传感器检测不到障碍时  关闭报警
{
buzz=1;
flag_jiejin=1;
}
if(set==0)   //设置键按下时
{
delay(10);
if(set==0)
{
buzz=0;
flag_set++;   //设置变量++
if(flag_set==3)   //加到3时回复回正常模式
flag_set=0;
flag_bs=0;  //按下设置 关闭报警

}
while(!set) display(); buzz=1; //按键释放
}
if(flag_set==1)   //加键按键只有在设置状态(flag_set!=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-19 15:24  智能台灯\
     文件       28160  2019-04-19 15:23  智能台灯\元器件清单.xls
     目录           0  2019-04-19 15:22  智能台灯\智能台灯电路图\
     文件      465920  2017-02-15 20:11  智能台灯\智能台灯电路图\4BIT_8SEG_LED.PcbLib
     目录           0  2019-04-19 15:22  智能台灯\智能台灯电路图\__Previews\
     文件       77751  2019-04-19 15:18  智能台灯\智能台灯电路图\__Previews\task3pcb.PcbDocPreview
     文件       79685  2018-06-06 10:46  智能台灯\智能台灯电路图\__Previews\task3原理图.schPreview
     文件         117  2017-02-16 10:26  智能台灯\智能台灯电路图\task3.DsnWrk
     文件      764416  2017-02-15 22:37  智能台灯\智能台灯电路图\task3pcb.PcbDoc
     文件        6150  2019-04-19 15:18  智能台灯\智能台灯电路图\task3pcb.PcbDoc.htm
     文件      449024  2017-02-16 10:28  智能台灯\智能台灯电路图\task3原理图.sch
     文件      104448  2017-02-15 20:32  智能台灯\智能台灯电路图\task3原理图库.SchLib
     目录           0  2019-04-19 15:22  智能台灯\视力灯  程序\
     文件       19129  2016-04-27 14:50  智能台灯\视力灯  程序\C51.LST
     文件       14649  2016-04-27 14:50  智能台灯\视力灯  程序\C51.OBJ
     文件        8071  2016-04-27 14:50  智能台灯\视力灯  程序\C51.c
     文件        6376  2016-04-27 14:50  智能台灯\视力灯  程序\STARTUP.A51
     文件       14048  2016-04-27 14:50  智能台灯\视力灯  程序\STARTUP.LST
     文件         749  2016-04-27 14:50  智能台灯\视力灯  程序\STARTUP.OBJ
     文件       13217  2016-04-27 14:50  智能台灯\视力灯  程序\智能台灯
     文件       21055  2016-04-27 14:50  智能台灯\视力灯  程序\智能台灯.M51
     文件        3821  2016-04-27 14:50  智能台灯\视力灯  程序\智能台灯.hex
     文件          59  2016-04-27 14:50  智能台灯\视力灯  程序\智能台灯.lnp
     文件         185  2019-04-19 15:25  智能台灯\视力灯  程序\智能台灯.plg
     文件       70639  2017-02-11 20:31  智能台灯\视力灯  程序\智能台灯.uvgui.Administrator
     文件        5347  2017-02-11 20:31  智能台灯\视力灯  程序\智能台灯.uvopt
     文件       13949  2017-02-11 20:31  智能台灯\视力灯  程序\智能台灯.uvproj
     文件       55615  2016-04-27 14:50  智能台灯\视力灯  程序\智能台灯_uvopt.bak
     文件           0  2016-04-27 14:50  智能台灯\视力灯  程序\智能台灯_uvproj.bak

评论

共有 条评论