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

📄 em78p458_adc_demo.lst

📁 义隆电子EM78P458 AD 转换程序.
💻 LST
📖 第 1 页 / 共 2 页
字号:
   123           C        ;----------------------------------------------------------------------------------------------------
   124           C        ;特殊功能寄存器位定义			         																      
   125           C        ;----------------------------------------------------------------------------------------------------
   126           C        ;sfr_CONT     控制寄存器
   127      0000 C        	bit_PSR0 					    equ	0				;TCC/WDT预分频选择位0
   128      0001 C        	bit_PSR1			 			equ	1				;TCC/WDT预分频选择位1
   129      0002 C        	bit_PSR2						 equ	2				;TCC/WDT预分频选择位2
   130      0003 C        	bit_PAB 						 equ	3				;预分频选择位0器分配位:0分配到TCC   1分配到WDT
   131      0004 C        	bit_TE							 equ	4				;TCC信号边沿选择位:  0上升沿TCC加1   1下降沿TCC加1
   132      0005 C        	bit_TS				    		 equ	5				;TCC信号源选择位: 0内部指令周期时钟   1外部输入时钟
   133      0006 C        	bit_INT				  	     equ	6				;中断允许标志位: 0已由DISI或硬件中断屏蔽中断    1已由ENI或RETI允许中断
   134      0007 C        	bit_INTE   		   	  	 equ	7				;外部中断信号边沿选择位: 0上升沿   1下降沿
   135           C        ;sfr_G_CON    增益控制寄存器	
   136      0000 C        	bit_G10  					    equ	0				;增益放大器OP1增益选择位0
   137      0001 C        	bit_G11		 	 			equ	1				;增益放大器OP1增益选择位1
   138      0002 C        	bit_G12			 			 equ	2				;增益放大器OP1增益选择位2
   139      0003 C        	bit_G40 						 equ	3				;增益放大器OP2增益选择位0
   140      0004 C        	bit_G41				 		 equ	4				;增益放大器OP2增益选择位1
   141      0005 C        	bit_G42				 		 equ	5				;增益放大器OP2增益选择位2
   142      0006 C        	bit_OPIE			  	     equ	6				;增益放大器OP1控制位: 0  OP1关闭    1  OP1打开
   143      0007 C        	bit_OP2E   	     	  	 equ	7				;增益放大器OP2控制位: 0  OP2关闭    1  OP2打开
   144           C        ;sfr_AD_CMP_CON    AD与比较器控制寄存器	
   145      0000 C        	bit_CKR0   				    equ	0				;AD时钟分频数选择0  00=1:4  01=1:16  10=1:64  11=1:128内部RC振荡频率
   146      0001 C        	bit_CKR1			   		equ	1				;AD时钟分频数选择1
   147      0002 C        	bit_IMS0						 equ	2				;PORT6输入模式选择位0
   148      0003 C        	bit_IMS1 				   	 equ	3				;PORT6输入模式选择位1
   149      0004 C        	bit_IMS2					     equ	4				;PORT6输入模式选择位2
   150      0005 C        	bit_COE				     	 equ	5				;比较器功能选择位  0用作运放  1用作比较器
   151      0006 C        	bit_CE				  	      equ	6				;比较器使能位  0关闭比较器  1打开比较器
   152      0007 C        	bit_VREFS   		     	 equ	7				;AD参考电压选择位   0工作电压Vdd  1由P53脚输入参考电压
   153           C        ;sfr_WDT_CON     看门狗控制寄存器
   154      0006 C        	bit_EIS				  	      equ	6				;P50脚功能定义位  0 P50只能为输入  1 外部中断输入引脚/INT
   155      0007 C        	bit_WDTE     		     	 equ	7				;WDT使能位	0禁止   1使能
   156           C        ;sfr_INT_IER     中断使能控制寄存器			
   157      0000 C        	bit_TCIE    				    equ	0				;TCC中断使能控制位   0禁止   1使能
   158      0001 C        	bit_ICIE  			   		equ	1				;TCC中断使能控制位   0禁止   1使能
   159      0002 C        	bit_EXIE						 equ	2				;外部中断中断使能控制位   0禁止   1使能
   160      0003 C        	bit_ADIE				   	 equ	3				;AD中断使能控制位   0禁止   1使能
   161      0004 C        	bit_PWM1IE 			     equ	4				;PWM1中断使能控制位   0禁止   1使能
   162      0005 C        	bit_PWM2IE		     	 equ	5				;PWM2中断使能控制位   0禁止   1使能
   163      0006 C        	bit_CMPIE  		  	      equ	6				;比较器中断使能控制位   0禁止   1使能
   164           C        ;sfr_PWM_CON    PWM控制寄存器
   165      0000 C        	bit_T1P0    				    equ	0				;TMR1分频系数选择位0  00=1:2  01=1:8 10=1:32  11=1:64
   166      0001 C        	bit_T1P1	 		   		equ	1				;TMR1分频系数选择位1
   167      0002 C        	bit_T2P0						 equ	2				;TMR2分频系数选择位0  00=1:2  01=1:8 10=1:32  11=1:64
   168      0003 C        	bit_T2P1      				   equ	3				;TMR2分频系数选择位1
   169      0004 C        	bit_T1EN 					   equ	4				;TMR1使能   0关闭  1打开
   170      0005 C        	bit_T2EN  				      equ	5				;TMR2使能   0关闭  1打开
   171      0006 C        	bit_PWM1E				     equ	6				;PWM1 使能  0 关闭   1打开
   172      0007 C        	bit_PWM2E   		     	 equ	7				;PWM2 使能  0 关闭   1打开
   173           C        ;sfr_DT1H    PWM1占空比高8位
   174      0000 C        	bit_PWM18 				    equ	0				;PWM1占空比第8位
   175      0001 C        	bit_PWM19	  	   		equ	1				;PWM1占空比第9位
   176      0003 C        	bit_VOF10    				   equ	3				;补偿电压位0
   177      0004 C        	bit_VOF11					   equ	4				;补偿电压位1
   178      0005 C        	bit_VOF12 				      equ	5				;补偿电压位2
   179      0006 C        	bit_SIGN1   				     equ	6				;补偿电压极性选择位  0负  1正
   180      0007 C        	bit_CALI1      		     	 equ	7				;标准使能位   0禁止  1使能
   181           C        ;sfr_DT2H    PWM2占空比高8位
   182      0000 C        	bit_PWM28 				    equ	0				;PWM2占空比第8位
   183      0001 C        	bit_PWM29	  	   		equ	1				;PWM2占空比第9位
   184      0003 C        	bit_VOF20    				   equ	3				;补偿电压位0
   185      0004 C        	bit_VOF21					   equ	4				;补偿电压位1
   186      0005 C        	bit_VOF22 				      equ	5				;补偿电压位2
   187      0006 C        	bit_SIGN2   				     equ	6				;补偿电压极性选择位  0负  1正
   188      0007 C        	bit_CALI2      		     	 equ	7				;标准使能位   0禁止  1使能
   189           C        
   190           C        ;----------------------------------------------------------------------------------------------------
   191           C        ;用户寄存器定义			         																      
   192           C        ;----------------------------------------------------------------------------------------------------
   193      0010 C        	register_START			   	 equ	0x10				;通用寄存器开始地址
   194      003F C        	register_END				   	 equ	0x3f				;通用寄存器结束地址	
   195           C        	
   196           C        	
    11                    
    12                    ;-------------------------------------------------------------------------------------------------
    13                    ;EM78P458寄存器定义																			      
    14                    ;-------------------------------------------------------------------------------------------------
    15                    ;	register_AD_CON				equ	0x09				;AD控制寄存器
    16                    ;	register_G_CON				   equ	0x09				;增益控制寄存器
    17                    ;	register_AD_CMP_CON	  equ	0x0a			    ;AD与比较器控制寄存器
    18                    ;	register_AD_DATA		     equ	0x0a		        ;ADC转换结果 寄存器
    19                    ;	register_INT_FLAG			 equ	0x0f				;中断标志寄存器
    20                    	
    21                    ;-------------------------------------------------------------------------------------------------
    22                    ;EM78P458寄存器位定义			 															     
    23                    ;-------------------------------------------------------------------------------------------------
    24                    ;	bit_AD_RUN				  	equ	0x04				;AD启动位
    25                    ;	bit_AD_PD	                     equ	0x03				;AD功耗模式位
    26                    		
    27                    ;-------------------------------------------------------------------------------------------------
    28                    ;POWER ON 跳转            																		     
    29                    ;-------------------------------------------------------------------------------------------------
    30                    	ORG	0x00
    31 0000 140A          	jmp	  MAIN
    32                    	
    33                    ;-------------------------------------------------------------------------------------------------
    34                    ;中断服务程序   																						    
    35                    ;-------------------------------------------------------------------------------------------------
    36                    	ORG	0x08
    37 0008               INTERRUPT_SERVE_ROUTINE:						 ;中断服务程序
    38 0008 00CF          	clr	register_INT_ISR										;清除中断标志
    39 0009 0013          	reti
    40                    	
    41                    ;-------------------------------------------------------------------------------------------------
    42                    ;主程序                            																		      
    43                    ;-------------------------------------------------------------------------------------------------	
    44 000A               MAIN:
    45 000A 1808          	mov	A,@0x08												; 选择寄存器段0,并设置P60为输入口
    46 000B 0049          	mov	register_AD_CON,A
    47                    	
    48 000C 1801          	mov	A,@0x01							 				  ;选择通道0,并设置转换时钟频率为Fosc/16
    49 000D 000A          	iow	 sfr_AD_CMP_CON
    50                    	
    51 000E 1800          	mov	A,@0x00								                ;关闭运放OP1,信号直接旁路到AD
    52 000F 0009          	iow	 sfr_G_CON
    53                    	
    54 0010 0AC9          	bs 	 register_AD_CON,bit_ADPD 			 ;禁止AD的低功耗模式
    55 0011 0010          	eni
    56                    	
    57 0012               START_AD_CONVERT:	
    58 0012 0B09          	bs	  register_AD_CON,bit_ADRUN			;启动AD
    59                    	
    60 0013               WAIT_CONVERT:
    61 0013 0D09          	jbc	 register_AD_CON,bit_ADRUN			;是否转换结束?
    62 0014 1413          	jmp    WAIT_CONVERT				  			   ;未结束则继续检测
    63                    	
    64 0015 040A          	mov	A,register_AD_DATA			 			 ;读AD转换结果
    65                    	
    66 0016 1412          	jmp	START_AD_CONVERT					  ;不停地 采样
  0 Error(s), 0 Warning(s), 0 User Message(s)

⌨️ 快捷键说明

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