第八章 应用举例

25
第第第 第第第第 第第第 第第第第 第第第第第 第第第第第 第第第第第第 第第第第第第

Upload: galen

Post on 15-Jan-2016

78 views

Category:

Documents


0 download

DESCRIPTION

第八章 应用举例. 二、步进电机控制. 一、数据采集系统. 计算机数据采集过程示意. 已知某温度传感器的温度与输出电压 及八位 A / D 转换器输出的特性曲线. T = 0 ℃ , U = 0 , D7—D0 = 00H ; T = 10 ℃ , U = 0.1V , D7—D0 = 1AH ; T = 99℃ , U = 5V , D7—D0 = FFH 。. 可建立温度转换表如表所示,该转换表由 256 个存储单元组成,每个单元中存放与单元地址相对应的温度值 (BCD 码 ) 。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第八章   应用举例

第八章 应用举例第八章 应用举例

一、数据采集系统一、数据采集系统

二、步进电机控制二、步进电机控制

Page 2: 第八章   应用举例

计算机数据采集过程示意

Page 3: 第八章   应用举例

已知某温度传感器的温度与输出电压已知某温度传感器的温度与输出电压及八位及八位 AA // DD 转换器输出的特性曲线 转换器输出的特性曲线

T = 0 ℃ , U = 0 , D7—D0 = 00H ; T = 10 ℃ , U = 0.1V , D7—D0 = 1AH ;

T = 99℃ , U = 5V , D7—D0 = FFH 。

Page 4: 第八章   应用举例

可建立温度转换表如表所示,该转换表由 256 个存储单元组成,每个单元中存放与单元地址相对应的温度值 (BCD 码 ) 。

Page 5: 第八章   应用举例
Page 6: 第八章   应用举例

主程序在运行过程中,定时器 T0 每隔 20ms 向 CPU 发出中断请求, CPU 在响应T0 中断请求过程中每秒调用中断服务子程序(即六位 LED 动态扫描显示程序)约 50 次,显示被测温度。

ORG 0000H AJMP MAIN ;转主程序。 ORG 000BH LJMP DISP ;转 LED 显示中断子程序。

MAIN : MOV SP , #30H ;堆栈设置。 MOV TMOD , #01H ; T0 初始化,方式 1 , TR0 驱动。 MOV TH0 , #0D8H ;计数初值设置(延时 20MS )。 MOV TL0 , #0F0H SETB EA ;开中断。 SETB ET0 ;允许 T0 中断。 MOV DPTR , #0300H ;指向 8155 命令寄存器。 MOV A , #00000101B ; 8155 初始化,口 A ,口 C 为 MOVX @ DPTR , A ;基本输出,禁止中断。 LCALL DELAY1 ;延时 1S 。 SETB TR0

Page 7: 第八章   应用举例

AGAIN : MOV DPTR , #2000H ;指向 A / D 转换器。 MOVX @DPTR , A ;启动 A / D 转

换。SETB P1.0 ; P1.0 为输入方式MOV A, P1 HERE : JNB ACC.0 , HERE ;等待 A / D 转换

结束。 MOV DPTR , #2000H MOVX A , @DPTR ;取 A / D 转换数据。 MOV R0 , A ;保存。 MOV DPTR , #TABLE1 ;指向温度转换表首

址。 MOVC A , @A + DPTR ;取对应温度值 (BCD

码 ) 。 MOV R1 , A ;暂存。 ANL A , #0FH ;屏蔽高四位。 MOV 79H , A ;个位显示字符送 79H 单元。

MOV A , R1 ;取温度值。 ANL A , #0F0H ;屏蔽低四位。 SWAP A MOV 7AH , A ;十位显示字符送 7

AH 单元。 MOV A , #10H ;关闭其余高 4 位 LED 显示。 MOV 7BH , A MOV 7CH , A MOV 7DH , A MOV 7EH , A LCALL DELAY2 ;延时 2S 。 LJMP AGAIN ;继续检测。

Page 8: 第八章   应用举例

LED 显示中断服务子程序如下: ORG 00A0H DISP : CLR EA ;关中断。 CLR TR0 ;暂时停止 T0 工作。 PUSH ACC ;现场保护。 PUSH 01H ;存 R1 内容。 PUSH DPL PUSH DPH MOV R1 , #79H ;指向显缓区首址。 MOV R2 , #01H ;从右面第一位开始显示。 MOV A , R2

Page 9: 第八章   应用举例

