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

📄 7seg_dec_sw.c.lst

📁 Seven segment example
💻 LST
字号:
CCS PCW C Compiler, Version 3.124, 16614

               Filename: c:\documents and settings\nisar ahmed\desktop\7seg_dec_sw_0-9\7seg_dec_sw.c.LST

               ROM used: 97 (1%)
                         Largest free fragment is 2048
               RAM used: 9 (5%) at main() level
                         10 (6%) worst case
               Stack:    1 locations

*
0000:  MOVLW  00
0001:  MOVWF  0A
0002:  GOTO   029
0003:  NOP
....................  //    7SEG_dec_sw.C  
.................... //Example to drive one 7-Segment LED with decriment by one when press switch  
.................... /****************************************  
.................... *  
.................... * COPYRIGHT (c) Blitzlogic Sdn. Bhd.  
.................... * Author : Abraham Wong 21/1/2000  
.................... *  
.................... * example of using FOR loop to drive  
.................... * two 7-Segment LEDs  
....................   
.................... ****************************************/  
....................   
.................... #include <16F877.h> 
....................  //////// Standard Header file for the PIC16F877 device ////////////////  
.................... #device PIC16F877  
.................... #list  
....................  
.................... #USE DELAY( CLOCK=4000000 ) /* Using a 4 Mhz clock */  
*
0012:  MOVLW  25
0013:  MOVWF  04
0014:  MOVF   00,W
0015:  BTFSC  03.2
0016:  GOTO   026
0017:  MOVLW  01
0018:  MOVWF  78
0019:  CLRF   77
001A:  DECFSZ 77,F
001B:  GOTO   01A
001C:  DECFSZ 78,F
001D:  GOTO   019
001E:  MOVLW  4A
001F:  MOVWF  77
0020:  DECFSZ 77,F
0021:  GOTO   020
0022:  NOP
0023:  NOP
0024:  DECFSZ 00,F
0025:  GOTO   017
0026:  BCF    0A.3
0027:  BCF    0A.4
0028:  GOTO   052 (RETURN)
.................... #FUSES XT,NOWDT,NOPROTECT,NOPUT,NOLVP  
.................... #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)  
.................... /* Use XT mode, No Watch Dog, No Code Protect, No Power-up Timer */  
.................... #byte port_d=8 /* define the location of register port_b */  
.................... #byte port_a=5 /* define the location of register port_b */  
.................... 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
....................   
.................... main(){  
.................... byte cnt, right,num ;  
*
0029:  CLRF   04
002A:  MOVLW  1F
002B:  ANDWF  03,F
002C:  MOVLW  07
002D:  BSF    03.5
002E:  MOVWF  1F
002F:  MOVLW  19
0030:  MOVWF  19
0031:  MOVLW  26
0032:  MOVWF  18
0033:  MOVLW  90
0034:  BCF    03.5
0035:  MOVWF  18
.................... port_b_pullups(true);  
0036:  BSF    03.5
0037:  BCF    01.7
.................... set_tris_d(0); /* set port_b as outputs */  
0038:  MOVLW  00
0039:  MOVWF  08
.................... set_tris_a(0); /* set port_a as output */  
003A:  MOVWF  05
....................   port_d = 0xFF; /* ZERO port_a & port_b */  
003B:  MOVLW  FF
003C:  BCF    03.5
003D:  MOVWF  08
....................   port_a = 0xFF;  
003E:  MOVWF  05
....................   
....................    while(1){  
....................   
.................... //for( ;; ){  
.................... // for (right=1;right<3;right++){  
.................... //   port_a = ~right;  
....................     for (cnt=9;cnt<10;cnt--){  
003F:  MOVLW  09
0040:  MOVWF  21
0041:  MOVF   21,W
0042:  SUBLW  09
0043:  BTFSS  03.0
0044:  GOTO   05F
....................     port_d = LED_MAP[cnt];  
0045:  MOVF   21,W
0046:  CALL   004
0047:  MOVWF  78
0048:  MOVWF  08
....................     output_low(PIN_A0);  
0049:  BSF    03.5
004A:  BCF    05.0
004B:  BCF    03.5
004C:  BCF    05.0
....................     DELAY_MS(500); /* half second delay */  
004D:  MOVLW  02
004E:  MOVWF  24
004F:  MOVLW  FA
0050:  MOVWF  25
0051:  GOTO   012
0052:  DECFSZ 24,F
0053:  GOTO   04F
....................  //    output_high(PIN_A0);  
....................          while(!input(PIN_B1)==0){  
0054:  BSF    03.5
0055:  BSF    06.1
0056:  MOVLW  00
0057:  BCF    03.5
0058:  BTFSS  06.1
0059:  MOVLW  01
005A:  XORLW  00
005B:  BTFSC  03.2
....................                                  }  
005C:  GOTO   054
....................                               }  
005D:  DECF   21,F
005E:  GOTO   041
....................   
....................             }  
005F:  GOTO   03F
....................         }  
....................   
0060:  SLEEP
....................  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -