ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:51.12KB ,
资源ID:15755657      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15755657.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(#单片机课程设计出租车计价器.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

#单片机课程设计出租车计价器.docx

1、#单片机课程设计出租车计价器计算机和信息工程学院单片机课程设计课程设计题目出租车计价器专 业:计算机控制班 级:控制09-3 姓 名:费翔学 号:20指导教师:范爱华2012年3月2日设计题目:出租车计价器设计目的:利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。设计目标:1.数据输出:单价输出、路程输出、总金额输出2.按键:启动计时开关、数据显示切换、白天/晚上切换、复位3.能手动进行修改单价任务下达时间:2012年2月27日任务完成时间:2012年3月1日 指导教师评语: 年 月 日设计成绩:摘要:近些年来,随着单片机的发展,产品相当的繁多,单片

2、微型机又称嵌入式控制器,是20世纪70年代中期发展起来的一种大规模的集成电路器件。当单片机的使用不断地深入,新技术的发展也是层出不穷的。这是一项新型的工程技术,其内涵也是随着单片机的发展而发展。MCS-51系列的单片机是属于结构相当简单,但也是单片机中的典型,使用也相当的灵活。51系列的单片机产品发展迅速,在国内外占有重要的地位。 出租车计价器从最初的只能进行简单的价格计算,发展到价格、距离独立计量并显示,可根据特殊情况设定相应的收费标准,能打印营运发票,可使用IC卡结算等的功能。目前市场上的计价器越来越趋向于集成有多种功能。关键词:51单片机,价格计算,独立显示,手动输入正文:1. 出租车计

3、价器是乘客和司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。方案论证最终方案选择出租车计价器基本功能部分是根据里程数来完成总金额的输出。实现方法有两种。方案一:采用数字电路控制。其原理方框图如图2.1所示。采用传感器件,输出脉冲信号,经过放

4、大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。方案二:采用单片机控制。利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。本方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。2.硬件详细设计本系统的硬件设计主要包括单片机AT89S51、数据显示部件、A44E霍尔传感器电路、AT24C02 掉电存储单元的设计、里程计算及计价单元的设计。在硬件设计过程中,充分利用各部件的功能,实现多功能

5、的出租车计价器设计。2.1 总体硬件原理图主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位COMS微处理芯片,市场使用最多。3.软件设计在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。4.1主程序#includereg51.h#include int

6、rins.h#define uchar unsigned charuchar tmp;uchar det;uchar Coo;int m;int f;uchar DispTab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0; /字形码uchar TAB24;sbit P00=P00;sbit P01=P01;sbit P02=P02;sbit P03=P03;sbit P04=P04;sbit P05=P05;sbit P10=P10;sbit P27=P27;sbit P14=P14;sbit SCLK =P13; /*DS13

7、02的SCLK脚脉冲*/sbit DIO=P12; /*DS1302的IO脚数据*/sbit CE=P11; /*DS1302的RST脚片选*/sbit P15=P15;sbit P23=P23;sbit P21=P21;sbit P16=P16;sbit P35=P35;sbit P22=P22;sbit P17=P17;sbit P20=P20;sbit P26=P26;sbit P24=P24;sbit ACC7=ACC7;sbit ACC0=ACC0;void time() interrupt 1 /等待计时中断int i,j;TH0=0x15;TL0=0xa0;i+;if(i=100

8、)i=0;j+;if(j=10)j=0;f=Coo;void mDelay(unsigned int Delay) /延时子程序 unsigned int I;for(;Delay0;Delay-) for(I=0;I0; i- ) /循环8次移位 temp = addr; DIO = (bit)(temp&0x01); /每次传输低字节 addr = 1;SCLK = 0; /右移一位 SCLK = 1; /发送数据 for ( i=8; i0; i- ) temp = dat; DIO = (bit)(temp&0x01); dat = 1; SCLK = 0; SCLK = 1; CE

9、= 0; unsigned char Read1302 ( unsigned char addr ) /数据读取子程序 unsigned char i,temp,dat1,dat2; CE=0; SCLK=0; CE = 1; /发送地址 for ( i=8; i0; i- ) /循环8次移位 temp = addr; DIO = (bit)(temp&0x01);/每次传输低字节 addr = 1; SCLK = 0; SCLK = 1; /右移一位 for ( i=8; i0; i- ) ACC7=DIO; ACC=1; SCLK = 1; SCLK = 0; CE=0; dat1=ACC

10、; dat2=dat1/16; /数据进制转换 dat1=dat1%16; /十六进制转十进制 dat1=dat1+dat2*10; return (ACC);void Initial() /初始化DS1302 Write1302 (0x8E,0x00); /禁止写保护 Write1302 (0x80,0x00); /秒位初始化 Write1302 (0x82,0x20); /分钟初始化 Write1302 (0x84,0x10); Write1302 (0x86,0x23); Write1302 (0x88,0x05); Write1302 (0x8c,0x10); /小时初始化 Write

11、1302 (0x8E,0x80); /允许写保护void set() /修改时间 Write1302 (0x8E,0x00); /禁止写保护 Write1302 (0x82,TAB7*16+TAB6); /分钟初始化 Write1302 (0x84,TAB0*16+TAB1); Write1302 (0x8E,0x80);void ss() /显示子程序int i;uchar *p;p=TAB;for(i=0;i1;i+)det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=0;P15=0;P16=0;P17=0;p+;det=*p;tmp=DispTabd

12、et;P0=tmp;P20=0;P20=1;P14=1;P15=0;P16=0;P17=0;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=0;P15=1;P16=0;P17=0;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=1;P15=1;P16=0;P17=0;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=0;P15=0;P16=1;P17=0;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=1;

13、P15=0;P16=1;P17=0;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=0;P15=1;P16=1;P17=0;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=1;P15=1;P16=1;P17=0;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=0;P15=0;P16=0;P17=1;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=1;P15=0;P16=0;P17=1;p+;det=*p;

14、tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=0;P15=1;P16=0;P17=1;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=1;P15=1;P16=0;P17=1;p+;det=*p;tmp=DispTabdet;P0=tmp;P20=0;P20=1;P14=0;P15=0;P16=1;P17=1;p+;void sett() /显示等待时间及单价、总价、路程子程序TAB0=Read1302(0x83)/10;TAB1=Read1302(0x83)%10;TAB7=Read1302(0x81)/10;TAB

15、6=Read1302(0x81)%10;TAB8=3;TAB2=Coo/100;TAB3=Coo/10%10;TAB4=Coo%10;if(TAB4=3&TAB2=0&TAB3=0)TAB11=8;elseTAB11=(8+(Coo-3)*TAB8)%10;TAB5=TAB2*TAB8/10;TAB9=Coo/100*TAB8+Coo%100*TAB8/100;TAB10=(Coo/10*TAB8+Coo%10*TAB8/10)%10;void mmm() /显示时间子程序 TAB0=Read1302(0x85)/10; TAB1=Read1302(0x85)%10; TAB7=Read130

16、2(0x83)/10; TAB6=Read1302(0x83)%10;TAB8=3;void qie(int j) /修改时间、单价子程序uchar i;switch(j) case 4:ss();if(P22=0)for(i=0;i!=1;)i=P22;ss();TAB8+;if(TAB8=10)TAB8=0;break;case 3:ss();if(P22=0)for(i=0;i!=1;)i=P22;ss();TAB6+;if(TAB6=10)TAB6=0;break;case 2:ss();if(P22=0)for(i=0;i!=1;)i=P22;ss();TAB7+;if(TAB7=6

17、)TAB7=0;break;case 1:ss();if(P22=0)for(i=0;i!=1;)i=P22;ss();TAB1+;if(TAB0=2&TAB1=4)|TAB1=10)TAB1=0;break;case 0:ss();if(P22=0)for(i=0;i!=1;)i=P22;ss();TAB0+;if(TAB0=3)TAB0=0;break; default:break;Void die() /修改单价位、时间位子程序int x;for(m=0;m5;)ss();qie(m);if(P21=0)for(x=0;x1;)ss();x=P21;m+;set();void mm()

