基于单片机工业生产现场的光照强度控制系统设计-基于单片机多功能智能台灯设计-基于单片机多功能智能台灯控制系统设计-资料转发分享

Posted Mr song song

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于单片机工业生产现场的光照强度控制系统设计-基于单片机多功能智能台灯设计-基于单片机多功能智能台灯控制系统设计-资料转发分享相关的知识,希望对你有一定的参考价值。

1633基于单片机工业生产现场的光照强度控制系统设计(仿真,程序,报告)

 用单片机控制总装车间中的LED照明系统,使其输出恒定照度的光,以满足总装生产工序中的照明需要。

总体设计方案

由设计要求可知,需使用MCS-51系列单片机,构建控制系统,实现LED灯亮度的控制。所以采用AT89C52 单片机为核心,以3*3按键键盘作为输入端,以达到控制所需输出电流的功能,并且由LCD1602显示模块可以显示输入电流的大小和电流源输出的电流大小。在设计中,采用PCF8591芯片进行AD/DA转换,单片机通过I2C通信协议控制PCF8591 AD转换输出的电压所需电压,输入压控电压源,通过采样电阻的电压DA转换获得电流源输出的电流值,经过单片机计算最后显示实际输出电流。

该直流电机控制系统的设计,在总体上大致可分为以下6个部分组成:AT89C52单片机最小系统,3*3按键键盘,直流稳压源,1602显示模块,AD/DA转换模块,可控电流源模块。

///工业生产中的产品数量自动计量系统创新设计
///功能:通过MUC-51芯片控制电流源输出电流,实现LED灯亮度控制
///*************************************************************************
#include<reg52.h>
#include<iic.h>
#include<lcd1602.h>

#define KEY_PRESET(code)  P1=code; temp=P1; temp=temp&code; delay(10);

uchar str1[16]="310mA<=I<=3100mA";
uchar str2[16]="set:    out:    ";
uchar str3[16]=" Error occurred ";
uchar dianliu[4]=0,0,0,0;

uchar key_num,key_flag,key_count=0,OK_flag;
ulong pian,bai,shi,ge,set_value;
float key_value;
uchar h,l,temp;
ulong back_voltage1,back_current;

void get_Data();
void set_Data(); 
uchar keyscan();
bit DACconversion(uchar sla,uchar c,uchar Val);
bit ISendByte(uchar sla,uchar c);
uchar IRcvByte(uchar sla);
void delay1(uint j);
///*************************************************************************
///主函数
///*************************************************************************
void main()

	INIT_I2c();//iic总线初始化
	LCD_Init();//LCD1602初始化
	while(1)
		
		get_Data();
		set_Data();	
				
	


//*******************************************************************
//DAC 变换, 转化函数               
//*******************************************************************
bit DACconversion(uchar sla,uchar c,  uchar Val)

   Start_I2c();              //启动总线
   SendByte(sla);            //发送器件地址
   if(ack==0)return(0);
   SendByte(c);              //发送控制字节
   if(ack==0)return(0);
   SendByte(Val);            //发送DAC的数值  
   if(ack==0)return(0);
   Stop_I2c();               //结束总线
   return(1);

//*******************************************************************
//ADC发送字节[命令]数据函数               
//*******************************************************************
bit ISendByte(uchar sla,uchar c)

   Start_I2c();              //启动总线
   SendByte(sla);            //发送器件地址
   if(ack==0)return(0);
   SendByte(c);              //发送数据
   if(ack==0)return(0);
   Stop_I2c();               //结束总线
   return(1);

//*******************************************************************
//ADC读字节数据函数               
//*******************************************************************
uchar IRcvByte(uchar sla)
  
	uchar c;
   Start_I2c();          //启动总线
   SendByte(sla+1);      //发送器件地址
   if(ack==0)return(0);
   c=RcvByte();          //读取数据0
   Ack_I2c(1);           //发送非就答位
   Stop_I2c();           //结束总线
   return(c);

///*************************************************************************
///按键扫描函数
///*************************************************************************
uchar keyscan()
  
     KEY_PRESET(0X0F);
	 if(temp!=0X0F)//是否有键按下
	 
	 	delay(10);
		temp=P1;
		temp=temp&0X0F;
		if(temp!=0X0F) //确实有键按下
		
		   key_flag=1;//按下键标志位
		   switch(temp)
		   
		   	 case 0X0E:h=0;break; //行
			 case 0X0D:h=1;break;
		   	 case 0X0B:h=2;break;
		   	 case 0X07:h=3;break;
			 default:break;
		   
		   KEY_PRESET(0XF0);
		   switch(temp)
		   
		   	 case 0XE0:l=0;break; //列
			 case 0XD0:l=1;break;
		   	 case 0XB0:l=2;break;
			 case 0X70:l=3;break;
			 default:break;
		   
		   key_num=3*h+l;//按下键的键值
	       if(key_num<=9) key_count++;
		   while(temp!=0XF0)//等待释放
		   
		   	  temp=P1;
			  temp=temp&0XF0;
		     
		
	 	 
	 return key_num;//返回键值

