历史上的今天
返回首页

历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2019年10月14日 | PIC单片机循环程序应用实例

2019-10-14 来源:eefocus

在这里介绍一种定时程序,说明循环程序在PIC单片机上的应用。笔者仍以PIC16F84单片机为例建立其定时源程序清单。该定时器源程序只需改变一条指令的常数设置,即可使定时时间从分钟级到38小时的连续变化(4MHz晶振条件)。PIC16F84单片机的硬件电路,请见本报第32期实验编程器101实验板电路。在该实验板电路上,若读者改变晶振的频率(2MHz、1MHz、500kHz)等,很易直观看出定时时间成比例相应地增加,这对了解PIC单片机的性能十分直观有趣。若在该源程序上再多设置一次循环,可使定时时间长达1月以上。 


该PIC16F84单片机定时源程序可直接在MPLAB集成开发环境软件下进行汇编,其汇编后生成的HEX文件可在实验编程器101上对源程序进行固化并可在相应的实验板上直接观察实验的结果。PIC16F84单片机时的源程序清单如下(文件各可自定义): 


   LIST    P=PIC16F84 

   #INCLUDE P16F84INC 

   COUNT1 EQU   0x1F 

   COUNT2 EQU   0x1E 

   COUNT3 EQU   0x1D 

   COUNT4 EQU   0x1C 

   ORG  0 

START CLRW      ;与MOVLW 0等效 

   BSF    STATUS,5;选体1 

   MOVWF TRISB  ;设B口为输出 

   BCF    STATUS,5;STATUS复位当前体0 

   CLRF   PORTB ;定时启动功能 

M1   BTFSS   PORTA,1 ;判断A口第D1位,D1=1间跳,D1=0顺 

             ;序执行 

   GOTO   M2 

   GOTO   M1 

M2   MOVLW 0xAA  ;选B口定时位,LED亮开始定时 

   MOVWF PORTB  ;B口按0x10101010输出 

DELY CLRW        ;与MOVLW 0等效 

   MOVLW 0xFF 

   MVOWF COUNT1 

   MVOWF COUNT2 

   MVOWF COUNT3 

   MOVLW 0    ;与CLRW指令等效 

   MOVLW 0x02   ;0x02送W(最大定时为0xFF) 

   MOVWF COUNT4 ;定时值控制(细调) 

LOOP DECFSZ COUNT1,1 ;CPUNT减1,为0间跳 

   GOTO LOOP 

   DECFSZ COUNT2,1 ;同上特点,这里d=1可不用 

   GOTO   LOOP 

   DECFSZ COUNT3,1 ;同上 

   GOTO LOOP 

   DECFSZ COUNT4,1 ;同上,但COUNT4中值可自由选定 

   GOTO LOOP 

   CLRW       ;与MOVLW 0相同 

   MOVLW 0x02   ;定时结束显示 

   MOVWF PORTB 

M3 GOTO M3 

   END         ;程序结束 


说明:该源程序中常数设置可由读者任意改变,改变之后即可达到任意时间的设定。  

推荐阅读

史海拾趣

Belden Wire and Cable公司的发展小趣事

在第二次世界大战期间,Belden公司积极响应国家号召,将生产重心转向战争材料。其产品被广泛应用于坦克、飞机、移动无线电、潜艇、船舶、吉普车等各种军事机械中,为战争的胜利做出了重要贡献。这一时期的生产转型不仅展现了公司的社会责任感,也进一步提升了其在行业内的地位和影响力。

Eagle Plastic Devices公司的发展小趣事

为了保持技术领先地位和满足不断变化的市场需求,Eagle Plastic Devices公司不断加大研发投入,引进先进的研发设备和人才。公司建立了完善的研发体系,包括新产品开发、工艺改进、性能测试等环节。通过不断的技术创新和产品升级,Eagle Plastic Devices公司成功推出了多款具有竞争力的新产品,进一步巩固了其在行业内的领先地位。

Advanced Technology Corp公司的发展小趣事

ATC公司深知质量管理对于企业发展的重要性。因此,公司建立了严格的质量管理体系,从原材料的采购到产品的生产、检测、包装等环节都进行严格控制。此外,ATC公司还注重员工的培训和教育,提升员工的质量意识和技能水平。这些措施确保了ATC公司产品的稳定性和可靠性,赢得了客户的信任和好评。

Corning Cable Systems公司的发展小趣事

在深海光缆领域,Corning Cable Systems公司也展现出了强大的实力。公司成功研发出适用于深海环境的光缆产品,并在多个国际项目中得到了广泛应用。这些深海光缆不仅具有优异的传输性能,还能够在极端恶劣的海底环境下保持长期稳定运行,为跨洋通信提供了可靠的保障。

