• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于51单片机的储物柜子(仿真)

07/18 10:31
592
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

有需要资料的可了解一下.docx

共1个文件

给大家提供一些资料详细解释,有需要的自行提取,网盘地址我放在下面

链接:https://pan.baidu.com/s/1NigBeujDZTCFL0hdMiu7yg?pwd=syxp
提取码:syxp

1、以自动存包柜为研究对象,当顾客需要存包的时候,可以自行到存包柜前按‘开门”键,控制锁柜门的电磁阀将一空箱打开,顾客存包,并将柜门关上;

2、通过屏幕显示柜子内是否有物品存放。

3、当顾客需要取包时, 要将条码放置到条形码阅读器前方,信息读出后,顾客就可将包取出来。

4、柜门如未关闭,可通过蜂鸣器进行报警来提醒顾客关闭柜门。30s没关门蜂鸣器响。

/**********************************

**********************************/

/**********************************
包含头文件
**********************************/
#include "adc.h"

/**********************************
函数定义
**********************************/

uint Adc0832_Get_Value(uchar CH)
{
	uint dat = 0x00; 
	uchar i,test,adval;
	adval = 0x00;
	test = 0x00;

	//初始化
	ADC_CLK = 0;      
	ADC_DATI = 1;
	_nop_();   _nop_();
	ADC_CS = 0;
	_nop_();
	ADC_CLK = 1;
	_nop_();  _nop_();

	//通道选择
	if(CH == 0x00)     
	{
		ADC_CLK = 0;
		ADC_DATI = 1;      					//通道0的第一位
		_nop_();
		ADC_CLK = 1;
		_nop_();  _nop_();

		ADC_CLK = 0;
		ADC_DATI = 0;      					//通道0的第二位
		_nop_();  _nop_();

		ADC_CLK = 1;
		_nop_();
	} 
	else
	{
		ADC_CLK = 0;
		ADC_DATI = 1;      					//通道1的第一位
		_nop_();  _nop_();
		ADC_CLK = 1;
		_nop_();  _nop_();

		ADC_CLK = 0;
		ADC_DATI = 1;      					//通道1的第二位
		_nop_();
		ADC_CLK = 1;
		_nop_();
	}

	ADC_CLK = 0;   _nop_();
	ADC_DATI = 1;

	for( i = 0;i < 8;i++ )      	//读取前8位的值
	{
		_nop_();
		adval <<= 1;
		ADC_CLK = 1;
		_nop_();  _nop_();

		ADC_CLK = 0;
		_nop_();

		if (ADC_DATO)
			adval |= 0x01;
		else
			adval |= 0x00;
	}
	for (i = 0; i < 8; i++)       //读取后8位的值
	{
		test >>= 1;
		if (ADC_DATO)
			test |= 0x80;
		else 
			test |= 0x00;
		_nop_();
		ADC_CLK = 1;
		_nop_();  _nop_();

		ADC_CLK = 0;
		_nop_();

	}

	//比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉
	if (adval == test)     
		dat = test;
	_nop_();  _nop_();
	ADC_CS = 1;        						//释放ADC0832
	ADC_DATO = 1;
	ADC_CLK = 1;

	return dat;
}

资料借鉴于此纷传

  • 有需要资料的可了解一下.docx
    下载

相关推荐