




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连理工大学本科设计报告题目: 步进电机转速控制系统设计 步进电机转速控制系统设计一、 设计要求使用步进电机作为被控制对象;由 ZLG7290 做人机对话平台;利用单片机的P1(8 位)和 P3(部分口线)构造系统。利用 ZLG7290 的键盘控制直流电机,也可以利用 ADC 模块(与电位器配合) ,利用电位器控制转速;利用 ZLG7290 的 8 位 LED 数码管显示电机转向、转速参数显示。二、 设计分析及系统方案设计系统分析:程序为无限循环结构。先调用 A/D 转换程序,再调用 BCD 转换程序,利用 ZLG7290不断显示数码管的数字,中断程序包括键盘输入电机旋转方向,电位器控制电机转速。算法描述:1)30H-37H(DATA1):显示缓冲区,装载待显示的字形码,实验中只用到 4 个数码管,分别是 30H,31H,34H,35H,不需要的 32H,33H ,36H,37H 赋熄灭码#00H。不断调用 WRNBYT 子程序将数据写入 ZLG7290 的 10H-17H,显示数据。2)单双八拍相序放在 20H-27H 中,高四位都赋 F,这样不会影响低四位步进电机相序节拍信号的输出,为接下来中断控制方向和转速做准备。3)设定定时器 T1 定时方式 1,TH1 和 TL1 赋初值#00H(TH1 原始为#00H) ,A/D 转- 1 -换的数据传送给 TH1,每当 T1 定时时间到时,通过 P1 口的低四位(P1.0-P1.3)发出步进电机的一个相序节拍,定时时间的改变就可改变电机转动的速度。4)拆分子程序。将累加器 A 中的数据拆分为两个四位 16 进制数并查表,为显示方向和电机速度做准备。5)中断服务程序 INT_7290,2A-2D 装载从 ZLG7290 的 00H 单元开始读出的连续 4 个字节数据,其中 2BH 中的就是键值。当 S1 或 S2 键按下时,利用 ZLG7290 的/INT 信号引发单片机的一个中断,取键值后调用拆分查表程序将方向显示在数码管上。其中 S1键按下电机逆时针转动,S2 键按下电机顺时针转动。6)控制转速子程序 T1_INT,将 A/D 转换结果送给累加器 A,低四位清零后送给定时器高八位,判断方向位,利用 CJNE 命令,若方向位是 1 则执行接下来的语句,若不是则跳转到 LOOP11,再判断时候等于 2,若是则执行下来的语句,若不是则跳转到 DO,不做任何操作,即电机停止转动。7)A/D 转换子程序,将转换结果送 3FH 中,再经过数据滤波,采集 256 次相加再取高 8 位数据即为平均值送 3EH 中。8)BCD 转换子程序,将 3EH 中数据与#0F0 相与,取出高四位,再半字节交换,寄存器 B 中送 10,相除后 A 中为十位数,B 中为个位数,在此调用拆分子程序查表的相应字形码后送 30H,31H 显示。三、系统电路图- 2 -四、 外围接口模块硬件电路功能描述步进电机是一种将脉冲信号变换成相应角位移或线位移的电磁装置,当有脉冲输入时步进电机一步一步的转动,每给一个脉冲信号,就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。ZLG7290B:ZLG7290B 是数码管动态显示驱动、键键盘扫描管理芯片。能够驱动 8位共阴极结构的 LED 数码管或 64 位独立的 LED,同时还能扫描管理多达 64 个按键(S1-S56、F0-F7)的扫描识别。本实验用到了 4 个数码管显示方向和速度,两个按键S1,S2 控制方向的改变。TLC549 是被广泛应用的 CMOS8 位 A/D 转换器。该芯片有一个模拟输入端口,三态的数据串行输出接口可以方便地和微处理器或外围设备连接。TLC549 仅仅使用输入/输出时钟和芯片选择信号控制数据。本实验中通过电位器将连续的模拟的电阻值经过TLC549 转换成 8 为二进制数字信号。- 3 -五、 主程序中主要变量定义变量名称 RAM 单元/寄存器功能DATA1 30H 显示缓冲区首地址20H 相序首地址28H A/D 转换数据滤波求和中的高八位29H A/D 转换数据滤波求和中的低八位2AH-2DH 读出的 ZLG7290de 00H-03H 数据存放地址2EH 相序循环次数 8FX 2FH 控制转向标志3CH 相序列表中最后一个相序地址3DH 相序列表中第一个相序地址3EH 滤波结果存放地址3FH A/D 转换结果存放地址六、系统软件中各个子程序的功能描述子程序名称 入口参数 出口参数 功能 描述CF R3、R4 R3、R4 将数据拆分为两位 16 进制- 4 -数查表得对应字形码INT_7290 R0、R7、R2、R3、R4R3、R4 显示电机转动方向T1_INT 3FH A 控制电机转动速度ADZH 无 A 模拟信号转换为数字信号BCD_CONT A R3、R4 16 进制数转换为 10 进制数DELAY R0、R1 R0、R1 延时子程序使显示稳定RDADD R0,R2,R3,R4,R7R0 到R0+7 多字节读操作WRNBYT R0,R2,R3,R7 无 多字节写操作STA 无 无 IC 启动信号STOP 无 无 IC 停止信号MACK 无 无 发送 IC 应答信号MNACK 无 无 发送 IC 非应答信号CACK 无 F0 IC 应答检测WRBYT A 无 IC 发送一个字节RDBYT 无 R2 IC 接收一个字节七、主程序程序流程图设定 T1 工作方式和初值主程序入口对 ZLG7290B 复位开 INT0, T1 中断建立相序表建立变量缓冲区AD 转换模块BCD 转换模块/INT0读出 ZLG7290B 内部00H-03H 的数据于2A-2D 中取键值、拆分查表送显示缓冲区RETIINT_7290 中断服务子程序T1 定时时间到TL1 赋初值#00HTH 1 赋 AD 转换结果FX=#01?逆时针转相序加 1FX=#02?顺时针转相序减 1停止YYNN- 5 -八、程序清单;#ADC 模块连线#DAT BITP3.3CLK BITP3.4CS BITP3.5;#键盘控制模块连线#SDA BITP1.4SCL BITP1.5 WSLA EQU070HRSLA EQU071HFX EQU2FH;将控制转向标志放在 2FH 单元DATA1 EQU30H;变量缓冲区的首地址;*ORG 8000HLJMP 8100HORG 8003HLJMP INT_7290 ;控制转向的中断服务程序ORG 801BHLJMP T1_INT ;控制转速的中断服务程序;*调 WRNBYT 写入数据到 ZLG7290 的显示缓冲区延时子程序主程序流程图DJNE 3EHDORETIMOV 3EH,#08HMOV 3DH,#20HMOV 3CH,#27HYNT1_INT 中断服务子程序- 6 -; 初始化部分 ;*ORG 8100HSTART: MOV SP,#60HCLR P1.7 ;7290 复位LCALL DELAYSETB P1.7SETB EA ;开 INT0 中断SETB EX0SETB IT0 ;触发极性为下降沿 SETB ET1 ;开 T1 中断SETB TR1MOV TMOD,#10H ;设定定时器 T1 工作方式及初值MOV TH1,#00HMOV TL1,#00HMOV 3DH,#20HMOV 3CH,#27HMOV 2EH,#08HMOV FX,#00HMOV 20H,#0F8H ;相序放在 20H27H 中MOV 21H,#0FCHMOV 22H,#0F4HMOV 23H,#0F6HMOV 24H,#0F2HMOV 25H,#0F3HMOV 26H,#0F1HMOV 27H,#0F9H;*MOV 34H,#0DAHMOV 35H,#0FCH ;用 34H、35H 显示 FLAG;用 30H31H 显示 ADC 转换结果MOV DATA1+7,#00H ;熄灭MOV DATA1+6,#00H ;熄灭MOV DATA1+3,#00H ;熄灭MOV DATA1+2,#00H;*; 向 7290B 写入数据;*LOOP: LCALL ADZH ;数据滤波LCALL BCD_CONT ;转换成十进制MOV R7,#08HMOV R2,#10HMOV R3,#WSLAMOV R0,#DATA1LCALL WRNBYT ;调显示子程序- 7 -LCALL DELAY ;使显示稳定 SJMP LOOP ;*LEDSEG:DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H ;0-7 的字形码DB 0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH ;8-F 的字形码DB 0FAH,1EH,12H,00H ;a,t,= 和熄灭码;*; 拆分程序(将 A 中的数据拆分为两个四位 16 进制数并查表); ( 结果在 R4、R3 中 ) ;*CF: PUSH 02H ;将 A 中的数据拆分为两个四位 16 进制数并查表PUSH DPH PUSH DPLMOV DPTR,#LEDSEGMOV R2,AANL A,#0FHMOVC A,A+DPTRMOV R3,AMOV A,R2SWAP AANL A,#0FHMOVC A,A+DPTRMOV R4,APOP DPLPOP DPHPOP 02HRET ;*; 中断服务程序 INT_7290:(INT0) ,显示 FLAG 值;*INT_7290:PUSH 00HPUSH 02HPUSH 03HPUSH 04HPUSH 07HPUSH ACCPUSH PSWMOV R0,#2AH ;状态数据区首址MOV R7,#04H ;取状态数据个数MOV R2,#00H ;内部数据首地址MOV R3,#WSLA ;取器件地址(写)MOV R4,#RSLA ;取器件地址(读)LCALL RDADD ;读出 7290 的 00H-03H 数据存于 2AH-2DH - 8 -NOP ;设定一个断点,以观察读出的 4 个数据MOV FX,2BH ;取健值,存放在 2BH 内MOV A,FX ;显示 FLAGLCALL CF ;拆分、查表MOV DATA1+4,R3MOV DATA1+5,R4POP PSWPOP ACCPOP 07HPOP 04HPOP 03HPOP 02HPOP 00HRETI;*; 中断服务程序 改变转向;*T1_INT:PUSH 00HPUSH 01HMOV R0,3DHMOV R1,3CHMOV TL1,#00HMOV A,3FHANL A,#0F0HMOV TH1,ALOOP1: MOV A,FXCJNE A,#01H,LOOP11 ;若 FLAG=02H 则跳转到 LOOP11,左循环,逆时针MOV A,R0MOV P1,AINC 3DHSJMP LOOP12LOOP11: CJNE A,#02H,DOMOV A,R1MOV P1,ADEC 3CHLOOP12:DJNZ 2EH,DO ;一个相序周期完成MOV 2EH,#08HMOV 3DH,#20HMOV 3CH,#27HDO: POP01HPOP00HRETI;#ADC 的相关子程序#ADZH: PUSH 00H- 9 -PUSH 02HLOOP2: MOV R2,#0FFHLCALL TLC549_ADCMOV A,3FHMOV 29H,AMOV 28H,#00H ;放累加和高八位的内存单元 28H 清 0LOOP20:LCALL TLC549_ADCCLR CADD A,29HMOV 29H,A ;29H 放低位MOV A,#00HADDC A,28HMOV 28H,A ;28H 放高位DJNZ R2,LOOP20MOV 3EH,A ;将数据滤波的结果放在 3EH 中POP 02HPOP 00HRETTLC549_ADC:PUSH 07HCLR ACLR CLKMOV R7,#08HCLR CSLOOP3: SETB CLKMOV C,DATRLC ACLR CLKDJNZ R7, LOOP3MOV 3FH,A ;将 ADC 转换的结果放在 3FH 中SETB CSCLR CLKPOP 07HRET;*BCD_CONT: PUSH 07HPUSH 06HPUSH 05HPUSH 02HMOV A,3EHANL A,#0F0HSWAP AMOV B,#0AH ;B 中放入 10- 10 -DIV ABMOV R6,A ;R6 中得十位数MOV R5,B ;R5 中得个位数MOV A,R6LCALL CF ;调拆分子程序(入口 A 出口 R4,R3-字形码)MOV DATA1+1,R3MOV A,R5LCALL CF ;调拆分子程序(入口 A 出口 R4,R3-字形码)MOV DATA1+0,R3POP 02HPOP 05HPOP 06HPOP 07HRET DELAY: PUSH 00HPUSH 01HMOV R0,#00HDELAY1:MOV R1,#00HDJNZ R1,$DJNZ R0,DELAY1POP 01HPOP 00HRET;*;通用的 I2C 通讯子程序;相关子程序WRBYT、STOP、CACK、STA;*WRNBYT:PUSH PSWPUSH ACCWRADD: MOV A,R3 ;取外围器件地地址(包含 r/w=0)LCALL STA ;发送起始信号 S LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,WRADD ;如果应MOV A,R2LCALL WRBYT ;发送内部寄存器首地址LCALL CACK ;检测外围器件的应答信号JB F0,WRADD ;如果应答不正确返回重来 WRDA: MOV A,R0LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,WRADD ;如果应答不正确返回重来INC R0- 11 -DJNZ R7,WRDALCALL STOP POP ACCPOP PSWRET ;*;通用的 I2C 通讯子程序(多字节读操作);入口参数 R7 字节数;;R0 目标数据块首地址;R2 从器件内部子地址;;R3 器件地址(写) ;R4 器件地址(读);相关子程序WRBYT、STOP、CACK、STA、MNACK ;*RDADD: PUSH PSW ;从 PCF8563 的 02H 单元读入 7 个参数PUSH ACC ;存放于 20H-26H 单元RDADD1:LCALL STA MOV A,R3 ;取器件地址(写)LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,RDADD1 ;如果应答不正确返回重来MOV A,R2 ;取内部地址LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,RDADD1 ;如果应答不正确返回重来LCALL STAMOV A,R4 ;取器件地址(读)LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,RDADD1 ;如果应答不正确返回重来RDN: LCALL RDBYT MOV R0,ADJNZ R7,ACKLCALL MNACKLCALL STOPPOP ACCPOP PSWRETACK: LCALL MACKINC R0SJMP RDN ;(3)I2C 各个信号子程序;*; 启动信号子程序 S - 12 -;*STA: SETB SDA ;启动信号 SSETB SCLNOP ;产生 4.7US 延时NOPNOPNOPNOPCLR SDANOP ;产生 4.7US 延时NOPNOPNOPNOP CLR SCLRET ;*; 停止信号子程序 P ;*STOP: CLR SDA ;停止信号 PSETB SCLNOP ;产生 4.7US 延时NOPNOPNOPNOPSETB SDANOP ;产生 4.7US 延时NOPNOPNOPNOPCLR SCLCLR SDARET ;*; 应答信号子程序 MACK;*MACK: CLR SDA ;发送应答信号 ACKSETB SCLNOP ;产生 4.7US 延时NOPNOPNOP- 13 -NOPCLR SCLSETB SDARET;*; 非应答法信号子程序 MNACK;*MNACK: SETB SDA ;发送非应答信号 NACKSETB SCLNOP ;产生 4.7US 延时NOPNOPNOPNOPCLR SCLCLR SDARET;*; 应答检测子程序 CACK;*CACK: SETB SDA ;应答位检测子程序SETB SCL CLR F0MOV C,SDA ;采样 SDAJNC CEND ;应答正确时转 CENDSETB F0 ;应答错误时 F0 置一CEND: CLR SCLRET;*; 发送一个字节子程序 WRBYT;*WRBYT: PUSH 06HMOV R6,#08H ;发送一个字节子程序 WLP: RLC A ;(入口参数 A)MOV SDA,CSETB SCLNOP ;产生 4.7US 延时NOPNOPNOPNOPCLR SCLDJNZ R6,WLPPOP 06H- 14 -RET;*; 接收一个字节子程序 RDBYT ;*RDBYT: PUSH 06HMOV R6,#08H ;接收一个字节子程序RLP: SETB SDASETB SCL;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省达州市东辰国际学校2026届英语九上期末综合测试试题含解析
- 综合部年终总结2025
- 西藏日喀则市南木林一中学2026届英语九年级第一学期期末监测模拟试题含解析
- 2026届濮阳市重点中学英语九上期末检测模拟试题含解析
- 2026届辽宁大连甘井子区育文中学化学九年级第一学期期中检测试题含解析
- 2026届江苏省南京市江宁区南京市临江高级中学一模生物试题
- 医师资格考试题库及答案
- 福建省福州福清市2026届化学九年级第一学期期中学业质量监测试题含解析
- 内蒙古自治区鄂尔多斯市东胜区第二中学2026届化学九上期中考试模拟试题含解析
- 2026届辽宁省抚顺市五十中学九年级化学第一学期期末达标检测试题含解析
- 【培训课件】网络安全培训
- 2024秋新沪粤版物理8年级上册教学课件 3.1 光的传播与色散
- 2020高考试题研究(工艺流程高考真题)备考建议及说题比赛课件
- 2025年广西公需科目考试题库及答案
- 数据安全技术应用职业技能竞赛理论考试题库500题(含答案)
- 使用错误评估报告(可用性工程)模版
- 话题阅读(十四):旅游与交通-小学英语阅读理解专项训练
- 教师师德师风的培训
- 11.9消防宣传日关注消防安全主题班会课件
- 中国商飞在线测评题
- 高中英语新课程标准解读课件
评论
0/150
提交评论