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

📄 main.lst

📁 液晶控制器S6B0724的控制。mplab 7.60+pic ccs 4.057
💻 LST
📖 第 1 页 / 共 4 页
字号:
CCS PCM C Compiler, Version 4.057, 28721               30-九月-08 14:19

               Filename: main.lst

               ROM used: 1698 words (41%)
                         Largest free fragment is 2048
               RAM used: 28 (15%) at main() level
                         35 (18%) worst case
               Stack:    5 worst case (3 in main + 2 for interrupts)

*
0000:  MOVLW  00
0001:  MOVWF  0A
0002:  GOTO   685
0003:  NOP
0004:  MOVWF  7F
0005:  SWAPF  03,W
0006:  CLRF   03
0007:  MOVWF  26
0008:  MOVF   7F,W
0009:  MOVWF  25
000A:  MOVF   0A,W
000B:  MOVWF  2D
000C:  CLRF   0A
000D:  SWAPF  25,F
000E:  MOVF   04,W
000F:  MOVWF  27
0010:  MOVF   20,W
0011:  MOVWF  28
0012:  MOVF   21,W
0013:  MOVWF  29
0014:  MOVF   22,W
0015:  MOVWF  2A
0016:  MOVF   23,W
0017:  MOVWF  2B
0018:  MOVF   24,W
0019:  MOVWF  2C
001A:  BCF    03.7
001B:  BCF    03.5
001C:  BTFSS  0B.5
001D:  GOTO   020
001E:  BTFSC  0B.2
001F:  GOTO   033
0020:  MOVF   27,W
0021:  MOVWF  04
0022:  MOVF   28,W
0023:  MOVWF  20
0024:  MOVF   29,W
0025:  MOVWF  21
0026:  MOVF   2A,W
0027:  MOVWF  22
0028:  MOVF   2B,W
0029:  MOVWF  23
002A:  MOVF   2C,W
002B:  MOVWF  24
002C:  MOVF   2D,W
002D:  MOVWF  0A
002E:  SWAPF  26,W
002F:  MOVWF  03
0030:  SWAPF  7F,F
0031:  SWAPF  7F,W
0032:  RETFIE
0033:  BCF    0A.3
0034:  GOTO   460
.................... #include "keyscan.h" 
....................  
.................... #include "cpu.h" 
.................... #ifndef _MYCPU_ 
.................... #define _MYCPU_ 
.................... #include "16F873A.h" 
.................... //////// Standard Header file for the PIC16F873A device //////////////// 
.................... #device PIC16F873A 
.................... #list 
....................  
.................... // 1. device define 
.................... #device adc=10 
.................... //#device *=16 
.................... #fuses  XT		//RC,RC_IO,INTRC,INTRC_IO,EC_IO,LP,XT,HS 
.................... #fuses NOWDT 				//NOWDT,WDT                 
.................... #fuses PUT 				//NOPUT,PUT 
.................... //#fuses NOMCLR			    //MCLR,NOMCLR 
.................... #fuses NOBROWNOUT			//NOBROWNOUT,BROWNOUT 
.................... //#fuses BORV40			//BORV40,BORV21 
.................... //#fuses CCP2C1			//CCP2C1,CCP2B3 
.................... #fuses PROTECT			//PROTECT,NOPROTECT 
.................... //#fuses BORSEN			//BORSEN,NOBORSEN          BOR Software  
.................... //#fuses IESO				//IESO,NOIESO              Internal External Switch Over  
.................... //#fuses FCMEN			//FCMEN,NOFCMEN            Fail-Safe Clock Monitor  
.................... //#fuses DEBUG			//DEBUG,NODEBUG 
.................... #use fast_io(A) 
.................... //#use fast_io(B) 
.................... #use fast_io(C) 
.................... #use fast_io(b) 
.................... #use delay(clock=4000000) //延时函数时钟 
*
04D4:  MOVLW  3B
04D5:  MOVWF  04
04D6:  MOVF   00,W
04D7:  BTFSC  03.2
04D8:  GOTO   4E7
04D9:  MOVLW  01
04DA:  MOVWF  21
04DB:  CLRF   20
04DC:  DECFSZ 20,F
04DD:  GOTO   4DC
04DE:  DECFSZ 21,F
04DF:  GOTO   4DB
04E0:  MOVLW  4A
04E1:  MOVWF  20
04E2:  DECFSZ 20,F
04E3:  GOTO   4E2
04E4:  GOTO   4E5
04E5:  DECFSZ 00,F
04E6:  GOTO   4D9
04E7:  RETLW  00
....................  
.................... #byte LCD_DATA=8 
.................... #use rs232(baud=19200,xmit=PIN_B7) 
*
05F1:  BCF    06.7
05F2:  MOVLW  08
05F3:  MOVWF  21
05F4:  GOTO   5F5
05F5:  NOP
05F6:  BSF    21.7
05F7:  GOTO   606
05F8:  BCF    21.7
05F9:  RRF    3B,F
05FA:  BTFSC  03.0
05FB:  BSF    06.7
05FC:  BTFSS  03.0
05FD:  BCF    06.7
05FE:  BSF    21.6
05FF:  GOTO   606
0600:  BCF    21.6
0601:  DECFSZ 21,F
0602:  GOTO   5F9
0603:  GOTO   604
0604:  NOP
0605:  BSF    06.7
0606:  MOVLW  0B
0607:  MOVWF  04
0608:  DECFSZ 04,F
0609:  GOTO   608
060A:  NOP
060B:  BTFSC  21.7
060C:  GOTO   5F8
060D:  BTFSC  21.6
060E:  GOTO   600
060F:  BCF    0A.3
0610:  GOTO   69E (RETURN)
.................... #endif 
....................  
.................... #define SCANTIME 				  217 //3ms    236 //5ms      217	//10ms 4M	 
....................  
.................... #define P2  (*(0x05)) 
.................... //#define MATRIX     //若定义为MATRIX则为4X4键盘的扫描,否则为单个端口的扫描。 
....................  
.................... #define KeyScan() P2&0x03		  //单个端口扫描语句 
....................  
.................... #define KEYCOUNT1 1				  //按键按下时间计数 
....................  
.................... #define KEYINIT 0xff //这里是高四位作为按键,可根据具体情况定义。 
....................  
....................  
....................  
.................... //KeyDown  按下的键(不会自动清除,若用完后应把相应位清除) 
.................... //KeyUp    弹起的键(不会自动清除,若用完后应把相应位清除) 
.................... //KeyLast  上次键的状态 
.................... //KerPress 反应实时键的情况。 
.................... int8 KeyDown,KeyUp,KeyLast,KeyPress; 
.................... int8 KeyCount;	 //按键时间计数 
.................... int8 KeyCurrent,KeyOld; 
....................  
....................  
.................... /******************************************************************** 
.................... 函数功能:定时器0初始化,用来做键盘扫描,定时时间大约为10ms。 
.................... 入口参数:无。 
.................... 返    回:无。 
.................... 备    注:无。 
.................... ********************************************************************/ 
.................... void InitTimer0(void) 
.................... { 
.................... 	setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256); 
*
04C3:  MOVF   01,W
04C4:  ANDLW  C0
04C5:  IORLW  07
04C6:  MOVWF  01
.................... 	clear_interrupt(INT_RTCC);			 
04C7:  BCF    03.5
04C8:  BCF    0B.2
.................... 	enable_interrupts(INT_RTCC);	 
04C9:  BSF    0B.5
.................... 	SET_TIMER0(SCANTIME); 
04CA:  MOVLW  D9
04CB:  MOVWF  01
.................... } 
....................  
....................  
.................... void  Key_Init() 
.................... { 
....................  
.................... 	KeyOld=KEYINIT; 
04CC:  MOVLW  FF
04CD:  MOVWF  35
.................... 	KeyLast=KEYINIT; 
04CE:  MOVWF  31
.................... 	KeyCount=0; 
04CF:  CLRF   33
.................... 	KeyDown=0; 
04D0:  CLRF   2F
.................... 	KeyUp=0; 
04D1:  CLRF   30
.................... } 
....................   
.................... void GetKey()	    
.................... {										 
.................... 	KeyCurrent=KeyScan();		//获取当前键值 
*
0462:  MOVF   05,W
0463:  ANDLW  03
0464:  MOVWF  34
.................... 	if(KeyCurrent!=KeyOld)      //与上一次键值不等,说明发生了改变。 
0465:  MOVF   35,W
0466:  SUBWF  34,W
0467:  BTFSC  03.2
0468:  GOTO   46E
.................... 	{ 
.................... 	   KeyOld=KeyCurrent;		//保存新键值。 
0469:  MOVF   34,W
046A:  MOVWF  35
.................... 	   KeyCount=0; 
046B:  CLRF   33
.................... 	   return; 
046C:  GOTO   481
.................... 	} 
.................... 	else 
046D:  GOTO   481
.................... 	{ 
.................... 	  KeyCount++; 
046E:  INCF   33,F
.................... 	  if(KeyCount>=KEYCOUNT1)           //确认为有效按键(包括空键). 
046F:  MOVF   33,W
0470:  SUBLW  00
0471:  BTFSC  03.0
0472:  GOTO   481
.................... 	  { 
.................... 	  		KeyCount=KEYCOUNT1;			//停止计数 
0473:  MOVLW  01
0474:  MOVWF  33
....................  
.................... 	  		KeyPress=KeyOld;	//保存当前按键 
0475:  MOVF   35,W
0476:  MOVWF  32
....................  
.................... 			KeyDown|=((~KeyPress)&KeyLast);   //按下的键(不会自动清除,若用完后应把相应位清除) 
0477:  MOVF   32,W
0478:  XORLW  FF
0479:  ANDWF  31,W
047A:  IORWF  2F,F
.................... 			KeyUp|=(KeyPress&(~KeyLast));     //弹起的键(不会自动清除,若用完后应把相应位清除) 
047B:  MOVF   31,W
047C:  XORLW  FF
047D:  ANDWF  32,W
047E:  IORWF  30,F
.................... 			KeyLast=KeyPress; 
047F:  MOVF   32,W
0480:  MOVWF  31
.................... 	  } 
.................... 	}	  
.................... } 
....................  
....................  
.................... #include "pig.h" 
.................... ///////////////////////////////////////////////////////////////////////// 
.................... // Bitmap点阵数据表                                                    // 
.................... // 图片: C:\..件\想买车.bmp,纵向取模下高位,数据排列:从左到右从上到下   // 
.................... // 图片尺寸: 128 * 64                                                  // 
.................... ///////////////////////////////////////////////////////////////////////// 
.................... int8 const nBitmapDot1[] =                  // 数据表 
.................... { 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0xFC,0xFE,0x0E,0x1C, 
....................       0x18,0x1C,0x0E,0xFE,0xFC,0x00,0x7C,0xFC, 
....................       0x80,0xFC,0xFC,0x00,0x00,0x00,0x7C,0xFE, 
....................       0xC6,0xC6,0xC6,0x00,0x40,0xE8,0xA8,0xF8, 
....................       0xF0,0x00,0xF8,0xF8,0x10,0x18,0x00,0x00, 
....................       0xC0,0xC0,0x00,0xC0,0xC0,0x00,0xC0,0xC0, 
....................       0x00,0x00,0x06,0x09,0x12,0x09,0x06,0x00, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C, 
....................       0x12,0x22,0x44,0x22,0x12,0x0C,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0xC0, 
....................       0x40,0x40,0x40,0xC0,0x00,0x00,0x00,0x40, 
....................       0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, 
....................       0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x81,0x41,0x40,0x80, 
....................       0x40,0x40,0x80,0x01,0x01,0x00,0x04,0x05, 
....................       0x05,0x07,0x03,0xC0,0x20,0x40,0x20,0xC1, 
....................       0x01,0x01,0x01,0x00,0x00,0x01,0x01,0x01, 
....................       0x81,0x80,0x81,0xC1,0xC0,0x40,0xC0,0xC0, 
....................       0xE1,0xE1,0xE0,0xE1,0xE1,0xE0,0xE1,0xE1, 
....................       0xE0,0xE0,0xE0,0x60,0x60,0x40,0x40,0xC0, 
....................       0xE0,0xE0,0xA0,0x90,0x8C,0x02,0x01,0x00, 
....................       0x00,0x00,0x00,0x00,0x10,0x28,0x50,0x28, 
....................       0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x09,0xC5,0x1F,0xC5,0x09,0x5F, 
....................       0x95,0x15,0x95,0x5F,0x80,0x00,0x10,0x10, 
....................       0x14,0x99,0x92,0x50,0x3F,0x50,0x50,0x91, 
....................       0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................    };  //256 
....................     
....................   int8 const nBitmapDot2[] =  { 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x01,0x02,0x44,0x08, 
....................       0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x01,0xC2,0xE1,0xF0, 
....................       0x30,0x18,0x08,0x3C,0xF6,0xFE,0xFB,0x1D, 
....................       0x0D,0x02,0xC2,0xCB,0x09,0x09,0x09,0x09, 
....................       0x08,0x08,0x08,0x08,0x08,0x08,0x00,0xC0, 
....................       0xFF,0xFC,0xFC,0xF9,0xE1,0xC1,0x11,0x12, 
....................       0x02,0xC6,0xC5,0xC9,0xD9,0xF3,0xE3,0xC6, 
....................       0x0E,0x0C,0x1C,0x38,0x38,0xF0,0xE0,0xC0, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x12, 
....................       0x24,0x12,0x0C,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x09,0x88,0xC8,0xB9,0x8D,0xE9, 
....................       0x89,0x89,0x89,0x88,0x08,0x00,0x01,0x31, 
....................       0x39,0x08,0x88,0xC8,0x78,0x30,0x00,0x00, 
....................       0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x80,0x40,0x70,0xF0, 
....................       0x38,0x18,0x0C,0x0C,0x0E,0x0E,0x0E,0x86, 
....................       0x8E,0x0B,0x0B,0x0B,0x03,0x13,0x31,0x36, 
....................       0x57,0xE7,0x87,0x07,0x07,0x07,0x07,0x07, 
....................       0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, 
....................       0x03,0x03,0x03,0x03,0x03,0x03,0x33,0x3B, 
....................       0x33,0x33,0xF3,0x03,0x03,0x03,0x03,0x03, 
....................       0x03,0x83,0x83,0xC3,0x63,0x33,0x91,0x91, 
....................       0x89,0x08,0x00,0x84,0x84,0x84,0x85,0x87, 
....................       0x07,0x07,0x06,0x1E,0x38,0x78,0xE0,0xC0, 
....................       0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x1F, 
....................       0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00, 
....................       0x00,0x00,0x0D,0x0D,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................      }; //256 
....................      int8 const nBitmapDot3[] =  
....................      { 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x78,0xFC,0xEF,0xFF,0x7B,0x1B,0x08, 
....................       0xF0,0xF8,0xFC,0xFE,0xFF,0xEF,0x0F,0x1F, 
....................       0x1F,0x0F,0xFF,0xFF,0xFE,0xFC,0xF9,0xF2, 
....................       0x04,0x00,0x03,0xFE,0x80,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
....................       0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00, 

⌨️ 快捷键说明

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