LD0 : MOV DPTR , #0303H ;指向位控口。 MOVX @DPTR , A ;位控码送位控口。 MOV A , @R1 ;取显示字符。 MOV DPTR , #TABLE2 ;指向字符代码表首址。 MOVC A , @A + DPTR ;取字符相应编码。 MOV DPTR , #0301H ;指向段控口。 MOVX @DPTR , A ;段控码送段控口。 ACALL DELAY3 ;延时 1ms 。 INC R1 ;指向下一显示单元。 MOV A , R2 ;取当前位控码。 JB ACC.5 , LD1 ;是否扫描到最左面一位? RL A ;否,左移一位。 MOV R2 , A ;继续扫描显示。 AJMP LD0 LD1 : POP DPH ;恢复现场。 POP DPL POP 01H POP ACC MOV TH0 , #0D8H ;重新设置初值。 MOV TL0 , #0F0H SETB EA ;开中断。 SETB TR0 ;重新启动 T0 。 RETI ;中断返回。

Page 10: 第八章   应用举例

说明: 1 .在实际应用可根据需要用滤波法获得 A / D 转换数据(如多次读取 A / D 转换数据取其平均值)。 2 .程序中没有用到的高四位 LED ,在具体应用中可根据需要显示其它字符,或增加显示位数。 3 . DELAY1 , DELAY2 , DELAY3 分别为延时 1s ,2s , 1ms 子程序。 4 .考虑 74LS244 的反相因素, TABLE2 可采用共阳LED 数字形代码表

Page 11: 第八章   应用举例

步进电机控制系统设计 步进电机控制系统设计 三相步进电机工作原理可知,步进电机通常有三相步进电机工作原理可知,步进电机通常有 33 种通电工作方式: 种通电工作方式:

假设按以上顺序通电,步进电机正转,则按相反方向通电,步进电机反转。 假设按以上顺序通电,步进电机正转,则按相反方向通电,步进电机反转。

Page 12: 第八章   应用举例
Page 13: 第八章   应用举例

用单片机的 P1.0 ,P1.1 , P1.2 分别控制步进电机的 A ,B , C 相绕组。由控制方式找出控制模型

Page 14: 第八章   应用举例

软件设计 由步进电机工作原理可知,步进电机控制程序的设计主要包括:1 判断旋转方向;2 顺序送出控制脉冲;3 脉冲是否送完;4 恒速还是变速;5 .变速时要判断是升速还是降速等。

转向标志存放在程序状态寄存器用户标志位 F1(D5H) 中,当 F1 为“ 0” 时,步进机正转,反之步进机反转。 步进机要走的步数放在 R4 中,以三相六拍工作方式为例,正转控制字及单元分配表见表 反转控制字及单元单元分配见表

Page 15: 第八章   应用举例

步进电机的工作频率步进电机的工作频率 (( 转速转速 )) 由送至步进机三相绕由送至步进机三相绕组的脉冲频率决定。在此设计脉冲序列产生由定时组的脉冲频率决定。在此设计脉冲序列产生由定时器器 T0T0 中断来产生,故调整定时器中断来产生,故调整定时器 T0T0 的定时时间的定时时间即可调节步进机的转速。即可调节步进机的转速。

Page 16: 第八章   应用举例

主程序:ORG 0000H MOV R4 , #N ;设步长计数器。 CLR C ORL C , 0D5H ;转向标志为 1 则转。 JC ROTE ; C=1 ,转 ROTE 。 MOV R0 , #20H ;正转模型首址送 R0 。 AJMP PH ROTE : MOV R0 , #27H ;反转模型首址送 R0 。 PH : MOV TMOD , #01H ; T0 定时器工作方式 1 。 MOV TL0 , #XL ; T0赋初值。 MOV TH0 , #XH SETB TR0 ;启动 T0 。 SETB ET0 ;允许 T0 中断。 SETB EA ; CPU 开中断。

LOOP : MOV A , R4 ;等待中断。 JNZ LOOP ;若步长记数器 (A)0 ,继续进给。 CLR EA ;进给完毕,关中断。 SJMP HERE ;结束。

Page 17: 第八章   应用举例

中断服务子程序: PUSH ACC ;保护现场。 MOV A , @R0 MOV P1 , A ;输出控制模型字。 DEC R4 ;步长减 1 。 INC R0 ;地址增 1 。 MOV A , #00H ;是结束标志转。 ORL A , @R0 JZ TPL TOR : MOV TL0 , #XL ;赋初值。 MOV TH0 , #XH ;赋初值。 POP ACC ;恢复现场。 RETI ;从中断返回。 TPL : MOV A , R0 ;恢复模型首址。 CLR C SUBB A , #06H MOV R0 , A AJMP TOR

Page 18: 第八章   应用举例
Page 19: 第八章   应用举例
Page 20: 第八章   应用举例
Page 21: 第八章   应用举例
Page 22: 第八章   应用举例
Page 23: 第八章   应用举例
Page 24: 第八章   应用举例
Page 25: 第八章   应用举例