历史上的今天
今天是:2024年10月14日(星期一)
2019年10月14日 | PIC单片机循环程序应用实例
2019-10-14 来源:eefocus
在这里介绍一种定时程序,说明循环程序在PIC单片机上的应用。笔者仍以PIC16F84单片机为例建立其定时源程序清单。该定时器源程序只需改变一条指令的常数设置,即可使定时时间从分钟级到38小时的连续变化(4MHz晶振条件)。PIC16F84单片机的硬件电路,请见本报第32期实验编程器101实验板电路。在该实验板电路上,若读者改变晶振的频率(2MHz、1MHz、500kHz)等,很易直观看出定时时间成比例相应地增加,这对了解PIC单片机的性能十分直观有趣。若在该源程序上再多设置一次循环,可使定时时间长达1月以上。
该PIC16F84单片机定时源程序可直接在MPLAB集成开发环境软件下进行汇编,其汇编后生成的HEX文件可在实验编程器101上对源程序进行固化并可在相应的实验板上直接观察实验的结果。PIC16F84单片机时的源程序清单如下(文件各可自定义):
LIST P=PIC16F84
#INCLUDE P16F84INC
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 ;程序结束
说明:该源程序中常数设置可由读者任意改变,改变之后即可达到任意时间的设定。
史海拾趣
|
file:///C:/Documents%20and%20Settings/new/桌面/升压电路.JPG 将双向二级管DN101输出级与稳压电路断开通电后量测DN101阴级输出级出来的电压为输入电压两倍24V,可以判断由PWM控制U101及开关管Q1,C10,双向二级管DN101组成倍压电路,但不清楚它的具 ...… 查看全部问答> |
|
国内市场上,尽管汽车音响节目源有所扩展,从单一的收音,磁带两用机发展到加入单碟或自动换片的多碟CD机,但对小汽车音响功放来说却基本变化不大,仍为以收音机,磁带机和CD机组成的一体化音响。此类一体化音响,无论生产商标出2*35W还是200W+200W,其实仍 ...… 查看全部问答> |
|
这两天对一个2410的板子上sd卡做了一个底层硬件测试。 sd卡的数据读写会经常出现错误,而且错误的地方很固定。 后来查了很久,发现sdclk(时钟线)被示波器的探头一接触,读写立即就正常了。我的理解:示波器探头相当于对地电容。 依据这一情况 ...… 查看全部问答> |
|
请问各位,还有人做过tl16c754c的扩展串口驱动。我现在的驱动在16c554上改的(原来的驱动工作正常),现在这个驱动当波特率在57600以上时,每次发送超过26个以上字符时就乱码,报帧错误。晶振工作正常。各位兄弟,还有碰到和我一样的问题?… 查看全部问答> |
|
我从Wince 5.0平台上移植了一个ADS7846触摸屏驱动(该驱动在CE5下完全正常),而在CE6.0上的点击触摸屏也会出现长按才会出现的快捷菜单,感觉是触摸屏的按下的操作被系统认为长按了。另外我的USB鼠标也碰到了类似的问题:左键单击会出现长按左键或 ...… 查看全部问答> |
|
唉,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 希望高手指点… 查看全部问答> |
|
调试12864的时候 尝试编写竖写字符的库函数时发现英文字符和数字可以显示 汉字不能显示 调试多次 最后发现是因为汉字是全角字符 需要连续送两字节数据才可以在12864液晶上显示.....将子函数改写为连续送入两位后 问题解决 可惜这个子函数不能用于竖 ...… 查看全部问答> |