18、/非计价时的显示时间TAB0=Read1302(0x85)/10;TAB1=Read1302(0x85)%10;TAB7=Read1302(0x83)/10;TAB6=Read1302(0x83)%10;TAB8=3;TAB2=Coo/100;TAB3=Coo/10%10;TAB4=Coo%10;if(TAB4=3&TAB2=0&TAB3=0)TAB11=8;elseTAB11=(8+(Coo-3)*TAB8)%10;TAB5=TAB2*TAB8/10;TAB9=Coo/100*TAB8+Coo%100*TAB8/100;TAB10=(Coo/10*TAB8+Coo%10*TAB8/10)%1

19、0;void count() /计价子程序int x;EA=1;if(f=Coo)sett();ss();elsemm();if(P35=0)for(x=0;x1;)ss();x=P35;Coo+;void main()int i,j;TMOD=0x01;TH0=0x15;TL0=0xa0;TR0=1;ET0=1;Initial();P27=0;for(;)if(P23=0)for(i=0;i1;)ss();i=P23;for(j=0;j1;)count();ss();if(P23=0)for(i=0;i1;)ss();i=P23;EA=0;j+;TAB2=TAB3=TAB11=TAB5=TA

20、B9=TAB10=TAB4=0; else mmm();ss();if(P21=0)for(i=0;i1;)ss();i=P21;die();4.2 子程序显示子程序void sett() /显示等待时间及单价、总价、路程子程序TAB0=Read1302(0x83)/10;TAB1=Read1302(0x83)%10;TAB7=Read1302(0x81)/10;TAB6=Read1302(0x81)%10;TAB8=3;TAB2=Coo/100;TAB3=Coo/10%10;TAB4=Coo%10;if(TAB4=3&TAB2=0&TAB3=0)TAB11=8;elseTAB11=(8+(C

21、oo-3)*TAB8)%10;TAB5=TAB2*TAB8/10;TAB9=Coo/100*TAB8+Coo%100*TAB8/100;TAB10=(Coo/10*TAB8+Coo%10*TAB8/10)%10;void mmm() /显示时间子程序 TAB0=Read1302(0x85)/10; TAB1=Read1302(0x85)%10; TAB7=Read1302(0x83)/10; TAB6=Read1302(0x83)%10;TAB8=3;TAB11=(8+(Coo-3)*TAB8)%10;TAB5=TAB2*TAB8/10;TAB9=Coo/100*TAB8+Coo%100*TA

