📄 control1_motor.lst
字号:
CCS PCM C Compiler, Version 3.242, 16465 23-Jun-06 18:33
Filename: D:\phuoc_weld\laptrinhpic\control1_motor.lst
ROM used: 338 words (4%)
Largest free fragment is 2048
RAM used: 32 (9%) at main() level
41 (11%) worst case
Stack: 2 worst case (1 in main + 1 for interrupts)
*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 0E5
0003: NOP
0004: MOVWF 7F
0005: SWAPF 03,W
0006: CLRF 03
0007: MOVWF 21
0008: MOVF 0A,W
0009: MOVWF 20
000A: CLRF 0A
000B: MOVF 04,W
000C: MOVWF 22
000D: MOVF 77,W
000E: MOVWF 23
000F: MOVF 78,W
0010: MOVWF 24
0011: MOVF 79,W
0012: MOVWF 25
0013: MOVF 7A,W
0014: MOVWF 26
0015: MOVF 7B,W
0016: MOVWF 27
0017: BCF 03.7
0018: BCF 03.5
0019: BTFSS 0B.5
001A: GOTO 01D
001B: BTFSC 0B.2
001C: GOTO 030
001D: MOVF 22,W
001E: MOVWF 04
001F: MOVF 23,W
0020: MOVWF 77
0021: MOVF 24,W
0022: MOVWF 78
0023: MOVF 25,W
0024: MOVWF 79
0025: MOVF 26,W
0026: MOVWF 7A
0027: MOVF 27,W
0028: MOVWF 7B
0029: MOVF 20,W
002A: MOVWF 0A
002B: SWAPF 21,W
002C: MOVWF 03
002D: SWAPF 7F,F
002E: SWAPF 7F,W
002F: RETFIE
0030: BCF 0A.3
0031: BCF 0A.4
0032: GOTO 043
.................... #device PIC16F877 *=16 ADC=10
0033: BCF 0A.0
0034: BCF 0A.1
0035: BCF 0A.2
0036: ADDWF 02,F
0037: RETLW 58
0038: RETLW 75
0039: RETLW 6E
003A: RETLW 67
003B: RETLW 3D
003C: RETLW 20
003D: RETLW 20
003E: RETLW 25
003F: RETLW 6C
0040: RETLW 64
0041: RETLW 0D
0042: RETLW 00
*
0057: CLRF 43
0058: MOVF 04,W
0059: MOVWF 42
005A: BCF 43.0
005B: BTFSC 03.7
005C: BSF 43.0
005D: BTFSS 3C.7
005E: GOTO 067
005F: BSF 42.7
0060: BTFSS 42.4
0061: INCF 42,F
0062: COMF 3B,F
0063: COMF 3C,F
0064: INCF 3B,F
0065: BTFSC 03.2
0066: INCF 3C,F
0067: SWAPF 3C,W
0068: IORLW F0
0069: MOVWF 3E
006A: ADDWF 3E,F
006B: ADDLW E2
006C: MOVWF 3F
006D: ADDLW 32
006E: MOVWF 41
006F: MOVF 3C,W
0070: ANDLW 0F
0071: ADDWF 3F,F
0072: ADDWF 3F,F
0073: ADDWF 41,F
0074: ADDLW E9
0075: MOVWF 40
0076: ADDWF 40,F
0077: ADDWF 40,F
0078: SWAPF 3B,W
0079: ANDLW 0F
007A: ADDWF 40,F
007B: ADDWF 41,F
007C: RLF 40,F
007D: RLF 41,F
007E: COMF 41,F
007F: RLF 41,F
0080: MOVF 3B,W
0081: ANDLW 0F
0082: ADDWF 41,F
0083: RLF 3E,F
0084: MOVLW 07
0085: MOVWF 3D
0086: MOVLW 0A
0087: ADDWF 41,F
0088: DECF 40,F
0089: BTFSS 03.0
008A: GOTO 087
008B: ADDWF 40,F
008C: DECF 3F,F
008D: BTFSS 03.0
008E: GOTO 08B
008F: ADDWF 3F,F
0090: DECF 3E,F
0091: BTFSS 03.0
0092: GOTO 08F
0093: ADDWF 3E,F
0094: DECF 3D,F
0095: BTFSS 03.0
0096: GOTO 093
0097: MOVLW 3D
0098: MOVWF 04
0099: BCF 03.7
009A: MOVLW 07
009B: ANDWF 42,W
009C: BCF 42.6
009D: DECF 04,F
009E: ANDWF 42,W
009F: BTFSS 03.2
00A0: GOTO 0A8
00A1: BTFSC 42.4
00A2: INCF 04,F
00A3: BTFSC 42.4
00A4: GOTO 0A8
00A5: MOVLW 20
00A6: MOVWF 77
00A7: GOTO 0C5
00A8: ADDWF 04,F
00A9: MOVLW 41
00AA: SUBWF 04,W
00AB: BTFSC 03.2
00AC: BSF 42.6
00AD: MOVF 00,W
00AE: MOVWF 77
00AF: BTFSS 03.2
00B0: GOTO 0B9
00B1: BTFSC 42.6
00B2: GOTO 0B9
00B3: BTFSC 42.4
00B4: GOTO 0C9
00B5: BTFSC 42.3
00B6: GOTO 0B9
00B7: MOVLW 20
00B8: GOTO 0C4
00B9: BTFSS 42.7
00BA: GOTO 0C1
00BB: MOVLW 2D
00BC: MOVWF 77
00BD: DECF 04,F
00BE: BCF 42.6
00BF: BCF 42.7
00C0: GOTO 0C5
00C1: BSF 42.3
00C2: BCF 42.4
00C3: MOVLW 30
00C4: ADDWF 77,F
00C5: MOVF 77,W
00C6: BTFSS 0C.4
00C7: GOTO 0C6
00C8: MOVWF 19
00C9: INCF 04,F
00CA: BTFSS 42.6
00CB: GOTO 0A9
00CC: BCF 0A.3
00CD: BCF 0A.4
00CE: GOTO 149 (RETURN)
.................... #include <16f877.h>
.................... //////// Standard Header file for the PIC16F877 device ////////////////
.................... //#device PIC16F877
.................... #list
....................
.................... #include <math.h>
.................... ////////////////////////////////////////////////////////////////////////////
.................... //// (C) Copyright 1996,2003 Custom Computer Services ////
.................... //// This source code may only be used by licensed users of the CCS C ////
.................... //// compiler. This source code may only be distributed to other ////
.................... //// licensed users of the CCS C compiler. No other use, reproduction ////
.................... //// or distribution is permitted without written permission. ////
.................... //// Derivative programs created using this software in object code ////
.................... //// form are not restricted in any way. ////
.................... ////////////////////////////////////////////////////////////////////////////
.................... //// ////
.................... //// History: ////
.................... //// * 9/20/2001 : Improvments are made to sin/cos code. ////
.................... //// The code now is small, much faster, ////
.................... //// and more accurate. ////
.................... //// ////
.................... ////////////////////////////////////////////////////////////////////////////
....................
.................... #ifndef MATH_H
.................... #define MATH_H
....................
.................... #ifdef PI
.................... #undef PI
.................... #endif
.................... #define PI 3.141592654
....................
....................
.................... #define SQRT2 1.41421356
....................
.................... //float const ps[4] = {5.9304945, 21.125224, 8.9403076, 0.29730279};
.................... //float const qs[4] = {1.0000000, 15.035723, 17.764134, 2.4934718};
....................
.................... ///////////////////////////// Round Functions //////////////////////////////
....................
.................... float CEIL_FLOOR(float x, int n)
.................... {
.................... float y, res;
.................... long l;
.................... int1 s;
....................
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y <= 32768.0)
.................... res = (float)(long)y;
....................
.................... else if (y < 10000000.0)
.................... {
.................... l = (long)(y/32768.0);
.................... y = 32768.0*(y/32768.0 - (float)l);
.................... res = 32768.0*(float)l;
.................... res += (float)(long)y;
.................... }
....................
.................... else
.................... res = y;
....................
.................... y = y - (float)(long)y;
....................
.................... if (s)
.................... res = -res;
....................
.................... if (y != 0)
.................... {
.................... if (s == 1 && n == 0)
.................... res -= 1.0;
....................
.................... if (s == 0 && n == 1)
.................... res += 1.0;
.................... }
.................... if (x == 0)
.................... res = 0;
....................
.................... return (res);
.................... }
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float floor(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : rounds down the number x.
.................... // Date : N/A
.................... //
.................... float floor(float x)
.................... {
.................... return CEIL_FLOOR(x, 0);
.................... }
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float ceil(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : rounds up the number x.
.................... // Date : N/A
.................... //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -