单片机课程设计报告PWM直流电动机调速.doc

上传人:laozhun 文档编号:2943339 上传时间:2023-03-05 格式:DOC 页数:28 大小:60KB
返回 下载 相关 举报
单片机课程设计报告PWM直流电动机调速.doc_第1页
第1页 / 共28页
单片机课程设计报告PWM直流电动机调速.doc_第2页
第2页 / 共28页
单片机课程设计报告PWM直流电动机调速.doc_第3页
第3页 / 共28页
单片机课程设计报告PWM直流电动机调速.doc_第4页
第4页 / 共28页
单片机课程设计报告PWM直流电动机调速.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《单片机课程设计报告PWM直流电动机调速.doc》由会员分享,可在线阅读,更多相关《单片机课程设计报告PWM直流电动机调速.doc(28页珍藏版)》请在三一办公上搜索。

1、 单片机设计报告 (PWM直流电动机调速)组员: 一、设计原理本设计运用单片机芯片STC89C52,通过控制单片机输出引脚P1.3输出的高低电平的延时时间长短来达到控制电机的目的,运用单片机定时器/计数器1对光电编码盘产生的脉冲进行计数,将所得到的数值送到P0口显示。二、 设计方案比较 采用PWM控制电机的方法有两种:方案一:本实验要求周期为50Hz,占空比20%80%可调,程序中设置初始值,通过按键对占空比进行逐次加一减一来实现对电动机的控制,但由于调节幅度太小,不易察觉,故方案不可行。方案二、程序中将要调节的几个占空比预先设定好,通过间接寻址,来改变延时时间达到控制电动机的目的。三、 程序

2、设计 本设计采用查询与中断结合,控制电机采用查询P1口状态,测速显示采用外部中断0控制。加速、减速:通过查询按键状态来控制程序跳转到相应的子程序去执行,改变延时时间来控制电机。显示:通过外部中断0控制。四、 硬件电路设计 电路图如下: 开始五、 设计流程如下: 主程序 按键是否按下 是 P1.0? 否 否P1.1? 是 电机保持占空比50%的速度运行 是 实现减速 实现加速 中断流程如下:判断与P3.2连接的按键是否按下? 是 进入中断服务子程序 保护现场 调用计数并定时 调用显示 恢复现场六、程序设计如下: ORG 0000H AJMP MAIN ORG 0003H AJMP XS ORG

3、0030H MAIN:MOV SP,#3FH MOV 27H,#05H MOV 20H,#0AH ;定时时间设定 MOV 21H,#04H MOV 22H,#08H MOV 23H,#0C0H MOV 24H,#0F0H MOV 30H,#04H MOV 31H,#08H MOV 32H,#0C0H MOV 33H,#0F0H MOV 34H,#0AH MOV R1,#20H ;设置所查询时间间接寻址的地址 MOV R0,#34H MOV R4,27H ;设置按键次数 MOVIE,#89H ;开启中断 SETB IE0 START1:JNB P1.0,UP ;查询按键是否按下 JNB P1.1

4、,DOWN MOV A,#01H MOV C,ACC.0 MOV P1.3,C LCALL DELAY1 ;调用延时 CPL A MOV C,ACC.0 MOV P1.3,C LCALL DELAY2 ;调用延时 SJMP START1 START2:JNB P1.0,UP ;查询按键是否按下 JNB P1.1,DOWN MOV A,#01H MOV C,ACC.0 MOV P1.3,C LCALL DELAY2 ;调用延时 CPL A MOV C,ACC.0 MOV P1.3,C LCALL DELAY1 ;调用延时 SJMP START2 DELAY1:MOV TMOD,#02H ;设置计

5、数器的工作方式 MOV 25H,R1 ;高(低)电平的延时时间 MOV R2,#05H MOV TH0,#38H MOV TL0,#38H SETB TR0 LP0:JBC TF0,LP1 AJMP LP0 LP1:DJNZ R2,LP0 MOV R2,#05H DJNZ 25H,LP0 RET DELAY2:MOV TMOD,#02H MOV 35H,R0 ;高(低)电平的延时时间 MOV R2,#05H MOV TH0,#38H MOV TL0,#38H SETB TR0 LP2:JBC TF0,LP3 AJMP LP2 LP3:DJNZ R2,LP2 MOV R2,#05H DJNZ 3

