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

📄 mk7a21p tmr1.asm

📁 这是MK系列台系芯片的capture功能的实例演示
💻 ASM
字号:
#include  "mk7a21p.inc"  ;编译该文档需包含"mk7a21p.inc"文件
;----------------------------------------------------------------------- 
;芯片型号(mk7a21p) 
;----------------------------------------------------------------------- 
;配置寄存器设置说明(CONFIG) 
;1-----------FOSC=INRC&NS  ;LS,NS,HS,RC,INRC(单时钟) 
       ;INRC&LS,INRC&NS,INRC&HS   
;2-----------CPT=OFF    ;ON,OFF    
;3-----------WDTE=Disable   ;Enable,Disable 
;4-----------LV=2.3V    ;4V,2.3V,Don't use 
;5-----------RST_DEF=...input...  ;...input...,...reset... 
;6-----------EXT_CLK=...timer sourse... ;...IO...,...timer sourse... 
;----------------------------------------------------------------------- 
tm_r      	equ   		0x40 
;-----------------------------------------------------------------------
              	org           	0x000  		;mk7a21p的复位向量地址定义 
              	lgoto         	main   		;跳转到主程序入口            
;----------------------------------------------------------------------- 
main 
             	movla   	b'00000000'  
             	movam   	sys_ctl  	;单时钟模式时此设置无效 
                       				;双时钟模式时:Bit7---系统时钟选择 
                       				;双时钟模式时:Bit1---内部RC振荡控制 
                       				;双时钟模式时:Bit0---外部振荡控制 
                ;-------------------------------------------------------
                movla   	b'10000011'  
                movam   	wdt_ctl  	;WDT的使能及其预分频为1:8          
                ;------------------------------------------------------- 
                movla   	b'00000000' 
                movam   	pa_dir   	;PA0-7输出 
                movla   	b'00000000' 
                movam   	pa_dat  	;PA0-7状态为0 
                movla   	b'00000000' 
                movam   	pa_plu   	;PA0-7上拉禁止 
                movla   	b'00000000' 
                movam   	pa_inte   	;PA0-7唤醒禁止(外部中断禁止)
                ;-------------------------------------------------------
                movla   	b'11110000' 
                movam   	pb_dir   	;PB0-3输出 
                movla   	b'11110000' 
                movam   	pb_dat  	;PB0-3状态为0 
                movla   	b'11110000' 
                movam   	pb_plu   	;PB0-3上拉禁止 
                ;------------------------------------------------------- 
                movla   	b'11110000' 
                movam   	pc_dir   	;PC0,2,3输出,PC1只能作为输入 
                movla   	b'11110000' 
                movam   	pc_dat  	;PC0-3状态为0 
                movla   	b'11110000' 
                movam   	pc_plu   	;PC0-3上拉禁止 
                ;-------------------------------------------------------
                movla         	b'01100010' 	;以下为TMR1的初始化程序段 
                movam           tm1_ctl1       	;TM1时钟源内部RC时钟,预分频1:4 
                ;movla       	b'00000000' 
                ;movam       	tm1_ctl2  	;Bit7:比较计数器自动清零使能 
                ;------------------------------------------------ 
                ;mov          	clr_cnt,m  	;写这个寄存器将清零比较计数器 
                ;------------------------------------------------ 
                movla          	0x50 
                movam           tm1l_la 
                movla         	0xc3 
                movam           tm1h_la  	;溢出周期50ms 
                ;-------------------------------------------------------- 
                ;movla        	b'01100010' 	;以下为TMR2的初始化程序段 
                ;movam         	tm2_ctl1 
                ;movla          b'11000010' 
                ;movam       	tm2_ctl2  	;Bit7:模式选择/Bit6:PWM初始状态 
                       				;Bit5:IO或TO_E/Bit3-0:PWM预分频 
                ;movla           .200 
                ;movam           tm2_la 
                ;-------------------------------------------------------- 
                ;movla           b'01100010' 	;以下为TMR3的初始化程序段 
                ;movam           tm3_ctl1 
                ;movla           .100 
                ;movam           tm3_la 
                ;-------------------------------------------------------- 
                ;movla        	b'00000000' 	;以下是ADC的初始化设置 
                ;movla   	ad_ctl1  	;Bit7:adc使能/Bit5:模式/Bit1-0通道选择 
                ;movla        	b'00000000' 
                ;movla   	ad_ctl2  	;Bit7:比较结果/Bit1-0:adc时钟源 
                ;movla         	b'00000000' 
                ;movla   	ad_ctl3  	;Bit3-0:PB0-3复用管脚的选择,做ADC用 
                ;movla       	.0 
                ;movla   	ad_dat   
                ;--------------------------------------------------------
                movla       	b'00000000' 	;以下是中断设置 
                movam        	irqm   		;Bit1:TM1/Bit2:TM2/Bit3:TM3 
                       				;Bit4:PA/Bit6:ADC/Bit7:中断总使能Bit 
                clr           	irqf 
                ;-------------------------------------------------------- 
                bs           	tm1_ctl1,7 
                ;bs         	tm2_ctl1,7 
                ;bs         	tm3_ctl1,7            
;------------------------------------------------------------------------ 
loop 
                btss   		irqf,tm1f 
                lgoto   	$-1   		;等待TM1溢出 
                bc    		irqf,tm1f  	;清除溢出标志 
                ;--------------------------------------------------------
                inc    		tm_r,m 
                movla   	.20   		;50x20=1s 
                sub   		tm_r,a 
                btss   		status,c 
                lgoto   	loop 
                clr    		tm_r   
                ;--------------------------------------------------------
                movla   	b'00000001' 
                xor   		pa_dat,m 
                lgoto   	loop 
;------------------------------------------------------------------------ 
                end 

⌨️ 快捷键说明

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