自行车行程速度毕业设计(3)

2019-06-30 10:48

中州大学毕业设计

开始 初始化 N P3.0=1? Y 计算里程 计算速度 显示里程 显示速度

图 3.1 系统整体流程图

主要内存单元及用处:

50H:EEPROM器件寻址字节存放单元 51H:EEPROM传送字节数存放单元 30H:EEPROM发送数据缓冲单元 40H:EEPROM读出数据存放单元 0A0H:EEPROM寻址字节写入 0A1H:EEPROM寻址字节读出 62H:DPTR计数扩展高8位

6CH:定时器T1计数扩展高8位

6DH:定时器T1计数扩展高8—16位 60H、61H、62H:里程计数单元

68H、69H、6AH、6BH:存放自行车每圈时间数 70H、71H、72H、73H:显示BCD码数据存放用 11H--15H:存放被除数 16H—19H:存放除 (1)初始化程序

初始化程序主要完成以下工作:将T1设为外部控制定时器方式;外部中断0及

11

中州大学毕业设计

外部中断1设为边沿触发方式;将部分内存单元清0;设置轮子周长;开中断及定时器;将EEPROM中的数据调入内存。

CLEARMEN:MOV TMOD,#90H ;T1为16位外部控制定时器 MOV SP,#75H ;堆栈从75H开始

SETB PX0 ;外部中断0优先级为1 SETB IT0 ;外部中断0用边沿触发 SETB IT1 ;外部中断1用边沿触发 CLR A ;清A

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 MOV 68H,A ; MOV 69H,A ; MOV 6AH,A ; MOV 6BH,A ; MOV P1,A ;P1CLEAR1: JB P1.2,KEY1 ; MOV 21H,#0FH

LJMP CLEAR2 ;KEY1: JB P1.3,KEY2 ; MOV 21H,#12H

LJMP CLEAR2

KEY2: JB P1.6,KEY3 ; MOV 21H,#14H LJMP CLEAR2

KEY3: JB P1.7,ERR ; MOV 21H,#19H

CLEAR2: SETB TR1 ; SETB EA ;

清内存中特定单元 清内存中特定单元 清内存中特定单元 清内存中特定单元 清内存中特定单元 清内存中特定单元 清内存中特定单元 清内存中特定单元

清内存中特定单元 6 清内存中特定单元 清内存中特定单元 为0FFH

内存置数据0FFH 内存置数据0FFH 内存置数据0FFH 内存置数据0FFH 口置1

根据P1.2设置状态 转CLEAR2

根据P1.3设置状态 根据P1.6设置状态 根据P1.7设置状态 开定时器T1 开中断允许

12

中州大学毕业设计

SETB EX0 ;开外中断0

SETB ET1 ;开定时中断T1 SETB P3.1 ;关报警器

LCALL VIICREAD ;将EEPROM中原里程数据调入内存 RET

ERR: CPL P3.1 ;未设置车轮周长,开始报警 LCALL DL5S ;延时5S LJMP CLEAR1 ;重新初始化

初始化具体过程:首先对P1.2口的内容进行查询,若P1.2=0,则说明P1.2口接的按钮被按下,即选择第一种车轮周长,同时将周长存入21H单元内;若

P1.2=1,则第一个按钮没被按下,再对P1.3口的内容进行查询,内容为0则将其周长值存入21H中,不为0则扫描P1.6,内容为0则将其周长值存入21H中,不为0则扫描P1.7,若P1.7为0则将其周长值存入21H中,不为0则说明没有选择车轮直径,此时开始报警,并调用延时子程序。接着再从P1.2口扫描,如此循环,直到有键按下后停止报警。

13

中州大学毕业设计

初始化 P1.2=1? Y N N P1.3=1? Y N P1.6=1? Y 开报警器并延时 N P1.7=1? Y 出错提示 关报警器 将车圈周长调入21H 开中断,启动定时器

图 3.2 初始化程序流程图

(2)主程序

主程序根据P3.0口的开关状态选择里程速度显示。 START: LCALL CLEARMEN ;上电初始化

START1: JB P3.0,DISPLAYS ;P3.0=1,显示里程 LCALL DISPLAYV ;P3.0=0,显示速度 START2: SJMP START1 ;循环

14

中州大学毕业设计

开始 初始化 P3.0=1? Y 调用里程处理子程序 N 调用速度处理子程序

图3.3 主程序流程图

(3)用外部中断0实现的里程计数程序

定时中断是为满足定时或计数的需要而设置的。在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当结构发生计数溢出时,即表明定时时间或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,因此无须在芯片上设置引入端。

定时/计数器控制寄存器TCON是8位寄存器,地址为88H,可以位寻址。其高4位用于定时/计数器中断控制,低4位借给外部中断,用做中断标志和触发方式选择位。本设计采用定时中断,对自行车的里程和速度进行计数。 INTEX0: PUSH ACC ;累加器堆栈保护 PUSH PSW ;状态字堆栈保护

INC 60H ;圈数加1 CLR A ;清A

CJNE A,60H,INTEX0OUT ;计数器没溢出转INTEX0OUT INC 61H ;溢出进位(61H加1)

CJNE A,61H,INTEX0OUT ;计数器没溢出转INTEX0OUT INC 62H ;溢出进位(62H加1) INTEX0OUT:LCALL VIICWRITE ;里程数据存入EEPROM SETB EX1 ;开外部中断1

15


自行车行程速度毕业设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:奥姆斯特德与公园体系

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: