收藏 分享(赏)

自行车里程速度计的设计毕业论文8.doc

上传人:kpmy5893 文档编号:8137405 上传时间:2019-06-10 格式:DOC 页数:36 大小:331.50KB
下载 相关 举报
自行车里程速度计的设计毕业论文8.doc_第1页
第1页 / 共36页
自行车里程速度计的设计毕业论文8.doc_第2页
第2页 / 共36页
自行车里程速度计的设计毕业论文8.doc_第3页
第3页 / 共36页
自行车里程速度计的设计毕业论文8.doc_第4页
第4页 / 共36页
自行车里程速度计的设计毕业论文8.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、Comment 91: 要有封面Comment 92: 两段并一段,措辞适当调整。自行车里程/速度计的设计1自行车里程/速度计的设计摘要:本文介绍了 AT89C52单片机,运用单片机的运算和控制功能,并采用简单、可靠的霍尔元件传感器,实现了自行车里程、速度实时测量,实时测得的数据由数码管显示,切换显示时采用蜂鸣器提示。并且用分频器 TC4024实现二分频,用来探讨24C01传感器的用途,通过实用电路的设计来掌握速度及里程传感器的使用方法及一些性能参数。本设计外围电路简单,元件少,体积小,超速时采用蜂鸣报警提示。本系统包含电子电路技术,以及常用的 AT89C52单片机工作原理。关键词 :AT89

2、C52 数码管显示器 TC4024 24C01 传感器 The Odometer/Speedometers Design Of The BikeAbstract: This article introduced used the Micro Computer Unit of the AT89C52 design The Odometer/Speedometers Of The Bike, it utilizes Micro Computer Units operation and control function, and it uses the nixietube real time dis

3、play to measure the speed and the course speed hodometer design proposal, it realizes two frequency divisions with the frequency divider of TC4024,it uses for to discuss the 24C01 sensors use, through the practical electric circuits design it grasps the odometer/speedometers application method and s

4、ome performance parameter。This system contains the electronic circuit technology, as well as the commonly used AT89C52 Micro Computer Units work principle, through this systems design, which pairs them organic union。Keywords: AT89C52 Nixietube TC4024 24C01 sensorComment 93: 正文需加入方案设计环节,全文框架建议引言方案设计芯

5、片介绍硬件电路设计软件设计调试Comment 94: 原文的 234三部分要合为一部分,并精简;软硬件设计要充实Comment 95: 正文序号要求一、 (一) 1、 全文修改自行车里程/速度计的设计2目 录1. 前言 .32. AT89C52单片机 42.1 AT89C52单片机简介 42.2 AT89C52的管脚及其含义 53. TC402474. 24C01芯片 .74.1 24C01简介 74.2 24C01的特性、框图及参数 84.3 管脚描述105. 硬件电路的设计 115.1 系统硬件电路 115.2 系统的工作原理 116. 软件设计 .126.1 系统内存的规划 126.2

6、系统的主要程序设计 127 软件调试 148. 结 论 .15致谢 16参考文献.17附录: 系统完整源程序 18Comment 96: 去掉不必要的符号自行车里程/速度计的设计31 前言传感器,是一种检测装置,能感受到被测的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。它的作用是将一种能量转换成另一种能量的形式。英文名字为 Sensor或Transducer,亦称变换器、换能器。在科学技术迅速发展的当今社会,传感器的应用越来越广泛,如在日常生活、航空、航天,常规武器、

7、交通运输,机械制造、生物医学工程、化工、自动化检测工程及计量等各项领域。传感器的应用现状: 微型化 智能化 多功能传感器 集成化 数字化传感器更趋向于高精度化、高稳定、高可靠化等方向发展。例如:霍尔传感器,由于它的价廉、易于使用,变使它能够广泛的运用于里程计、速度计等方面。单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机,又称微控制器。它包括中央处理器(Central Processing Unit,CPU) 、用 RAM构成的数据存储器、用 ROM构成的程序存储器、定时器/计数器、各种输入/输出(I/O)接口和时钟电路,可独立地进行工作。特别适用于控制领域。因此,单片机只要与适当

