基于51单片机监测环境光线状况程序怎么写

1.基于STC89C51单片机的光线声控灯的C语言源代码/*******************************************************
* 程序名称:hc595.c
* 程序功能:595的应用文件
* 程序作者:吴鉴鹰
* 创建时间:2014-3-10
* 修改时间:
* 程序版本:V0.1
******************************************************/
/*
* 包含头文件
*/
#include "inc/hc595.h"
#include "reg51.h"
/*
* 定义引脚
*/
/* 时钟信号线引脚定义 */
sbit HC595CLK = P0^5;
/* 片选信号线引脚定义 */
sbit HC595RCK = P0^6;
/* 数据输入引脚定义 */
sbit HC595DATA = http://www.xuexi88.com/zhishi/P0^7;
/******************************************************
* 函数名称:SendData
* 函数功能:74HC595数据的发送
* 入口参数:unsigned int uiDataOne, unsigned int uiDataTwo
* 出口参数:void
*******************************************************/
void SendData(unsigned int uiDataOne, unsigned int uiDataTwo)
{
unsigned int i = 0;
/* 将片选信号置为低电平 */
HC595RCK = 0;
/* 输入第一个数据:uiDataOne */
for (i = 0; i < 8; i++)
{
/* 给出脉冲信号 , 首先将CLK置为0 */
HC595CLK = 0;
if (0 != (uiDataOne & 0x80))
{
HC595DATA = http://www.xuexi88.com/zhishi/1;
}
else
{
【基于51单片机监测环境光线状况程序怎么写】HC595DATA = http://www.xuexi88.com/zhishi/0;
}
/* 给出脉冲信号 , 首先将CLK置为1 */
HC595CLK = 1;
/* 准备第二个数据 */
uiDataOne = uiDataOne << 1;
}
/* 输入第二个数据:uiDataTwo */
for (i = 0; i < 8; i++)
{
/* 给出脉冲信号 , 首先将CLK置为0 */
HC595CLK = 0;
if (0 != (uiDataTwo & 0x80))
{
HC595DATA = http://www.xuexi88.com/zhishi/1;
}
else
{
HC595DATA = http://www.xuexi88.com/zhishi/0;
}
/* 给出脉冲信号 , 首先将CLK置为1 */
HC595CLK = 1;
/* 准备第二个数据 */
uiDataTwo = uiDataTwo << 1;
}
/* 将片选信号置为高电平 */
HC595RCK = 1;
}
2.基于STC89C51单片机的光线声控灯的C语言源代码/******************************************************* * 程序名称:hc595.c * 程序功能:595的应用文件 * 程序作者:吴鉴鹰 * 创建时间:2014-3-10 * 修改时间: * 程序版本:V0.1 ******************************************************//* * 包含头文件 */#include "inc/hc595.h"#include "reg51.h"/* * 定义引脚 *//* 时钟信号线引脚定义 */sbit HC595CLK = P0^5;/* 片选信号线引脚定义 */sbit HC595RCK = P0^6;/* 数据输入引脚定义 */sbit HC595DATA = http://www.xuexi88.com/zhishi/P0^7;/****************************************************** * 函数名称:SendData * 函数功能:74HC595数据的发送 * 入口参数:unsigned int uiDataOne, unsigned int uiDataTwo * 出口参数:void*******************************************************/ void SendData(unsigned int uiDataOne, unsigned int uiDataTwo){ unsigned int i = 0; /* 将片选信号置为低电平 */ HC595RCK = 0; /* 输入第一个数据:uiDataOne */ for (i = 0; i < 8; i++) { /* 给出脉冲信号 , 首先将CLK置为0 */ HC595CLK = 0; if (0 != (uiDataOne & 0x80)) { HC595DATA = 1; } else { HC595DATA = 0; } /* 给出脉冲信号 , 首先将CLK置为1 */ HC595CLK = 1; /* 准备第二个数据 */ uiDataOne = uiDataOne << 1; } /* 输入第二个数据:uiDataTwo */ for (i = 0; i < 8; i++) { /* 给出脉冲信号 , 首先将CLK置为0 */ HC595CLK = 0; if (0 != (uiDataTwo & 0x80)) { HC595DATA = 1; } else { HC595DATA = 0; } /* 给出脉冲信号 , 首先将CLK置为1 */ HC595CLK = 1; /* 准备第二个数据 */ uiDataTwo = uiDataTwo