Hendon Semiconductors公司的发展小趣事

随着电子产品的不断小型化和集成化,表面贴装技术(SMT)成为了电子制造行业的重要趋势。Hendon Semiconductors紧跟这一趋势,不断提升其表面贴装和精密制造能力。公司引进了先进的生产设备和测试仪器,确保产品的质量和可靠性。同时,Hendon Semiconductors还加强了对生产过程的监控和管理,通过严格的质量控制体系确保每一片电路板都符合客户的要求。

Abilis Systems公司的发展小趣事

随着全球化进程的加速和国际贸易的不断发展,Hendon Semiconductors积极实施全球化战略,不断拓展国际市场。公司加强与国际客户的合作与交流,了解他们的需求和期望,并根据市场变化调整产品结构和市场策略。同时,Hendon Semiconductors还积极参与国际展会和技术交流活动,展示其最新的技术和产品成果,提升品牌知名度和影响力。通过一系列有效的市场拓展措施和全球化战略的实施,Hendon Semiconductors在国际市场上取得了显著的成绩和突破。

问答坊 | AI 解惑

求教高人帮忙讲解以下电路

file:///C:/Documents%20and%20Settings/new/桌面/升压电路.JPG 将双向二级管DN101输出级与稳压电路断开通电后量测DN101阴级输出级出来的电压为输入电压两倍24V,可以判断由PWM控制U101及开关管Q1,C10,双向二级管DN101组成倍压电路,但不清楚它的具 ...…

查看全部问答>

国外汽车音响的新技术

国内市场上,尽管汽车音响节目源有所扩展,从单一的收音,磁带两用机发展到加入单碟或自动换片的多碟CD机,但对小汽车音响功放来说却基本变化不大,仍为以收音机,磁带机和CD机组成的一体化音响。此类一体化音响,无论生产商标出2*35W还是200W+200W,其实仍 ...…

查看全部问答>

startio和dpcforisr之间会打乱彼此的执行吗?

startio和dpcforisr之间会打乱彼此的执行吗? 在调试的过程中发现有dpcforisr打乱了startio。…

查看全部问答>

sd卡时钟线在调试中的一点理解(硬件)

这两天对一个2410的板子上sd卡做了一个底层硬件测试。 sd卡的数据读写会经常出现错误,而且错误的地方很固定。 后来查了很久,发现sdclk(时钟线)被示波器的探头一接触,读写立即就正常了。我的理解:示波器探头相当于对地电容。 依据这一情况 ...…

查看全部问答>

TL16C754C 扩展串口

请问各位,还有人做过tl16c754c的扩展串口驱动。我现在的驱动在16c554上改的(原来的驱动工作正常),现在这个驱动当波特率在57600以上时,每次发送超过26个以上字符时就乱码,报帧错误。晶振工作正常。各位兄弟,还有碰到和我一样的问题?…

查看全部问答>

Wince 6.0下触摸屏单击出快捷菜单的问题

我从Wince 5.0平台上移植了一个ADS7846触摸屏驱动(该驱动在CE5下完全正常),而在CE6.0上的点击触摸屏也会出现长按才会出现的快捷菜单,感觉是触摸屏的按下的操作被系统认为长按了。另外我的USB鼠标也碰到了类似的问题:左键单击会出现长按左键或 ...…

查看全部问答>

TW6802驱动的问题

在弄6802视频驱动的时候,为什么总是不能有VDMAPI中断呢…

查看全部问答>

sst39vf1601挂掉了。。。

唉,sst39vf1601芯片坏了 ------------------------------------------------------------ jflash-s3c44b0x v1.0 (2003-8-26) origin made by J.D&T Co.,Ltd ( You Young-chang ) origin made by ATMEL Co.,Ltd modified by Yun Duck Bea === ...…

查看全部问答>

求教:platform builder 4.2安装之后,build时出错can't find cebuild.bat

错误如下: Generating platform header files...   VcSpawn: could not find \'cebuild.bat\' Error PB2504: Error spawning cebuild.bat 希望高手指点…

查看全部问答>

为了团购开发板 分享一个关于LCD12864的心得

调试12864的时候 尝试编写竖写字符的库函数时发现英文字符和数字可以显示 汉字不能显示 调试多次 最后发现是因为汉字是全角字符 需要连续送两字节数据才可以在12864液晶上显示.....将子函数改写为连续送入两位后 问题解决 可惜这个子函数不能用于竖 ...…

查看全部问答>