本版本為基礎版,沖擊實驗次數在程序里面固定。PWM輸出控制繼電器或者MOS管去控制測試的負載。RLED是工作指示燈,亮1S滅1S閃爍,GLED為停止工作指示燈,工作時滅,停止測試時常亮!KEY_IN為啟動按鍵。文件附PCB這里和元項目文件。
Altium Designer畫的PCB圖如下:(51hei附件中可下載工程文件)
51hei.png (43.35 KB, 下載次數: 46)
下載附件
2019-12-20 13:44 上傳
51hei.png (8.92 KB, 下載次數: 57)
下載附件
2019-12-20 13:44 上傳
單片機源程序如下:
- //Deviec:FT61F02X
- //-----------------------Variable---------------------------------
- _ISR EQU 1A640H
- _sysRun EQU 7BH
- _TimValue EQU 70H
- _keyState EQU 79H
- _sysTim EQU 74H
- _keyProcTim EQU 72H
- _RLEDProcTim EQU 22H
- _PWMProcTim EQU 20H
- _RLEDState EQU 78H
- _PWMState EQU 77H
- _GLEDState EQU 76H
- _f1ms EQU 7BH
- _PWMNum EQU 24H
- _pwmEnd EQU 7AH
- _ISR EQU 1A640H
- //-----------------------Variable END---------------------------------
- ORG 0000H
- LJUMP 0AH //0000 380A
- ORG 0004H
- STR 7EH //0004 01FE
- SWAPR STATUS,0 //0005 0703
- STR 7CH //0006 01FC
- LDR PCLATH,0 //0007 080A
- STR 7DH //0008 01FD
- LJUMP E8H //0009 38E8
- LJUMP D8H //000A 38D8
- //;Impacttest.C: 144: TimValue = sysTim - keyProcTim;
- LDR 75H,0 //000B 0875
- STR 71H //000C 01F1
- LDR 74H,0 //000D 0874
- STR 70H //000E 01F0
- LDR 72H,0 //000F 0872
- SUBWR 70H,1 //0010 0CF0
- LDR 73H,0 //0011 0873
- BTSS STATUS,0 //0012 1C03
- DECR 71H,1 //0013 0DF1
- SUBWR 71H,1 //0014 0CF1
- //;Impacttest.C: 147: if (TimValue >= 20)
- LDWI 0H //0015 2A00
- SUBWR 71H,0 //0016 0C71
- LDWI 14H //0017 2A14
- BTSC STATUS,2 //0018 1503
- SUBWR 70H,0 //0019 0C70
- BTSS STATUS,0 //001A 1C03
- RET //001B 0004
- //;Impacttest.C: 148: {
- //;Impacttest.C: 149: keyProcTim = sysTim;
- LDR 75H,0 //001C 0875
- STR 73H //001D 01F3
- LDR 74H,0 //001E 0874
- STR 72H //001F 01F2
- //;Impacttest.C: 151: switch (keyState)
- LJUMP 45H //0020 3845
- //;Impacttest.C: 152: {
- //;Impacttest.C: 154: case 0:
- //;Impacttest.C: 155: if (PA0 == 0)
- BTSC 5H,0 //0021 1405
- RET //0022 0004
- //;Impacttest.C: 156: {
- //;Impacttest.C: 157: keyState = 1;
- CLRR 79H //0023 0179
- INCR 79H,1 //0024 09F9
- RET //0025 0004
- //;Impacttest.C: 161: case 1:
- //;Impacttest.C: 162: if (PA0 == 0)
- BTSC 5H,0 //0026 1405
- LJUMP 40H //0027 3840
- //;Impacttest.C: 163: {
- //;Impacttest.C: 165: if (sysRun == 0)
- BTSC 7BH,1 //0028 14FB
- LJUMP 3DH //0029 383D
- //;Impacttest.C: 166: {
- //;Impacttest.C: 167: sysRun = 1;
- BSR 7BH,1 //002A 18FB
- //;Impacttest.C: 169: PC2 = 1;
- BSR 7H,2 //002B 1907
- //;Impacttest.C: 170: PC4 = 1;
- BSR 7H,4 //002C 1A07
- //;Impacttest.C: 172: RLEDState = 1;
- CLRR 78H //002D 0178
- INCR 78H,1 //002E 09F8
- //;Impacttest.C: 173: RLEDProcTim = sysTim;
- LDR 75H,0 //002F 0875
- STR 23H //0030 01A3
- LDR 74H,0 //0031 0874
- STR 22H //0032 01A2
- //;Impacttest.C: 175: PWMNum = 2;
- LDWI 2H //0033 2A02
- STR 24H //0034 01A4
- CLRR 25H //0035 0125
- //;Impacttest.C: 176: pwmEnd = 0;
- CLRR 7AH //0036 017A
- //;Impacttest.C: 177: PWMState = 1;
- CLRR 77H //0037 0177
- INCR 77H,1 //0038 09F7
- //;Impacttest.C: 178: PWMProcTim = sysTim;
- LDR 75H,0 //0039 0875
- STR 21H //003A 01A1
- LDR 74H,0 //003B 0874
- STR 20H //003C 01A0
- //;Impacttest.C: 179: }
- //;Impacttest.C: 181: keyState = 2;
- LDWI 2H //003D 2A02
- STR 79H //003E 01F9
- //;Impacttest.C: 182: }
- RET //003F 0004
- //;Impacttest.C: 183: else
- //;Impacttest.C: 184: {
- //;Impacttest.C: 185: keyState = 0;
- CLRR 79H //0040 0179
- RET //0041 0004
- //;Impacttest.C: 189: default:
- //;Impacttest.C: 191: if (PA0)
- BTSS 5H,0 //0042 1C05
- RET //0043 0004
- LJUMP 40H //0044 3840
- LDR 79H,0 //0045 0879
- XORWI 0H //0046 2600
- BTSC STATUS,2 //0047 1503
- LJUMP 21H //0048 3821
- XORWI 1H //0049 2601
- BTSC STATUS,2 //004A 1503
- LJUMP 26H //004B 3826
- LJUMP 42H //004C 3842
- RET //004D 0004
- //;Impacttest.C: 238: switch (PWMState)
- LJUMP 7BH //004E 387B
- //;Impacttest.C: 239: {
- //;Impacttest.C: 241: case 0:
- //;Impacttest.C: 242: PC4 = 0;
- BCR 7H,4 //004F 1207
- //;Impacttest.C: 243: break;
- RET //0050 0004
- //;Impacttest.C: 245: TimValue = sysTim - PWMProcTim;
- LDR 75H,0 //0051 0875
- STR 71H //0052 01F1
- LDR 74H,0 //0053 0874
- STR 70H //0054 01F0
- LDR 20H,0 //0055 0820
- SUBWR 70H,1 //0056 0CF0
- LDR 21H,0 //0057 0821
- BTSS STATUS,0 //0058 1C03
- DECR 71H,1 //0059 0DF1
- SUBWR 71H,1 //005A 0CF1
- //;Impacttest.C: 248: if (TimValue >= 30000)
- LDWI 75H //005B 2A75
- SUBWR 71H,0 //005C 0C71
- LDWI 30H //005D 2A30
- BTSC STATUS,2 //005E 1503
- SUBWR 70H,0 //005F 0C70
- BTSS STATUS,0 //0060 1C03
- RET //0061 0004
- //;Impacttest.C: 249: {
- //;Impacttest.C: 250: PWMProcTim = sysTim;
- LDR 75H,0 //0062 0875
- STR 21H //0063 01A1
- LDR 74H,0 //0064 0874
- STR 20H //0065 01A0
- //;Impacttest.C: 266: PWMNum--;
- LDWI 1H //0066 2A01
- SUBWR 24H,1 //0067 0CA4
- LDWI 0H //0068 2A00
- BTSS STATUS,0 //0069 1C03
- DECR 25H,1 //006A 0DA5
- SUBWR 25H,1 //006B 0CA5
- //;Impacttest.C: 267: if (PWMNum == 0)
- LDR 25H,0 //006C 0825
- IORWR 24H,0 //006D 0324
- BTSS STATUS,2 //006E 1D03
- LJUMP 78H //006F 3878
- //;Impacttest.C: 268: {
- //;Impacttest.C: 269: pwmEnd = 1;
- CLRR 7AH //0070 017A
- INCR 7AH,1 //0071 09FA
- //;Impacttest.C: 270: GLEDState = 1;
- CLRR 76H //0072 0176
- INCR 76H,1 //0073 09F6
- //;Impacttest.C: 272: sysRun = 0;
- BCR 7BH,1 //0074 10FB
- //;Impacttest.C: 273: PC4 = 0;
- BCR 7H,4 //0075 1207
- //;Impacttest.C: 274: PWMState = 0;
- CLRR 77H //0076 0177
- //;Impacttest.C: 275: }
- RET //0077 0004
- //;Impacttest.C: 276: else
- //;Impacttest.C: 277: {
- //;Impacttest.C: 278: PC4 = ~PC4;
- LDWI 10H //0078 2A10
- XORWR 7H,1 //0079 0487
- RET //007A 0004
- LDR 77H,0 //007B 0877
- XORWI 0H //007C 2600
- BTSC STATUS,2 //007D 1503
- LJUMP 4FH //007E 384F
- XORWI 1H //007F 2601
- BTSC STATUS,2 //0080 1503
- LJUMP 51H //0081 3851
- LJUMP 83H //0082 3883
- RET //0083 0004
- //;Impacttest.C: 205: switch (RLEDState)
- LJUMP A6H //0084 38A6
- //;Impacttest.C: 206: {
- //;Impacttest.C: 208: case 0:
- //;Impacttest.C: 209: PC2 = 0;
- BCR 7H,2 //0085 1107
- //;Impacttest.C: 210: break;
- RET //0086 0004
- //;Impacttest.C: 213: if (pwmEnd == 0)
- LDR 7AH,1 //0087 08FA
- BTSS STATUS,2 //0088 1D03
- LJUMP A3H //0089 38A3
- //;Impacttest.C: 214: {
- //;Impacttest.C: 215: TimValue = sysTim - RLEDProcTim;
- LDR 75H,0 //008A 0875
- STR 71H //008B 01F1
- LDR 74H,0 //008C 0874
- STR 70H //008D 01F0
- LDR 22H,0 //008E 0822
- SUBWR 70H,1 //008F 0CF0
- LDR 23H,0 //0090 0823
- BTSS STATUS,0 //0091 1C03
- DECR 71H,1 //0092 0DF1
- SUBWR 71H,1 //0093 0CF1
- //;Impacttest.C: 218: if (TimValue >= 1000)
- LDWI 3H //0094 2A03
- SUBWR 71H,0 //0095 0C71
- LDWI E8H //0096 2AE8
- BTSC STATUS,2 //0097 1503
- SUBWR 70H,0 //0098 0C70
- BTSS STATUS,0 //0099 1C03
- RET //009A 0004
- //;Impacttest.C: 219: {
- //;Impacttest.C: 220: RLEDProcTim = sysTim;
- LDR 75H,0 //009B 0875
- STR 23H //009C 01A3
- LDR 74H,0 //009D 0874
- STR 22H //009E 01A2
- LDWI 4H //009F 2A04
- //;Impacttest.C: 221: GLEDState = 0;
- CLRR 76H //00A0 0176
- //;Impacttest.C: 222: PC2 = ~PC2;
- XORWR 7H,1 //00A1 0487
- RET //00A2 0004
- //;Impacttest.C: 226: else
- //;Impacttest.C: 227: {
- //;Impacttest.C: 228: PC2 = 0;
- BCR 7H,2 //00A3 1107
- //;Impacttest.C: 229: RLEDState = 0;
- CLRR 78H //00A4 0178
- RET //00A5 0004
- LDR 78H,0 //00A6 0878
- XORWI 0H //00A7 2600
- BTSC STATUS,2 //00A8 1503
- LJUMP 85H //00A9 3885
- XORWI 1H //00AA 2601
- BTSC STATUS,2 //00AB 1503
- LJUMP 87H //00AC 3887
- LJUMP AEH //00AD 38AE
- RET //00AE 0004
- //;Impacttest.C: 76: OSCCON = 0B01100001;
- LDWI 61H //00AF 2A61
- BSR STATUS,5 //00B0 1A83
- STR FH //00B1 018F
- //;Impacttest.C: 78: INTCON = 0;
- CLRR INTCON //00B2 010B
- //;Impacttest.C: 79: PORTA = 0B00000010;
- LDWI 2H //00B3 2A02
- BCR STATUS,5 //00B4 1283
- STR 5H //00B5 0185
- //;Impacttest.C: 80: TRISA = 0B11111111;
- LDWI FFH //00B6 2AFF
- BSR STATUS,5 //00B7 1A83
- STR 5H //00B8 0185
- //;Impacttest.C: 81: PORTC = 0B00000100;
- LDWI 4H //00B9 2A04
- BCR STATUS,5 //00BA 1283
- STR 7H //00BB 0187
- //;Impacttest.C: 82: TRISC = 0B11100011;
- LDWI E3H //00BC 2AE3
- BSR STATUS,5 //00BD 1A83
- STR 7H //00BE 0187
- //;Impacttest.C: 84: ANSEL=0B0000000;
- CLRR 11H //00BF 0111
- //;Impacttest.C: 86: WPUA = 0B00000001;
- LDWI 1H //00C0 2A01
- STR 15H //00C1 0195
- //;Impacttest.C: 87: WPUC = 0B00000000;
- CLRR 8H //00C2 0108
- //;Impacttest.C: 88: OPTION = 0B00001000;
- LDWI 8H //00C3 2A08
- STR 1H //00C4 0181
- //;Impacttest.C: 90: MSCKCON = 0B00000000;
- BCR STATUS,5 //00C5 1283
- CLRR 1BH //00C6 011B
- //;Impacttest.C: 93: CMCON0 = 0B00000111;
- LDWI 7H //00C7 2A07
- STR 19H //00C8 0199
- //;Impacttest.C: 96: T2CON = 0B00011001;
- LDWI 19H //00C9 2A19
- STR 12H //00CA 0192
- //;Impacttest.C: 98: TMR2 = 0;
- CLRR 11H //00CB 0111
- //;Impacttest.C: 99: PR2 = 248;
- LDWI F8H //00CC 2AF8
- BSR STATUS,5 //00CD 1A83
- STR 12H //00CE 0192
- //;Impacttest.C: 101: TMR2IF = 0;
- BCR STATUS,5 //00CF 1283
- BCR CH,1 //00D0 108C
- //;Impacttest.C: 102: TMR2IE = 1;
- BSR STATUS,5 //00D1 1A83
- BSR CH,1 //00D2 188C
- //;Impacttest.C: 103: TMR2ON = 1;
- BCR STATUS,5 //00D3 1283
- BSR 12H,2 //00D4 1912
- //;Impacttest.C: 104: PEIE = 1;
- BSR INTCON,6 //00D5 1B0B
- //;Impacttest.C: 105: GIE = 1;
- BSR INTCON,7 //00D6 1B8B
- RET //00D7 0004
- LDWI 70H //00D8 2A70
- CLRR 7BH //00D9 017B
- STR FSR //00DA 0184
- LDWI 7BH //00DB 2A7B
- LCALL F5H //00DC 30F5
- LDWI 20H //00DD 2A20
- BCR STATUS,7 //00DE 1383
- STR FSR //00DF 0184
- LDWI 24H //00E0 2A24
- LCALL F5H //00E1 30F5
- LDWI 2H //00E2 2A02
- STR 24H //00E3 01A4
- LDWI 0H //00E4 2A00
- CLRR 25H //00E5 0125
- CLRR STATUS //00E6 0103
- LJUMP FDH //00E7 38FD
- //;Impacttest.C: 117: if (TMR2IF)
- BCR STATUS,5 //00E8 1283
- BCR STATUS,6 //00E9 1303
- BTSS CH,1 //00EA 1C8C
- LJUMP EEH //00EB 38EE
- //;Impacttest.C: 118: {
- //;Impacttest.C: 119: TMR2IF = 0;
- BCR CH,1 //00EC 108C
- BSR 7BH,0 //00ED 187B
- LDR 7DH,0 //00EE 087D
- STR PCLATH //00EF 018A
- SWAPR 7CH,0 //00F0 077C
- STR STATUS //00F1 0183
- SWAPR 7EH,1 //00F2 07FE
- SWAPR 7EH,0 //00F3 077E
- RETI //00F4 0009
- CLRWDT //00F5 0001
- CLRR INDF //00F6 0100
- INCR FSR,1 //00F7 0984
- XORWR FSR,0 //00F8 0404
- BTSC STATUS,2 //00F9 1503
- RETW 0H //00FA 2100
- XORWR FSR,0 //00FB 0404
- LJUMP F6H //00FC 38F6
- //;Impacttest.C: 309: MCU_INITIAL();
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
沖擊測試.rar
(2.09 MB, 下載次數: 12)
2019-12-20 10:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|