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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

出租车计价器系统的设计.docx

1、出租车计价器系统的设计摘要:在交通开展迅速的今天,出租车是我们交通中不可缺少的工具。同时出租车中的计价器是必不可少的一种设备。出租车计价器系统设计的主要内容是通过C51单片机上的数码显示器来模拟出租车计价器的路程显示表,通过单片机上的键盘上的某些键来表示开场、暂停、复位等功能。步骤如下:首先,程序开场做一些必要的初始化工作,等待键盘输入。然后,启动键按下0后LED数码管开场记录路程并显示。最后,当需要停顿是可按相应的键F对路程计数器进展暂停。而且还可以复位E。关键词: C51单片机;8255;计价器;LED数码管1设计内容及要求1.1设计内容及要求1出租车里程测量:采用信号源产生脉冲模拟出租车

2、计价传感器产生脉冲,设每产生100个脉冲出租车行驶1公里信号源脉冲频率=1KHZ;2里程显示为:*.*公里;3采用8255芯片管理键盘显示。1.2框图根据设计内容及要求,设计框图如图1所示。图1设计框图2系统组成及工作原理2.1控制单元设计按键名称,O键表示开场计算路程;F键表示暂停;E键表示复位。 当程序开场运行后,按下0键那么表示开场计算路程,并由数码管显示出来;按下F键那么路程记数器暂停,并显示当前路程,当按下E键那么复位。2.2输出单元设计 通过六个8段LED数码管来显示路程。前四个分别表示千位、百位、十位、个位,而后两个表示十分位和百分位。2.3定时器的功能和使用方法 首先选择方式1

3、为16位的定时器,其初始化具体如下:s其中fosc为晶振频率,定时时间。3电路方案设计3.1电路设计方案使用单片机来完成设计要求。电路包括显示电路,设置电路,存储电路,复位电路,其工作原理图如图2所示,单片机功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻容易的实现。防止了机械开关带来的不稳定因素,单片机单元框图如图3所示。单片 机图2 工作原理框图图3 单片机单元框图3.2单元电路设计3.2.1复位电路设计在单片机的应用系统中,除单片机本身需复位以外,外部扩展的I/O接口电路等也需要

4、复位,因此需要一个系统的同步复位信号:即单片机复位后,CPU开场工作时,外部的电路一定要复位好,以保证CPU有效的对外部电路进展初始化编程。51系列单片机的复位端RST是一个施密特触发输入,高电平有效。复位电路产生的复位信号经施密特电路整形后作为系统复位信号,加到51系列单片机和外部I/O接口电路的复位端.其电路图如图4所示,其中R1=47K,R2=100,C=10uF。图4 复位电路3.2.2时钟电路设计89C51系列单片机内部有一个可控制的反相放大器,引脚XTAL1、XTAL2为反相放大器的输入端和输出端,在XTAL1、XTAL2上外接晶振或陶瓷谐振器和电容便组成振荡器。具体的时钟电路如图

5、5所示。电容1、2的典型值为30pF+10pF晶振或40pF+10pF陶瓷谐振器。振荡器频率主要取决与晶振或陶瓷谐振器的频率,但必须小于器件所允许的最高频率。振荡器的工作受控制,复位后01振荡器工作,可由软件置1,使振荡器停顿振荡,从而使整个单片机停顿工作,以到达节电的目的。图3.2 时钟电路图5 时钟电路3.2.3单片机最小系统主控机系统采用了Atmel 公司生产的89C51单片机,它含有128字节数据存储器,内置4K 的电可擦除FLASH ROM,可重复编程,大小满足主控机软件系统设计,所以不必再扩展程序存储器。复位电路和晶振电路是89C51工作所需的最简外围电路。89C51的复位端是一个

6、史密特触发输入,高电平有效,而系统中的时钟接口和CAN 总线接口的复位信号都是低电平有效。在复位电路中,按一下复位开关就使在RS端出现一段时间的高电平,经过74LS14 的一次反相整形,提供应单片机复位端。再经过一次反相整形,通过I/ORST 端提供应外部接口电路。外接12M晶振和两个20P 电容组成系统的内部时钟电路。3.3 8255A键盘显示电路设计8255的数据线片选信号线、地址线、读写控制线等分别与系统总线相连,其A、B、C三个端口以排针形式引出,供8255实验使用,如图6所示。图6 系统中的8255线路4程序设计4.1主程序模块在主程序模块中,需要完成对各接口芯片的初始化、中断向量的

7、设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/去除标志存放器、里程存放器,并对它们进展初始化。然后,主程序将根据各标志存放器的内容,分别完成启动、去除、计程等不同的操作。4.2定时中断效劳程序在定时中断效劳程序中,每1ms产生一次中断,当产生1000次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。里程计数程序流程图如图7所示。图7里程计数程序流程图5总结 5.1结论通过用单片机来模拟出租车计价器,并且使用了单片机上的键盘和数码显示管来模拟。硬件各方面相对吻合平安性高、耦合度高,能够对键盘上的0键进展启动、F键进展停顿、E键进展复位的操作。

8、程序首先进展初始化设置包括数码管、字型表、定时中断设置;然后对键盘进展扫描,判断是否有功能键被按下;最后根据哪个功能键被按下,执行相应的程序以实现功能。5.2课程设计体会经过两周有关于通过模拟出租车计价器的课程设计,使同学们对单片机的应用有了更深的了解。在课程设计的过程中,还是碰到了许多的问题。比方,对于单片机的一些根本代码及程序还有一些不清楚的地方;对于代码的前后顺序及调用掌握的还不够好。通过请教教师和同学,最终把问题解决了。此外,去图书馆和网上查相关资料也是一种学习的途径。附录ORG 0000HSJMP START ;定义程序起始位置ORG 000BHSJMP DS0 ;定时器T0入口地址

9、START:CLR TR0 ;关闭T0中断MOV A,#81H ;将立即数81H放入A中MOV DPTR,#0FF23H ;定义DPTR外部数据指针为0FF23H,指向8255的控制字口MOVX DPTR,A ;把81H放入8255控制字口,让8255以PA、PB口0状态输出工作,PC口0状态输入MOV TMOD,#01H ;定义T0为16位计数器MOV TH0,#0FCH ;定义中断延时MOV TL0,#24H ;定义中断延时;1MS = 1000US ,假设晶振频率为12MHZ,延时常数=2的16次方 - 1000将其转换到16进制MOV IE,#82H ;定义中断允许控制字,开CPU中断

10、,开T0中断MOV 71H,#00H ;MOV 72H,#00HMOV 73H,#00HMOV 74H,#00HMOV 75H,#00HMOV 76H,#00HMOV 40H,#50 ;延时用MOV 00H,#00H ;标志MOV 01H,#00HMOV 02H,#00HMOV 03H,#00HMOV 04H,#00HMOV R1,#00H ;用来检测键盘开场键MOV R3,#00H ;用来检测停顿键MOV R4,#00H ;用来监听复位键MOV 50H,#10 ;循环次数MOV 51H,#10 ;循环次数MOV 52H,#10MOV 53H,#10MOV 54H,#10MOV 55H,#10

11、SETB TR0 ;允许T0计数CLR C ;清空CYSJMP $ ;等待中断降临DS0: ;中断处理子程序MOV TH0,#0FCH ;把中断延时还给T0MOV TL0,#24HLCALL KEY_STATE ;调用键盘扫描子程序,获取当前的键盘状态,1MS扫描一次CJNE R1,#0,RUN ;如果“0”被按下,就跳转到运行子程序,计算里程数CJNE R3,#0,STOP ;如果“F被按下,就跳转到停顿子程序CJNE R4,#0,RESET ;如果“E被按下,就跳转到复位子程序RETI ;如果3个键都没有被按下,不做处理,直接返回中断,等待下一次中断降临RESET: ;复位的子程序MOV

12、71H,#00H ;初始化查表单元数据MOV 72H,#00HMOV 73H,#00HMOV 74H,#00HMOV 75H,#00HMOV 76H,#00HMOV 51H,#10 ;初始化循环次数MOV 52H,#10MOV 53H,#10MOV 54H,#10MOV 55H,#10LJMP XIANSHI ;跳转到显示子程序RETI ;返回中断STOP: ;停顿子程序LJMP XIANSHI ;跳转到显示子程序KEY_STATE: ;键盘行扫描处理子程序KEY_0: ;检查0MOV R2,#0FDH ;定义8255对第2个LED数码管进展键盘扫描MOV DPTR,#0FF20HMOV A,

13、R2MOVX DPTR,AMOV DPTR,#0FF22H ;将DPTR指向8255的PC口MOVX A,DPTR ;从PC口获取键盘状态 ACC.1,KEY_F ;判断第1列是否为0,如果为0,证明0被按下SJMP KEY_DOWN0 ;按下了就跳转到0被按下的子程序RETI ;返回中断KEY_F: ;检查FMOV R2,#0F7HMOV DPTR,#0FF20HMOV A,R2MOVX DPTR,AMOV DPTR,#0FF22HMOVX A,DPTR ACC.1,KEY_ESJMP KEY_DOWNFRETIKEY_E: ;检查EMOV R2,#0DFHMOV DPTR,#0FF20HM

14、OV A,R2MOVX DPTR,AMOV DPTR,#0FF22HMOVX A,DPTR ACC.1,RETURN2SJMP KEY_DOWNERETURN2: ;返回中断RETIKEY_DOWN0: ;0被按下MOV R1,#1 ;把标志R1设置为1MOV R3,#0 ;其他标志设置为0MOV R4,#0RETI ;返回中断KEY_DOWNF: ;F被按下MOV R3,#1 ;把R3设置为1MOV R1,#0 ;其他标志设置为0MOV R4,#0RETI ;返回中断KEY_DOWNE: ;E被按下MOV R4,#1 ;把R4设置为1MOV R3,#0 ;其他标志设置为0MOV R1,#0RETI ;返回中断RUN: ;运行子程序DJNZ 40H,XIANSHI ;延时显示MOV 40H,#50INC 71H ;百分位查表单元+1DJNZ 50H,XIANSHI ;循环10次MOV 50H,#10 ;如果百分位循环了10次,那么十分位上应该得到进位INC 72H ;十分位查表单元+1MOV 71H,#00HDJNZ 51H,XIANSHIMOV 51H,#10INC 73HMOV 71H,#00HMOV 72H,#00HDJNZ 52H,XIANSHIMOV 52H,#10INC 74H

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1