历史上的今天
今天是:2024年10月16日(星期三)
2019年10月16日 | 16F870单片机的中断应用程序
2019-10-16 来源:eefocus
; Filename: WK_PCHG.asm *
; Date: Mar/13/2001 *
;**********************************************************************
list p=16f870
#include ; __CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _RC_OSC & _WRT_ENABLE_ON & _LVP_OFF & _CPD_OFF FLAG EQU 0x20 Var1 EQU 0x21 Var2 EQU 0x22 INT_Var1 EQU 0x30 INT_Var2 EQU 0x31 W_Temp EQU 0x72 STATUS_Temp EQU 0x73 FSR_Temp EQU 0x74 #define VAL_1MS .248 #define FLAG_INC 0 #define FLAG_DEC 1 org 0x00 ; RESET 0x000 nop clrf PCLATH goto Main org 0x004 INT_ISRs ;*************************************************************** movwf W_Temp ; save off current W register contents movf STATUS,W ; move status register into W register bcf STATUS,RP0 ; ensure file register bank set to 0 movwf STATUS_Temp ; save off contents of STATUS register movf FSR,W movwf FSR_Temp BANKSEL PORTB movf PORTB,W bcf INTCON,RBIF bcf INTCON,RBIE ; RBIE Disable call Bounce_Delay btfsc PORTB,4 goto Check_DEC_KEY bsf FLAG,FLAG_INC ; FLAG_INC 1 goto Exit_ISRs Check_DEC_KEY btfss PORTB,5 bsf FLAG,FLAG_DEC Exit_ISRs movf FSR_Temp,W movwf FSR bcf STATUS,RP0 ; ensure file register bank set to 0 movf STATUS_Temp,w ; retrieve copy of STATUS register movwf STATUS ; restore pre-isr STATUS register contents swapf W_Temp,F swapf W_Temp,W ; restore pre-isr W register contents retfie ; return from interrupt ;****************************************************************************** ;**** Delay 10 ms ;****************************************************************************** Bounce_Delay movlw .10 movwf INT_Var1 Bounce_Loop1 movlw .248 movwf INT_Var2 Bounce_Loop2 nop decfsz INT_Var2,F goto Bounce_Loop2 decfsz INT_Var1,F goto Bounce_Loop1 return ****************************************** Main BANKSEL TRISB movlw B'11110000' movwf TRISB ; RB4..RB7 clrf TRISC movlw B'00000000' ; Enable PORTB Pull UP movwf OPTION_REG BANKSEL PORTB movlw B'11111111' movwf PORTB clrf PORTC bsf INTCON,GIE clrf FLAG bsf FLAG,FLAG_INC Prog_Loop btfss FLAG,FLAG_INC goto Dec_Process Inc_Process call Delay_50ms incfsz PORTC,F goto Inc_Process goto SLEEP_Process Dec_Process call Delay_50ms decfsz PORTC,F goto Dec_Process SLEEP_Process clrf PORTC clrf FLAG movf PORTB,W bcf INTCON,RBIF bsf INTCON,RBIE SLEEP nop nop goto Prog_Loop ;**************************************************************************** ;**** Delay 50ms ;**************************************************************************** Delay_50ms movlw .50 movwf Var2 Delay_200ms_Loop call Delay_1ms decfsz Var2,F goto Delay_200ms_Loop return ;**************************************************************************** ;**** Delay 1ms ;**************************************************************************** Delay_1ms nop nop nop movlw VAL_1MS movwf Var1 Delay_1ms_Loop nop decfsz Var1,F goto Delay_1ms_Loop return END
上一篇:pic单片机的模拟I2C通信
下一篇:PIC产生伪随机数汇编语言程序
史海拾趣
|
《阿凡达》中人类在遥远的潘多拉星球上可以在广阔的地域之间高速传输数据和通信,用得可能将是未来的4G或5G技术,虽然CES没有对此高科技给出的切实解决答案,但多家企业正在不断努力,远程高速数据通信也即将到来。 美国运营商Sprint在CES上推 ...… 查看全部问答> |
|
FPGA的多路可控脉冲延迟系统设计 采用数字方法和模拟方法设计了一种最大分辨率为0.15 ns级的多路脉冲延迟系统,可以实现对连续脉冲信号的高分辨率可控延迟;采用Flash FPGA克服了现有SRAM FPGA系统掉电后程序丢失的缺点,提高了系统反应速度。本系 ...… 查看全部问答> |
|
最近我在win7的操作系统中一直无法安装usb-blaster驱动程序,导致我无法在quartus II软件中下载程序,如图F:\\picture\\no hardware.jpg 但是我在安装usb-blaster驱动程序的时候,系统弹出对话框F:\\picture\\drivers.jpg,我怀疑是因 ...… 查看全部问答> |
|
想从上层开发(asp.net..c#) 转到 底层的嵌入开发(C)....请前辈指点....回答必得分 现在以有一年的上层开发经验....对asp.net..c# 什么的开发都 比较行了... 但现在有一个很好的机会 ...不过是做底层的嵌入开发(C).... 请高手给点好的意见...... 如果转入嵌入开发(C),有没有好的东东可以介绍... 先谢谢各位!… 查看全部问答> |
|
C#(v1.1)怎么能够让控件透明呢?C#(v2.0)能做到也行 如题,希望能让label,radiobutton,panel等等控件都透明。 就像winxp上的 transparent 属性的效果。不是说alpha值。 不用画笔的方式实现。 … 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 08:53 编辑 今天老师对我们说,建议09级的同学不要参加国赛,如果等到下一届,就得等两年,那时候就大四了,也就没有那个时间参加了! 可是老师给我们的答案是很多的竞赛在等你,为什么偏偏选择国赛呢 ...… 查看全部问答> |
|
实时多任务操作系统uCOS-III的特点1.uCOS-III是一个全新的实时内核,源于世界上最流行的实时内核uC/OS-II,除了提供熟悉的一系列系统服务,全面修订了API接口,使uC/OS-III更直观,更容易使用。该产品可以广泛应用于通信,工业控制,仪器仪表,汽车 ...… 查看全部问答> |