22、B8/100;TAB10=(Coo/10*TAB8+Coo%10*TAB8/10)%10;void mm() /非计价时的显示时间TAB0=Read1302(0x85)/10;TAB1=Read1302(0x85)%10;TAB7=Read1302(0x83)/10;TAB6=Read1302(0x83)%10;TAB8=3;TAB2=Coo/100;TAB3=Coo/10%10;TAB4=Coo%10;if(TAB4=3&TAB2=0&TAB3=0)TAB11=8;elseTAB11=(8+(Coo-3)*TAB8)%10;TAB5=TAB2*TAB8/10;TAB9=Coo/100*TAB

23、8+Coo%100*TAB8/100;TAB10=(Coo/10*TAB8+Coo%10*TAB8/10)%10;4.3显示子程序流程图结论:和一般计算系统一样,单片机的使用系统由硬件和软件所组成。硬件主要指单片机扩展的存储器,输入/输出设备等硬件部件的机器,而软件是各种工作程序的总称。只有硬件和软件紧密配合,协调一致,才能组成高性能的单片机使用系统。课程设计体会:从这次课设中明显体现了主程序,子程序、中断程序的功能。在调试中也相当的简化。本次专业课程设计通过自己的努力,加上指导老师的悉心指导,圆满完成了任务,从而学习到很多东西,实践和理论的得到很好的结合。参考文献:1.于海生.微型计算机控制技术.清华大学出版社.1999.62.陈杰 黄鸿.传感器和检测技术.高等教育出版社.2002.83.孙涵芳.MCS-51系列单片机原理及使用.北京航空航天大学出版社.1996.44.黄正瑾.电子设计竞赛赛题分析.东南大学出版社.2003.55.李顺增.微机原理和接口技术,机械工业出版社.20056.顾德英.计算机控制技术.北京邮电大学出版社.2007

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2