您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页ZT单片机课程设计--出租车计价器

ZT单片机课程设计--出租车计价器

来源:筏尚旅游网


ZT单片机课程设计--出租车计价器 D

一.设计任务及思路

1.出租车计价器需要的主要外部设备有公里计数器,以及显示、定时装置,通过线路连接构成一个完整的系统。 2.公里计数器设想:利用光电或者霍尔效应原理对车轮转过360°角位移产生一个脉冲信号送给单片机作为一定距离的计数值。

3.显示器:用LED显示,动态扫描显示,不断输出即时价格已及时间。 4.定时装置(本设计中未引入):记录在停车或某些情况下的时间,用于辅助计价。

二、里程计数器的原理(光电式)

在与车轴同步的轴上装有一隔光盘,上仅有以窄缝可以通光。在隔光盘两侧分别装有与车体固定的光源和感光元件。当隔光盘随轴转动时,光源发出的光被隔光盘隔离,只有在窄缝处感光元件接收到光信号,对后续电路产生一个脉冲。这就是对里程转换为计数值的基本原理。其产生的脉冲信号则作为单片机计数器的输入信号,当单片机中计数器计到某一数量即为车行驶一公里,并对价格进行增加。在没有实际对这样计数装置试用,只能对其原理进行分析,在之下的程序设计中只取其脉冲信号作为单片机输入信号(P3.4)。

三、LED显示电路

对设计总体分析下,只需对其价格进行显示,选用四个LED数码管分别显示价格的百位、十位、个位以及十分位(单位:元)。显示方式采用动态扫描的方式,数据输出为P0口,位选为P2口,共阴极(如图)。

四、计价器的计价要求

1.计价方式:起价(两公里)白天8元,晚上10元;由一开关进行选择。每公里一元,即每一百米加价一角。

2.转数与公里数:汽车轮胎周长近似为1.5米,故一百米需要转过67圈,计67个数产生一个溢出中断。

五、电路原理图及引脚

P0.7-P0.0 P2.7-P2.4 P1.0 P1.2 P1.3 P3.4

数码管输出数据 数码管位选 显示小数点(长亮) 计价器工作开关 白天/夜间切换 计数脉冲输入

出租车计价器电路原理

六、流程图

开始 T1中断 开始计价 N 够67次N 显示零 Y Y R4=0 ? N 显示零 R4+1 Y 昼夜选择 夜 价格寄存器加一 显示夜间起价 昼 调整BCD码 显示白天起价 放入数据显示区 显示价格 返回 主程序流

中断程序

1

七、源程序

ORG 0000H

;起始地址

AJMP START

ORG 001BH ;计数中断地址 LJMP CNT1 ORG 0030H ;主程序地址 START: MOV PSW, #00H MOV IE, #88H ;IE=10001000B

MOV MOV TH1, MOV SETB CLR MOV R4, MOV R0, MOV LP1: MOV INC DJNZ OFF: SETB JNB ACALL AJMP ON: SETB JB NIGHT: MOV MOV R3, MOV 21H, CALL AJMP DAY: MOV R2, MOV R3, MOV 22H, LP2: CALL AJMP CNT1: MOV 35H, MOV 36H, MOV 32H, MOV 31H, MOV 30H, CJNE CLP0: MOV A, ADD A,

TMOD, #60H #0BDH TL1, #0BDH P1.0 #0FFH ; #20H R1, #04H @R0, #00H LP1 P1.2, ON DAY ;R2, #00H #01H #01H #80H #00H #08H R5 R6 R0 A R4 #00H, R2 #01H ;TMOD=01100000B,T1工作方式2 ;自动重装 ;计67个数 ;计数器启动 ;点亮小数点dp 置数-1 ;指向数据区首地址 ;数字个数

;把00放入显示数据区 ;指针加一 ;继续置数 ;计价器开始跳转至ON ;调用显示子程序 判断白天or夜间行车 ;价格后两位压缩BCD码 ;价格高两位压缩BCD码 ;显示数据区放入起价BCD码 ;显示夜间起价 ;价格后两位压缩BCD码 ;价格高两位压缩BCD码 ;显示数据区放入起价BCD码 ;显示白天起价 ;保护中断前寄存器内容

INCC ;两公里内计数值加1 ;后两位计价加一

2

TR1 R0 R1, P1.2

DISP OFF P1.3

P1.3, DISP LP2 DISP LP2 R4,

CLP2: INCC: RETC: DISP: DLP0: TAB: DA A ;十进制调整 MOV R2, A MOV A, R3

ADDC A, #00H ;前两位计价加进位 DA A ;十进制调整 MOV R3, A MOV A, R2 MOV B, #10H DIV AB ;将压缩BCD码拆成BCD码 MOV 23H, B MOV 22H, A ;按高低位存入显示数据区 MOV A, R3 MOV B, #10H

DIV AB ;将压缩BCD码拆成BCD码 MOV 21H, B MOV 20H, A ;按高低位存入显示数据区 CALL DISP ;显示价格 AJMP RETC INC R4 ;两公里内计数器加一 MOV A, 31H MOV R0, 32H MOV R5, 35H MOV R6, 36H ;恢复中断前数据内容 RETI ;中断结束 MOV R5, #04H ;显示子程序,显示个数 MOV R0, #20H ;指向数据区首地址 MOV R6, #80H ;位选 MOV DPTR, #TAB ;指针指向显示列表 MOV A, @R0

MOVC A, @A+DPTR ;取出对应的显示代码 MOV P0, A ;输出数据 MOV A, R6 MOV P2, A ;输出位选 RR A ;右移位选 MOV R6, A INC R0 ;指向下一地址 DJNZ R5, DLP0 ;循环 RET ;结束

DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, DB 7FH, 67H ;显示代码列表 END

八、调试

利用KeilC51软件对其进行编译、仿真,得出比较满意的效果。由于没有

3

实际电路板,在调试过程中,利用显示数据存储区“20H,21H,22H,23H”对其要求显示价格进行观察,能够看到其中价格随着计数器中断在变 动着,并且逢十进一,比较理想地显示了价格。

九、心得体会

通过这次课程设计,我对单片机的工作原理有了更深一步的了解,对于中断、定时/计数器的工作方式更加明确,并且在应用上掌握了不少方法。在通过与同学们交流中,也发现不少问题,并且及时的做出相应的修改,还有一些应用的方法,这些使我对单片机技术能更灵活的应用。我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的某些事情的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。

在我的课程设计中,当时发现的问题就是中断调用时,对现场的保护问题,由于寄存器是共用的,中断时间不确定,所以必须中断时对现场进行保护,不能让中断中的数据覆盖原来的数据。另外,由于时间以及技术的缺乏,设计程序中没有加入定时的程序——停车计时计价,这里面也存在这许许多多的问题,比如停车是用中断判断还是扫描判断等。这些进一步的探究我将在以后的不断学习中进行该善。

十、参考文献

1.《单片机原理与接口技术》.牛昱光.电子工业出版社 2.《单片机原理及其应用》.胡汉才.清华大学出版社

3.《单片机应用文集》.何立民.北京航空航天大学出版社 4.《单片机中级教程》,张迎新主编,北京航空航天大学出版社。 5.《单片机原理与应用》,杰主编,机械工业出版社。 6.《MCS-51系列单片微型计算机及其应用》,孙育才主编,东南大学出版社 7. 51单片机实验指导书.太原理工大学信息工程学院实验中心

4

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务