历史上的今天
返回首页

历史上的今天

今天是:2024年10月18日(星期五)

正在发生

2019年10月18日 | PIC16C71单片机按键换醒CPU的源程序

2019-10-18 来源:eefocus

; p=pic16c71,xt=40000hz
LIST P=16c71
;
Z            EQU    2
RBPU         EQU    7
TEMP         EQU    10H
OPTIONREG    EQU    1H
F            EQU    1
PORT_B       EQU    06H
;
             INCLUDE 
             LIST
;
             ORG     0                  ;复位地址
             GOTO    START
;
             ORG     4                  ;中断向量
             GOTO    SERVICEINTERRUPT
;
START
             CALL    INITPORT_B         ;初始化B口
LOOP
             SLEEP                      ;省电睡眠,等待被唤醒
             NOP
             GOTO    LOOP
;
SERVICEINTERRUPT
             BTFSC   INTCON,RBIF
             GOTO    SERVICEWAKUP
             CLRF    INTCON
             BSF     INTCON,RBIE
             RETFIE
;
;检查是哪个键被按下,并点亮相应的LED直到按键释放,再返回睡眠状态
;
SERVICEWAKUP
             BCF     INTCON,RBIE
             COMF    PORT_B,W
             BCF     INTCON,RBIF
             CALL    DELAY16
             COMF    PORT_B,W
             ANDLW   B'11110000'
             MOVWF   TEMP
             SWAPF   TEMP,W
             MOVWF   PORT_B
             CALL    KEYRELEASE
             RETFIE
;
;等待所有的按键都被释放程序
;
KEYRELEASE
             CALL    DELAY16
             COMF    PORT_B,W
             BCF     INTCON,RBIF
               BCF     INTCON,RBIE
             ANDLW   B'11110000'
             BTFSC   STATUS,Z
             RETURN
             GOTO    KEYRELEASE
;
;初始化    B口子程序
;
INITPORT_B
             BSF     STATUS,RP0
             MOVLW   B'11110000'
             MOVWF   TRISB
             BCF     OPTIONREG,RBPU
             BCF     STATUS,RP0
             CLRF    PORT_B
             BCF     INTCON,RBIE
             MOVF    PORT_B,W
             BCF     INTCON,RBIF
             BSF     INTCON,RBIE
             BSF     INTCON,GIE
             RETURN
;
;延时去抖动子程序
DELAY16
             BSF     STATUS,RP0
             MOVLW   B'00000111'
             MOVWF   OPTIONREG
             BCF     STATUS,RP0
             CLRF    TMR0
             BCF     INTCON,T0IF
CHECKAGAIN
             BTFSS   INTCON,T0IF
             GOTO    CHECKAGAIN
             BCF     INTCON,T0IF
             RETURN
             END

推荐阅读

史海拾趣

CT [ Central Technologies ]公司的发展小趣事

CT公司成立于电子行业的黄金时期,起初只是一个小型研发团队,专注于研发新型半导体技术。创始人凭借对技术的敏锐洞察和不懈追求,带领团队攻克了一个又一个技术难题。然而,资金短缺、市场竞争激烈以及技术迭代的快速性给初创期的CT公司带来了巨大的挑战。公司多次面临生死存亡的边缘,但创始人始终坚持技术创新的初心,不断寻求合作伙伴和投资,逐渐在市场中站稳了脚跟。

Apex Tool Group公司的发展小趣事

随着国内市场的饱和,CT公司开始将目光投向国际市场。公司制定了一系列国际化发展战略,包括在海外设立研发中心、拓展销售渠道以及与国际知名企业建立战略合作关系等。通过这些举措,CT公司的产品和服务逐渐渗透到全球范围内,公司的国际影响力不断增强。

Freeport Resources Enterprises Corp公司的发展小趣事

为了提升在电子材料领域的竞争力,Freeport Resources积极寻求国际合作,与多家国际知名电子材料生产商和研究机构建立了战略伙伴关系。通过技术引进和联合研发,公司成功掌握了先进的电子材料提纯和加工技术,大幅提高了产品的质量和性能。同时,国际合作也帮助Freeport Resources打开了国际市场,其产品远销全球多个国家和地区,进一步巩固了其在电子材料市场的地位。

Honda Tsushin Kogyo Co Ltd公司的发展小趣事

