1、0湖南文理学院课程设计报告课程名称: 里程计数器课程设计 专业班级: 建筑电气与智能化 12101 班 学生姓名: 指导教师: 完成时间: 2015 年 6 月 18 日 报告成绩: 评阅意见:评阅教师 日期 1湖南文理学院制目录一、设计任务及要求 .3二、设计的作用与目的 .3三、设备及软件 .3四、系统设计方案 .41.系统设计方案 .42.系统工作原理 .4五、 系统硬件设计 .51.单片机最小系统及说明 .52.里程信号的采集 .73.显示单元电路设计 .8六 系统软件设计 .101.系统主程序设计 .102.中断服务程序 .113.显示子程序 .11七、系统仿真调试与分析 .13八、
2、设计中的问题及解决方法 .15九、设计心得 .16十、参考文献 .17附录: .18附录 A:电路图 .18附录 B:源程序 .192里程计数器一、设计任务及要求汽车里程计数器由三个部分组成:一、车辆跑动信号的采集:当车辆跑动时,转轴带动一小磁体转动,车轮和该小磁体的转动比是一定的,这里可以利用磁感应传感器来接收小磁体的信号,小磁体转动一周与磁感应传感器正对一次,传感器输出口就会产生一个大约20ms 的低脉冲,使用单片机来检测传感器信号。本次设计中采用按键来模拟传感器信号,检测按键按下的次数就可采集车辆的跑动信号。二、对车辆行驶的里程进行计数并利用 I2C 协议将数据及时保存到 E2PROM
3、中,设计中使用单片机内部的基本 RAM 单元来存储计数值。三、显示车辆行驶的距离,假设按键按下 10 次为 1 公里,利用 6 位数码管显示里程数。二、设计的作用与目的1 进一步熟悉和掌握单片机的结构及工作原理。2.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。3 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。4 通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应工作打下基础。5.学习程设计的相关内容,为以后的毕业设计打下基础三、设备及软件PC 机 keil uVison4 软件 prot
4、eus 软件3四、系统设计方案1.系统设计方案采用 AT89C51 芯片,用霍尔元件 2将车轮的转速转换成电脉冲,经过处理后送入单片机。里程及速度的测量,是经过 AT89C51 的定时/计数器测出总的脉冲数和每转一圈的时间,再经过单片机的计算得出,计算结果通过 LED 显示器显示出来。图 1单片机控制方案2.系统工作原理各单元的工作原理如下:1. 利用霍尔传感器产生里程数的脉冲信号。霍尔传感器是最具代表的磁传感器,当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并输入到单片机引脚 12 即 P3.2 外部中断 0 端,传感器每获取一个脉冲信号即对系统提供一次计数中断2. 对脉冲信号
5、进行计数。实现:利用单片机自带的计数器 T0 对霍尔传感器脉冲信号进行计数。3. 对数据进行处理,要求用 LED 显示里程总数和即时速度。实现:利用软件编程,对数据进行处理得到需要的数值。最终实现目标:采用单片机作控制,显示电路可显示里程AT89C51单片机机霍尔传感器信号LED 数码管 显示单元时钟电路复位电路4五、 系统硬件设计1.单片机最小系统1及说明单片机最小系统是单片机应用的最基电路,由芯片 AT89C51、电源、时钟电路和复位电路组成。AT89C51 是一种带 4K 字节 FLASH 存储器的低电压、高性能 CMOS 8 位微处理器。其应用广泛,生活中很多地方都有它的应用,像电子钟
6、、出租车计价器、交通灯等。其管脚说明如下:VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P0口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0 外部必须接上拉电阻。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉
7、为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH图 2单片机最小系统5编程和校验时,P1 口作为低八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1” 时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。
8、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) P3.4 T0(记时器 0 外部输入) P3.5 T1(记
9、时器 1 外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 S
10、FR8EH 地址上置60。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也
11、用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.里程信号的采集里程计算是通过安装在车轮上的霍尔传感器 A44E 检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图 3 所示。图 3 传感器测距示意图霍尔传感器是对磁敏感的传感元件,常用于信号采集的有 A44E,该传感器霍尔传感器 A44E 小磁铁AT89C51单 片 机P3.2车 轮7是一个 3 端器件,外形与三极管相似,只要接上电源、地,即可工作,工作电压范围宽,使用非常方便。A44E 的外形如图 4 所示。A 4 4 E1 2 3 1
12、-VCC 2-GND 3-OUT图 4 A44E外形图3.显示单元电路设计由于设计要求有里程数据显示输出,所以采用 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 个数码管的显
13、示。如图 5 所示图 5 显示电路8图 6 8子形 LED数码管常用的 LED 数码管有的共阴和共阳两种,本次用于显示的是 8 位 8 段共阴LED 显示管9六 系统软件设计1.系统主程序设计在主程序模块中,需要完成对各接口芯片的初始化、里程计数的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程数据寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动和计程等不同的操作。主程序流程图如图 7 所示。当检测到传感器输入信号时,就启动计数,当计数到满后,向单片机申请中断,并把圈数存扫里程寄存器中,单片机将根据里程寄存器中的内容计算行驶里程公里数,再存到相应的寄存器。数据存到寄存器中后送显示电路显示出来。中断图 7 主程序流程图开始初始化计数器子程序检测传感器信号输入程序数据寄存子程序显示子程序中断服务程序