void get_Data()

	   	uchar i;
   		keyscan(); //键盘扫描

1634基于单片机多功能智能台灯设计(带时钟、姿态矫正、温度、亮度)

 1、上电之后LED灯点亮,代表当前灯是自动控制模式;
2、通过按键K5可以在自动和手动模式来回切换;
3、在手动模式下,按键K2,K3,K4分别对应一个灯光亮度;(k1按下时不可用)
4、在自动模式下,首先要检测到有人,才进行亮度的自动控制,否则台灯熄灭。可以挡住光敏电阻
的光线,或用手电筒来照射光敏电阻,模拟光照的变化,从而就可以看到台灯的亮度会随着环境中的
光照强度的改变而改变,效果是光照越弱,台灯越亮。如果人体传感器1分钟检测不到有人,台灯就
会自动熄灭。(光敏电阻在USB灯后面);
5、无论是自动模式还是手动模式,都是把亮度分为10个等级的,并在LCD上显示0-9;
6、设置日期时间:按下K1(设置)键,显示年位置会有光标闪烁,表示此时可以调节年份,如需调节年份,
按K3(加),K4(减)即可对年份进行调节。然后按K2(移动)键,显示月份位置会光标闪烁,同样的方法可
以调节月,再按K2键分别可设置日,时,分,秒。
7、靠近超声波时,蜂鸣器报警。

#include <reg52.h>	         //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义	变量范围0~255
#define uint  unsigned int	 //无符号整型 宏定义	变量范围0~65535
#include "eeprom52.h"
#include "intrins.h"
#include "ds1302.h"
#include "lcd1602.h"
#include "ultrasonic_wave.h"//超声波头函数

bit flag_200ms ;
bit flag_100ms ;
bit flag_beep1_en;//定时模式开启标志
bit flag_beep2_en;
bit flag_beep3_en;

sbit k1=P1^4;	 //时间设置切换
sbit k2=P1^5;	 //光标移动
sbit k3=P1^6;	 //加
sbit k4=P1^7;	 //减
sbit k5=P2^7;	 //手动/自动

sbit ADC_CS = P3^5;	 //ADC0832引脚定义
sbit ADC_CLK = P3^6;	 

省略。。

 

1635基于单片机多功能智能台灯控制系统设计(时钟、姿态矫正、温度采集)

 功能说明:
1、上电之后LED灯点亮,代表当前灯是自动控制模式;
2、通过按键K5可以在自动和手动模式来回切换;
3、在手动模式下,按键K2,K3,K4分别对应一个灯光亮度;(k1按下时不可用)
4、在自动模式下,首先要检测到有人,才进行亮度的自动控制,否则台灯熄灭。可以挡住光敏电阻
的光线,或用手电筒来照射光敏电阻,模拟光照的变化,从而就可以看到台灯的亮度会随着环境中的
光照强度的改变而改变,效果是光照越弱,台灯越亮。如果人体传感器1分钟检测不到有人,台灯就
会自动熄灭。(光敏电阻在USB灯后面);
5、无论是自动模式还是手动模式,都是把亮度分为10个等级的,并在LCD上显示0-9;
6、设置日期时间:按下K1(设置)键,显示年位置会有光标闪烁,表示此时可以调节年份,如需调节年份,
按K3(加),K4(减)即可对年份进行调节。然后按K2(移动)键,显示月份位置会光标闪烁,同样的方法可
以调节月,再按K2键分别可设置日,时,分,秒。
7、靠近超声波时,蜂鸣器报警。

目录

1633基于单片机工业生产现场的光照强度控制系统设计(仿真,程序,报告)

1634基于单片机多功能智能台灯设计(带时钟、姿态矫正、温度、亮度)

1635基于单片机多功能智能台灯控制系统设计(时钟、姿态矫正、温度采集)

可以按照这个思路进行自行设计,也可以通过百度网盘列表下载已经做好的 
https://www.aiesst.cn/baidu.html  

以上是关于基于单片机工业生产现场的光照强度控制系统设计-基于单片机多功能智能台灯设计-基于单片机多功能智能台灯控制系统设计-资料转发分享的主要内容,如果未能解决你的问题,请参考以下文章

[资料分享]基于单片机智能多功能自动窗帘定时光照强度检测系统设计基于单片机多功能台灯自动调节光亮强度系统设计

基于单片机的蓝牙控制窗帘电路系统

基于单片机智能灯光光控照明系统设计-毕设课设资料

基于单片机智能灯光光控照明系统设计基于单片机HX711电子秤自动计价系统设计基于单片机GPRS远程测控系统设计基于单片机多功能循迹避障无线遥控蓝牙智能小车-设计资料

基于单片机GSM大棚环境智能监控系统(毕业设计)

基于单片机GSM大棚环境智能监控系统基于单片机的警示灯爆闪灯设计基于单片机太阳能手机智能充电器设计基于单片机智能无线病床呼叫系统设计-设计资料转发分享