在电子行业快速发展的同时,Honda Tsushin Kogyo也面临着来自技术革新、市场竞争等方面的挑战。为了保持领先地位,公司可能积极应对这些挑战,通过转型升级来实现可持续发展。例如,公司可能加大了对新能源、物联网等新兴领域的投入,研发出符合市场需求的新产品。同时,公司还注重提升生产效率和降低成本,以应对激烈的市场竞争。

AMERICASEMI [America Semiconductor, LLC]公司的发展小趣事

为了进一步扩大市场份额,AMERICASEMI积极寻求与其他企业的合作机会。公司与多家知名电子产品制造商建立了稳定的合作关系,为其提供优质的半导体产品和技术支持。同时,AMERICASEMI还积极开拓国际市场,将产品出口到全球多个国家和地区,实现了业务的快速增长。

Cogent_Computer_Systems公司的发展小趣事

在电子行业中,技术创新是企业发展的核心驱动力。Cogent_Computer_Systems公司深知这一点,因此始终坚持将大量资金投入研发领域。公司建立了一支高素质的研发团队,并配备了先进的研发设备。通过持续不断的研发投入,公司成功推出了一系列具有创新性的产品,满足了市场不断变化的需求。这种以研发驱动的发展模式使得公司在激烈的市场竞争中始终保持领先地位。

问答坊 | AI 解惑

晒板子28335

28335电力电子与电力传动专用控制板 …

查看全部问答>

1-wire系统中TM卡的单片机等效替换

1 TM卡简介   TM(Touch Memory)卡是美国Dallas公司的专利产品。它采用单线协议通信,通过瞬间碰触完成数据读写,既具有非接触式IC卡的易操作性,又具有接触式IC 卡的廉价性,是当前性价比最优秀的IC卡之一。它的外形类似于一个钮扣(button) ...…

查看全部问答>

浙江大学RF设计(前端系统)(pdf)

第10个附件是一个超外差高频头的实例,很宝贵的资料…

查看全部问答>

说说模拟设计那点事儿和那几本书

我学习模电有一段时间了,向大家推荐几本自认为的\"宝典\",谈下自己使用它们的感受以及在学习模电过程中的体会,供后来者参考: 1. 拉扎维的《模拟CMOS集成电路设计》,我们研二模电课的教材,汪宁老师把这门课讲得可圈可点。当时没意识到有其他 ...…

查看全部问答>

基于Win32 API函数和多线程技术的串行通信编程.pdf

基于Win32 API函数和多线程技术的串行通信编程.pdf…

查看全部问答>

无法收到PBT_TRANSITION消息

在WinCE6下一个应用程序里,使用RequestPowerNotifications(hPowerNotificationMsgs, POWER_NOTIFY_ALL); 去请求power状态改变的通知。可是从开始菜单进入suspend的时候并没有收到任何power消息,但是按Power Button从suspend状态resume回来的时 ...…

查看全部问答>

RAS拨号监视消息

如何在RAS异步拨号时,得到当前拨号的状态,我写的消息和回调函数都可以在PC机上用,但在CE上都不能用(CE只支持消息),代码如下:消息的、 先注册了消息: const   UINT   WM_RASEVENT   =   ::Regist ...…

查看全部问答>

u-boot 的 配置问题.(从NAND启动)

提示的是 bad crc or nand 在网上查了下,应该是env的问题!麻烦各位有经验的朋友,说一下具体怎么改! 我用的是mini2440,page size应该是2048的,但是u-boot启动输出的还是512~已经进行过CONFIG_了…

查看全部问答>

请教高手:如何在扫描输入完成后,光标自动跳到下一个TEXTBOX

我想让程序在扫描输入完成后,光标自动跳到下一个TEXTBOX 可是我在WINCE上捕捉不到扫描键,也不知道如何区分 输入 是由键盘上输入的还是扫描读入的 哪位高手知道的帮帮我,谢谢 啦 …

查看全部问答>

VxWorks嵌入式国际认证培训班

        为满足各大企业及研发机构对嵌入式操作系统VxWorks人才需求,顺应广大学员学习嵌入式操作系统、获得国际认证证书、增强就业竞争力、取得高薪职位的要求,上海双实科技与上海张江信息技术专修学院继续合作举办VxWorks嵌 ...…

查看全部问答>