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

📄 display.lst

📁 cs5460a做功率表用 cs5460a做功率表用 cs5460a做功率表
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"Display.c"
   2               		.arch atmega8
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
 101               	.global	Refresh_AD
 102               		.data
 105               	Refresh_AD:
 106 0000 00        		.byte	0
 107 0001 3200      		.word	50
 108               	.global	fDispNow
 109               	.global	fDispNow
 110               		.section .bss
 113               	fDispNow:
 114 0000 00        		.skip 1,0
 115               	.global	LedTab
 116               		.section	.progmem.data,"a",@progbits
 119               	LedTab:
 120 0000 3F        		.byte	63
 121 0001 06        		.byte	6
 122 0002 5B        		.byte	91
 123 0003 4F        		.byte	79
 124 0004 66        		.byte	102
 125 0005 6D        		.byte	109
 126 0006 7D        		.byte	125
 127 0007 07        		.byte	7
 128 0008 7F        		.byte	127
 129 0009 6F        		.byte	111
 130 000a BF        		.byte	-65
 131 000b 86        		.byte	-122
 132 000c DB        		.byte	-37
 133 000d CF        		.byte	-49
 134 000e E6        		.byte	-26
 135 000f ED        		.byte	-19
 136 0010 FD        		.byte	-3
 137 0011 87        		.byte	-121
 138 0012 FF        		.byte	-1
 139 0013 EF        		.byte	-17
 140 0014 77        		.byte	119
 141 0015 7C        		.byte	124
 142 0016 39        		.byte	57
 143 0017 5E        		.byte	94
 144 0018 79        		.byte	121
 145 0019 71        		.byte	113
 146 001a 6F        		.byte	111
 147 001b 74        		.byte	116
 148 001c 06        		.byte	6
 149 001d 1E        		.byte	30
 150 001e 00        		.byte	0
 151 001f 38        		.byte	56
 152 0020 00        		.byte	0
 153 0021 37        		.byte	55
 154 0022 3F        		.byte	63
 155 0023 73        		.byte	115
 156 0024 BF        		.byte	-65
 157 0025 50        		.byte	80
 158 0026 6D        		.byte	109
 159 0027 78        		.byte	120
 160 0028 3E        		.byte	62
 161 0029 3E        		.byte	62
 162 002a 00        		.byte	0
 163 002b 00        		.byte	0
 164 002c 6E        		.byte	110
 165 002d 5B        		.byte	91
 166 002e 40        		.byte	64
 167 002f 00        		.byte	0
 168               		.text
 170               	.global	DispPinInit
 172               	DispPinInit:
   1:task/Display.c **** /**********************************************
   2:task/Display.c **** 公司名称:
   3:task/Display.c **** 文 件 名: 
   4:task/Display.c **** 版 本 号:
   5:task/Display.c **** 程序设计:
   6:task/Display.c **** 说    明:
   7:task/Display.c **** 完成日期:
   8:task/Display.c **** 修改日期:
   9:task/Display.c **** 功能摘要:	
  10:task/Display.c **** ***********************************************/
  11:task/Display.c **** #define _Display
  12:task/Display.c **** #include "includes.h"
  13:task/Display.c **** 
  14:task/Display.c **** const uint8 LedTab[] PROGMEM={
  15:task/Display.c ****                           		    0x3F,0x06,0x5B,0x4F,0x66,
  16:task/Display.c **** 	       	              			0x6D,0x7D,0x07,0x7F,0x6F, /*0-9*/
  17:task/Display.c **** 
  18:task/Display.c **** 									0xBF,0x86,0xDB,0xCF,0xE6,
  19:task/Display.c **** 	       	              			0xED,0xFD,0x87,0xFF,0xEF, /*0.-9.*/
  20:task/Display.c **** 
  21:task/Display.c **** 	                      			0x77,0x7C,0x39,0x5E,0x79, /*A\b \C\d\E*/
  22:task/Display.c **** 	      	              			0x71,0x6f,0x74,0x06,0x1e, /*F\g \h\I\J*/
  23:task/Display.c ****                           		    0x00,0x38,0x00,0x37,0x3F, /*K\L \M\N\O*/
  24:task/Display.c **** 	                      			0x73,0xBF,0x50,0x6D,0x78, /*P\0.\R\S\T*/
  25:task/Display.c ****                           		    0x3E,0x3E,0x00,0x00,0x6E, /*U\V\W\X\Y*/
  26:task/Display.c ****                           		    0x5B,0x40,                /*Z\-\*/
  27:task/Display.c **** 									0x00,					  //47
  28:task/Display.c **** 	                     		};
  29:task/Display.c **** 
  30:task/Display.c **** uint8 Led[lighten_size];
  31:task/Display.c **** uint8 DispBuf[lighten_size];
  32:task/Display.c **** uint8 fDispNow = 0;         //要求立刻显示标志
  33:task/Display.c **** volatile uint8 fTimer0_1ms;
  34:task/Display.c **** WAIT_TIME_STRUCT	Refresh_AD = {0,_500MS};
  35:task/Display.c **** void DispPinInit(void);
  36:task/Display.c **** void DispProcess(void);
  37:task/Display.c **** void HC164SendByte(uint8 byte);
  38:task/Display.c **** void DispPinInit(void);
  39:task/Display.c **** void  SETB_IO(uint8 IO_NO);			      //位选口的控制
  40:task/Display.c **** 
  41:task/Display.c **** //--------------------------------------------
  42:task/Display.c **** 
  43:task/Display.c **** #define   bit_shut()  \
  44:task/Display.c **** do			\
  45:task/Display.c **** {		DIG1=OFF;\
  46:task/Display.c **** 		DIG2=OFF;\
  47:task/Display.c **** 		DIG3=OFF;\
  48:task/Display.c **** 		DIG4=OFF;\
  49:task/Display.c **** 		DIG5=OFF;\
  50:task/Display.c **** }while(0)
  51:task/Display.c **** 
  52:task/Display.c **** //------------------------------
  53:task/Display.c **** SIGNAL(SIG_OVERFLOW0)    
  54:task/Display.c **** {
  55:task/Display.c ****    static uint8 LedNum = 0;
  56:task/Display.c ****    
  57:task/Display.c ****    TCNT0 = 0x100 - (uint32)((float)F_CPU * CLOCK_TIME0 / F_N_TIME0 / 1000);   
  58:task/Display.c ****       
  59:task/Display.c ****    DispPinInit();
  60:task/Display.c ****    HC164SendByte(Led[LedNum]);         				//送段码
  61:task/Display.c ****    if (LedNum > 4)  bit_shut();
  62:task/Display.c ****    else SETB_IO(LedNum);             		//送位选
  63:task/Display.c ****    if (++LedNum == lighten_size) LedNum = 0;         
  64:task/Display.c **** }
  65:task/Display.c **** //---------------------------------------------
  66:task/Display.c **** 
  67:task/Display.c **** void  HC164SendByte(uint8 byte)	
  68:task/Display.c **** {	
  69:task/Display.c ****    unsigned char i;
  70:task/Display.c ****     HC164_CLK = 0;
  71:task/Display.c ****    for(i=0;i<8;i++)
  72:task/Display.c ****     {	
  73:task/Display.c ****    	    HC164_CLK=0;
  74:task/Display.c ****    		if( byte&0x80 )
  75:task/Display.c **** 		  { HC164_Data=1; }
  76:task/Display.c ****    		else
  77:task/Display.c **** 		  { HC164_Data=0; }
  78:task/Display.c **** 		byte<<= 1; 
  79:task/Display.c **** 		HC164_CLK=1;
  80:task/Display.c **** 
  81:task/Display.c ****     }	  
  82:task/Display.c **** }
  83:task/Display.c **** 
  84:task/Display.c **** //----------------------------------------------
  85:task/Display.c **** 
  86:task/Display.c **** void SETB_IO(uint8 IO_NO)	  	
  87:task/Display.c **** {
  88:task/Display.c **** 	bit_shut();
  89:task/Display.c **** 	switch (IO_NO)		
  90:task/Display.c **** 		{
  91:task/Display.c **** 			case 0:	DIG1=ON;break;
  92:task/Display.c **** 			case 1:	DIG2=ON;break;
  93:task/Display.c **** 			case 2:	DIG3=ON;break;
  94:task/Display.c **** 			case 3:	DIG4=ON;break;
  95:task/Display.c **** 			case 4:	DIG5=ON;break;			
  96:task/Display.c **** 	  		default:        break;
  97:task/Display.c **** 		}
  98:task/Display.c **** }
  99:task/Display.c **** 
 100:task/Display.c **** 
 101:task/Display.c **** //----------------------------------------------
 102:task/Display.c **** void  DispProcess(void)           //显示段码转换函数
 103:task/Display.c **** {
 104:task/Display.c ****   uint8 i;
 105:task/Display.c ****   static uint8 DispTime = 0;
 106:task/Display.c **** 
 107:task/Display.c ****   if ((Refresh_AD.fGetTime) || (fDispNow))
 108:task/Display.c ****      {
 109:task/Display.c ****        Refresh_AD.fGetTime = 0;
 110:task/Display.c ****        Refresh_AD.WaitTime = _500MS;
 111:task/Display.c **** 
 112:task/Display.c **** //----------------------------------------------------------------
 113:task/Display.c ****        if (TaskID == 0)
 114:task/Display.c **** 	      {
 115:task/Display.c ****        	 	 DispBuf[ROW_5] = HIDE;
 116:task/Display.c ****       	     DoPot(&DispBuf[ROW_1],Ps);
 117:task/Display.c ****       	     if (Ps_Neg == 1) DispBuf[ROW_5] = 46;
 118:task/Display.c **** /*			DispBuf[ROW_5] = HIDE;
 119:task/Display.c **** 			DispBuf[ROW_4] = HIDE;
 120:task/Display.c **** 			DispBuf[ROW_3] = HIDE;
 121:task/Display.c **** 			DispBuf[ROW_2] = HIDE;
 122:task/Display.c **** 			DispBuf[ROW_1] = HIDE;
 123:task/Display.c **** 
 124:task/Display.c **** 			if (V_sign_A == 1) DispBuf[ROW_5] = 46;
 125:task/Display.c **** 			if (I_sign_A == 1) DispBuf[ROW_4] = 46;
 126:task/Display.c **** 			if (V_sign_B == 1) DispBuf[ROW_3] = 46;
 127:task/Display.c **** 			if (I_sign_B == 1) DispBuf[ROW_2] = 46;*/
 128:task/Display.c ****            }
 129:task/Display.c ****         DispTime++;
 130:task/Display.c **** //-----------------------------------------------------------------		      
 131:task/Display.c ****        
 132:task/Display.c ****         for (i=0; i<lighten_size; i++)     //进行显示数据更新
 133:task/Display.c ****             { Led[i] = pgm_read_byte(&LedTab[DispBuf[i]]);  }      
 134:task/Display.c ****         if (DispTime >= 2)  //进行闪烁处理
 135:task/Display.c ****           {
 136:task/Display.c ****              DispTime = 0;
 137:task/Display.c ****              if (TaskID == 0) 
 138:task/Display.c **** 			    {
 139:task/Display.c ****            		   if ((!(AlarmSwitch & 0x01)) && fH_Alarm) 
 140:task/Display.c **** 				      {  Dis_info(&DispBuf[ROW_5],"h-alr");	}
 141:task/Display.c ****             
 142:task/Display.c ****            		   if ((!(AlarmSwitch & 0x01)) && fL_Alarm)
 143:task/Display.c **** 				      {	Dis_info(&DispBuf[ROW_5],"l-alr");	}
 144:task/Display.c ****            		 
 145:task/Display.c ****            		   for (i=0; i<lighten_size; i++)    //进行显示数据更新
 146:task/Display.c ****        				  {  Led[i] = pgm_read_byte(&LedTab[DispBuf[i]]);} 
 147:task/Display.c ****                   }
 148:task/Display.c ****            }             
 149:task/Display.c ****        }
 150:task/Display.c ****    fDispNow = 0;
 151:task/Display.c **** }
 152:task/Display.c **** //----------------------------------------------
 153:task/Display.c **** void DispPinInit(void)
 154:task/Display.c **** {
 174               	.LM1:
 175               	/* prologue: frame size=0 */
 176               	/* prologue end (size=0) */
 155:task/Display.c ****     PORTB &= 0xF8;
 178               	.LM2:
 179 0000 88B3      		in r24,56-0x20
 180 0002 887F      		andi r24,lo8(-8)
 181 0004 88BB      		out 56-0x20,r24
 156:task/Display.c ****     PORTD &= 0x3f;      
 183               	.LM3:
 184 0006 82B3      		in r24,50-0x20
 185 0008 8F73      		andi r24,lo8(63)
 186 000a 82BB      		out 50-0x20,r24
 187               	/* epilogue: frame size=0 */
 188 000c 0895      		ret
 189               	/* epilogue end (size=1) */
 190               	/* function DispPinInit size 7 (6) */
 192               	.Lscope0:
 195               	.global	HC164SendByte
 197               	HC164SendByte:
 199               	.LM4:
 200               	/* prologue: frame size=0 */
 201               	/* prologue end (size=0) */
 203               	.LM5:
 204 000e 9598      		cbi 50-0x20,5
 205 0010 97E0      		ldi r25,lo8(7)
 206               	.L8:
 208               	.LM6:
 209 0012 9598      		cbi 50-0x20,5
 211               	.LM7:
 212 0014 87FF      		sbrs r24,7
 213 0016 02C0      		rjmp .L6
 215               	.LM8:
 216 0018 949A      		sbi 50-0x20,4
 217 001a 01C0      		rjmp .L7
 218               	.L6:
 220               	.LM9:
 221 001c 9498      		cbi 50-0x20,4
 222               	.L7:
 224               	.LM10:
 225 001e 880F      		lsl r24
 227               	.LM11:
 228 0020 959A      		sbi 50-0x20,5
 230               	.LM12:
 231 0022 9150      		subi r25,lo8(-(-1))
 232 0024 97FF      		sbrs r25,7
 233 0026 F5CF      		rjmp .L8
 234               	/* epilogue: frame size=0 */
 235 0028 0895      		ret
 236               	/* epilogue end (size=1) */
 237               	/* function HC164SendByte size 14 (13) */
 242               	.Lscope1:
 245               	.global	SETB_IO
 247               	SETB_IO:
 249               	.LM13:
 250               	/* prologue: frame size=0 */
 251               	/* prologue end (size=0) */
 253               	.LM14:
 254 002a C298      		cbi 56-0x20,2
 255 002c 9698      		cbi 50-0x20,6
 256 002e 9798      		cbi 50-0x20,7
 257 0030 C098      		cbi 56-0x20,0
 258 0032 C198      		cbi 56-0x20,1
 260               	.LM15:
 261 0034 9927      		clr r25
 262 0036 8230      		cpi r24,2
 263 0038 9105      		cpc r25,__zero_reg__
 264 003a 91F0      		breq .L16
 266               	.LM16:
 267 003c 8330      		cpi r24,3
 268 003e 9105      		cpc r25,__zero_reg__
 269 0040 2CF4      		brge .L20
 270 0042 0097      		sbiw r24,0
 271 0044 49F0      		breq .L14
 272 0046 0197      		sbiw r24,1
 273 0048 49F0      		breq .L15
 274 004a 0895      		ret
 275               	.L20:

⌨️ 快捷键说明

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