版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z单片机原理及系统课程设计评语:考勤10分守纪10分过程30分设计报告30分辩论20分总成绩100分-. z基于单片机自行车测速系统设计1 设计目的实现自行车运行过程中对行驶里程、平均速度、运行时间、当前瞬时速度进展测量和显示,通过对速度的测量来控制自行车的运行,当速度超过限定值时发出报警提醒减速,以确保自行车平安的运行。2设计方案及原理2.1系统总体设计思路和原理本系统实现自行车运行过程中对行驶里程、平均速度、运行时间、当前瞬时速度进展测量和显示,系统包括控制器模块、信号检测采集模块、显示模块、电源模块四局部组成。系统工作时,传感器采集到信号用按键代表脉冲信号输入传输给单片机,单片机计
2、数器统计脉冲个数,定时器记录相应时间长度,经过运算,将行驶里程、全程平均速度、运行总时间送给液晶显示器显示,当前瞬时速度送给数码管显示。通过以下计算公式算出里程、平均速度、瞬时速度。通过相应的显示机构显示出来。里程=脉冲总数车轮周长平均速度=里程运行总时间瞬时速度=每五秒的行程52.2自行车测速系统方案设计系统包括控制器模块、信号检测采集模块、显示模块、电源模块四局部,控制器模块由AT89C51组成,它运用于数据储存和外部设备管理,信号采集模块用的是模拟霍尔传感器,通过外部脉冲来控制圈数,显示模块用1602和数码管,1602显示里程、全程平均速度以及运行时间,数码管LED显示五秒的平均速度即当
3、前瞬时速度,电源模块给整个系统提供电压,使系统可以正常工作。系统框图如图1所示。图1 自行车测速系统设计原理图3硬件设计3.1系统原理电路图系统中里程、速度等都是由霍尔元器件测量。通过按钮输出脉冲,脉冲数目代表车轮转动圈数,自行车轮胎的周长为2.15m,输入一个脉冲,轮子转动一圈,里程为一个周长的距离,通过脉冲数可以算出总里程,通过单片机T0定时器和T1计数器记录时间,用5秒的前进距离除以时间5秒,得到5秒的平均速度即当前速度。而总里程L除以总时间t得到平均速度。在车轮辐条上的磁钢接近霍尔传感器一次,传感器送一个脉冲信号给单片机的外部中断计数器T1,产生一次中断,圈数加一,圈数乘以2.15即为
4、车前进距离。处理速度数据时同时刷新平均速度、当前速度、运行里程。假设速度大于25km/h即6.95m/s则P3.7输出高电平,蜂鸣器发出报警,提示速度过大。单片机定时器0定时时间为50ms,每20次刷新系统时钟及计算累计行驶时间。系统原理电路图如图2所示。图2 系统原理电路图3.2 霍尔传感器开关模块设计使用开关代替霍尔传感器,通过连续按压开关,使开关对单片机连续输入脉冲来模拟辐条经过的次数,单位时间按压次数越多,相当于辐条经过传感器的频率越高,从而反映车速越快,电路原理如图3所示。图3 霍尔传感器模拟原理图4软件设计4.1程序流程图图4 系统流程图5系统仿真5.1仿真结果按压模拟霍尔传感器的
5、开关,模拟出辐条发生频率,通过脉冲数和时间计算出当前速度,当前模拟速度小于给定限定值6.95m/s即25km/h时,没有发生超速现象,通过单片机处理后给出报警指示低电平,蜂鸣器不响,故而速度没有超过限定值,可以正常行驶。数码管显示屏显示自行车每五秒的平均速度,即当前的瞬时速度,而液晶显示器分别显示自行车行驶的总里程,全程的平均速度,以及当前运行的总时间,仿真结果如图5所示。图5 未超速系统仿真结果图按压模拟霍尔传感器的开关,模拟出辐条发生频率,通过程序计算出当前速度,当模拟速度大于给定限定值6.95m/s即25km/h时,说明自行车发生了超速现象,通过单片机处理后给出报警指示高电平,故而报警蜂
6、鸣器响,说明速度超出了限定值,提醒车主应减速行驶,同时数码管显示屏显示自行车每五秒的平均速度即当前的瞬时速度,而液晶显示器同时分别显示出自行车行驶的总里程,全程的平均速度,以及当前运行的总时间,仿真结果如图6所示。 图6 超速系统仿真结果6总结这次课程设计的题目是设计一个以AT89C51单片机为核心的自行车速度里程表。本设计主要分为硬件局部和软件局部。在硬件电路的设计局部,主要考虑硬件电路的简单性,故使用开关代替霍尔传感器,通过连续按压开关,使开关对单片机连续输入脉冲来模拟辐条经过的次数,从而计算运行里程。在软件局部采用用C语言编写,采用模块化设计思想,程序可读性强。在这次课程设计中,我也遇到
7、了许多问题。在设计过程中,我发现自己平时对单片机知识的学习还不够深入,不能把所学的理论知识与实践相结合起来,因此在以后的学习中,我要争取做到理论与实践相结合,做到学以致用。同时,我也学到了许多东西,我了解到要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的部构造有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路。这次课程设计让我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义。7参考文献1 阎焕忠,王长涛,马斌. 单片机控制里程转速表的设计M.建筑工
8、程学院学报自然科学版,2002, 4:145-148.2 友德,志英,涂时亮.单片机微机原理,应用与实验M.:复旦大学,2003:122-136.3 王思明,鑫,苟军年,单片机原理及应用系统设计M.科学,2021:6-8.8附录*include*include /包含_nop_();函数定义的头文件void timer0_int();sbit baojing=P37;sbit E=P32; /1602使能引脚(位寻址,下同)sbit RW=P31; /1602读写引脚sbit RS=P30; /1602数据/命令选择引脚unsigned char hour,minute,second;unsi
9、gned char n,count;unsigned long lengthbuf,lengthvalue;unsigned char code Table=0*3f,0*06,0*5b,0*4f,0*66,0*6d,0*7d,0*07,0*7f,0*6f; /09的共阴极七段管代码unsigned char code Table1=0*bf,0*86,0*db,0*cf,0*e6,0*ed,0*fd,0*87,0*ff,0*ef; /09的共阴极七段管代码,带小数点void Delay0(int Times);void Display(unsined int);void delay() /延
10、时5US_nop_();_nop_();_nop_();_nop_();_nop_();bit Busy(void) /读状态函数,判断液晶模块的忙碌状态bit busy_flag = 0;RS = 0;RW = 1;E = 1;delay();busy_flag = (bit)(P0 & 0*80);E = 0;return busy_flag;void wcmd(unsigned char del) /将模式设置指令或显示地址写入液晶模块while(Busy();RS = 0;RW = 0;E = 0;delay();P0 = del;delay();E = 1;delay();E = 0
11、;void wdata(unsigned char del)/将数据字符ASCII码写入液晶模块while(Busy();RS = 1;RW = 0;E = 0;delay();P0 = del; delay();E = 1;delay();E = 0;void L1602_init(void) /初始化液晶模块wcmd(0*38); /功能设置,8位字长,2行,5*7点阵wcmd(0*0c); /显示设置,显示屏右移wcmd(0*06); /显示设置,光标右移,字符不移wcmd(0*01); /清屏命令void L1602_string(unsigned char hang,unsigned
12、 char lie,unsigned char p) /将数据写入液晶模块unsigned char a;if(hang = 1) a = 0*80; /显示在第一行if(hang = 2) a = 0*c0; /显示在第一行a = a + lie -1;wcmd(a);wdata(p);void timer0_int() interrupt 1 using 3 /中断,用于构成时钟 n+; if(n=100) n=0; count+; second+; if(second=60) second=0; minute+; if(minute=60) minute=0; hour+; if(hou
13、r=24) hour=0; if(count=5) count=0; lengthvalue=(TL1+TH1*256)*215-lengthbuf; lengthbuf=(TL1+TH1*256)*215; TH0=0*d8; TL0=0*f0; int timer() /以秒为单位计算运行总时间 unsigned char a=100; unsigned char b; b=second+minute*60+hour*60*60; return b; void Delay0(int Time) /延时子程序 int i; unsigned char j; for(i=0;iTime;i+)
14、 for(j=0;j150;j+) void Display(unsigned int *) /在LED七段管中显示最高速度 unsigned char slc;unsigned char a,b,c,d;slc=0*ef; /LED七段管选通a= */1000;b=( *-a*1000)/100;c=( *-a*1000-b*100)/10;d= *%10; P2=slc;/分别将最大速度的各个位扫描显示slc=slc1;P1=Tablea;Delay0(10);P2=slc;slc=slc1;P1=Table1b;Delay0(10);P2=slc;slc=slc1;P1=Tablec;D
15、elay0(10);P2=slc;slc=slc0)v=length/timer(); /计算速度 vnow=lengthvalue/5;/计算当前速度5秒if(vnow=695) baojing=1;else baojing=0; /速度超过6.95m/s(即25km/h),则报警Display(vnow); /在LED七段管上显示当前速度5秒速度Delay0(20);a=(v/1000); /计算速度的各个进位b=(v-a*1000)/100;c=(v-a*1000-b*100)/10;d=v%10;second1=second/10; /计算分秒时的十位与个位second2=second
16、%10;minute1=minute/10;minute2=minute%10;hour1=hour/10;hour2=hour%10;L1602_string(1,1,s); /在LCD相应位置显示变量或者常量L1602_string(1,2,p);L1602_string(1,3,e);L1602_string(1,4,e);L1602_string(1,5,d);L1602_string(1,6, );L1602_string(1,7,L);L1602_string(1,8,=);L1602_string(1,9,length1+48);L1602_string(1,10,length2
17、+48);L1602_string(1,11,length3+48);L1602_string(1,12,length4+48);L1602_string(1,13,.);L1602_string(1,14,length5+48);L1602_string(1,15,length6+48);L1602_string(1,16,m);L1602_string(2,1,a+48); L1602_string(2,2,b+48);L1602_string(2,3,.);L1602_string(2,4,c+48);L1602_string(2,5,d+48);L1602_string(2,6,m);L1602_string(2,7,/);L1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- s版小学四年级语文下册教案(全册)
- 工业机器人虚拟仿真与实操课件 项目四 任务一 正方形物料搬运工作站仿真
- 天津市部分区2024-2025学年高三上学期期中考试生物(含答案)
- 网络安全专题培训
- 壁挂灯产业链招商引资的调研报告
- 打猎用伪装掩蔽物市场需求与消费特点分析
- 减肥用化妆品产业规划专项研究报告
- 录音装置市场发展预测和趋势分析
- 手杖市场需求与消费特点分析
- 冰镇球产业运行及前景预测报告
- 河北省2012土建定额说明及计算规则(含定额总说明)解读
- Prolog语言(耐心看完-你就入门了)
- 中工商计算公式汇总.doc
- 保霸线外加电流深井阳极地床阴极保护工程施工方案
- 蓝色商务大气感恩同行集团公司20周年庆典PPT模板
- 恒温箱PLC控制系统毕业设计
- 雍琦版 《法律逻辑学》课后习题答案
- 176033山西《装饰工程预算定额》定额说明及计算规则
- 新技术、新材料、新工艺”试点输电线路建设的通知国家电网
- 水泵试运转记录表
- 箱式变电站交接试验报告
评论
0/150
提交评论