版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南 京 理 工 大 学单片机课程设计报告作 者:姚春桂学 号:0608190146学院(系):动力工程学院专 业:电气工程及其自动化题 目:市内出租车计程计价显示系统申请面试指导教师: 葛 龙 2008 年 12 月 24 日1 需求分析随着国内城市化的加快,人民生活水平的不断提高,作为市内最快捷方便的交通工具出租汽车,正越来越受到广大普通百姓的青睐,越来越多的人会选择搭乘出租车作为自己出行的方式,随之而来的是出租行业的蓬勃发展,因此出租车计程计价显示系统的使用数量也在不断的增多,因此设计一款廉价且可以方便显示行使路程及费用的系统具有广阔的市场前景。2 基本原理本出租车计程计价显示系统采用AT
2、89C51单片机作为核心处理器,通过编写汇编程序输入到单片机设置起步价、每公里计费等固定参数及完成计程计费的计算过程,在汽车底盘主轴上(或变速箱内、转轴齿轮上)装一个反射型红外发射接受对管JY043W,测出转的圈数N后乘以车轮的周长即为行程S。再根据起步价及每公里计费价格即可计算出行程计价值。此外,通过手动按钮送给单片机一个外部中断完成计费的开始,通过发光二极管显示有无乘客乘坐。计程及计价值通过数码管实时显示出来。出租车计程计价显示系统结构框图如图1所示图1出租车计程计价显示系统结构框图3 硬件电路设计以AT89C51单片机位核心,配合路程计数装置、外部中断装置、输出显示装置等外围电路组成整个
3、硬件电路。单片机内存储并执行程序,响应外部中断,输出计程计价数码。计数装置通过装载汽车主轴上的反射型红外发射接受对管采集行驶路程信息。外部中断装置是一个手动开关,闭合开关启动计程计价,显示装置为6个7段数码管,显示信息从单片机的P1口及部分P2口输出。其中计价值用4个数码管依次显示百元、十元、元及角,考虑到出租车主要在市区行驶,一般不会超过100千米,故计程值用2个数码管依次显示十千米和千米位。市内出租车计程计价显示系统硬件电路通过Proteus7.1绘制如图2所示图2 市内出租车计程计价显示系统电路原理图市内出租车计程计价显示系统硬件电路通过Protel99SE绘制如图3所示图3市内出租车计
4、程计价显示系统电路原理图市内出租车计程计价显示系统硬件电路PCB印制电路板如图4所示图4 市内出租车计程计价显示系统PCB印制电路板PCB印制电路板模拟三维实物显示如图5及图6所示图5 PCB印制电路板模拟三维实物(正面)图6 PCB印制电路板模拟三维实物(反面)4 软件程序设计一开始,P2.7输出高电平使灯D1(发光二极管)亮,并不断检测拨动开关的状态。当有乘客上车时,接通开关,单片机检测到P3.3为电平时使发光二极管熄灭,并开始计程计价。车轮每转一圈,即向T0口输入一个方脉冲。经施米特触发反相器74LS14整形反相后,其下降沿使单片机的定时器T0加1计数,由于出租车的车轮直径为0.6366
5、m,因此车轮每转一圈的行程为2.0m。T0每计125个数,相当于汽车行驶了250m。 把T0设置为计数,模式2,用T0中断,计数初值为(100H-125)=83H。汽车每行驶250m,T0计满数溢出一次,使T0中断,在T0中断子程序中,使寄存器R1加1计数。R1每计4个数,相当于汽车行驶了1千米,使30H单元中的行程S加1(用BCD码加法)。因此行程S为R1/4千米。程序中 ,用片内RAM30H存储行程S的千米数(压缩BCD码,最大不超过99),另一方面用31H、32H单元存储计价值的压缩BCD码,高字节放在32H单元存百元位与十元位;低字节放在31H单元,存元与角位。在T0中断子程序中,判断
6、若行程超过3千米,在T0每次中断使R1加1时,即汽车每行驶250米,调用压缩BCD码加6角。然后调用压缩BCD码转换为非压缩BCD码的子程序BCDZH(BCD转换),将30H32H单元中的BCD码转换为非压缩BCD码,分别位于40H45H单元中。之后调用显示字程序DISP将这些数据输出显示。主程序流程图如图7所示图7 主程序流程图源程序如下所示QDJ EQU 125 ;起步价12.5元(3千米内)GLJ EQU 24 ;每公里价2.4元/千米(3千米以上)S EQU 30H ;行程存在30H单元中(压缩BCD码)JJDZJ EQU 31H ;计价值低字节,高位为元位,低位为角位JJGZJ EQ
7、U 32H ;计价值高字节,高位为百元位,低位为十元位SGW EQU 40H ;行程的个位(非压缩BCD码)SSW EQU 41H ;行程的十位(非压缩BCD码)JJJ EQU 42H ;计价值角位(非压缩BCD码)JJY EQU 43H ;计价值元位(非压缩BCD码)JJSY EQU 44H ;计价值十元位(非压缩BCD码)JJBY EQU 45H ;计价值百元位(非压缩BCD码) ORG 0000H LJMP MAIN ORG 000BH LJMP T0INT ORG 001BH LJMP T1INTMAIN: MOV SP,#60H MOV DPTR,#TAB ;共阳极段码表 MOV T
8、MOD,#16H ;T1定时,模式1,T0计数,模式2,用T0、T1中断 MOV TH0,#83H ;T0计数初值,每计125个数(相当于250m)申请一次中断 MOV TL0,#83H MOV TH1,#3CH ;T1定时0.1秒 MOV TL1,#0B0H MOV IE,#8AH ;开CPU及T0、T1中断 SETB PT0 SETB P2.7 ;无乘客亮灯 MOV SGW,#00H ;将各显示位清零,显示熄灭码 MOV SSW,#00H MOV JJJ,#00H MOV JJY,#00H MOV JJSY,#00H MOV JJBY,#00H ACALL DISP ;调用显示子程序 JB
9、 P3.3,$ ;无乘客等待 SETB TR0 ;有乘客开始行驶时启动T0与T1开始计程计价 SETB TR1 CLR P2.7 ;有乘客熄灭灯 MOV S,#00H ;行程初始值0千米 MOV JJGZJ,#01H ;计价初始值12.5元,高字节 MOV JJDZJ,#25H ;计价初始值12.5元,低字节 ACALL BCDZH ;调用BCD码转换子程序L: ACALL DISP JNB P3.3,L ;乘客未到站,循环显示 CLR TR0 ;乘客到站停止计数 CLR TR1 SJMP MAIN ;乘客下车后返回程序开始;BCD码转换子程序,把32H30H中的压缩BCD码转换为非压缩BCD
10、码存于45H40HBCDZH: PUSH ACC SETB RS0 ;选工作寄存器组1 MOV R0,#S MOV R1,#SGWLPB: MOV A,R0 MOV R2,A ANL A,#0FH MOV R1,A INC R1 MOV A,R2 ANL A,#0F0H SWAP A MOV R1,A INC R0 INC R1 CJNE R0,#33H,LPB CLR RS0 ;返回工作寄存器组0 POP ACC RET;显示子程序,显示40H45H单元中的计程与计价值DISP: MOV R0,#SGW MOV A,R0 MOVC A,A+DPTR SETB P2.1 MOV P1,A AC
11、ALL DELAY CLR P2.1 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.0 MOV P1,A ACALL DELAY CLR P2.0 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.5 MOV P1,A ACALL DELAY CLR P2.5 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.4 MOV P1,A SETB P1.7 ACALL DELAY CLR P2.4 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.3 MOV P1,A ACALL DELAY
12、CLR P2.3 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.2 MOV P1,A ACALL DELAY CLR P2.2 RETTAB: DB 0C0H,0CFH,0A4H,0B0H DB 99H,92H,82H,0F8H DB 80H,90H;T0中断子程序,每250米中断一次T0INT: PUSH ACC INC R1 ;R1中存250米数,每行驶250米R1加1 CJNE R1,#4,LPT0 ;行驶不满1千米,行程不增加,跳转 MOV A,S ;行驶满1千米,行程加1 ADD A,#1 DA A MOV S,A MOV R1,#0 ;R1复位LPT0
13、: MOV A,S ;判断行程是否,满3千米 CLR C SUBB A,#3 JC FH0 ;行程不到3千米,计价不加6,返回 ACALL BCDJ6 ;行程满3千米,调用BCDJ6子程序FH0: ACALL BCDZH ACALL DISP POP ACC RETI;压缩BCD码加6子程序,将31H32H中的计价值加6BCDJ6: MOV A,JJDZJ ADD A,#6 DA A MOV JJDZJ,A MOV A,JJGZJ ADDC A,#0 ;考虑可能的进位 DA A MOV JJGZJ,A RET;T1中断子程序,每0.1秒中断一次T1INT: PUSH ACC MOV TH1,#
14、3CH MOV TL1,#0B0H MOV A,R2 JNZ LPT MOV R4,TL0LPT: INC R2 CJNE R2,#50,FH1 MOV R2,#0 MOV A,R4 CJNE A,TL0,FH1 INC R3 CJNE R3,#9,FH1 MOV R3,#0 ACALL BCDJ6 ACALL BCDZH ACALL DISPFH1: POP ACC RETIDELAY: MOV R6,#5LOOP1: MOV R7,#200LOOP2: NOP NOP NOP DJNZ R7,LOOP2 DJNZ R6,LOOP1 RETEND5 调试及改进完成电路的硬件设计及软件编程后,
15、打开仿真开关效果基本符合最初的设计目标,可以完成无乘客时处于等待状态,发光二极管亮;当有乘客时拨动开关即开始计程计费,当遇到交通阻塞汽车停止前进超过45秒钟,计程不增加,但计费会增加;正常行驶时每250米费用增加6角。仿真截图如图8所示图8 仿真截图从仿真中可以看出,结果较好的满足了设计需求,但也存在一些小的问题,如仿真时,数码管显示有时会跳动,计程计费结束后拨动开关数码管及熄灭,不能有效地保存数据,针对这些问题可以在电路中加入一个74LS373锁存器用以保存数据。6 课程学习体会通过对单片机这门课程的学习,我对C51系列单片机有了较为深刻的认识,它是计算机家族的一个重要分支,具有体积小、价格
16、低、面向控制的特点,在人类生产和生活的各个领域都有极为广泛的应用,它是数字电路的延伸,但功能又远远超过它,只需要单片机配以简单的电路就可以完成比较复杂的功能,同时只要加上适当的数/模和模数转换装置就可以处理模拟电路的问题。此外,通过单片机这门课程的学习,还加深了我对汇编语言及C语言的理解,对于其他课程也起了促进的作用。单片机是一门面向实际应用的课程,要多查找资料,及时广泛的了解现实的应用信息才能够跟得上单片机的发展,不能死记书本,也不必去刻意去记那些指令语句,在实际应用中可以通过查指令表来阅读或编写汇编程序。参 考 文 献1 葛龙. 单片机讲义. 南京: 南京理工大学, 2006.2 闫玉德, 俞虹. MCS-51单片机原理与应用. 北京: 机械工业出版社, 2004.3 张鹏, 王雪梅. 单片机原理与应用实例教程.北
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人二手房买卖合同履约保证金合同4篇
- 2025年度影视后期制作个人劳务合同范本4篇
- 2025年度个人公司股权代持变更合同3篇
- 2025年度农业科技推广个人劳务合同规范文本4篇
- 二零二五版智能门禁系统售后服务与技术培训合同4篇
- 建筑物资采购分包合同(2篇)
- 工厂二手设备拆除合同(2篇)
- 二零二五版米面粮油企业内部培训与咨询服务采购合同4篇
- 电梯钢丝绳施工方案
- 毕业设计成果呈现模板
- TD/T 1060-2021 自然资源分等定级通则(正式版)
- 人教版二年级下册口算题大全1000道可打印带答案
- 《创伤失血性休克中国急诊专家共识(2023)》解读
- 仓库智能化建设方案
- 海外市场开拓计划
- 2024年度国家社会科学基金项目课题指南
- 供应链组织架构与职能设置
- 幼儿数学益智图形连线题100题(含完整答案)
- 2024年九省联考新高考 数学试卷(含答案解析)
- 红色历史研学旅行课程设计
- 如何避免护理患者投诉
评论
0/150
提交评论