单片机开发出租车计价器.docx
- 文档编号:23416868
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:17
- 大小:175.35KB
单片机开发出租车计价器.docx
《单片机开发出租车计价器.docx》由会员分享,可在线阅读,更多相关《单片机开发出租车计价器.docx(17页珍藏版)》请在冰豆网上搜索。
单片机开发出租车计价器
北华航天工业学院电子工程系
课程设计任务书
姓名:
专业:
班级:
指导教师:
职称:
课程设计题目:
出租车计价器设计
主要课程支撑:
模拟电子技术、数字电子技术、微机原理与接口技术
实践目标:
1.熟练掌握单片机汇编指令的使用方法
2.熟练掌握行列式键盘、LED显示器的控制与管理方法
3.掌握A/D、/D/A的应用
4.掌握单片机应用系统设计方法、软硬件调试方法
5.熟练使用单片机仿真软件
基本要求:
1.设计出租车计价器
(1).显示器显示按里程的计费。
2公里起价,起价费5元。
5元/公里(白天),6元/公里(夜间);
(2).最小计价单位0.1元(0.12元)
(3).按键启动、停止计价;
(4).每等待10分钟增加1元。
2.编程实现题目要求的基本功能,程序运行通过。
3.撰写课程实践报告(设计思路、实现方法、硬件资源分配、程序流程图、运行结果分析等),要求用A4纸打印实践报告。
所需仪器设备:
伟福Lab6000综合实验/仿真系统一台套
微机一台
成果验收形式:
程序上机运行
参考文献:
Lab6000综合实验/仿真系统说明书
时间
安排
(1)7-8周:
选题、方案设计
(2)第9周开始上机调试程序
(3)最后一次上机课题验收
(4)第10周上交实践报告
指导教师:
教研室主任:
年月日
课程设计报告
一、功能分析
1.实现数据的复位、白天/晚上转换、数据输出、计时计价、路程输等功能。
输出采用6个8段数码显示管。
两个数码管显示路程,四个数码管显示价钱。
从起步价开始,当汽车程行驶未满2公里时,均按起步价计算。
过2公里后,实现每1公里单价收费,中间遇暂停时,计程数不再增加,开始计时收费,测距收费和测时收费的和便构成了一位乘客的车费。
里程计算是通过安装在车轮上的传感器(本实验用外部事件计数模拟里程传感器)检测到信号传到单片机通过处理计算,送给显示单元的。
2.本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机提供方便。
外部事件计数模拟里程传感器,外部输入1个脉冲,计价器增加0.1元(0.12元夜间),计价显示:
元、角,逢十进一。
二、硬件设计
1.硬件电路图
2.元器件清单
(1)8051单片机
(2)6位8段数码管显示电路
三、程序设计
1.流程图
否
是
否
是
否
是
否
是
否
2.程序功能说明
程序初始,数码管显示时间。
P1.0为1时,显示路程和价格的初始值。
P1.1为1时根据内部脉冲次数判定里程是否超过2公里,每500个内部脉冲里程数加1公里,若不超过2公里价钱不变。
超出2公里后,实现每公里单价收费,白天5元/公里(6元/公里),内部输入1个脉冲,计价器增加20分(24分夜间);白天晚上按时间自动转换计价。
P1.2为1时,暂停计价,每等待5s钟,计价器增加一元,等待时间不5s不计费,p1.2为0时继续计价。
P1.1为0时复位。
P1.0为0时显示时间。
3.硬件资源分配表
存储单元、寄存器
用途
09h
8个定时器中断为1秒
43h
存放公里数
44h
存放元数
45h
存放角数
46h
存放分数
30h
存放LED灯的首地址
40h
存放小时
41h
存放分钟
42h
存放秒
22h.0
1代表晚上0代表白天
R0
存放键盘输入低8位
R1
点亮数码管的位选量
R2
存放用于显示的数码管数
R3
暂存处理计数压缩BCD码形式
R4
暂存处理计数压缩BCD码形式
R5
暂存处理计数压缩BCD码形式
R6
用于延时程序
R7
用于延时程序
4.程序清单(不含实验系统程序)
OUTBITequ08002h;位控制口
OUTSEGequ08004h;段控制口
LEDBufequ30h
Hourequ40h
Minuteequ41h
Secondequ42h
org0000h
ljmpmain
org0003h
ljmpZD0
org000bh
ljmpdsqzd0
org0013h
ljmpZD1
org0030h
main:
movsecond,#0;秒r3
movminute,#34;分r4
movhour,#22;时r5
mov0ah,#05h
movsp,#50h
mov0bh,#05h
setb20h.0;标志位1
movtmod,#01h;定时器0,方式1
movie,#83h;定时器T0输出中断,外部中断0
movip,#02h;外部中断1为最高优先级
clr23h.0
mov09h,#08h;
movth0,#0bh;置定时器时间常数0.125s
movtl0,#0c8h
setbtr0
mloop:
movdptr,#ledmap
jbp1.5,w2
jnbp1.0,L12;标志位2
mova,Hour
movb,#10
divab
movca,@a+dptr
movLEDBuf,a
mova,b
movca,@a+dptr
orla,#80h
movLEDBuf+1,a
mova,Minute
movb,#10
divab
movca,@a+dptr
movLEDBuf+2,a
mova,b
movca,@a+dptr
orla,#80h
movLEDBuf+3,a
mova,Second
movb,#10
divab
movca,@a+dptr
movLEDBuf+4,a
mova,b
movca,@a+dptr
movLEDBuf+5,a
callDisplayLED
ljmpMLoop
w2:
lcalldsqzd0
callDisplayLED
ljmpMLoop
L12:
lcallZD1
movA,43h;显示里程
movB,#0ah
divAB
movcA,@A+dptr
movledbuf,a
movA,B
movcA,@A+dptr
movledbuf+1,a
movA,44h;显示价格
movB,#64h
divAB
movcA,@A+dptr
movledbuf+2,a
movA,B
movB,#0ah
divAB
movcA,@A+dptr
movledbuf+3,a
movA,B
movcA,@A+dptr
movledbuf+4,a
movA,45h
movcA,@A+dptr
movledbuf+5,a
calldisplayled
ljmpMLoop
Delay:
movr7,#0;延时子程序
DelayLoop:
djnzr7,DelayLoop
djnzr6,DelayLoop
ret
LEDMAP:
;八段管显示码
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh
DisplayLED:
movr0,#LEDBuf
movr1,#6;共6个八段管
movr2,#00100000b;从左边开始显示
Loop:
movdptr,#OUTBIT
mova,#0
movx@dptr,a;关所有八段管
mova,@r0
movdptr,#OUTSEG
movx@dptr,a
movdptr,#OUTBIT
mova,r2
movx@dptr,a;显示一位八段管
movr6,#1
callDelay
mova,r2;显示下一位
rra
movr2,a
incr0
djnzr1,Loop
ret
ZD1:
pushacc
pushpsw
mov0bh,#05h
clrc
jnbp1.4,w1
movA,hour
subbA,#6h
jcL3
subbA,#16h
jncL3
clr22h.0
ajmpL4
L3:
setb22h.0
L4:
incr3;计数脉冲加一
cjner3,#500,L5
inc43h
movr3,#0h
L5:
mova,43h
clrc
subba,#2h
jncL6
sjmpL10
w1:
mov44h,#05h
mov43h,#00h
mov45h,#00h
sjmpL10
L6:
mova,46h
jb22h.0,L7;晚上跳转
adda,#20
ajmpL11
L7:
addA,#24
ajmpL11
L11:
mov46h,A
clrc
subbA,#64h
jcL10
inc45h
mov46h,A
mova,45h
clrc
subba,#0ah
jcL10
inc44h
mov45h,A
L10:
poppsw
popacc
reti
dsqzd0:
pushacc
pushpsw
clrtr0
movth0,#0bh
movtl0,#0c8h
setbtr0
djnz09h,exit
incsecond
mov09h,#08h
dec0ah
djnz0ah,L1
mov0ah,#05h
L1:
movr4,second
cjner4,#3ch,exit
movsecond,#0h
incminute
movr4,minute
cjner4,#3ch,exit
movminute,#0h
inchour
movr4,hour
cjner4,#18h,exit
movsecond,#0
movminute,#0
movhour,#0
exit:
poppsw
popacc
reti
end
4、软硬件调试
根据系统设计方案,本系统的调试共分为三大部分:
硬件调试,软件调试和软硬件联调。
要在实验箱上按需要进行连线,并检查试验箱各部分是否能用。
调试程序时,总会出现错误,是程序无法运行。
就会根据提示找出错误处并进行修改。
错误的地方经过检查修改,都是指令使用错误都是指令错误和没有对某些单元进行定义。
在认识到错误后,更改了正确的指令并对相应的单元在前面进行了定义。
再次运行,程序运行成功,对程序进行调试。
5、设计分析总结
这次单片机课设我们做的是出租车计价器,开始看到题目和课设要求时,觉得挺简单的,但是做的时候就难了,开始我们是在网上找的模板,但是换成我们自己的课设要求时才发现错误很多,我们的课设是自动计时的,和实际的比较接近,但是在最后阶段我们的出租车停车加钱,总是加不上,在课设期间我们也没有搞定这个问题,但是问题在哪我们清楚了,也想了几种方法,但是在实际操作中,总是实现不了,发现了知识和实际操作的联系上需要加强。
通过这次课设,我学到了很多,知识学了但是并不代表你会用了,还得注重一下实际操作才可以真正的学到,知识联系不了实际学到的知识并不牢固。
通过这次课设我也学到了很多课本上没有的知识,也使我对单片机的兴趣更大了,并且,我们团队一起合作课设,注重团队精神。
6、参考文献
[1]张友德赵志英涂时亮编单片微型机原理、应用与实验上海:
复旦大学出版社2005.12
[2]徐光翔 单片机原理接口及应用 南京大学出版社
[3]张淑清等.单片微型计算机接口技术及其应用北京:
国防工业出版社
[4]胡辉李叶紫胡力平编单片机原理与应用中国水利出版社2007.9
[5]Lab6000综合实验/仿真系统说明书
成绩评定表
指导
教师
评价
意见
评价项目
优
良
中
差
学习态度及表现
设计作品完成情况
设计报告完成情况
最终成绩评定
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 开发 出租车 计价器