«
-
»
日
一
二
三
四
五
六
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
点
分
00
30
分
确定
2090
2089
2088
2087
2086
2085
2084
2083
2082
2081
2080
2079
2078
2077
2076
2075
2074
2073
2072
2071
2070
2069
2068
2067
2066
2065
2064
2063
2062
2061
2060
2059
2058
2057
2056
2055
2054
2053
2052
2051
2050
2049
2048
2047
2046
2045
2044
2043
2042
2041
2040
2039
2038
2037
2036
2035
2034
2033
2032
2031
2030
2029
2028
2027
2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006
2005
2004
2003
2002
2001
1 月
2 月
3 月
4 月
5 月
6 月
7 月
8 月
9 月
10 月
11 月
12 月
设为首页
收藏本站
开启辅助访问
登录
立即注册
只需一步,快速开始
首页
Portal
分类
BBS
精品
精品教程
教程
最新
供电设计
直达
会员
联系我
帖子
搜索
图文教程
磁力开关
馈电开关
采煤机
华宁集控
高爆开关
掘进机
视频教程
初入煤电
组合开关
移变低馈
资料下载
书籍
标规
资料
说明书
社区分类
煤电入门
煤电维修
维修电工
电气软件
电子技术
工控自动
本版
文章
帖子
百技闲谈_百技网
»
分类
›
电子技术
›
单片机
›
PIC单片机16F84的内部硬件资源(五)
返回列表
发新帖
PIC单片机16F84的内部硬件资源(五)
[复制链接]
2092
|
0
|
2011-9-7 22:37:09
|
显示全部楼层
|
阅读模式
<
PIC
单片机
16F84的内部硬件资源(五)
7 延时和定时
在设计单片机应用系统时,经常会遇到需要使某一过程(如加温、加压等)持续一段时间的情况,如连续加压1分钟,通电2分钟等。单片机如何正确确定这段时间呢?这里可通过两种方式,即延时和定时来实现。试看下例。
在应用系统中要求PIC16F84单片机的RAO端控制一个发光二极管按一定频率闪亮,可通过右图的电路来实现。同时还必须为16F84单片机编制一个程序。由电路图可知,要使发光二极管LED按一定的频率闪亮,只要使RAO端输出一个变化的高→低→高……电平即可。由此设计出如下的源程序(清单1):
list P=16F84,F=INHX8M
;……
ORG 0
MOVLW 0 ;主程序开始
TRIS 5 ;置RA口为输出
BCF 5,0 ;RA口0位清零
LOOP:CALL DELAY;闪动延时
COMF 5 ;RA口求反,亮—灭交替
GOTO LOOP ;循环
;……
DELAY ;以下为延时子程序
MOVLW D′50
MOVWF 8
LOOP1:MOVWF 9
LOOP2:DECFSZ 9,F
GOTO LOOP2
DECFSZ 8,F
GOTO LOOP1
RETLW 0
由清单1可知,当主程序开始时,首先将工作寄存器W清零,然后将W寄存器的内容送TRISA寄存器,使其清零,以设置RA口为输出。接着又将RA口的第5位清零,使LED开始时处于熄灭状态。随之持续一段时间,即执行延时子程序,再将RA口取反,变为高电平输出,LED发光,再延时,又使RA口取反,LED熄灭……。这样,LED就一暗一亮,持续交替进行。
在这里,使LED亮、暗持续一段时间是通过单片机执行延时子程序DELAY来实现的。此延时程序的核心就是让单片机的CPU反复执行使寄存器内容减1的指令DECFSZ。即将十进制数50分别装入通用寄存器F8、F9,以进行50×50=2500次的减1操作。如果执行一次DECFSZ指令需1个指令周期(跳转时需2个周期),若设振荡频率为100kHz,即指令周期为40μs,则延时时间为2500×40=100000μs=100ms,即0?1秒。实际上还略为大些。此延时时间已超过人眼的视觉保留时间。因而能看清LED的明、暗交替变化。
如果我们需要更长的延时时间,可仿照上例,装入更大的数或引入多重循环。因此,在原则上,延时时间可根据需要任意延长。
不过,采用延时程序来持续某一过程的方式有缺陷。延时就是使CPU在某几条指令上“转圈”,延时越长,“转圈”数越多,这时,CPU不能再去执行其它操作,如监视温度、湿度等。这在某些实时控制系统中,不允许这样做。为此,在单片机16F84单片机中,专门设置了一个“闹钟”——定时器TMR0。需要某过程延续多长时间,可将其“拨入”TMR0,到时它会发生“中断”,告诉CPU定时时间到。要CPU暂停其它工作,转过来执行“中断子程序”,完成输出开、关信号之类的任务后,再回去执行其中断的工作。这样,就使CPU的工作效率提高。因而,延时的使用有局限性,采用定时器TMR0则可用于各种场合中。
?成都 卫东
知识竞赛试题:
22?以本版上文电路为准,在A1口上接一LED,要使该LED闪亮的延时间隔约为0?4秒,请写出其源程序清单。
单片机
,
pic
,
pic单片机
热帖推荐
电动机综合保护器JDB-80-A电气原理图.pdf
采煤机高压整不上去,无法正常开机故障的处理
采煤机近控无法正常牵引故障的处理
采煤机左、右端头控制站失控的维修
采煤机上电后,机组不能自保的维修
采煤机开机后,高、低压力不稳的维修
采煤机中文显示屏黑屏的维修
中文显示屏显示日期和时间不准确的维修
采煤机左截割电机无法启动的维修
采煤机不能同时使用两台变频器正常牵引割煤
采煤机右端头控制站失控的维修
采煤机主启正常,中文显示屏不显示的维修
相关帖子
•
台达PLC 在净水设备中的应用
•
单片机数据采集模块
•
基于GSM和PIC单片机的无人清洁护理机的设计
•
基于ATmega16单片机的实时温度采集与分析系统
•
啥是单片机
•
单片机的调光控制器设计
•
单片机控制的可控硅全波半控桥触发电路
•
关于单片机控制的电线探测仪的一些问题
•
徐州科达400馈电开关,送电显示单片机连接失败,有知道怎么回事吗?
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
工具仪表
abb
回复楼主
返回列表
电子基础
电子制作
单片机
器件应用
图文推荐
如何升级VIP用户组
2018-01-13
天津华宁KTC101主控器的内部结构
2021-05-14
煤矿电工教程:10、风机开关过流、短路、断相保护工作原理
2022-03-12
软启动器的工作过程
2018-12-26
矿用防爆软启开关教程——13、软启开关近控启动过程
2020-02-15
热门排行
1
KJZ1-200(400)馈电开关原理分析
2
这个电气元件符号你认识吗?
3
煤矿电工教程:10、风机开关过流、短路、断相保护工作原理
4
馈电开关漏电闭锁故障维修_成伟维修笔记1
5
馈电开关漏电闭锁故障的维修_成伟维修笔记7
6
馈电开关漏电试验不跳闸故障维修_成伟维修笔记4
7
煤矿风机开关教程:11、过、欠压保护相关参数的设置
8
煤矿高压防爆开关漏电保护的研究
9
天津华宁KTC101主控器的内部结构
10
高防开关短路跳闸故障的维修_成伟维修笔记8