历史上的今天
返回首页

历史上的今天

今天是: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


推荐阅读

史海拾趣

ABCircuits公司的发展小趣事

ABCircuits公司成立之初,便专注于半导体技术的研发。在电子行业的浪潮中,公司敏锐地洞察到市场对高性能、低功耗芯片的需求,于是投入大量资源进行研发。经过数年的努力,ABCircuits成功推出了一款具有革命性的芯片,该芯片在性能上远超同行,同时功耗极低,迅速获得了市场的认可。这一技术创新为ABCircuits公司打开了新的市场领域,奠定了其在行业内的领先地位。

EG & G Inc公司的发展小趣事

EG & G Inc公司成立于20世纪早期,最初专注于电子设备的研发和生产。公司凭借其技术优势和创新能力,在电子行业中逐渐崭露头角。在成立初期,EG & G Inc就与多家知名企业和研究机构建立了合作关系,共同推动电子技术的发展和应用。这些合作关系不仅为公司带来了技术上的支持,也为其在市场上的扩张奠定了基础。

Cermetek Microelectronics公司的发展小趣事

随着产品的推出,Cermetek Microelectronics公司开始注重品质管理。公司建立了严格的质量控制体系,从原材料采购到生产流程,再到最终的产品测试,都经过严格的把控。这种对品质的执着追求,使得公司的产品在市场上获得了良好的口碑。同时,公司还积极拓展市场,与多家知名企业建立了合作关系,进一步提升了品牌影响力。

上海国芯(Gcore)公司的发展小趣事
用于车辆超速检测、铁路道口安全监测等。
3E SECURITY公司的发展小趣事

为了进一步提升竞争力,3E SECURITY公司开始实施产业链整合战略。公司通过收购、兼并等方式,整合了上下游产业链资源,形成了从研发、生产到销售、服务的完整产业链体系。这一举措不仅降低了公司的运营成本,还提高了产品的质量和服务的效率,为公司的发展注入了新的动力。

EF Johnson Technologies Inc公司的发展小趣事

在电子通信技术的浪潮中,EF Johnson Technologies Inc公司凭借其卓越的研发团队,成功开发出一款新型无线通信设备,该设备在信号稳定性和传输距离上均取得了重大突破。这一技术突破不仅让EF Johnson在市场上获得了显著的竞争优势,也推动了整个行业的技术进步。随着产品的广泛应用,EF Johnson逐渐确立了其在无线通信领域的领先地位。

问答坊 | AI 解惑

既然阿凡达那么火热,咱也看看其中通信(三)

《阿凡达》中人类在遥远的潘多拉星球上可以在广阔的地域之间高速传输数据和通信,用得可能将是未来的4G或5G技术,虽然CES没有对此高科技给出的切实解决答案,但多家企业正在不断努力,远程高速数据通信也即将到来。 美国运营商Sprint在CES上推 ...…

查看全部问答>

FPGA的多路可控脉冲延迟系统设计

FPGA的多路可控脉冲延迟系统设计 采用数字方法和模拟方法设计了一种最大分辨率为0.15 ns级的多路脉冲延迟系统,可以实现对连续脉冲信号的高分辨率可控延迟;采用Flash FPGA克服了现有SRAM FPGA系统掉电后程序丢失的缺点,提高了系统反应速度。本系 ...…

查看全部问答>

win7系统中无法安装usb-blaster

  最近我在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值。 不用画笔的方式实现。 …

查看全部问答>

IAR报错!!!!!!!!!!在线等

                                 嗖嗖嗖嗖…

查看全部问答>

09级的学生不应该参加国赛吗?

本帖最后由 paulhyde 于 2014-9-15 08:53 编辑 今天老师对我们说,建议09级的同学不要参加国赛,如果等到下一届,就得等两年,那时候就大四了,也就没有那个时间参加了!   可是老师给我们的答案是很多的竞赛在等你,为什么偏偏选择国赛呢 ...…

查看全部问答>

LED驱动IC

在LED灯恒流的问题上,不知各位有哪些好的LED恒流IC?有用过NU501或是HV9910的吗?这两款在LED灯中运用得应比较广泛的吧。…

查看全部问答>

咋不见有人玩UCOS-III呢?

实时多任务操作系统uCOS-III的特点1.uCOS-III是一个全新的实时内核,源于世界上最流行的实时内核uC/OS-II,除了提供熟悉的一系列系统服务,全面修订了API接口,使uC/OS-III更直观,更容易使用。该产品可以广泛应用于通信,工业控制,仪器仪表,汽车 ...…

查看全部问答>

学习易电源心得

“易电源纳米模块在一个微小解决方案尺寸中整合了易用性和高性能。纳米模块是目前市场上最小的1A封装。该器件是首款将IC安装在电感上的集成电感解决方案,可以降低电路板空间要求并提高性能,使之成为空间受限及负载点应用的理想选择。纳米模块还 ...…

查看全部问答>