8、的软件及外部设备相结合,便可成为一个单片机控制系统。单片机的分类有:4 位单片机、8 位单片机、16 位单片机、32 位单片机。Microchip单片机是市场份额增长较快的单片机,它的主要产品是 PIC系列 8位单片机。8位单片机以经成为当前单片机的主流,主要体现在 CPU功能增强、内部资源增多、引脚的功能化、低电压和低功好耗化上。单片机由于其体积小、功能强,可靠性高,灵活方便等优点,所以被广泛的应用于各个领域,并对各行各业的技术改造和产品的更新换代起到重要的推动作用。本人经过学习,用 AT89C52设计了一个自行车里程/速度计。本设计可轮流显示自Comment 97: 插入方案设计,画出系统

9、框图,包括主要芯片和器件的选择自行车里程/速度计的设计4行车行使的里程和速度, 采用 TC4024芯片作为计数器以及 2C401存储数据,3 个单级共阴数码管作为显示系统。本系统具有超速信响提醒功能,里程数据自动记忆,也可应用于电动自行车、摩托车、汽车等机动车仪表上。2 AT89C52单片机 2.1 AT89C52单片机简介 本 文 涉 及 所 使 用 的 AT89C52是 51系 列 单 片 机 的 一 个 型 号 , 它 是 ATMEL公 司生 产 的 。 AT89C52是 一 个 低 电 压 , 高 性 能 CMOS 8位 单 片 机 , 片 内 含 8k bytes的 可 反 复 擦写

10、 的 Flash只 读 程 序 存 储 器 和 256 bytes的 随 机 存 取 数 据 存 储 器 ( RAM) , 器 件 采用 ATMEL公 司 的 高 密 度 、 非 易 失 性 存 储 技 术 生 产 , 兼 容 标 准 MCS-51指 令 系 统 , 片内 置 通 用 8位 中 央 处 理 器 和 Flash存 储 单 元 。AT89C52特 点 :与 MCS-51产品指令和引脚完全兼容 8K 字节可重擦写 FLASH闪存 1000 次擦写周期 全静态操作:0Hz-24MHz 三级加密程序存储器 256X8 字节内部 RAM 32 个可编程 I/O口线 3 个 16位定时/计数

11、器 5 个中断源 可编程串行 UART通道 低功耗空闲和掉电模式功能特性概述:AT89C52提供以下标准功能:8K 字节 FLASH闪存,256 字节内部 RAM,32 个 I/O口线,3 个 16位定时/计数器,一个 6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52 可降至 0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM中的内容,但振荡器停止工作并禁止其他所有自行车里程/速度计的设计5部件工作直到下一个硬件复位。2.2 AT89C52 的管脚

12、及其含义AT89C52 的管脚及各管脚含义如下:图 1 89C52 管脚图功 能 引 脚 说 明 :(1)电 源 引 脚VCC(40 脚):接+5V 电源正端;GND(20 脚):接地;(2)时钟引脚 XTAL1(19 脚):内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此脚接地。 XTAL2(18 脚):内部振荡电路反相放大器的输出端,是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡电源。(3)控制引脚RST/Vpd( 9 脚 ) : 为 复 位 输 入 端 口 , 外 接 电 阻 电 容 组 成 的 复 位 电 路 。 晶振工作时,RST 脚持续 2 个

13、机器周期高电平将使单片机复位。ALE/PROG(30 脚):地址锁存有效信号输出端。地址锁存控制信号(时,锁存低 自行车里程/速度计的设计68 位 ALE)是访问外部程序存储器地址 的输出脉冲。在 flash 编程时,此引脚(PROG)也用作编程输入脉冲。 在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。除此之外,在每次访问外部数据存储器时,ALE 脉冲将会跳过。PSEN/(29 脚):片外部程序存储器读选通信号输出端,低电平有效。当 AT89S52 从外部程序存储器执行外部代码时,在每个机器周期 PSEN 信号两次有效,而在访问外部数据存储器时,PSE

14、N 信号将不出现。EA/Vpp(31 脚):访问外部程序存储器控制信号。欲 使 CPU 仅 访 问 外 部 程 序 存储 器 ( 地 址 为 0000HFFFFH) , EA 端 必 须 保 持 低 电 平 ( 接 地 ) 。 如 果 EA 端为 高 电 平 ( 接 Vcc 端 ) , CPU 则 执 行 内 部 程 序 存 储 器 中 的 指 令 。 在 flash 编程期间,EA 也接收 12 伏 VPP 电压。(4)I/O 引脚P0 口P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口

