📄 0_99.lst
字号:
CCS PCW C Compiler, Version 3.124, 16614
Filename: c:\documents and settings\nisar ahmed\desktop\counter-0-99\0_99.LST
ROM used: 167 (2%)
Largest free fragment is 2048
RAM used: 8 (5%) at main() level
15 (9%) worst case
Stack: 2 locations
*
0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 074
0003: NOP
.................... #include<16f877.h>
.................... //////// Standard Header file for the PIC16F877 device ////////////////
.................... #device PIC16F877
.................... #list
....................
.................... #fuses XT,NOLVP,NOWDT,PUT
.................... #use delay (clock=4000000) // defind crystal = 4MHz
003A: MOVLW 26
003B: MOVWF 04
003C: MOVF 00,W
003D: BTFSC 03.2
003E: GOTO 04E
003F: MOVLW 01
0040: MOVWF 78
0041: CLRF 77
0042: DECFSZ 77,F
0043: GOTO 042
0044: DECFSZ 78,F
0045: GOTO 041
0046: MOVLW 4A
0047: MOVWF 77
0048: DECFSZ 77,F
0049: GOTO 048
004A: NOP
004B: NOP
004C: DECFSZ 00,F
004D: GOTO 03F
004E: BCF 0A.3
004F: BCF 0A.4
0050: GOTO 06D (RETURN)
.................... #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
.................... #byte port_d=8
.................... #byte port_a=5
.................... byte CONST LED_MAP[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0x90};
*
0004: BCF 0A.0
0005: BCF 0A.1
0006: BCF 0A.2
0007: ADDWF 02,F
0008: RETLW C0
0009: RETLW F9
000A: RETLW A4
000B: RETLW B0
000C: RETLW 99
000D: RETLW 92
000E: RETLW 82
000F: RETLW F8
0010: RETLW 80
0011: RETLW 90
....................
.................... //===========================================
.................... // this function use to display number 00=999
.................... // input : n = number to display
.................... //===========================================
.................... void display_number(long int n)
.................... {
....................
.................... output_d(LED_MAP[n%10]) ;//unit position ;n=0 to 9
*
0051: MOVF 25,W
0052: MOVWF 27
0053: MOVF 24,W
0054: MOVWF 26
0055: CLRF 29
0056: MOVLW 0A
0057: MOVWF 28
0058: GOTO 012
0059: MOVF 77,W
005A: MOVWF 26
005B: MOVF 7A,W
005C: MOVWF 27
005D: MOVF 77,W
005E: CALL 004
005F: MOVWF 28
0060: MOVLW 00
0061: BSF 03.5
0062: MOVWF 08
0063: BCF 03.5
0064: MOVF 28,W
0065: MOVWF 08
.................... output_low(PIN_A0);
0066: BSF 03.5
0067: BCF 05.0
0068: BCF 03.5
0069: BCF 05.0
.................... delay_ms(2);
006A: MOVLW 02
006B: MOVWF 26
006C: GOTO 03A
.................... output_high(PIN_A0);
006D: BSF 03.5
006E: BCF 05.0
006F: BCF 03.5
0070: BSF 05.0
0071: BCF 0A.3
0072: BCF 0A.4
0073: GOTO 08E (RETURN)
.................... /*
.................... output_d(LED_MAP[n/10%10]) ;//tens position
.................... output_low(PIN_A1);
.................... delay_ms(2);
.................... output_high(PIN_A1);
....................
.................... output_d(LED_MAP[n/100%10]);//hundards position
.................... output_low(PIN_A2);
.................... delay_ms(2);
.................... output_high(PIN_A2);*/
....................
....................
.................... }
.................... //============================================
.................... // main program
.................... //============================================
.................... void main()
.................... {
....................
.................... int i;
*
0081: MOVLW 01
0082: MOVWF 22
0083: CLRF 23
.................... long int count=1;
*
0074: CLRF 04
0075: MOVLW 1F
0076: ANDWF 03,F
0077: MOVLW 07
0078: BSF 03.5
0079: MOVWF 1F
007A: MOVLW 19
007B: MOVWF 19
007C: MOVLW 26
007D: MOVWF 18
007E: MOVLW 90
007F: BCF 03.5
0080: MOVWF 18
....................
....................
.................... while(TRUE)
.................... {
.................... for (i=0;i<=200;i++)
*
0084: CLRF 21
0085: MOVF 21,W
0086: SUBLW C8
0087: BTFSS 03.0
0088: GOTO 090
....................
.................... display_number(count); // dispay 200 times
0089: MOVF 23,W
008A: MOVWF 25
008B: MOVF 22,W
008C: MOVWF 24
008D: GOTO 051
008E: INCF 21,F
008F: GOTO 085
.................... count=(count==9) ??1: count+1; //count+1=++count
0090: MOVF 22,W
0091: SUBLW 09
0092: BTFSS 03.2
0093: GOTO 09A
0094: MOVF 23,F
0095: BTFSS 03.2
0096: GOTO 09A
0097: CLRF 7A
0098: MOVLW 01
0099: GOTO 0A2
009A: MOVLW 01
009B: ADDWF 22,W
009C: MOVWF 78
009D: MOVF 23,W
009E: MOVWF 7A
009F: BTFSC 03.0
00A0: INCF 7A,F
00A1: MOVF 78,W
00A2: MOVWF 22
00A3: MOVF 7A,W
00A4: MOVWF 23
....................
.................... }
00A5: GOTO 084
.................... }
....................
00A6: SLEEP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -