加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机的骑行帽设计

11/04 08:31
1004
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

一、毕业设计(论文)的内容

内容:

现在生活中,人们越来越注意身体锻炼,越来越多的人采用骑行的方式既能环保出行,又能锻炼身体,放松身心。但在骑行的过程中,也有一些不便。如自行车没有车灯或现有的自行车车灯都不太亮。在马上上,经常看见骑自行车的人,在要转方向时,伸出手示意后面的车辆或行人,存在安全隐患等等

因此,本系统要求使用单片机或其他控制器件实现一个智能骑行帽的设计和实现。  可自动控制LED灯,在光线昏暗的地方提供照明。在帽体上通过灯带进行转向提醒,后侧人员提醒,可实现多种供电方式,可USB供电,也可太阳能板供电,或动力储存电。要求设计尽可能的方便使用,合理。要求熟悉单片机或其他控制器的原理和设计,熟练掌握C语言或其他编程语言的设计编程,完成时间管理器的软件硬件设计与实现。整个毕业设计还要求完成相应的英文翻译和毕业设计论文。

1、通过学习掌握程序设计、调试技术。

2、掌握仿真软件的使用方法,并能编辑、编译和下载设计文件。

3、掌握系统搭建实用硬件系统的方法。

二、毕业设计(论文)的要求与数据

要求:

  1. 系统能自动检测光线强度,并控制骑行帽前LED灯的开关,在光线昏暗的地方提供照明。
  2. 在帽体后方,通过灯带进行转向提醒,给后侧人员提醒。
  3. 可实现多种供电方式,可USB供电,也可太阳能板供电,或动力储存电。
  4. 可播放音乐。
/**********************************

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

/**********************************
包含头文件
**********************************/
#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

相关推荐

电子产业图谱