15、P0 写“1”时,可作为高阻抗输入端用。P0 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻; 在 FLASH 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻; P1 口P1 口是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流; 与 AT89C51 不同之处是,P1.0 和 P1

16、.1 还可分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX) ; FLASH 编程和程序校验期间,P1 接收低 8 位地址; P1.0 和 P1.1 的第二功能:P1.0 T2(定时/计数器 T2 外部计数脉冲输入),时钟输出 ;P1.1 T2EX(定时/计数 T2 捕捉/重装载触发信号和方向控制); P2 口P2 是一个带内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部

17、信号拉低时会输出一个电流; 自行车里程/速度计的设计7在访问外部程序存储器或 16 位地址的外部数据存储器时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器时,P2 口输出 P2 锁存器的内容; FLASH 编程或校验时,P2 亦接收高位地址和一些控制信号; P3 口P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流; P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能

18、:表 1端口功能 第二功能 功能说明P3.0 RXD 串行输入(数据接收)口P3.2 TXD 串行输出(数据发送)口P3.2 INT0/ 外部中断 0 输入P3.3 INT1/ 外部中断 1 输入P3.4 T0 定时器/计数器 0 计数输入P3.5 T1 定时器/计数器 1 计数输入P3.6 WR/ 片外数据存储器写选通信号输出P3.7 RD/ 片外数据存储器读选通信号输入此外,P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号。3 TC4024 本程序采用 TC4024 芯片,它是一个 7 位二进制记数器/分频器,它包含有 14 个管脚,其 7 脚接地,14 脚接+5V,1 脚

19、接 AT89C52 的 INT0,即 12 脚,在系统中此芯片起到了二分频的作用。4 24C01 芯片4.1 24C01 简介24C01 是一个 1K 位串行 CMOS EEPROM,内部含有 128 个 8 位字节,CATALYST 的先进 CMOS 技术实际上减少了器件的功耗,是采用 I2C 接口的串行可电擦除可编程只读存储器,有一个专门的写保护功能。因其接线简单且对数据修改具有足够的灵活性,故得自行车里程/速度计的设计8到了广泛的应用。24C01 是 I2C 接口的,但标准 51 是不带 I2C 接口的,串口方式 0 是不行的,需要用 IO 模拟,所以随便接两个 IO 都可以,而且都要接

20、上拉电阻,大概几 K 就行了,因为不是总线方式,所以不能用 MOV 指令,也不能用 SBUF,要判断是否为满,可以在程序里设个变量。以下是 24C01 的管脚图:图 2 管脚图表 2 24C01 的管脚描述4.2 24C01 的特性:24C01 芯片具有以下特性: 与 400KHZ 的 I2C 总线兼容; +1.8-6.0V 工作电压范围; 低功耗 CMOS 技术; 写保护功能:当 WP 为高电平时进入写保护状态; 页写缓冲器; 自定时擦写周期; 1,000,000 编程擦除/周期; 可保存数据 100 年; 8 脚 DIP、SOIC、TSSOP 封装;Comment 98: 芯片资料要删减,

21、后面一样自行车里程/速度计的设计9 温度范围:商业级、工业级和汽车级。方 框 图图 3参 数 值 工作温度工业级-55 125 商业级 0 75 贮存温度-65 150 各管脚承受电压-2.0 Vcc2.0V Vcc 管脚承受电压-2.0 7.0V 封装功率损耗(Ta=25 )1.0W 自行车里程/速度计的设计10 焊接温度(10 秒) 300 输出短路电流 100mA可 靠 性 参 数 (表 3)4.3 管 脚 描 述SCL : 串 行 时 钟24C01 串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。 SDA : 串 行 数 据 /地 址24C01 双向串行数据/地

22、址管脚用于器件所有数据的发送或接收,SDA 是一个开漏 输出管脚,可与其它开漏输出或集电极开路输出进行线或 wire-OR。A0 A1 A2 : 器 件 地 址 输 入 端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为 0 ,24C01 除外。当使用 24C01 时最大可级联 8 个器件,如果只有一个 24C01 被总线寻址,这三个地址输入脚 A0 A1 A2 必须连接到 Vss。 WP 写 保 护如果 WP 管脚连接到 Vcc, 所有的内容都被写保护(只能读) 。当 WP 管脚连接到Vss 或悬空,允许器件进行正常的读/写操作。 I2C 总 线 协 议I2C 总线协议定义如

