⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0_99.lst

📁 PIC based Counter count from 0 to99
💻 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 + -