里程计数器课程设计.doc
《里程计数器课程设计.doc》由会员分享,可在线阅读,更多相关《里程计数器课程设计.doc(28页珍藏版)》请在沃文网上搜索。
1、 目录一、设计任务及要求2二、设计的作用与目的2三、设备及软件2四、系统设计方案31.系统设计方案32.系统工作原理3五、 系统硬件设计41.单片机最小系统及说明42.里程信号的采集63.显示单元电路设计7六 系统软件设计91.系统主程序设计92.中断服务程序103.显示子程序10七、系统仿真调试与分析12八、设计中的问题及解决方法14九、设计心得15十、参考文献16附录:17附录A:电路图17附录B:源程序1828里程计数器一、设计任务及要求汽车里程计数器由三个部分组成:一、车辆跑动信号的采集:当车辆跑动时,转轴带动一小磁体转动,车轮和该小磁体的转动比是一定的,这里可以利用磁感应传感器来接收
2、小磁体的信号,小磁体转动一周与磁感应传感器正对一次,传感器输出口就会产生一个大约20ms的低脉冲,使用单片机来检测传感器信号。本次设计中采用按键来模拟传感器信号,检测按键按下的次数就可采集车辆的跑动信号。二、对车辆行驶的里程进行计数并利用I2C协议将数据及时保存到E2PROM中,设计中使用单片机内部的基本RAM单元来存储计数值。三、显示车辆行驶的距离,假设按键按下10次为1公里,利用6位数码管显示里程数。二、设计的作用与目的1 进一步熟悉和掌握单片机的结构及工作原理。2.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。3 通过实际程序设计和调试,逐步掌握模
3、块化程序设计方法和调试技术。4 通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应工作打下基础。5.学习程设计的相关内容,为以后的毕业设计打下基础 三、设备及软件PC机 keil uVison4软件 proteus软件四、系统设计方案1.系统设计方案 采用AT89C51芯片,用霍尔元件2将车轮的转速转换成电脉冲,经过处理后送入单片机。里程及速度的测量,是经过AT89C51的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,计算结果通过LED显示器显示出来。霍尔传感器信号 AT89C51 单片机 机时钟电路LED数码管 显示单元
4、复位电路图1单片机控制方案2.系统工作原理各单元的工作原理如下:1. 利用霍尔传感器产生里程数的脉冲信号。 霍尔传感器是最具代表的磁传感器,当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并输入到单片机引脚12即P3.2外部中断0端,传感器每获取一个脉冲信号即对系统提供一次计数中断2. 对脉冲信号进行计数。 实现:利用单片机自带的计数器T0对霍尔传感器脉冲信号进行计数。3. 对数据进行处理,要求用LED显示里程总数和即时速度。 实现:利用软件编程,对数据进行处理得到需要的数值。 最终实现目标:采用单片机作控制,显示电路可显示里程五、 系统硬件设计1.单片机最小系统1及说明图2单片机
5、最小系统 单片机最小系统是单片机应用的最基电路,由芯片AT89C51、电源、时钟电路和复位电路组成。AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器。其应用广泛,生活中很多地方都有它的应用,像电子钟、出租车计价器、交通灯等。其管脚说明如下:VCC:供电电压。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电
6、阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1
7、”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P
8、3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如
9、想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编
10、程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.里程信号的采集 里程计算是通过安装在车轮上的霍尔传感器A44E检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图3所示。霍尔传感器 A44EAT89C51单 片 机P3.2小磁铁车 轮图3 传感器测距示意图 霍尔传感器是对磁敏感的传感元件,常用于信号采集的有A44E,该传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,工作电压范围宽,使用非常方便。A44E的外形如图4所示。 1-Vcc 2-GND 3-OUT图4 A44E外形图 3.显示单元电
11、路设计由于设计要求有里程数据显示输出,所以采用6位8段LED数码管的分屏显示。显示电路由8路同相三态双向总线收发器74LS245和6位8段LED数码管组成。74LS245用于连接51单片机和LED数码管,51单片机的P0.0P0.7先接LED驱动74LS245再接数码管的AG和dp,当位P0.0为1时,对应A段点亮,以次类推。而51单片机的P2.0P2.5直接与数码管相连,其6个输出口分别接到6个数码管,这样就可以进行控制6个数码管的显示。如图5所示 图5 显示电路 图6 8子形LED数码管常用的LED数码管有的共阴和共阳两种,本次用于显示的是8位8段共阴LED显示管六 系统软件设计1.系统主
12、程序设计 在主程序模块中,需要完成对各接口芯片的初始化、里程计数的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程数据寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动和计程等不同的操作。主程序流程图如图7所示。当检测到传感器输入信号时,就启动计数,当计数到满后,向单片机申请中断,并把圈数存扫里程寄存器中,单片机将根据里程寄存器中的内容计算行驶里程公里数,再存到相应的寄存器。数据存到寄存器中后送显示电路显示出来。 开始 初始化检测传感器信号输入程序 计数器子程序 中断服务程序 中断数据寄存子程序 显示子程序
13、图7 主程序流程图2.中断服务程序当检测到里程信号输入时,计数器就开始计数,当记到10时,相当于1公里,计数器就申请中断,进行中断服务程序,送数据到相应的数据寄存单元,并进行计算。 其程序流程如图8所示。 开始脉冲计数次数满10 N申请中断 Y 中断处理返回 图 8 中断服务程序3.显示子程序 里程数据送到相应的寄存器后,就会进行显示。本次课程设计采用动态扫描显示。数码管显示里程数程序流程图如图9。 开始YN地址指针设置输出段码取段码输出位码调用延时程序取段码结束 图9 显示子程序七、系统仿真调试与分析根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于条件的限制
14、。整体电路采用protues软件进行仿真,先点击开始仿真键,一开始显示为0,随着脉冲的输入,显示的数会增大,由于车轮的周长存在RAM中,单片机复位后显示为0。单片机如果仿真结果不是这样,应停止仿真进行电路检查,由于本电路图比较简单,出错可能性小,我们可从连线上找,也可分析它的电平是否正确,改正后在进行仿真直到结果跟设计的相符合。调试工具:proteus仿真软件3Keil程序仿真软件 1.进行程序编译,修改直到无误2.开始进行仿真时,显示里程数为0.3.当里程信号的输入10次,即1公里,显示1公里4.随着信号的输入,显示的里程变数大八、设计中的问题及解决方法 本次课程设计设计是基于单片机,主要用
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 里程 计数器 课程设计