23、下: 1. 只有在总线空闲时才允许启动数据传送. 2. 在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。Comment 99: 要增加,不能就给原理总图,要把一个一个电路单独给出电路图并加以分析说明,最后再附上总图并作必要的解释。自行车里程/速度计的设计113. 起始信号 时钟线保持高电平期间数据线电平从高到低的跳变作为 I2C总线的起始信号。 4. 停止信号 时钟线保持高电平期间数据线电平从低到高的跳变作为 I2C总线的停止信号。5 硬件电路的设计5.1 系统硬件电路自行车里程/速度计能自动显示自

24、行车行驶的总里程数及行车速度,具有超速信响提醒功能,里程数据自动记忆,也可应用于电动自行车、摩托车、汽车等机动车仪表上。其硬件电路原理图如图 4。图 4 系统原理图5.2 系统的工作原理本设计能实时地将所测的速度与累计里程数显示出来,主要是将 24C01传感器输入到单片机的脉冲信号,将频率实时地测量出来,然后通过单片机计算出速度和里程,再Comment 910: 内容充实后,分解到各子电路的分析中自行车里程/速度计的设计12将所得的数据存储到 TC4024芯片中,通过 AT89C52单片机计算出来的速度和里程的数据,必须通过 BCD码的转换才能输出给数码管。最后由共阴数码管显示所测速度与里程。

25、 自行车里程/速度计采用 AT89C52单片机作控制,速度及里程传感器采用霍尔元件,其电器原理图如图 4所示。P0 口和 P2口用于七段 LED显示器的段码及扫描输出,在显示里程时,第三位小数点用 17脚 P3.7口控制点亮。P1.0 和 P1.1口分别用于显示里程状态和速度状态。P1.2、 P1.3、 P1.6和 P1.7口分别用于设置轮圈的大小。P3.0 口的开关用于确定显示的方式,当开关闭合时,显示速度;打开时显示里程。第 12脚外中断 0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个地电平脉冲。第 13脚外中断 1用于控制定时器 T1的启停,当输入为 0时关闭定时器。此控制

26、信号是将轮子圈数的计数脉冲经二分频后形成(见图 4) ,这样,每次定时器 T1的开启时间刚好为转一圈的时间。根据轮子的周长就可以计算出自行车的速度。P1.4 和 P1.5口用于 EEPROM存储器 24C01的存取控制。 11脚输出用于速度超速时的报警。6 软件设计6.1 系统内存的划分由于本系统处理功能较多,因而一部分内存单元用于特定的用处。其主要内存单元用处如下:50H:EEPROM器件寻址字节存放单元;51H:EEPROM传送字节数存放单元;30H:EEPROM发送数据缓冲单元;40H:EEPROM读出数据存放单元;0A0H:EEPROM寻址字节字节写;0A1H:EEPROM寻址字节字节

27、读;62H:DPTR计数器扩展高 8位;6CH:定时器 T1计数器扩展高 8位;6DH:定时器 T1计数器扩展高 816位;60H、61H、62H:里程计数单元;68H、69H、6AH、6BH:存放自行车每圈时间数;自行车里程/速度计的设计1370H、71H、72H、73H:显示 BCD 码数据存放用;11H15H:存放被除数;16H19H:存放除数。6.2 系统主要的程序设计 1. 初始化程序在本系统初始化程序中,主要完成以下工作:将 T1 设为外部控制定时器方式;外中断 0 及外中断 1 设为边沿触发方式;将部分内存单元清零;设置轮子周长值;开中断及定时器;将 EEPROM 中的数据调入内

28、存等。 2. 轮圈设置出错处理程序P1.2、 P1.3、 P1.6、P1.7 端口的开关用于设定轮子的周长,当没有设定时(至少让一个开关闭合) ,能从 P3.1 口输出一个周期为 0.5S 的方波信号,用作发光管闪烁及信响器提醒。3. 主程序主程序根据 P3.0 的开关状态选择里程或速度显示,其流程图如图 6.2 所示。自行车里程/速度计的设计14图 5 主程序流程图4.里程计数程序(外中断 0 服务程序)外中断 0 服务程序用于对 12 脚输入的圈脉冲进行计数,为十六进制计数器。60H 为低位,62H 为高位。每计数一次后,对里程数据进行一次存储操作。5.外中断 1 服务程序外中断 1 服务

