基于51单片机的自行车测速里程码表设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机的自行车测速里程码表设计

  • [1. 主要功能:](#1. 主要功能:)
  • [2. 讲解视频:](#2. 讲解视频:)
  • [3. 仿真设计](#3. 仿真设计)
  • [4. 程序代码](#4. 程序代码)
  • [5. 设计报告](#5. 设计报告)
  • [6. 原理图](#6. 原理图)
  • [7. 设计资料内容清单](#7. 设计资料内容清单)

基于51单片机的自行车测速里程码表设计( proteus仿真+程序+设计报告+原理图+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0078

1. 主要功能:

基于51单片机的自行车测速行驶里程检测与显示设计

1、通过按键控制自行车行驶速度;

2、通过霍尔传感器测量自行车当前速度;

3、单片机实时检测自行车的行驶里程,行驶里程显示,显示精度0.01公里;

4、显示当前速度和行驶里程,可按键清零;

5、具有超速报警功能,可以设置报警值;

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

3. 仿真设计

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真LCD1602显示当前速度和里程数,当前速度为0km/h,当前总里程数0km。

通过加减速按键调整速度,直流电机逐渐加速,直到稳定。

实测12.9KM/h速度运行一个班小时后累计总里程为18.249km。

具有超速报警功能,通过按下设置键可以调整速度报警值。

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。

c 复制代码
#include "reg51.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
#define DIR		26*2.54//轮胎直径66.04CM 26英寸 1 英寸=2.54 厘米
#define RUOND 	DIR*3.14//207.3656单位CM 周长(C)=π×D 其中 D 是轮胎的外径,包括胎壁和胎面的整体直径。
#define PER_RUOND RUOND/240.0 //电机一圈产生240次中断。每次中断前进约0.864023cm
sbit k1=P1^0;//按钮
sbit k2=P1^1;
sbit k3=P1^2;		 
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
sbit out=P1^6;//输出控制
sbit beep=P2^0;//蜂鸣器

float pwm=0;//占空比

uchar time=0,mode=0;//系统变量
uint sudu1=0,sudu2=0,lim=150;//速度
float sum=0;//里程
uchar disp1[]="Speed:000.0km/h";
uchar disp2[]="Sum:000.000km ";
uchar disp3[]="00.0km/h ";
//主函数
void main()
{
	uchar i;
	init_1602();
	//设置INT0
	IT0=1;//跳变沿出发方式(下降沿)
	EX0=1;//打开INT0的中断允许。	
	TMOD|=0X01;//初始化定时器
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		//电机速度控制
		if(i<20)
			i++;
		else
			i=0;
		if(i<pwm)
			out=1;
		else
			out=0;
		//电机调速
		if(!k1)//加速
		{
			if(pwm<10)
				pwm+=0.5;
			while(!k1);
		}
		if(!k2)//减速
		{
			if(pwm>0)
				pwm-=0.5;
			while(!k2);
		}
		//设置
		if(!k3)
		{
			mode=!mode;
			while(!k3);
		}
		if(!k4)//加
		{
			if(lim<999)
				lim++;
			while(!k4);
		}
		if(!k5)//减
		{
			if(lim>0)
				lim--;
			while(!k5);
		}
		if(!k6)//清零
		{
			sum=0;
			while(!k6);
		}
	}
}
//定时器中断
void Timer0() interrupt 1
{
	float i;
	uint j;
	if(time<20)//1s
		time++;
	else
	{
		time=0;
		sudu1 = sudu2*PER_RUOND;//厘米/秒sudu2*
		sudu1 = sudu1/100.0*3600/10;//单位km/h 多除以10是因为这样算下来速度太快了,多除以10合理
		sudu2=0;
		//计算里程
		i=sudu1;
		i=i/360;
		sum=sum+i;//一秒记录一次里程

		//报警
		if(sudu1>lim)
			beep=0;
		else
			beep=1;
		//显示
		disp1[6]=sudu1/1000+0x30;
		disp1[7]=sudu1%1000/100+0x30;
		disp1[8]=sudu1%100/10+0x30;
		disp1[10]=sudu1%10+0x30;
		j=sum*10;
		disp2[4]=j/100000+0x30;
		disp2[5]=j%100000/10000+0x30;
		disp2[6]=j%10000/1000+0x30;
		disp2[8]=j%1000/100+0x30;
		disp2[9]=j%100/10+0x30;
		disp2[10]=j%10+0x30;
		disp3[0]=lim/100+0x30;
		disp3[1]=lim%100/10+0x30;
		disp3[3]=lim%10+0x30;
		if(mode==0)
		{
			write_string(1,0,disp1);
			write_string(2,0,disp2);
		}
		else
		{
			write_string(1,0,"set:");
			write_string(1,4,"             ");
			write_string(2,0,"    ");
			write_string(2,4,disp3);
		}
	}
	TH0=0X3C;
	TL0=0XB0;
}

void Int0()	interrupt 0		//外部中断0的中断函数
{
	sudu2++;
}

5. 设计报告

6613字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

随着现代科技的快速发展,智能化技术已广泛渗透到人们的日常生活中,并在诸多领域中发挥着日益重要的作用。在倡导绿色出行、节能环保的大背景下,自行车作为一种经济、便捷且环保的交通工具,其在性能监测与智能控制方面的提升显得尤为关键。现代社会对于自行车的需求不再仅限于基础的代步功能,而是更加强调安全、高效和用户体验的全面提升。

本课程设计作业正是基于这一需求背景,致力于研发一款以51系列单片机为核心的自行车测速行驶里程检测与显示系统。该系统集成了先进的传感技术和嵌入式计算能力,旨在实现对自行车速度信息的实时获取和高精度显示,同时还能精确记录并展示骑行过程中的累计行驶里程数据。为确保用户骑行的安全性和舒适性,系统特别设计了超速报警功能,当骑行速度超过预设阈值时,能够及时发出警示信号,提醒骑行者调整速度至合理范围内,从而有效降低因高速骑行可能导致的风险。

6. 原理图

原理图使用AD绘制,可供实物参考,仿真不同于实物,需要调试经验才能做出来。

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

7. 设计资料内容清单

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法--必读!!!!

1、程序代码注释

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、原理图

8、元器件清单

9、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

资料下载链接:

https://docs.qq.com/doc/DS0RPUnJsZVNNUUNW

相关推荐
Qingniu012 小时前
【青牛科技】应用方案 | RTC实时时钟芯片D8563和D1302
科技·单片机·嵌入式硬件·实时音视频·安防·工控·储能
深圳市青牛科技实业有限公司4 小时前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
Mr.谢尔比5 小时前
电赛入门之软件stm32keil+cubemx
stm32·单片机·嵌入式硬件·mcu·信息与通信·信号处理
LightningJie5 小时前
STM32中ARR(自动重装寄存器)为什么要减1
stm32·单片机·嵌入式硬件
极客小张9 小时前
基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路
stm32·单片机·嵌入式硬件·mqtt·sqlite·毕业设计·智能充电桩
m0_7393128712 小时前
【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)
stm32·单片机·嵌入式硬件
嵌入式小章12 小时前
基于STM32的实时时钟(RTC)教学
stm32·嵌入式硬件·实时音视频
TeYiToKu12 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
基极向上的三极管13 小时前
【AD】3-4 在原理图中放置元件
嵌入式硬件
徐嵌13 小时前
STM32项目---水质水位检测
stm32·单片机·嵌入式硬件