课程设计自行车里程表Word格式.docx
- 文档编号:16500924
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:26
- 大小:84.55KB
课程设计自行车里程表Word格式.docx
《课程设计自行车里程表Word格式.docx》由会员分享,可在线阅读,更多相关《课程设计自行车里程表Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
为了保证系统的实时性,系统的速度转换模块和显示数据转BCD码模块都采纳快速算法。
另外,还应尽可能保证其他子模块在编程时的通用性和高效性。
本设计的速度和里程值采纳6位显示,并包括两个小数位。
第二章硬件设计
依照功能要求,第一要进行的是整体方案的设计于论证,构思一个符合实际要求的系统,如图2.1所示。
系统由测量模块、功能选择模块、显示模块、供电模块和单片机小系统组成。
功能选择后启动测量,大片及实时搜集、处置后显示。
霍尔传感器
开关功能选择
显示
功能指示灯
2051单片机
稳压器
+5V电池组
充电电路
发电机
图2.1系统组成结构框图
具体硬件电路如图2.2所示。
图2.2系统硬件电路原理图
速度和里程由开关型霍尔传感器测量,已知自行车轮子的周长(本系统采纳的是1.8m,设为L),轮子每转动一圈,传感器采样一个下降沿信号并送到单片机的外中断0产生一次中断,全书加1,两个相邻下降沿信号的时刻由单片机按时器1计时(设为T),哪么计算当前速度(设为V)和行驶里程(设为S)的公式为:
V=1.8/T,S=1.8m*所行驶的圈数
S1是单片机的复位开关,系统采纳按键电平复位开关;
S2是电源开关,并由灯D1指示;
S3为速度和里程切换开关;
S4为限速切换开关,能够依照自身需要选择不同的最大超速速度;
S5为里程单位切换开关。
P1.4输出低电平常,操纵D2亮,表示现在显示的里程值为km/h,P1.5输出低电平常,操纵灯D3亮,提示速度太慢;
P1.6输出低电平常,操纵灯D4亮,表示现在的显示值时里程(不然为速度);
P1.7操纵超速报警电路,其为高电平表示行驶速度正常,为低电平常,三极管9012导通,驱动蜂鸣器报警。
2.3AT89C2051单片机简介
AT89C2051是一个低电压,高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读Flash程序存储器和128bytes的随机存取数据存储器(RAM),器件采纳ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处置器和Flash存储单元,功能壮大AT89C2051单片机可为您提供许多高性价比的应用处合。
AT89C2051是一个功能壮大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程按时计数器,两个全双向串行通信口,一个模拟比较放大器。
同时AT89C2051的时钟频率能够为零,即具有可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、按时/计数器、串行口和外中断口,系统唤醒后即进入继续工作状态。
省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。
管角配置图2.3所示。
图2.32051引脚图
要紧功能介绍
(1)兼容MCS51指令系统
(2)15个双向I/O口
(3)两个16位可编程按时/计数器
(4)时钟频率0-24MHz
(5)两个外部中断源
(6)可直接驱动LED
(7)低功耗睡眠功能
(8)可编程UARL通道
(9)2k可反复擦写(>
1000次)FlashROM
(10)6个中断源
(11)
(12)128x8bit内部RAM
(13)两个串行中断
(14)两级加密位
(15)内置一个模拟比较放大器
(16)软件设置睡眠和唤醒功能
可见。
2051能够为很多的嵌入式操纵应用提供高度灵活而且价钱低廉的方案,专门适合小系统。
本系统仅用到单片机的10个I/O口,因此选用2051单片机做主系统。
如图2.4所示。
发电机发出+15V的交流电,经整流滤波后,再给镍氢电池组充电,充电采纳恒流方式。
已充电的电池组经7805稳压,给霍尔传感器和单片机系统供电。
由
图2.4电源电路原理图
于充电电流可达400~500mA,且充电时刻较长,因此三极管选用功率高的C8050。
5KΩ的电位器用于调剂充电电流,幸免电流过大烧坏元件。
固然,实验设计进程中为了简便,咱们能够不用电机。
直接用4个1.5V的电池组经7805稳压后取得+5V电压给单片机系统和霍尔传感器供电。
霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。
本系统采纳JK8002D霍尔接近开关,他是一种非接触型无触点开关,系统通过它探测外部的磁场的强弱转变,继而操纵开关输出。
磁场由外部的磁钢产生。
JK8002D霍尔接近开关的内部原理图和输入/输出特性如图(5)和图(6)所示。
JK8002D霍尔接近开关的输入量是磁感应强度B,当B值达到必然的程度(如Bl)时,霍尔开关内部的触发器翻转,其输出电平状态也随之翻转。
当探头与磁钢距离由远而近为8mm时,霍尔元件输出端输出一个无抖动的低电平(约为0.2V),当二者距离足够远时,霍尔元件输出端输出一个无抖动的高电平(约为3.7V),因此输出信号可直接到单片机的外中断0的引脚。
2.4.34位串行静态显示电路
当单片机的UART口部进行串行通信时,可设置其工作于同步移位寄放器方式0,以输出显示信息,实现n位LED的静态显示,如此做只占用了很少的I/O口线。
系统中,4各共阳极得LED数码管和4片74LS164组成4位数字显示电路,74LS164将串行输入的显示信息转换成并行输出,驱动数码管显示。
74LS164在低电平输出时许诺通过的电流为8mA,故没必要添加驱动电路即可获取理想亮度。
与动态扫描方式相较较,该方式不必CPU做不断的扫描,频繁地为显示效劳,节省了CPU的时刻,软件世界也比较简单。
显示电路如图2.5所示。
图2.54位串行静态显示电路原理图
第三章软件设计
主程序流程图见图3.1。
开机后系统自检,正常时LED显示“——”,同时等待自行车行驶。
轮子开始转圈后,系统进行记录和计算,并依照速度/里程开关的选择显示数值。
N
系统初始化
主程序
P3.2=0?
Y
开始初始显示
P1.0=1?
显示里程
显示速度
图3.1主程序流程图
3.2外中断0和T1按时溢出中断效劳子程序设计
外中断0效劳子程序用于对输入脉冲的个数即轮子转圈的次数计数。
每计数一次,系统保留圈数值的同时保留按时器的计时值,并依照功能开关键实时显示相应的值。
T1按时溢出中断效劳子程序用于实时统计记一次数的经历时刻。
T1按时的基准时刻设为20ms,假设记一次数中T1中断的次数为C,1.8/(20C)ms即当前自行车行驶的速度。
用内部按时加外中断的方式实现了对输入脉冲信号的测量,这是本系统最关键的程序部份。
3.3速度/里程显示操纵子程序设计
最大许诺速度由限速切换开关S4操纵,超速(>
20千米/小时)使单片机的P1.7输出低电平报警。
假设行驶速度太慢(<
0.5m/s),灯D3不断闪烁,LED交替显示“Erro”、“Sudu”和当前速度值,以引发骑车者的注意。
速度显示值的单位有km/h和每m/s,由功能键S5切换。
关于里程值,为了较精准地显示,程序设置了不同里程范围时所显示的小数点后数字的位数:
里程为10m~99m,显示2位小数;
里程为100m~999m,显示1位小数。
如附录2
参考文献:
[1]张毅坤,陈善久.单片微型运算机原理及应用.西安:
西安电子科技大学出版社,2002.
[2]张友德,赵志英,徐时亮.单片微机原理应用与实验.上海:
复旦大学出版社,2000.
[3]伟福Lab2000P系列单片机仿真实验系统说明书.
[4]郑学坚周斌微型运算机原理和应用北京:
清华大学出版社
[5]陈为单片机原理
附录
附录1整体电路图
附录2源程序
自行车里程表
/*各引脚用途及系统功能说明
P1.0速度和里程切换:
1显示速度,0显示里程
P1.1限速度切换:
110m/s;
08m/s
P1.2km/h和m/s的切换:
P1.4指示显示器单位为km/h
P1.5速度太慢灯闪烁警告
P1.60时灯亮,指示里程;
为以灯不亮,显示速度
P1.7超速度报警
距离最大值为9999m
6H圈、38H圈、22C圈、15B6圈
0m=<
S<
10m10m=<
100m100m=<
1000m1000m=<
10000m
周长0707H00B4H0012H0012H/0AH
//变量概念//
XIAOSHUEDU57H;
小数点位数单元
GEWEIEDU40H;
显示单元
SHIWEIEDU41H;
BAIWEIEDU42H;
QIANWEIEDU43H;
QSHU1EDU43H;
QSHU0EDU61H;
自行车圈数存储单元高位
QSHU0EDU62H;
自行车圈数存储单元低位
SJIAN0EDU6CH;
T1按时溢出存储单元高位
SJIAN1EDU6DH;
T1按时溢出存储单元低位
//主程序//
ORG000H
AJMPSTART
ORG0003H
AJMPINTEX0
ORG001BH
AJMPIT11
ORG0030H
START:
MOVSP,#75H;
设置堆栈指针
MOVSCON,#00H;
串行口工作方式
MOVGEWEI,#0AH;
开机显示
MOVSHIWEI,#0AH
MOVBAIWEI,#0AH
MOVQIANWEI,#0AH
ACALLDIS11
SETBP3.2;
外中断0为输入查询方式
JBP3.2;
等待第一个有效脉冲(下降沿)到来
ACALLCLEARRAM;
挪用系统预备显示初始化子程序
STLOOP:
JNBP1.0,ST1;
p1.0=0,显示速度
ACALLDISPLAYS;
P1.0=1,显示里程
SJMPSTLOOP;
循环显示
ST1:
ACALLDISPLAYV;
第一个下降沿来后显示速度
AJMPSTLOOP;
//系统预备显示初始化子程序//
CLEARRAM:
MOVTMOD,#10H;
T1用于定时,工作于模式1
MOVTH1,#0B1H;
按时20ms初始值
SETBP1.2;
CLRA;
相应内RAM空间清零
MOV21H,A;
速度/里程的BCD码高位清0
MOV22H,A;
速度/里程的BCD码低位清0
MOVQSHU1,A;
圈数空间清0
MOVQSHU0,A
MOV6AH,A;
T1溢出次数暂存单元高位清0
MOV6BH,A;
T1溢出次数暂存单元低位清0
MOVSJIAN0,A;
计数器空间清零
MOVSJIAN1,A
MOVXIAOSHU,#01H;
默许显示3位小数
SETBIT0;
设置外中断为边沿触发方式
SETBPT1;
T1优先级最高
SETBEA;
开总中断
SETBET1;
开T1中断
SETBEX0;
开外0中断
//外中断0效劳子程序//
INTEX0:
PUSHACC;
累加器堆栈爱惜
PUSHPSW;
状态字堆栈爱惜
INCQSHU0;
圈加1
SETBP1.7;
置1不报警
清A
CJNEA,QSHU0,SUBX0;
计数没溢出转SUBX0
INCQSHU1;
溢出进位(61H加1)
SUBX0:
CLRTR1;
关计时,读轮子转一圈的时刻
MOV6AH,SJIAN0;
时刻暂存
MOV6BH,SJIAN1
按时器T1重付初值
MOVTL1,#0DFH
CLRA
MOVSJIAN0,A;
清计时空间
MOVSJIAN1,A
SETBTR1;
从头计时
POPPSW;
状态字恢复
POPACC;
累加器恢复
RETI;
中断返回
//T1按时器溢出时中断效劳子程序//
IT11:
堆栈爱惜
PUSHPSW
INCSJIAN1;
按时20毫秒溢出次数
MOVA,SJIAN1;
读一圈按时的次数
CJNEA,#0BBH,SUBT1;
速度太慢(<
0.5),处置
AJMPSUBT2
SUBT1:
JCSUBT2
INC69H;
(69H)为奇数,LED显示“Erro”
MOVA,69H;
再显示具体速度的值
JBACC.0ERRO;
(69H)为偶数,LED显示“Sudu”
MOVGEWEI,#05H;
MOVSHIWEI,#0BH
MOVBAIWEI,#0DH
MOVQIANWEI,#0BH
MOVXIAOSHU,#0BH
SJMPFS12
ERRO:
MOVGEWEI,#0CH
MOVSHIWEI,#OBH
MOVBAIWEI,#0BH
MOVQIANWEI,#0DH
ACALLDIS21
;
“Erro”或“sudu”和具体速度大值交替闪烁显示
FS12:
MOVR2,#01H;
ACALLDELAY2
DJNZR2,FLASH
SUBT2:
MOVTH1,#0B1H
MOVTL1,#0DFH
SETBTR1
POPPSW
POPACC
RETI
//里程显示操纵子程序//
ACALLJULI
MOVA,QSHU1
CJNEA,#02H,DIAOYONG
AJMPPANDY
DIAOYONG:
JNCPANDY1
AJMPBUDY
PANDY:
MOVA,QSHU0
CJNEA,#2CH,PANDY2
AJMPPANDY1
PANDY2:
JCBUDY
PANDY1:
MOVR6,#00h
MOVR7,#0AH
ACALLJULI2
ACALLBCDC
ACALLFENKAI
ACALLDELAY1
RET
BUDY:
MOVR7,#01h
ACALLJULI2
//速度显示操纵子程序//
ACALLSUDU
MOVXIAOSHU,#01H
//处置子程序1//
JULI:
PUSHPSW
PUSHACC
MOVR2,QSHU1
MOVR3,QSHU0
JNZGAO
CJNEA,#06H,PAN1
AJMPPAN2
PAN1:
JNCPAN2
AJMPCZ707
PAN2:
CJNEA,#38H,PAN3
AJMPGAO
PAN3:
JCCZB4
GAO:
AJMPCZ12
CZ707:
MOVR6,#07H
MOVR7,#07H
AJMPKAISHI
CZB4:
MOVR6,#00H
MOVR7,#0B4H
MOVXIAOSHU,#02H
CZ12:
MOVR7,#00H
MOVXIAOSHU,#03H
KAISHI为两字节乘两字节程序段
KAISHI:
MOVA,R3
MOVB,R7
MULAB
MOVR4,B
MOVR5,B
MOVB,R6
MULAAB
ADDA,R4
MOVR4,A
ADDCA,B
MULAB
ADDA,R4
MOVR3,A
RLCA
XCHA,R2
ADDA,R3
MOVA,R2
MOV50H,R2
MOV51H,R3
MOV52H,R4
MOV53H,R5
//处置里程子程序2//
Juli2:
MOVR2,50H
MOVR3,51H
MOVR4,52H
MOVR5,53H
DIVD11:
CLRC
SUBBA,R7
SUBBA,R6
JCDVD11
SETBOV
DVD111:
MOVB,#10H
DVD211:
MOVA,R5
MOVR5,A
MOVA,R4
MOVF0,C
MOVR1,A
ANLC,/F0
JCDVD311
MOVR2,A
MOVA,R1
INCR5
DVD311:
DJNZB,DVD211
CLROV
MOV30H,R2
MOV31H,R3
NOP
//十六进制转换乘BCD子程序//
BCDC:
MOVR6,30H
MOVR7,31H
MOVR2,#10H
HB322:
MOVA,R7
MOVR7,A
MOVA,R6
MOVR6,A
DAA
ADDCA,R4
ADDCA,R3
DJNZR2,HB322
MOV20H,R3
MOV21H,R4
MOV22H,R5
NOP
//算速度十六进制值子程序//
SUDU:
JBP1.2,KM
SJMPJUBU
KM:
MOVR2,#00H
MOVR3,#04H
MOVR4,#
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 自行车 里程表