29、程序用于处理轮子转动一圈后计时数据。当标志位(00H)为 1时,说明计数器溢出,放入最大时间值(为#0FFH);当标志位为 0 时,将计数单元(TL1、TH1、6CH、6DH)的值放入 68H6BH 单元。6.EEPROM 存取程序本系统使用归一化 I2C 串口存取子程序,使用一条数据线和时钟线,采用ATMEL 公司的 24C01 串口存储器,应用简单方便。7.显示子程序当显示里程时,先要将圈数计数器中的数据进行运算,求出总里程。当要Comment 911: 对照源程序,各子程序也给出程序流程图自行车里程/速度计的设计15显示速度时,要将轮子的这周长和转一圈的时间数相除,然后换算成 Km/h单

30、位。最后放入 70H73H,进行数据显示。7 软件调试软件调试是调试的重点,同时也是最容易出错的地方;在整个软件调试过程中,我采取了先部分后整体的调试方法。在整个程序的编写调试过程中我首先调试的是数码管显示系统,要求数码管显示0、1、2,数码管显示调试程序如下。ORG 0000HMAIN: MOV P2, #0FFHMOV P0, 0C0HMOV P2, #0FEHACALL DELAY1MOV P2, #0FFHMOV P0, 0F9HMOV P2, #0FDHACALL DELAY1MOV P2, #0FFHMOV P0, 0A4HMOV P2, #OFBHMOV P2, #0FFHAJM

31、P MAINDELAY1: MOV R6, #02HAGAIN: MOV R7, #8FHDELAY: DJNZ R7, DELAYDJNZ R6, AGAINRETEND结果数码管正确显示了 0、1、2 这三个数,显示系统调试成功。Comment 912: 这部分不能这样写,自行车里程/速度计的设计16软件测试要注意一下几点:1.在编写 I2C串行归一化存储子程序时本来出了点错,后经过多次调试才运行正确。2.里程/速度控制程序是系统程序的重点,所以它当然也是软件调试的重点。3.显示系统最好先调试。4.用软件进行仿真时要充分利用其逐步调试功能。8 结 论本论文所写的是能够自动显示自行车行驶的总

32、里程数及行车速度,具有超速信响报警提醒以及里程数据自动记忆的功能,也可应用于电动自行车、摩托车、汽车等机动车的仪表上。由于本系统采用的是动态扫描 LED显示且共阴数码管的驱动电流不是很大,所以数码管的显示不是特别亮。但可以通过更换小点的电阻增大其驱动电流(最大驱动电流不能超过 20毫安)使数码管变得更亮。致谢首先,我要感谢老师在这次毕业论文设计中,耐心的指导我,在整个毕业论文设计过程中,使我对单片机方面的知识与技能,都得到了进一步了解与提高。给予我很大的鼓励与指导,在此我衷心的感谢王老师!感谢她在各方面给予我的帮助,使我能够有一个良好的书写环境。同时在做此论文设计时王老师还为我提供软件材料,为

33、我更好的完成本论文设计提供了良好的条件。然后,我还要感谢我身边的同学、朋友,在这个过程中他们也给了我很大的鼓励与帮助,使我能够顺利的完成论文。Comment 913: 字体字号等格式需对照要求改好自行车里程/速度计的设计17参考文献1 李玉峰、倪虹霞. MCS-51 系列单片机原理与接口技术. 第一版. 北京:人民邮电出版社. 20042 周兴华. 手把手教你学单片机. 第一版.北京:北京航空航天大学出版社. 20053 曾一江. 单片微机原理与接口技术. 第一版.北京:科学出版社. 20064 张俊谟. 单片机中级教程原理与应用. 第二版. 北京:北京航空航天大学出版社. 2006. P1-

34、115 张友德 、赵志英、涂时亮. 单片机微型机原理、应用与实验.第五版.上海:复旦大学出版社. 2006. P24-276 吕泉. 现代传感器原理及应用. 第一版. 北京:清华大学出版社. 2006.自行车里程/速度计的设计18P1-57 张毅刚、彭喜元. 单片机原理与应用设计. 第一版. 哈尔滨:哈尔滨工业大学. 8 谢自美.电子线路设计.实验.测试M.武汉:华中科技大学出版社,20009 曲家骇,王季秩 ,伺服控制系统中的传感器10 邬宽民.单片机外围器件实用手册,数据传输接口器件分册.北京.北京航空航天大学出版社.2001:189-19511 王贵悦,新编传感器实用手册.水利电力出版社

35、.2002:67-8912 自行车电子里程表的初步设计 刁文兴 南京工业职业技术学院 后勤总公司 江苏 南京 13 数字式汽车里程表的设计 诸德宏, 潘天红, 朱湘临 江苏大学电气信息工程学院 , 江苏 镇江 14 电子车速里程表的单片机实现方案王锁弘, 威海双丰电子传感有限公司 山东 威海 15 张福学。传感器使用电路 150 例.中国技术出版社M.1992 年16 Embedded Microcontrollers and Processor Design ,嵌入式微控制器与处理器设计,Greg Osborn,机械工业出版社17 Altium Designer (Protel),机械工业出

36、版社18 Programming 8-bit PIC Microcontrollers in C with Interactive Hardware Simulation, 8 位单片机 C 语言编程:基于 PIC16 ,Martin P. Bates,人民邮电出版社19 彭为,黄科,雷道中.单片机典型系统设计.电子工业出版社20 张怀强. 基于单片机与光电传感器的电动自行车速度与里程表的设计. 今日电子,2006附录: 系统完整源程序以下是控制系统完整源程序; SPEED/MILE OR IKE PROGRAM ; 60H,61H,62H 作里程计数单元,6CH,6DH 作 T1 计数扩充单

37、元,; 68H,69H,6AH,6BH 存放自行车每圈时间数,70H,71H,72H,73H; 作显示 BCD 码存放数用,11H15H 存放被除数,16H-19H 存放除数; 定义Comment 914: 源程序部分建议页面分两栏节约纸张自行车里程/速度计的设计19VSDA EQU P1.5 ; EEPROM数据传送口VSCL EQU P1.4 ; EEPROM时钟传送口SLA EQU 50H ; EEPROM器件寻址字节存放单元NUMBYT EQU 51H ; EEPROM传送字节数存放单元MTD EQU 30H ; EEPROM发送数据缓冲单元MRD EQU 40H ; EEPROM读出

38、数据存放单元SLAW EQU 0A0H ; EEPROM寻址字节写SLAR EQU 0A1H ; EEPROM寻址字节读DPHH EQU 62H ; DPTR计数扩展高 8位TH1H EQU 6CH ; 定时器 T1扩展高 8位TH1HH EQU 6DH ; 定时器 T1扩展高 8-16位; PRO GRAM INPUT ;ORG 0000H ;程序执行开始地址LJMP START ;跳至 STARTORG 0003H ;外中断 0中断程序入口LJMP INTEX0 ;跳至 INTEX0中断服务程序ORG 000BH ;定时器 T0中断程序入口RETI ;中断返回ORG 0013H ;外中断

39、1中断入口LJMP INTEX1 ; 跳至 INTEX1中断服务程序ORG 001BH ; 定时器 T1中断程序入口LJMP INTT1 ; 跳至 INTT1中断服务程序ORG 0023H ;串口中断入口地址RETI ;中断返回ORG 002BH ;定时器 T2中断入口地址RETI ;中断返回; PROGRAM CLEAR ;自行车里程/速度计的设计20上电初始化程序CLEARMEN: MOV TMOD, #90H ;T1 为 16 位外部控制定时器MOV SP, #75H ;堆栈在 75H 开始SETB PX0 ;外中断 0 优先级为 1SETB IT0 ;外中断 0 用边沿触发SETB I

40、T1 ;外中断 1 用边沿触发MOV 20H, A ;清内存中特定单元MOV 6CH, A ;MOV 6DH, A ;MOV 70H, A ;MOV 71H, A ;MOV 72H, A ;MOV 73H, A ;MOV 60H, A ;MOV 61H, A ;MOV 62H, A ;MOV 63H, A ; 清内存中特定单元DEC A ;A 为#0FFHMOV 68H, A ;内存置数据#0FFHMOV 69H, A ;内存置数据#0FFHMOV 6AH, A ;内存置数据#0FFHMOV 6BH, A ;内存置数据#0FFHMOV P1, A ;P1 口置 1CLEAR1: JB P1.2

41、, KEY1 ;根据 P1.2,P1.3,P1.6,P1.7 设置状态; 在 21 地址单元赋自行车周长值MOV 21H, #0FH ; 22 寸自行车周长值LJMP CLEAR2 ; 转 CLEAR2KEY1: JB P1.3, KEY2 ;自行车里程/速度计的设计21MOV 21H, #12H ; 24 寸自行车周长值LJMP CLEAR2 ; CLEAR2KEY2: JB P1.6, KEY3 ;MOV 21H, #14H ; 26 寸自行车周长值LJMP CLEAR2 ; 转 CLEAR2KEY3: JB P1.7, ERR ; 四个开关都没合上,转出错处理MOV 21H, #19H

42、; 28 寸自行车周长值CLEAR2: SETB TR1 ; 开定时器 T1SETB EA ; 开中断允许SETB EX0 ; 开外中断 0SETB ET1 ; 开定时中断 T1SETB P3.1 ; 关报警器LCALL VIICREAD ; 将 EEPROM 中原里程数据调入内存RET ; 子程序返回ERR: CPL P3.1 ; 轮周长设置出错,LED 灯闪提醒ALL DL5S ; 延时LJMP CLEAR1 ; 重新初始化,等待轮周长设置开关合上; PROGRAM START ;START: LCALL CLEARMEN ; 上电初始化START1: JB P3.0, DISPLAYS

43、; P3.0=1,显示里程LCALL DISPLAYV ; 显示速度START2: SJMP START1 ; 转 START1 循环;自行车里程/速度计的设计22; INTEX0 PROGRAM ; 里程计数程序,用外中断 0 实现,计数用 60H-62H 内存单元。INTEX0: PUSH ACC ; 累加器堆栈保护PUSH PSW ; 状态字堆栈保护INC 60H ; 圈加 1CLR A ; 清 ACJNE A, 60H, INTEX0OUT ; 计数没溢出转 INTEX0OUTINC 61H ; 溢出进位(61H 加 1)CJNE A, 61H, INTEX0OUT ; 计数没溢出转

44、INTEX0OUTINC 62H ; 溢出进位(62H 加 1)INTEX0OUT: LCALL VIICWRITE ; 里程数据存入 EEPROMSETB EX1 ; 开外中断 1POP PSW ; 状态字恢复POP ACC ; 累加器恢复RETI ; 中断返回; INTEX1 PROGRAM ; 每转 1 圈时间计数处理程序,每圈时间放在 68H-6BH 单元中。INTEX1: PUSH ACC ; 堆栈保护PUSH PSW ;CLR EX1 ; 关外中断 1JNB 00H, INTEX11 ; 溢出标志为 0 转 INTEX11MOV TL1, #0FFH ; 溢出时计时单元赋#0FFH

45、(显示速度为零)MOV TH1, #0FFH ;MOV 6CH, #0FFH ;MOV 6DH, #0FFH ;INTEX11: MOV 68H, TL1 ;将时间计数值移入暂存单元 68H-6BH自行车里程/速度计的设计23MOV 69H, TH1 ;MOV 6AH, 6CH ;MOV 6BH, 6DH ;CLR A ; 清 AMOV TL1, A ; 计时单元置 0MOV TH1, A ;MOV 6CH, A ;MOV 6DH, A ;CLR 00H ;清溢出标志POP PSW ;堆栈恢复POP ACC ;RETI ; 中断返回; INTT1 PROGRAM ; T1 计数器中断服务程序。 (计数器 T1 由外中断 1 输入控制,当为高电平时计时开始)INTT1: PUSH ACC ; 堆栈保护PUSH PSW ;INC 6CH ; 6CH 计时单元加 1MOV A, 6CH ; 移入 AJNZ INTT11 ; 不等于 0 转 INTT11INC 6DH ; 进位,6DH 单元加 1MOV A, 6DH ; 移入 AJNZ INTT11 ; 不等于 0 转 INTT11SETB

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报