ZT单片机课程设计__出租车计价器_第1页
ZT单片机课程设计__出租车计价器_第2页
ZT单片机课程设计__出租车计价器_第3页
ZT单片机课程设计__出租车计价器_第4页
ZT单片机课程设计__出租车计价器_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 嵌入式系统设计课程设计设计名称:出租车计价器 学院:现代科技学院专业班级:信息0801姓名:张 腾学号:目录一设计任务及思路2二里程计数器的原理2三LED显示电路2四计价器的计价要求2五电路原理图及引脚2六流程图3七源程序4八调试5九心得体会6十参考文献6一设计任务及思路1.出租车计价器需要的主要外部设备有公里计数器,以及显示、定时装置,通过线路连接构成一个完整的系统。2.公里计数器设想:利用光电或者霍尔效应原理对车轮转过360角位移产生一个脉冲信号送给单片机作为一定距离的计数值。3.显示器:用LED显示,动态扫描显示,不断输出即时价格已及时间。4.定时装置(本设计中未引入):记录在停车或某

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

3、数码管分别显示价格的百位、十位、个位以及十分位(单位:元)。显示方式采用动态扫描的方式,数据输出为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计数脉冲输入出租车计价器电路原理六、流程图N开始开始计价昼夜选择显示零显示零Y显示夜间起

4、价显示白天起价夜昼显示价格主程序流程图T1中断够67次NYR4=0 ?NYR4+1价格寄存器加一调整BCD码放入数据显示区返回中断程序流程图七、源程序ORG 0000H ;起始地址AJMP STARTORG 001BH ;计数中断地址LJMP CNT1ORG 0030H ;主程序地址START:MOV PSW,#00HMOV IE,#88H ;IE=BMOV TMOD,#60H ;TMOD=B,T1工作方式2MOV TH1,#0BDH ;自动重装MOV TL1,#0BDH ;计67个数SETB TR1 ;计数器启动CLR P1.0 ;点亮小数点dpMOV R4,#0FFH ;置数-1MOV R

5、0,#20H ;指向数据区首地址MOV R1,#04H ;数字个数LP1:MOV R0,#00H ;把00放入显示数据区INC R0 ;指针加一DJNZ R1,LP1;继续置数OFF:SETB P1.2JNB P1.2,ON ;计价器开始跳转至ONACALL DISP ;调用显示子程序AJMP OFFON:SETB P1.3JB P1.3,DAY ;判断白天or夜间行车NIGHT:MOV R2,#00H ;价格后两位压缩BCD码MOV R3,#01H ;价格高两位压缩BCD码MOV 21H,#01H ;显示数据区放入起价BCD码CALL DISP ;显示夜间起价AJMP LP2DAY:MOV

6、R2,#80H ;价格后两位压缩BCD码MOV R3,#00H ;价格高两位压缩BCD码MOV 22H,#08H ;显示数据区放入起价BCD码LP2:CALL DISP ;显示白天起价AJMP LP2CNT1:MOV 35H,R5MOV 36H,R6MOV 32H,R0MOV 31H,AMOV 30H,R4 ;保护中断前寄存器内容CJNE R4,#00H,INCC;两公里内计数值加1CLP0:MOV A,R2ADD A,#01H ;后两位计价加一DA A;十进制调整MOV R2,AMOV A,R3ADDC A,#00H ;前两位计价加进位DA A;十进制调整MOV R3,ACLP2:MOV A

7、,R2MOV B,#10HDIV AB ;将压缩BCD码拆成BCD码MOV 23H,BMOV 22H,A ;按高低位存入显示数据区MOV A,R3MOV B,#10HDIV AB ;将压缩BCD码拆成BCD码MOV 21H,BMOV 20H,A ;按高低位存入显示数据区CALL DISP ;显示价格AJMP RETCINCC:INC R4 ;两公里内计数器加一RETC:MOV A,31HMOV R0,32HMOV R5,35HMOV R6,36H ;恢复中断前数据内容RETI ;中断结束DISP:MOV R5,#04H ;显示子程序,显示个数MOV R0,#20H ;指向数据区首地址MOV R

8、6,#80H ;位选MOV DPTR,#TAB ;指针指向显示列表DLP0:MOV A,R0MOVC A,A+DPTR ;取出对应的显示代码MOV P0,A ;输出数据MOV A,R6MOV P2,A ;输出位选RR A ;右移位选MOV R6,AINC R0 ;指向下一地址DJNZ R5,DLP0;循环RET ;结束TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,DB 7FH,67H ;显示代码列表END八、调试利用KeilC51软件对其进行编译、仿真,得出比较满意的效果。由于没有实际电路板,在调试过程中,利用显示数据存储区“20H,21H,22H,23H”对其

9、要求显示价格进行观察,能够看到其中价格随着计数器中断在变动着,并且逢十进一,比较理想地显示了价格。九、心得体会通过这次课程设计,我对单片机的工作原理有了更深一步的了解,对于中断、定时/计数器的工作方式更加明确,并且在应用上掌握了不少方法。在通过与同学们交流中,也发现不少问题,并且及时的做出相应的修改,还有一些应用的方法,这些使我对单片机技术能更灵活的应用。我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别

10、人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的某些事情的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。在我的课程设计中,当时发现的问题就是中断调用时,对现场的保护问题,由于寄存器是共用的,中断时间不确定,所以必须中断时对现场进行保护,不能让中断中的数据覆盖原来的数据。另外,由于时间以及技术的缺乏,设计程序中没有加入定时的程序停车计时计价,这里面也存在这许许多多的问题,比如停车是用中断判断还是扫描判断等。这些进一步的探究我将在以后的不断学习中进行该善。十、参考文献1.单片机原理与接口技术.牛昱光.电子工业出版社2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论