6、5H,LP2 RET UP:DEC R4 CLR P1.5 INC R1 DEC R0 STAY1:JB P1.0,SE1 AJMP STAY1 SE1:SETB P1.5 MOV A,R4 JNZ START1 SETB IE0 AJMP MAIN DOWN:DEC R4 CLR P1.6 INC R1 DEC R0 STAY2:JB P1.1,SE2 AJMP STAY2 SE2:SETB P1.6 MOV A,R4 JNZ START2 SETB IE0 AJMP MAIN;测速显示 XS:PUSH ACC MOV A,R0 PUSH ACC MOV A,R1 PUSH ACC MOV

7、A,R2 PUSH ACC MOV A,R3 PUSHACC MOV A,R4 PUSH ACC MOV A,R5 PUSH ACC MOV A,R6 PUSH ACC MOV A,R7 PUSH ACC PUSH 8CH PUSH 8AH PUSH PSWMCJS:MOVTCON,#00HMOV TMOD,#15H;定时器1方式1MOVTL1,#3CH;设初值0.05s MOV TH1,#0B0H MOVTH0,#0 MOVTL0,#0 SETB TR0SETBTR1SETBET0SETBEAZSZH:MOVR6,#TH0;取脉冲数,R6高8,R7低8MOVR7,#TL0MOV R1,#0F

8、FHLCALL DMULLCALLDISPPOP PSWPOP 8AHPOP 8CHPOP ACCMOV R7,ACCPOP ACCMOV R6,ACCPOP ACCMOV R5,ACCPOP ACCMOV R4,ACCPOP ACCMOV R3,ACCPOP ACCMOV R2,ACCPOP ACCMOV R1,ACCPOP ACCMOV R0,ACC RETI;转速计算 n=60*m/t;m在T1,t=0.05;n=1200*m=04B0H*m DMUL: MOV R2,#04H MOV R3,#0B0H MOV A,R3 MOV B,R7 MUL AB XCH A,R7 MOV R5,B

9、 MOV B,R2 MUL AB ADD A,R5 MOV R4,A CLR A ADDC A,B MOV R5,A MOV A,R6 MOV B,R3 MUL AB ADD A,R4 XCH A,R6 XCH A,B ADDC A,R5 MOV R5,A MOV F0,C MOV A,R2 MUL AB ADDC A,R5 MOV R5,A CLR A MOV ACC.0,C MOV C,F0 ADDC A,B MOV A,R4 RET DISP:MOV DPTR,#TAB MOV A,R7 ANL A,#0FH MOVC A,A+DPTR MOV P0,A MOV P2,#0FFH MOV

10、 P2,#0F7H LCALL DELAY MOV DPTR,#TAB MOV A,R7 ANL A,#0F0H SWAP A MOVC A,A+DPTR MOV P0,A MOV P2,#0FFH MOV P2,#0FBH LCALL DELAY MOV DPTR,#TAB MOV A,R6 ANL A,#0FH MOVC A,A+DPTR MOV P0,A MOV P2,#0FFH MOV P2,#0FDH LCALL DELAY MOV DPTR,#TAB MOV A,R6 ANL A,#0F0H SWAPA MOVC A,A+DPTR MOV P0,A MOV P2,#0FFH MOV

11、 P2,#0FEH LCALL DELAY DJNZ R1,DISP RET TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H RET DELAY:MOV A,R6 PUSH ACC MOV A,R7 PUSH ACC LP6:MOV R6,#250 LP4:NOP NOP DJNZ R6,LP4 POP ACC MOV R7,A POP ACC MOV R6,A RET END 七、设计心得 通过本次单片机设计,使我们对汇编语言有了更深刻的了解:对内部RAM区数据的存放、定时器/计数器的TMOD的设置、外部中断的开启与使用、特殊功能寄存器的字节寻址以及位寻址、子程序与主程序的联系以及主程序如何调用子程序、子程序与主程序如何进行数据传递。在学习编程序的同时,学会了软件与硬件联调,同时加强了我们的团队协作精神,是我们获益匪浅。

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

当前位置:首页 > 教育教学 > 小学


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号