77范文网 - 专业文章范例文档资料分享平台

基于51单片机的自行车测速系统设计(4)

来源:网络收集 时间:2019-03-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

3.7 显示电路的设计

本设计中采用LED数码管显示。在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。八段LED显示器由8个发光二极管组成。其中7个发光二极管构成字型“8”的各个笔画段,另一个小数点为dp发光二极管。LED显示器有两种不同的形式:一种是发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是发光二极管的阴极都连在一起的,称之为共阴极LED显示器。如图3-15所示。本次设计采用共阴极接法。

LED显示方式有动态显示和静态显示两种方式。本系统采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM各自独立地受I/O线控制。CPU向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM端。也就是说我们可以采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

图3-15 七(八)段LED显示器

本设计P2.0、P2.1、P2.2、P2.3信号一起组成位选通的位选信号,P0.0~P0.7信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据放入存储单元,然后把数据送入段选通对应的地址,再选通某一个LED,逐步完成四个LED的显示。

16

第四章 系统软件设计

4.1 概述

在硬件设计完毕之后,接下来就是设计中最核心和最为主要的软件部分设计。所谓软件设计就是把软件需求变换成软件的具体设计方案(即模块结构)的过程。模块化结构设计即是根据要求和硬件设计的结构,将整个系统的功能分成许多小的功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方法,使得系统的整个功能和各部分的功能趋于明朗化。当系统出现问题,就可以根据功能设置找出问题的根源,从而更快地解决问题。所以说,在整个设计过程中,软件设计必须与硬件设计紧密地结合在一起。

基于霍尔传感器自行车的速度里程表的软件设计包括中断子程序、里程调用子程序、LED显示子程序等几大部分。由于要实现很多功能,所以采用模块化设计,下面就其主要部分分别加以分析。

4.2 总体程序设计

在主程序模块中,需要完成对各接口芯片的初始化、自行车里程和速度的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器、速度寄存器,并对它们进行初始化。然后主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计速等不同的操作。

P1.0和P1.1口分别用于显示里程状态和速度状态。P1.2、P1.3、P1.6和P1.7口分别用于设置轮圈的大小,低电平有效。P3.0是用于里程和速度切换的,低电平为显示速度,高电平为显示里程。中断0是对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。将根据里程寄存器中的内容计算和判断出行驶里程数。中断1用于控制定时器T1的启/停,当输入为0时关闭定时器。此控制信号是将轮子圈数的计数经二分频后形成。这样,每次定时器T1的开启时间刚好为转一圈的时间,根据轮子的周长就可以计算出自行车的速度。其程序流程如图4-1所示。

17

开始 初始化 P1.2=1? N Y N P1.3=1? Y N P1.6=1? Y N P1.7=1? Y 出错提示 将车圈周长调入21H 开中断,启动定时器 N P3.0=1? Y 调用里程处理子程序 调用速度处理子程序 图4-1 主程序流程图

系统程序设计如下:

18

$INCLUDE (REG52.INC)

DISPBUF EQU 59H ;显示缓冲区从5AH开始 SecCoun EQU 58H

SpCoun EQU 56H ;速度计时器单元57H和58H,高位在前(57H单 元中)

Count EQU 55H; 显示时的计数器

SpCalc bit 00h ;要求计算速度的标志,该位为1则主程序进行 速度计算,然后清该位 Hidden EQU 16 ;消隐码

ORG 0000H AJMP START ORG 1BH

JMP TIMER1 ;定时中断1入口 ORG 30H

START: MOV SP,#5FH ;设置堆栈 MOV P1,#0FFH MOV P0,#0FFH

MOV P2,#0FF H ;初始化,所有显示器、LED灭

MOV TMOD,#00010101B ;定时器T1工作于方式1,定时器0工作方式1,计数器

MOV TH1,#HIGH(65536-3686) MOV TL1,#LOW(65536-3686) SETB TR1

SETB ET1 ;开定时器1中断 SETB EA

LOOP: JNB SpCalc,LOOP ;如果未要求计算,转本身循环 ;标号: MULD 功能:双字节二进制无符号数乘法 ;入口条件:被乘数在R2、R3中,乘数在R6、R7中。 ;出口信息:乘积在R2、R3、R4、R5中。

;影响资源:PSW、A、B、R2~R7 堆栈需求: 2字节 MOV R2,SpCoun MOV R3,SpCoun+1

19

MOV R6,#0

MOV R7,#5 ;测得的数值是每秒计数值,转为分(每一转测 12次,故乘5而非60) CALL MULD SEND: MOV SBUF,R2

SLP1: JBC TI,SN1 ;是否送完? AJMP SLP1 SN1: MOV SBUF,R3 SLP2: JBC TI,SN2 AJMP SLP2 SN2: MOV SBUF,R4 SLP3: JBC TI,SN3 AJMP SLP3 SN3: MOV SBUF,R5 SLP4: JBC TI,SN4 AJMP SLP4 SN4:

;标号: HB2 功能:双字节十六进制整数转换成双字节BCD码整数;入口条件:待转换的双字节十六进制整数在R6、R7中。 ;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。 ;影响资源:PSW、A、R2~R7 堆栈需求: 2字节 MOV A,R4 MOV R6,A MOV A,R5

MOV R7,A ;将乘得的结果送R6R7准备转换,这里结果不可能超过2 字节 CALL HB2

MOV DISPBUF,R3 ;最高位

MOV A,R4 ;

ANL A,#0F0H ;去掉低4位 SWAP A ;将高4位切换到低4位 MOV DISPBUF+1,A

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于51单片机的自行车测速系统设计(4)在线全文阅读。

基于51单片机的自行车测速系统设计(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/508522.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: