1、单片机出租车计价器课程设计 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)单片机出租车计价器课程设计嵌入式系统基础课程说明书设计题目:出租车计价器学院:太原理工大学现代科技学院班级:电子信息姓名: 学号:一、设计题目:出租车计价器二、设计思路:如今单片机由于其体积小,性能完善,所以广泛应用于各个行业中。在出租车上,计价器便采用了单片机的应用技术,采用一系列的外部设备将出租车行驶以及停车等各个状态输入单片机,通过程序加以运算控制,再输出显示以及打印等。我们试着用所学的知识,设计并模拟出租车计价器的工作方式,通过实践来掌握应用设备的工作原理。三、设计任务 出
2、租车计价器需要的主要外部设备有公里计数器,以及显示、定时装置,通过线路连接构成一个完整的系统。 公里计数器设想:利用光电或者霍尔效应原理对车轮转过360角位移产生一个脉冲信号送给单片机作为一定距离的计数值。 显示器:用LED显示,动态扫描显示,不断输出即时价格已及时间。 定时装置(本设计中未引入):记录在停车或某些情况下的时间,用于辅助计价。四、里程计数器的原理(光电式)在与车轴同步的轴上装有一隔光盘,上仅有以窄缝可以通光。在隔光盘两侧分别装有与车体固定的光源和感光元件。当隔光盘随轴转动时,光源发出的光被隔光盘隔离,只有在窄缝处感光元件接收到光信号,对后续电路产生一个脉冲。这就是对里程转换为计
3、数值的基本原理。其产生的脉冲信号则作为单片机计数器的输入信号,当单片机中计数器计到某一数量即为车行驶一公里,并对价格进行增加。在没有实际对这样计数装置试用,只能对其原理进行分析,在之下的程序设计中只取其脉冲信号作为单片机输入信号(P3.4)。五、LED显示电路对设计总体分析下,只需对其价格进行显示,选用四个LED数码管分别显示价格的百位、十位、个位以及十分位(单位:元)。显示方式采用动态扫描的方式,数据输出为P0口,位选为P2口,共阴极(如图)。六、计价器的计价要求 计价方式:起价(两公里)白天8元,晚上8.6元;由一开关进行选择。每公里1.5元。 转数与公里数:汽车轮胎周长近似为1.5米,故
4、一百米需要转过67圈,计67个数产生一个溢出中断。七、电路原理图及引脚P0.7-P0.0数码管输出数据P2.7-P2.4数码管位选P1.0显示小数点(长亮)P1.2计价器工作开关P1.3白天/夜间切换P3.4计数脉冲输入八、源程序 ORG 0000H ;起始地址 AJMP START ORG 001BH ;计数中断地址 LJMP CNT1 ORG 0030H ;主程序地址START: MOV PSW, #00H MOV IE, #88H ;IE=10001000B MOV TMOD, #60H ;TMOD=01100000B,T1工作方式2 MOV TH1, #0BDH ;自动重装 MOV T
5、L1, #0BDH ;计67个数 SETB TR1 ;计数器启动 CLR P1.0 ;点亮小数点dp MOV R4, #0FFH ;置数-1 MOV R0, #20H ;指向数据区首地址 MOV R1, #04H ;数字个数LP1: MOV R0, #00H ;把00放入显示数据区 INC R0 ;指针加一 DJNZ R1, LP1 ;继续置数OFF: SETB P1.2 JNB P1.2, ON ;计价器开始跳转至ON ACALL DISP ;调用显示子程序 AJMP OFFON: SETB P1.3 JB P1.3, DAY ;判断白天or夜间行车NIGHT: MOV R2, #00H ;
6、价格后两位压缩BCD码 MOV R3, #01H ;价格高两位压缩BCD码 MOV 21H, #01H ;显示数据区放入起价BCD码 CALL DISP ;显示夜间起价 AJMP LP2DAY: MOV R2, #80H ;价格后两位压缩BCD码 MOV R3, #00H ;价格高两位压缩BCD码 MOV 22H, #08H ;显示数据区放入起价BCD码LP2: CALL DISP ;显示白天起价 AJMP LP2CNT1: MOV 35H, R5 MOV 36H, R6 MOV 32H, R0 MOV 31H, A MOV 30H, R4 ;保护中断前寄存器内容 CJNE R4, #00H,
7、 INCC ;两公里内计数值加1CLP0: MOV A, R2 ADD A, #01H ;后两位计价加一 DA A ;十进制调整 MOV R2, A MOV A, R3 ADDC A, #00H ;前两位计价加进位 DA A ;十进制调整 MOV R3, ACLP2: 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 DI
8、SP ;显示价格 AJMP RETCINCC: INC R4 ;两公里内计数器加一RETC: MOV A, 31H MOV R0, 32H MOV R5, 35H MOV R6, 36H ;恢复中断前数据内容 RETI ;中断结束DISP: MOV R5, #04H ;显示子程序,显示个数 MOV R0, #20H ;指向数据区首地址 MOV R6, #80H ;位选 MOV DPTR, #TAB ;指针指向显示列表DLP0: MOV A, R0 MOVC A, A+DPTR ;取出对应的显示代码 MOV P0, A ;输出数据 MOV A, R6 MOV P2, A ;输出位选 RR A ;
9、右移位选 MOV R6, A INC R0 ;指向下一地址 DJNZ R5, DLP0 ;循环 RET ;结束TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, DB 7FH, 67H ;显示代码列表 END九、流程图十、调试利用KeilC51软件对其进行编译、仿真,得出比较满意的效果。由于没有实际电路板,在调试过程中,利用显示数据存储区“20H,21H,22H,23H”对其要求显示价格进行观察,能够看到其中价格随着计数器中断在变动着,并且逢十进一,比较理想地显示了价格。十一、总结通过这次课程设计,我对单片机的工作原理有了更深一步的了解,对于中断、定
10、时/计数器的工作方式更加明确,并且在应用上掌握了不少方法。在通过与同学们交流中,也发现不少问题,并且及时的做出相应的更改,还有一些应用巧妙的方法,这些使我对单片机技术能更灵活的应用。在我的课程设计中,当时发现的问题就是中断调用时,对现场的保护问题,由于寄存器是共用的,中断时间不确定,所以必须中断时对现场进行保护,不能让中断中的数据覆盖原来的数据。另外,由于时间以及技术的缺乏,设计程序中没有加入定时的程序停车计时计价,这里面也存在这许许多多的问题,比如停车是用中断判断还是扫描判断等。这些进一步的探究我将在以后的不断学习中进行该善。十二、参考文献1杨恢先.单片机原理及应用M.长沙:国防科技大学出版社,2003.2肖鹏,陈伟民.一种新型多功能出租车计价方案设计J.自动化与仪器仪表,2003,第 3期. 3何小艇.电力拖动自动控制系统电子系统设计M.杭州:浙江大学出版社,2000. 4何立民.MCS51系列单片机应用系统设计系统配置与接口M.北京:北京航空学院出 版社,1990. 5马鸿文.新一代出租车计价器微机设计系统.计算机应用J.2005.26(6). 6孙涵芳. MCS51、96系列单片机原理及应用M.北京:北京航空学院出版社,1988.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1