IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于51单片机的图书馆座位管理系统proteus仿真 -> 正文阅读

[嵌入式]基于51单片机的图书馆座位管理系统proteus仿真

功能简介:
实现有人坐到座位上时,座位上的灯亮启同时触发计数器。当检测到座位无人时,系统启动计时功能,计时5s后,再次检测座位是否有人。若此时座位无人,则座位灯熄,同时显示屏数字减少(所有座位灯熄的数字)。若此时座位有人,则灯继续亮,显示屏数字不变。显示屏上显示所有座位上有人的数字。

原理图:
在这里插入图片描述
仿真图:
在这里插入图片描述

程序设计

#include "reg51.h"
#include "74hc595.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
sbit ir_in=P1^7;//红外输入

uchar time=0,mode=0;//系统变量
uchar disp[]="00";
uchar num=0;//数量
uint flag=0;//led控制
uchar miao[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};	//定时

uchar read1(uchar i)//读取红外
{
	P1=0x80+i;
	if(P1==i)
		return 0;
	else
		return 1;
}
uchar read2(uchar i)//读取led状态
{
	if((flag & (1<<i))>0)
		return 1;
	else
		return 0;
}
void set(uchar i)//点亮led
{
	flag=flag | (1<<i);
	Hc595SendByte(flag);
}
void clr(uchar i)//熄灭led
{
	flag=flag & ~(1<<i);
	Hc595SendByte(flag);
}
void all()//统计数量
{
	uchar i;
	uint j=0;
	j=flag;
	num=0;
	for(i=0;i<16;i++)
	{
		if((j& 0x0001)>0)
		{
			num++;
		}
		j>>=1;
	}
}
//主函数
void main()
{
	init_1602();
	write_string(1,0,"ALL Number:");
	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		 
	}
}
//定时器中断
void Timer0() interrupt 1
{
	uchar i=0;
	if(time<10)//0.5s
		time++;
	else
	{
		time=0;
		for(i=0;i<16;i++)
		{
			if(read1(i)>0)//座位有人
			{
				 set(i);
			}
			else
			{
				if(read2(i)>0)//座位无人
				{
					if(miao[i]<10)//倒计时
						miao[i]++;
					else
					{
						miao[i]=0;
						clr(i);	  //熄灭led
					}
				}
			}
		}
		all();//统计亮灯数量
		disp[0]=num/10+0x30;//显示
		disp[1]=num%10+0x30;
		write_string(2,6,disp);
	}
	TH0=0X3C;
	TL0=0XB0;
}

链接:https://pan.baidu.com/s/16Qb5sT-czjhW6aEh9cDv6g
提取码:rxj1

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:37:35  更:2021-09-23 11:38:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 1:54:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码