基于51单片机的学习监督系统代码

本文提供了一段基于51单片机的学习监督系统的代码,包括LCD1602、DS1302以及超声波传感器的接口实现。代码中包含了IIC通信、超声波测距以及时间显示等功能,并提供了延时函数和数据传输的详细操作。
摘要由CSDN通过智能技术生成

/**
其它相关.c文件和电路图可以联系我要
**/

/晶振为12M***/
#include <reg52.h> //定义头文件
#include “LCD1602.h” //定义头文件
#include “DS1302.h” //定义头文件
#include <intrins.h> //定义头文件
#define uint unsigned int
#define uchar unsigned char
long int S;
unsigned int time1;
char flag;
sbit beep=P2^0;
sbit rt=P1^3; //人体感应
sbit Trig=P1^5; //产生脉冲引脚
sbit Echo=P1^6; //回波引脚
sbit SCL=P2^4; //IIC时钟引脚定义
sbit SDA=P2^3; //IIC数据引脚定义
#define SlaveAddress 0x46 //定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改
//ALT ADDRESS引脚接地时地址为0x46,接电源时地址为0xB8
typedef unsigned char BYTE;
typedef unsigned short WORD;

BYTE BUF[8]; //接收数据缓存区
uchar ge,shi,bai,qian,wan; //显示变量

int dis_data; //变量

/------------------函数声明--------------------/
void Delay10ms(void);
void delayms(unsigned int ms);
void delay_nms(unsigned int k);
void InitLcd();
void Init_BH1750(void);

void Single_Write_BH1750(uchar REG_Address); //单个写入数据
uchar Single_Read_BH1750(uchar REG_Address); //单个读取内部寄存器数据
void Multiple_Read_BH1750(); //连续的读取内部寄存器数据
//------------------------------------
void Delay5us();
void Delay5ms();
void BH1750_Start(); //起始信号
void BH1750_Stop(); //停止信号
void BH1750_SendACK(bit ack); //应答ACK
bit BH1750_RecvACK(); //读ack
void BH1750_SendByte(BYTE dat); //IIC单个字节写
BYTE BH1750_RecvByte(); //IIC单个字节读

//-----------------------------------

//毫秒延时**************************
void delay_nms(unsigned int k)
{
unsigned int i,j;
for(i=0;i<k;i++)
{
for(j=0;j<121;j++)
{;}}
}

/**************************************
延时5微秒(STC90C52RC@12M)
不同的工作环境,需要调整此函数,注意时钟过快时需要修改
当改用1T的MCU时,请调整此延时函数
***********

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值