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

📄 safeverfy.lst

📁 中颖单片机 69p43的一个加密及电源管理部分程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
1			   1: ;*****************************************************
2			   2: ;Company :
3			   3: ;File Name : SafeVerfy.asm
4			   4: ;Author :
5			   5: ;Create Data : 2006-04-24
6			   6: ;Last Modified : 2006-04-24
7			   7: ;Description :
8			   8: ;Version : 1.0
9			   9: ;*****************************************************
10			   
11			   
12			   12: //市电AD输入判断 PA.0
13			   13: VAC_AD_COMPL	EQU    0BH	;0.9V
14			   14: VAC_AD_COMPH	EQU    04H	;0.9V
15			   15: VAC_AD_IN    	EQU    01H
16			   16: VAC_AD_PCON	EQU    18H
17			   17: VAC_AD_PORT	EQU    08H
18			   
19			   19: //电池AD输入判断 PA.1
20			   20: VBAT_AD_COMPL	EQU    08H	;2.4V  0A
21			   21: VBAT_AD_COMPH	EQU    07H	;2.4V
22			   22: VBAT_AD_IN    	EQU    02H
23			   23: VBAT_AD_PCON	EQU    18H
24			   24: VBAT_AD_PORT	EQU    08H
25			   
26			   26: //电池充电控制输出 PB.0
27			   27: CHG_OUT      	EQU    	01H
28			   28: CHG_OUT_PCON   	EQU	19H
29			   29: CHG_OUT_PORT   	EQU	09H
30			   
31			   31: // SPI SCK时钟线控制输入 PC.3
32			   32: PSCK	     	EQU	08H
33			   33: PSCK_PCON    	EQU	1AH
34			   34: PSCK_PORT    	EQU	0AH
35			   
36			   36: // SPI PSDO数据线控制输入 PE.1
37			   37: PSDO	    	EQU	02H
38			   38: PSDO_PCON    	EQU	1CH
39			   39: PSDO_PORT    	EQU	0CH
40			   
41			   41: // SPI PSDI数据线控制输入 PE.2
42			   42: PSDI	    	EQU	04H
43			   43: PSDI_PCON    	EQU	1DH
44			   44: PSDI_PORT    	EQU	0CH
45			   
46			   
47			   
48			   
49			   49: //5个通用寄存器
50			   50: GEN_REG1  EQU   30H			
51			   51: GEN_REG2  EQU   31H	
52			   52: GEN_REG3  EQU   32H
53			   53: GEN_REG4  EQU   33H
54			   54: GEN_REG5  EQU   34H
55			   
56			   56: //市电输入AD缓存寄存器
57			   57: VAC_AD_TEMPL	EQU	36H
58			   58: VAC_AD_TEMPH	EQU	37H
59			   59: //电池输入AD缓存寄存器
60			   60: VBAT_AD_TEMPL	EQU	38H
61			   61: VBAT_AD_TEMPH	EQU	39H
62			   62: // 状态寄存器
63			   63: STATUS_REG	EQU	3AH
64			   
65			   65: READ_DATA_VALUE_TEMP  EQU 3BH    //读取数值缓存区
66			   66: WRITE_REG_TEMP  EQU     3CH
67			   
68			   68: READ_DATA_COUNT	EQU  	40H  //读取数值位次数
69			   69: SPI_BYTE_ONE_H	EQU	41H  //读取数值高
70			   70: SPI_BYTE_ONE_L	EQU 	42H  //读取数值低
71			   71: SPI_BYTE_TWO_H  EQU	43H
72			   72: SPI_BYTE_TWO_L  EQU	44H
73			   73: SPI_BYTE_THREE_H EQU	45H
74			   74: SPI_BYTE_THREE_L EQU	46H
75			   
76			   76: WRITE_BYTE_ONE_H  EQU 	47H
77			   77: WRITE_BYTE_ONE_L  EQU	48H
78			   78: WRITE_BYTE_TWO_H  EQU	49H
79			   79: WRITE_BYTE_TWO_L  EQU	4AH
80			   80: WRITE_BYTE_THREE_H  EQU	4BH
81			   81: WRITE_BYTE_THREE_L  EQU 4CH
82			   
83			   
84			   
85			   
86			   
87			   87: 	ORG	0000H
88			   88: 	
89	0x0000	0xe005	   89: 	JMP	START		;START PROGRAM		
90	0x0001	0xd400	   90: 	RTNI		        ;AD 中断返回
91	0x0002	0xd400	   91: 	RTNI
92			   92: 	//JMP	SCK_SERVER	;T0 中断
93	0x0003	0xd400	   93: 	RTNI			;T1 中断
94	0x0004	0xd400	   94: 	RTNI			;EX 中断
95			   95: 	
96			   
97			   
98			   
99			   99: 	;**** START PROGRAM ***
100			   100: START: 
101	0x0005	0xc05e	   101: 	CALL INITMCU		;初始化单片机寄存器,中断等
102	0x0006	0xc00c	   102: 	CALL INITREG		;初始化寄存器
103			   103:       ;********** 主程序 *****************
104			   104:   MAIN:
105	0x0007	0xc015	   105: 	CALL AD_INPUT
106	0x0008	0xc032	   106: 	CALL CHARGE_SET
107	0x0009	0xc051	   107: 	CALL DELAY
108	0x000a	0xc051	   108: 	CALL DELAY
109			   109: 	
110			   
111			   111:   
112	0x000b	0xe007	   112:   JMP MAIN      
113			   
114			   114: /////////////////////////////////////////////////
115			   115: // 初始化寄存器
116			   116: INITREG:
117	0x000c	0x7830	   117: 	LDI	GEN_REG1,0H 
118	0x000d	0x7831	   118: 	LDI	GEN_REG2,0H
119	0x000e	0x7832	   119: 	LDI	GEN_REG3,0H
120	0x000f	0x7836	   120: 	LDI	VAC_AD_TEMPL,0H
121	0x0010	0x7837	   121: 	LDI	VAC_AD_TEMPH,0H
122	0x0011	0x7838	   122: 	LDI	VBAT_AD_TEMPL,0H
123	0x0012	0x7839	   123: 	LDI	VBAT_AD_TEMPH,0H
124	0x0013	0x783a	   124: 	LDI	STATUS_REG,0H
125			   125: 	//LDI 	T0CON,0010B ;定时器时钟源为外部时钟,
126	0x0014	0xd400	   126: 	RTNI
127			   127: /////////////////////////////////////////////////	
128			   128: 	
129			   129: /////////////////////////////////////////////////////////////////
130			   130: //检测市电 电池电压 AD转换输入
131			   131: AD_INPUT:
132			   132:   // AD 市电 输入
133	0x0015	0x7c14	   133: 	LDI ADCH,1000B
134	0x0016	0xffff	   134: 	NOP
135	0x0017	0x7c97	   135: 	LDI ADCON,1001B	
136	0x0018	0xffff	   136: 	NOP
137			   137:    WAIT_LOOP:
138	0x0019	0xffff	   138:         NOP
139	0x001a	0x3817	   139:         LDA ADCON
140	0x001b	0xb819	   140:         BA3 WAIT_LOOP
141	0x001c	0xffff	   141:         NOP
142	0x001d	0xffff	   142:         NOP
143	0x001e	0x3816	   143:         LDA ADRESH ;A/D 转换完成,存储转换结果。
144	0x001f	0x3c37	   144: 	STA VAC_AD_TEMPH
145	0x0020	0x3815	   145: 	LDA ADRESL
146	0x0021	0x3c36	   146: 	STA VAC_AD_TEMPL
147	0x0022	0xffff	   147: 	NOP
148			   148:    // AD 电池 输入     
149	0x0023	0x7c94	   149: 	LDI ADCH,1001B
150	0x0024	0xffff	   150: 	NOP
151	0x0025	0x7c97	   151: 	LDI ADCON,1001B	
152	0x0026	0xffff	   152: 	NOP
153			   153:    WAIT_LOOP2:
154	0x0027	0xffff	   154:         NOP
155	0x0028	0x3817	   155:         LDA ADCON
156	0x0029	0xb827	   156:         BA3 WAIT_LOOP2
157	0x002a	0xffff	   157:         NOP
158	0x002b	0xffff	   158:         NOP
159	0x002c	0x3816	   159:         LDA ADRESH ;A/D 转换完成,存储转换结果。
160	0x002d	0x3c39	   160: 	STA VBAT_AD_TEMPH
161	0x002e	0x3815	   161: 	LDA ADRESL
162	0x002f	0x3c38	   162: 	STA VBAT_AD_TEMPL
163	0x0030	0xffff	   163: 	NOP
164	0x0031	0xd400	   164: 	RTNI	
165			   165: ////////////////////////////////////////////////////////////	
166			   
167			   
168			   168: // 充电处理
169			   169: CHARGE_SET:
170			   170:        // 检测市电电压      
171	0x0032	0x5237	   171:        SBI  VAC_AD_TEMPH,VAC_AD_COMPH
172	0x0033	0x9839	   172:        BC   SET_VAC_FLAG   ;存在市电
173	0x0034	0x9036	   173:        BAZ  COMP_VACL 
174	0x0035	0xe03c	   174:        JMP  CLR_VAC_FLAG   ;不存在市电情况处理
175			   175:        
176			   176:        COMP_VACL:
177	0x0036	0x55b6	   177:         SBI VAC_AD_TEMPL,VAC_AD_COMPL
178	0x0037	0x9839	   178:         BC  SET_VAC_FLAG   ;存在市电
179	0x0038	0xe03c	   179:         JMP CLR_VAC_FLAG   ;不存在市电情况处理
180			   180:        
181			   181:        SET_VAC_FLAG:   ;存在市电 
182	0x0039	0x68ba	   182:         ORIM  STATUS_REG,01H     ;存在市电则置市电标志位
183	0x003a	0x690c	   183:         ORIM  PSDO_PORT,02H      ;若存在市电则将该管脚置高
184	0x003b	0xe03f	   184:         JMP  VBAT_CHECK		 ;检测电池电压
185			   185:         
186			   186:        CLR_VAC_FLAG:   ;不存在市电情况处理 
187	0x003c	0x773a	   187:         ANDIM  STATUS_REG,0EH     ;不存在市电则清除市电标志位
188	0x003d	0x768c	   188:         ANDIM  PSDO_PORT,0DH      ;若不存在市电则将该管脚置低
189	0x003e	0xe03f	   189:         JMP  VBAT_CHECK		 ;检测电池电压
190			   190:       
191			   191:        //检测电池电压 
192			   192:     VBAT_CHECK:		  
193	0x003f	0x53b9	   193:        SBI  VBAT_AD_TEMPH, VBAT_AD_COMPH ;VBAT_AD_COMPH
194	0x0040	0x9846	   194:        BC   SET_VBAT_FLAG   ;电池充满
195	0x0041	0x9043	   195:        BAZ  COMP_VBATL 	    ;比较电池电压低位
196	0x0042	0xe048	   196:        JMP  CLR_VBAT_FLAG   ;电池电量不够
197			   197:        
198			   198:        COMP_VBATL:	;比较电池电压低位
199	0x0043	0x5438	   199:         SBI VBAT_AD_TEMPL,VBAT_AD_COMPL
200	0x0044	0x9846	   200:         BC  SET_VBAT_FLAG   ;电池充满
201	0x0045	0xe048	   201:         JMP CLR_VBAT_FLAG   ;电池电量不够
202			   202:        
203			   203:        SET_VBAT_FLAG:	    ;电池充满
204	0x0046	0x693a	   204:         ORIM  STATUS_REG,02H     ;存在市电则置市电标志位
205	0x0047	0xe04a	   205:         JMP  CHARGE_CTRL	 ;检测电池电压
206			   206:         
207			   207:        CLR_VBAT_FLAG:   ;电池电量不够
208	0x0048	0x76ba	   208:         ANDIM  STATUS_REG,0DH     ;不存在市电则清除市电标志位
209	0x0049	0xe04a	   209:         JMP  CHARGE_CTRL		 ;检测电池电压   
210			   210:        
211			   211:        CHARGE_CTRL:
212	0x004a	0x78b0	   212:         LDI  GEN_REG1,01H
213	0x004b	0x203a	   213:         EOR  STATUS_REG,0H
214	0x004c	0x904f	   214:         BAZ  $+3
215	0x004d	0x7809	   215:         LDI  CHG_OUT_PORT,0H	 ;关闭充电
216	0x004e	0xe050	   216:         JMP  $+2
217	0x004f	0x7f89	   217:         LDI  CHG_OUT_PORT,0FH	 ;充电
218	0x0050	0xd400	   218:         RTNI
219			   219:            
220			   220:        
221			   221:        
222			   
223			   223: ;=============================================================
224			   224: ;延时子程序(5ms)

⌨️ 快捷键说明

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