按关键词阅读: 设计 报告 实验 基于 控制系统 直流电机 速度 PID
这次试验 , 不仅加深了我对单片机的硬件结构和指令系统的认识 , 巩固了过去所学的机械工程控制基础方面的知识 , 更重要的是让我学到了从课本上学不到的东西 。
我大学里的知识大部分都来源于课堂和书本 , 基本上都是一知半解 , 根本没有学会灵活的应用知识 。
而通过这次试验 , 在将知识应用于实践的过程中 , 我发现问题并解决问题 , 不断的加深对知识的认识 , 从而真正的掌握了解决问题的能力 。
附录:程序源代码;
主程序;
单片机最小应用系统1的 P0口接0809的JD15口,;
单片机最小应用系统1的 。
8、Q0口接0809的JD16,;
单片机最小应用系统1的ALE、P2.0、P3.3、P3.6、P3.7分别;
接0809的clk0809、cs-0809、EOC、WR、RD,;
0809的模拟信号输入口AIN0接入05V可调电压,+VREF接+5V;
P3.0,P3.1连接到串行静态显示实验模块的DIN、CLK 。
DBUF0EQU30H ;
显示第一位的缓冲地址TEMPEQU40H MAX EQU 6CH ;
电动机最大的工作频率UA EQU 6DH ;
给定的A/D转换值UB EQU 6EH ;
实际的A/D转换值A0 EQU 60H ;
比例系数A0A1 EQU 63H ;
积分系数A1 A2 EQU 66H ;
。
9、微分系数A2TH11 EQU 5EH ;
TH1的值TL11 EQU 5FH ;
TL1的值ORG 0000H LJMP STARTORG 000BHLJMPINT0_PORG001BHLJMP INT1_PORG 0100HSTART: MOV A0, #22H ;
给A0赋值MOV 61H,#10H ;
4MOV 62H,#7FHMOV A1,#00H ;
给A1赋值MOV 64H,#10H ;
0MOV 65H,#7FH MOV A2, #00H ;
给A2赋值MOV 66H,#00H ;
0MOV 67H,#00HMOV UA,#10H ;
给定期望值MOV 6FH,#20 ;
扫描周期为20msMOV。
10、50H,#05H ;
给U(K-1)赋值MOV 51H,#00H ;
5MOV 52H,#00HMOV R1,#6MOV R0,#56HLOOP1: MOV R0,#01H INC R0DJNZ R1,LOOP1 ;
给e(k-1)和e(k-2)赋零MOV UA,#022H ;
给定电动机的频率MOV TMOD,#11HMOV TH0,#0FCHMOV TL0,#18HMOV TH1,#0MOV TL1,#0MOV TH11,#0FFH ;
控制高电平时间ton , 即占空比MOV TL11,#29HSETB TR0SETB TR1SETB EASETB ET0SETB ET1LOOP2: MOV A,6F 。
11、HJNZ DSQMOV 35H,#11H;
灭不需要的显示位MOV 36H,#11HMOV 37H,#11HMOVR0,#DBUF0MOVR0,#0AHINCR0MOVR0,#0DHINC R0MOV R0,#11HINC R0MOVDPTR,#0FEF0H;
A/DMOV A,#0MOVXDPTR,AWAIT: JB P3.3,WAITMOVXA,DPTR ;
读入结果MOVP1,AMOVB,AMOV UB,A ;
将实际频率存入UB中SWAPAANL A,#0FHXCHA,R0INCR0MOVA,B ANL A,#0FHXCHA,R0LCALLDISP1;
ACALL DELAYLCALL PID 。
12、 ;
调用PID程序LCALL PWM ;
调用PWM程序MOV 6FH,#20DSQ: AJMPLOOP2 ;
20ms进行一次调速DISP1: MOVR0,#DBUF0MOVR1,#TEMPMOVR2,#8DP10: MOVDPTR,#SEGTABMOVA,R0MOVCA,A+DPTRMOVR1,AINCR0INCR1DJNZR2,DP10MOVR0,#TEMPMOVR1,#8DP12: MOVR2,#8MOVA,R0DP13: RLCAMOV0B0H,CCLR0B1HSETB0B1HDJNZR2,DP13INCR0DJNZR1,DP12RETSEGTAB: DB3FH,6,5BH,4FH,66 。
13、H,6DH ;
0,1,2,3,4,5DB7DH,7,7FH,6FH,77H,7CH ;
6,7,8,9,A,BDB58H,5EH,79H,71H,0,00H ;
C,D,E,F,-DELAY: MOV R4,#0FFH ;
延时程序AA1: MOV R5,#0FFHAA: NOPNOPDJNZ R5,AADJNZ R4,AA1RET;
PWM T0中断INT0_P: MOV TH0,#0FCHMOV TL0,#18HMOV TH1,TH11MOV TL1,TL11SETB P1.0SETB P1.2SETB TR1MOV A,6FHJZ LOOP11DEC 6FH ;
20ms计时LOOP11: NOP 。
14、 RETI;
PWM T1中断INT1_P: CLR P1.0CLR P1.2CLR TR1NOP RETI;
PID调节PID: MOV UA,#66HMOV UB,#44HCLR CMOV A,UASUBB A,UB ;
计算e(k)MOV R2,A ;
将e(k)转换成浮点数MOV R3,#00HACALL SFF2MOV 53H,R2MOV 54H,R3MOV 55H,R6MOV R1,73HMOV R4,63H ;
求u(k)并覆盖u(k-1)MOV R5,64H MOV R7,65H MOV R2,56HMOV R3,57HMOV R6,58HACALL SFDUMMOV R4,75HMOV 。
15、 R5,76HMOV 2DH,R4MOV 2EH,R5MOV 2FH,R7MOV R1,73HMOV R4,60H MOV R5,61H MOV R7,62H MOV R2,53HMOV R3,54HMOV R6,55HACALL SFDUMMOV R4,75HMOV R5,76HMOV R2,2DHMOV R3,2EHMOV R6,2FHACALL SFDUSMOV 2DH,R4MOV 2EH,R5MOV 2FH,R7MOV R1,73HMOV R4,66H MOV R5,67H MOV R7,68H MOV R2,59HMOV R3,5AHMOV R6,5BHACALL SFDUMMOV。
16、R4,75HMOV R5,76HMOV R2,2DHMOV R3,2EHMOV R6,2FHACALL SFDUA MOV R2,50HMOV R3,51HMOV R6,52HACALL SFDUAMOV 50H,R4MOV 51H,R5MOV 52H,R7MOV 59H,56H ;
用e(k-1)覆盖e(k-2)MOV 5AH,57HMOV 5BH,58HMOV 56H,53H ;
用e(k)覆盖e(k-1)MOV 57H,54HMOV 58H,55HRET;
PWM的参数求解PWM:MOV A,51H ;
判断U(K)的正负JB ACC.7,LOOP9MOV A,52HJB ACC.7,LOOP9 。
17、 MOV A,#16SUBB A,R7MOV R7,ALOOP7: CLR CMOV A,R5RRC AMOV R5,AMOV A,R4RRC AMOV R4,ADJNZ R7,LOOP7CLR CMOV A,#0FFH;
计算T1初值SUBB A,R5MOV TH11,AMOV A,#0FFH SUBB A,R4MOV TL11,AAJMP LOOP10LOOP9: MOV TH11,#0FCHMOV TL11,#29HLOOP10: RET;
P14 1.9.2 双字节二进制定点数到浮点数的转换;
入口R3R2SFF2: MOV R6,#10HMOV 20H,R3JB 07H,SEGLP0: J 。
18、B 06H,LP1LCALL LSTMOV 20H,R3AJMP LP0SEG: JNB 06H,LP1;
负LCALL LSTMOV 20H,R3AJMP SEGLP1: RETLST: CLR CXCH A,R2RLC AXCH A,R2XCH A,R3RLC AXCH A,R3DEC R6RET;
出口R6 R3R2;
P51 4.1.3 双字节二进制浮点数加法,R7R5R4+R6R3R2=R7R5R4SFDUA: ACALL SJJ;
参见2.6.3(对阶)ACALL AD5432;
参见程序一(尾数相加)JNB OV,SONACALL RST77;
稿源:(未知)
【傻大方】网址:/a/2021/0711/0022845949.html
标题:基于|基于PID的直流电机速度控制系统设计实验报告( 二 )