案例4-定时器综合应用
第四讲 定时器及其应用PPT教学课件
2020/12/10
13
√ 移动的文字----左移
2020/12/10
14
设计步骤:
1、新建一个基于文档视图的应用程序,为视图 类添加int类型的成员变量 m_x,并在构造函 数中完成其初始化;
2、为WM_CREATE消息添加消息处理函数; 3、为WM_TIMER消息添加消息处理函数; 4、为OnDraw函数添加代码; 5、为WM_DESTROY消息添加消息处理函数。
CView::OnTimer(nIDEvent); }
2020/12/10
22
CView::OnTimer(nIDEvent); }
2020/12/10
18
void CMoving_wordsView::OnDraw(CDC* pDC) {
CMoving_wordsDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CRect rect; GetClientRect(rect); CString str="南昌航空大学"; pDC->TextOut(m_x,rect.bottom/2,str); }
4、为停止按钮添加处理程序
void CClockDlg::OnButton1() { // TODO: Add your control notification handler code here
KillTimer(1); }
2020/12/10
11
举例3:移动的文字
2020/12/10
12
移动的文字----左移 移动的文字----右移 移动的文字----对角线移动
定时器应用举例
TEST0: JB P3.2,TEST0 ;检测是否到a点 SETB TR0 ;到a点,TR0 = 1,做好取计时值准备。
TEST1: JNB P3.2,TEST1 ;检测是否到1点 SETB TR1 ;到1点T0计时;TR1 = 1,做好T1计时准备。
TEST2:JB P3.2,TEST2 ;检测是否到2点 CLR TR0 ;到2点,停止T0计时,T1开始计时。
;T0:模式3,计数方式 ;T1:模式2,定时方式 ;一旦加1,马上溢出,申请中断 ;TH0初值 ;根据波特率要求而定
低频信号发生器驱动程序
设计一个控制程序,使89c51的P1口输出8 路低频方波脉冲,频率分别为100,50, 25,20,10,5,2,1Hz。
1. 计算定时器初值
使用T0,产生5ms的定时,若晶振选12MHz,则5ms相当于 5000个机器周期,T0应工作在模式1,初值x为: x= 655365000=60536,用十六进制表示,则x=0EC78H。 (注意TH,TL分开赋值---因为T0/T1都是16位)
分析: 目的:1) 增加一个外部中断; 2) 使P1.0输出一个方波。 条件:1)两个外部中断源已被使用 2)定时器T1已用于串行口波特率发生器
因此:可利用定时/计数器T0,使之工作在模式3, 1)利用TL0扩展外部中断源 2)利用TH0作定时器使用,输出方波
设置初值: 1) TL0 = 0FFH 2) 因为输出方波f = 5kHz,故方波周期为 200us,用TH0产生100us的定时,故TH0的 初值X = 256 – (定时时间/机器周期) = 256 - (100us*晶振频率/12) = 156 设定T0工作方式,TMOD,TCON.
例3、使用定时器0以工作方式2产生100us定 时,在P1.0输出周期为200us的连续方波脉 冲,已知晶振频率fosc=6MHZ。
第6章定时器及应用分析PPT课件
解:2)确定工作模式寄存器TMOD的值 ∵ 定时器T1工作于模式1的定时器工作方式, ∴ 高四位: GATE=0,C/T=0,M1M0=01 ,低四位:取0。 ∴ (TMOD)=0001 0000 B = 10H
3)编程
MOV SETB LOOP:MOV MOV JNB CLR CPL SJMP
28
(2) 计算计数初值 因为: (216-X)×12×10-6 ×1/12=50×10-3 所以: X=15536=3CB0H 因此: TH0=3CH,TL0=B0H
(3) 10次计数的实现 设计一个软件计数器,初始值设为10。每隔 50ms定时时间到,产生溢出标志TF0,程序查询 到TF0=1,则软件计数器减1。这样减到0时就获 得了500ms的定时。
• T0为方式0, M1M0=00 • 定时工作状态, C/T=0 • GATE=0,不受INT0控制, • T1不用全部取“0”值。 • 故TMOD=00H
25
第二步: 计算1ms定时的初值X
设初值为X,则有: (213-X) ×12×10-6 ×1/12=1×10-3 可求得:X=8192-1000=7192
第6章 定时器及应用
§6.1 定时器概述 §6.2 定时器的控制 §6.3 定时器的四种模式及应用 §6.4 思考题与习题
*
6.1 定时器概述
• 89C51/S51/S51单片机片内有两个16位定时器/计数器 定时器0(T0) 定时器1(T1)。
• 定时和事件计数 • 用于定时控制、延时、对外部事件计数和检测等场合。
& INT0引脚接一脉冲可 测脉宽
22
模式 1 工作特点
• 该模式对应的是一个16位的定时器/计数器。
定时器的应用课件
定时器在交通领域的应用之一是控制交通信号灯的亮灭时间,保障交通秩序和安 全。
公共交通
公共交通车辆的到站时间、发车时间等也需要通过定时器进行精确控制,提高公 共交通的便利性和准时性。
计算机与网络领域的定时器应用案例
网络爬虫
任务调度
05
定时器的未来展望
定时器技术的发展趋势
智能化
精准化
多样化
定时器在物联网中的应用前景
智能家居 工业自动化 农业智能化
定时器在人工智能领域的应用前景
机器人控制
01
无人驾驶
02
虚拟现实
03
ห้องสมุดไป่ตู้
THANK YOU
软件定时器种类
介绍常见的软件定时器库或工具,如 C中的chrono库、Python中的time 库等。
定时任务调度
说明如何使用软件定时器来调度定时 任务,如每日、每周或每月的任务。
定时任务实现
提供实现定时任务的示例代码,包括 时间间隔计算、任务触发等。
软件定时器优势与限制
分析软件定时器的优点和局限性,以 及适用场景。
地铁列车
地铁列车的发车和到站时间可以 通过定时器进行精确控制。
高速公路收费站
使用定时器可以设定收费站的开 放时间,方便车辆通行。
计算机与网络领域
网络服务 任务调度 自动更新
03
定时器的使用方法
硬件定时器的使用方法
01
硬件定时器种类
02
定时器设置
03
定时器启动与停止
04
定时器精度
软件定时器的使用方法
家电领域
空调
洗衣机 烤箱
工业控制领域
自动化生产线
《定时器及应用举例》课件
。
设置触发条件
根据应用需求设置定时器的触 发条件,如时间到达、外部信 号触发等。
设置时间间隔
根据应用需求设置定时器的时 间间隔,如每隔一定时间触发 一次。
保存设置
完成设置后保存相关参数,确 保定时器能够按照预设参数进
行工作。
04
定时器的应用举例
软件编程
01
02
03
04
选择编程语言
根据定时器的厂商提供的编程 语言进行编程。
编写程序
根据应用需求编写程序,设置 定时器的触发条件、时间间隔
等参数。
调试程序
通过模拟或实际测试,对程序 进行调试,确保定时器能够按
照预期工作。
下载程序
将编写好的程序下载到定时器 中进行测试或实际应用
用于控制室内温度,实现 自动开关机,节省能源。
冰箱
用于控制冷藏和冷冻室的 温度,保持食物的新鲜度 。
洗衣机
用于控制洗涤和漂洗的时 间,实现自动化洗衣。
工业控制领域应用举例
自动化生产线
仪器仪表
用于控制生产线的启动和停止,保证 生产过程的稳定性和效率。
用于控制和监测各种工业设备的运行 状态和参数。
不要将电源直接连接到定时器的输出端,以防设 备损坏和火灾风险。
使用注意事项
设置时间
在设置定时器时间时,确保时间设置正确,避免误操作导致设备 无法正常工作。
安装位置
确保定时器安装在通风良好、干燥、无尘的地方,以防设备过热或 受潮。
定期校准
定期检查和校准定时器,以确保其准确性和可靠性。
维护与保养
清洁外壳
03
定时器的使用方法
北京信息科技大学单片机原理与应用实验4实验报告
实验报告课程名称单片机原理与应用实验项目串行通信指导教师学院信息与通信工程 _ 专业电子信息工程班级/学号学生姓名实验日期成绩______________________一、实验目的1、掌握串行口编程控制方法;2、掌握串口调试和仿真器的烧写方法;3、综合应用定时器、串行接口及中断等。
二、实验内容1、编写一个程序, 利用单片机的串行口向PC机循环发送0x55。
三、编写一个程序, 每当串行口接收到PC机发送的0x55(ASCII码为字母U)时, 返回一个0x41(ASCII码为字母A)。
在PC机一端, 以接收窗口收到0x41为完成(可以循环此过程)。
四、PC机向单片机发送0—9(无需编程, 在DPFlash的串口调试软件下配置即可), 单片机在接收到数据后送数码管显示;同时, 单片机每隔0.5S向PC机发送a—z的ASCII码(0x61~0x7a, 每秒发2个), 在PC机的串口调试软件中显示结果。
五、实验步骤1、新建工程, 编写程序, 实现通过串行口向PC机发送0x55(可采用串口模式1, 波特率2400), 注意工程的环境变量设置, Target窗口下code和xdata memory设置为空, 无须加入startup.A51, Output窗口下选中CreateHex选项, 编译生成HEX文件。
2、阅读网上的实验指导书及下面的说明, 掌握DPFlash软件的使用, 掌握仿真器的两种工作方式使用。
仿真器拨到load方式, 打开DPFlash软件,文件菜单中选择装载, 加入编译生成的*.HEX文件, 点击编程按扭, 使用默认配置即可, 烧入仿真器的Flash中。
3、关闭电源, 将仿真器拨到run方式, 并将连接在仿真器上的PC串口通信电缆拔下, 然后与实验仪上的单片机串口相连。
开机复位后将自动运行单片机程序, 在PC机的DPflash软件中的串口调试器下观察结果。
编写程序实现单片机接收到PC机发来的0x55后回送0x41,在串口调试软件的处理字符串中发送0x55,可以选中下栏的自动发送单选框来实现每隔1S发送一次, 观察结果。
6.4 定时器计数器综合应用举例
LOOP1:ACALL D200 : TAB:DB 0FEH,25H,02H,0FEH,25H,02H : DJNZ R2, LOOP1 DB 0EH,25H,04H,0FDH,80H,04H INC DPTR DB 0FEH,84H,02H,0FEH,84H,02H AJMP LOOP DB 0FEH,84H,04H,0FEH,25H,04H D200: MOV R3, #81H : DB 0FEH,25H,02H,0FEH,84H,02H D200B:MOV A, #0FFH : DB 0FEH,0C0H,04H,0FEH,0C0H,04H D200A:DEC A : DB 0FEH,98H,02H,0FEH,84H,02H JNZ D200A DB 0FEH,57H,08H,00H,00H,04H DEC R3 DB 0FFH,0FFH CJNE R3, #00H,D200B END RET
SERVE: MOV TL0,#0B0H MOV TH0,#3CH DJNZ B,LOOP CLR TR0 LOOP: RETI END
端出现的正脉冲宽度。 例2:测量在 :测量在(P3.2)端出现的正脉冲宽度。 端出现的正脉冲宽度 P3.2
T
分析:利用门控制位 实现对定时器/ 分析:利用门控制位GATE实现对定时器/计数器的 实现对定时器 /停控制 来测量脉冲宽度。 停控制, 启/停控制,来测量脉冲宽度。 当GATE为1,TR1(TR0)为1时,只有 为 , 为 时 只有INT1(INT0)引 引 脚输入高电平时, 才允许计数。 脚输入高电平时,T1(T0)才允许计数。 才允许计数 当GATE为0,只要 为 ,只要TR1(TR0)为1时,T1(T0)就允许 为 时 ) 计数。 计数。 利用GATE=1时的这个功能,可测试 时的这个功能, 利用 时的这个功能 可测试INT1(P3.3)和 和 INT0(P3.2)上正脉冲的宽度。 上正脉冲的宽度。 ( 上正脉冲的宽度
定时计数器与中断综合应用举例
例题:时钟计时程序设计。
所谓时钟计时,就是以秒、分、时为单位进行的计时。
可以把该程序看成是定时器/计数器与中断应用的典型代表,就算是对这两部分内容的复习。
⑴MCS-51单片机实现时钟计时显示的基本方法①首先要计算计数初值时钟计时的关键问题是秒的产生,因为秒是最小时钟单位,但使用MMCS-51的定时器/计数器进行定时,即使按工作方式1,其最大定时时间也只能达到131毫秒,离1秒还差好远。
为此,我们把秒计时用硬件定时和软件计数相结合的方法实现,即:把定时器的定时时间定为125毫秒,这样当计数溢出8次就可得到1秒,而8次计数可用软件方法实现。
为得到125ms定时,我们可使用定时器/计数器0,以工作方式1进行,当设定单片机为6MHz晶振,设计数初值为X,则有如下等式:(216-X)×2us=125000us计算得计数初值X=3036,二进制表示为0000101111001101,十六进制表示为0BCDH。
②定时器定时采用中断方式完成,以便于通过中断服务程序进行溢出次数(每次125毫秒)的累计,计满8次即得到秒计时。
③通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时④设置时钟显示及显示缓冲区假定时钟时间在六位LED数码管(LED5~LED0)上进行显示(时、分、秒各占两位)。
为此,要在内部RAM中设置显示缓冲区,共6个单元(79H~7EH),与数码管的对应关系为:LED5→7EH、LED4→7DH、LED3→7CH、LED2→7BH、LED1→7AH、LED0→79H。
即显示缓冲区从左向右依次存放时、分、秒的数值。
⑤假定已有LED显示程序为SMXS可供调用⑵程序流程①主程序(MAIN)主程序的主要功能是进行定时器/计数器的初始化编程,然后通过反复调用显示子程序的方法,等待125ms定时中断的到来。
②中断服务程序(PIT0)中断服务程序的主要功能是进行计时操作。
程序开始先判断计数溢出是否满了8次,不满8次表明还没达到最小计时单位秒,中断返回;如满8次则表明已达到最小计时单位秒,程序继续向下执行,进行计时操作。
《二、 使用定时器 》作业设计方案-高中信息技术人教版选修1
《使用定时器》作业设计方案(第一课时)一、作业目标本次作业旨在帮助学生掌握定时器的使用方法,了解定时器的各种属性,并能够在实际操作中灵活运用。
二、作业内容1. 任务一:使用定时器实现一个简单的动画效果。
要求学生在指定的时间内(例如,5秒钟)触发一个动画效果,展示定时器的使用方法。
2. 任务二:通过设置定时器的属性,实现一个动态效果。
例如,通过调整定时器的间隔时间、延迟时间等属性,实现一个动态文本的显示效果。
3. 任务三:完成一个定时器的综合应用。
要求学生结合所学知识,设计一个能够根据用户输入的时间信息,自动触发相应操作的程序。
三、作业要求1. 独立完成:学生需独立完成作业,不得抄袭或借助他人完成。
2. 实践操作:作业应以实践操作为主,要求学生通过实际操作掌握定时器的使用方法。
3. 提交作业:学生需将作业成果以电子文档的形式提交,并注明完成时间、姓名等信息。
四、作业评价1. 评价标准:根据学生提交的作业成果,对其在任务一中的动画效果展示、任务二中的动态效果设置以及任务三中的程序设计等方面进行评价。
2. 评价方式:采用教师评价与学生互评相结合的方式,结合学生的实际操作情况给出最终成绩。
五、作业反馈在作业反馈环节中,教师将对学生作业中出现的问题进行汇总,并在下次课中进行讲解和指导。
同时,教师也将收集学生反馈,了解学生对作业的完成情况和对知识的掌握程度,以便进一步优化教学方案。
具体来说,对于任务一中的动画效果展示,教师将关注学生是否能够正确设置定时器的开始和停止方法,以及动画效果的流畅度和稳定性;对于任务二中的动态效果设置,教师将关注学生是否能够合理设置定时器的各种属性,从而实现预期的效果;对于任务三中的程序设计,教师将关注学生是否能将所学知识综合运用,实现根据用户输入的时间信息触发相应操作的程序。
同时,教师还将根据学生提交的电子文档格式是否规范、内容是否完整等情况进行评价。
对于存在问题的学生,教师将给予针对性的指导和帮助,以促进学生对知识的理解和掌握。
定时器在项目中的应用案例
定时器在项目中的应用案例1. 网络请求超时处理在项目中,我们经常会使用网络请求来获取数据,但是由于网络不稳定或服务器响应慢,可能导致请求超时。
为了避免用户长时间等待,我们可以使用定时器来设置一个超时时间,当超过指定时间后,自动取消该请求,并给用户提示网络异常。
2. 定时执行数据备份在一些关键数据的处理过程中,为了防止数据丢失或意外情况的发生,我们需要对数据进行定时备份。
通过定时器,可以定期执行备份操作,将数据保存到其他设备或云端,以保证数据的安全性和可恢复性。
3. 定时任务调度在项目中,有些任务需要定期执行,比如定时发送邮件、定时生成报表等。
通过定时器,可以设定任务的执行时间,确保任务按时进行,提高工作效率。
4. 定时提醒功能在一些日程管理或任务管理应用中,我们可以使用定时器来实现定时提醒功能。
用户可以设定提醒时间,当时间到达时,系统会通过定时器触发提醒通知,帮助用户及时完成任务。
5. 定时更新数据在一些实时数据展示的应用中,我们需要定时获取最新的数据,并更新到界面上。
通过定时器,可以设定更新的时间间隔,定期从服务器获取最新数据,并刷新到界面上,保持数据的实时性。
6. 定时自动保存草稿在一些编辑类的应用中,为了避免用户在编辑过程中突然关闭应用或发生意外情况导致数据丢失,我们可以使用定时器来自动保存草稿。
定时器可以设定一定的时间间隔,定期将用户编辑的内容保存到本地,以防止数据丢失。
7. 定时清理缓存在手机应用中,缓存文件会占用大量的存储空间,影响应用的性能和用户体验。
通过定时器,可以定期清理应用的缓存文件,释放存储空间,提高应用的运行效率。
8. 定时检查更新在一些需要频繁更新的应用中,我们可以使用定时器来定期检查应用的更新情况。
定时器可以设定一定的时间间隔,定期检查服务器是否有新版本的应用,以便及时提示用户更新。
9. 定时轮播广告在一些商业应用或网站中,我们经常会看到轮播广告的效果。
通过定时器,可以设定广告切换的时间间隔,定期切换广告内容,吸引用户的注意力,提高广告的曝光率。
自动控制原理综合案例
自动控制原理综合案例案例一:智能家居系统智能家居系统是一种应用自动控制原理的智能化系统,它通过传感器、执行器和控制器等组件,实现对家居设备的自动化控制。
例如,在智能家居系统中,可以通过设置定时器,让窗帘在特定时间自动关闭,或者通过声控功能,用语音命令打开灯光等设备。
这样的系统可以提高家居的舒适性和便利性,节省能源,提高生活质量。
案例二:自动驾驶汽车自动驾驶汽车是一种应用自动控制原理的先进技术,它通过激光雷达、摄像头、传感器等设备,采集道路信息,并通过控制器对车辆进行自动驾驶。
例如,当汽车遇到前方有障碍物时,自动控制系统可以通过传感器检测到并及时采取避障措施,保证行车安全。
自动驾驶汽车的出现,将大大提高交通流畅度和驾驶安全性。
案例三:自动化生产线自动化生产线是一种应用自动控制原理的工业生产系统,它通过传感器、执行器和控制器等设备,实现对生产过程的自动化控制。
例如,在汽车制造工厂中,自动化生产线可以实现对零部件的自动装配和检测,提高生产效率和产品质量。
自动化生产线的应用,不仅提高了生产效率,还减少了人力成本和人为误差。
案例四:智能农业系统感器、执行器和控制器等设备,实现对农作物的自动化管理。
例如,在温室中,可以利用温度传感器和湿度传感器等设备,实时监测环境参数,并通过控制器自动调节温度、湿度和光照等条件,提供适宜的生长环境,提高农作物产量和质量。
智能农业系统的应用,可以有效解决传统农业中的一些问题,提高农业生产效益。
案例五:智能医疗设备智能医疗设备是一种应用自动控制原理的医疗辅助设备,它通过传感器、执行器和控制器等设备,实现对患者的自动化监测和治疗。
例如,在心脏起搏器中,可以利用心电传感器和控制器等设备,实时监测心脏的电信号,并根据设定的参数自动调节心脏的跳动节奏,帮助患者维持正常的心脏功能。
智能医疗设备的应用,可以提高医疗效果和患者的生活质量。
案例六:智能交通系统智能交通系统是一种应用自动控制原理的交通管理系统,它通过传感器、执行器和控制器等设备,实现对交通流量和信号的自动化控制。
《集成定时器的应用》课件
定时器的常用应用
蜂鸣器控制
通过定时器控制蜂鸣器的 开关和频率,用于音频提 示和警报等场景。
LED灯控制
利用定时器实现对LED灯 的亮灭和亮度调节,用于 照明和装饰等用途。
温度测量
结合定时器与温度传感器, 实现周期性测量和监控环 境温度。
定时器的特殊应用
定时睡眠
定时器用于设定睡眠时间,自动调节设备的运行 状态,帮助提高睡眠质量。
定时跳舞灯
通过定时器控制彩灯的闪烁和变化,创造出炫目 的灯光效果,用于舞台表演和娱乐场所。
基于STM32F1的定时器演示
• 硬件连接: 连接STM32F1开发板和外部组件,如按钮、LED灯等。 • 软件配置: 设置定时器相关的寄存器和参数,以实现期望的计时功能。 • 定时器实现: 编写程序代码,利用定时器控制外部组件的状态和行为。
总结
定时器的应用具有广泛的优势,未来发展潜力巨大。为了更好地掌握定时器, 建议进行深入学习和践行。
Q& A
1 常见问题解答
解答学员对定时器的常见问题,帮助学员更好地理解和应用。
2 提问环节
提供学员提问的机会,促进互动和知识的交流。
《集成定时器的应用》PPT课 件
探索集成定时器的应用领域,了解定时器的特殊应用和常见应用,并展示基 于STM32F1的定时器演示。
定时器概述
定时器是一种用于测量和控制时间的设备,根据其用途和功能可以分为不同类型,了解定时器的定义和 分类。
定时器的应用场景
定时器广泛应用于电源管理、通信协议和数据存储等领域,深入了解这些应 用场景。
定时器功能实例
定时器功能实例5.1 定时1秒报警程序介绍:定时器1每隔1秒钟将p1.o的输出状态改变1 次,以达到定时报警的目的。
实际应用例如:定时报警器。
程序实例(DIN1.ASM):ORG 0000HAJMP MAINORG 000BHAJMP DIN0 ;定时器0入口MAIN:TFLA G EQU 34H ;时间秒标志,判是否到50个0.2秒,即50*0.2=1秒MOV TMOD,#00000001B;定时器0工作于方式1MOV TL0,#0AFHMOV TH0,#3CH ;设定时时间为0.05秒,定时20次则一秒SETB EA ;开总中断SETB ET0 ;开定时器0中断允许SETB TR0 ;开定时0运行SETB P1.0LOOP: AJMP LOOPDIN0:;是否到一秒//////////////////////////////////////// INCC: INC TFLAGMOV A,TFLAGCJNE A,#20,REMOV TFLAG,#00HCPL P1.0;////////////////////////////////////////////////// RE:MOV TL0,#0AFHMOV TH0,#3CH ;设定时时间为0.05秒,定时20次则一秒RETIEND5.2 频率输出公式介绍:f=1/ts51 使用12M晶振,一个周期是1微秒使用定时器1工作于方式0,最大值为65535,以产生200HZ的频率为例:200=1/t:推出t=0.005 秒,即5000 微秒,即一个高电平或低电平的时间为2500 微秒。
这样,定时值应设为65535-2500=63035,将它转换为十六进制则为:F63B。
具体程序请看f200.asm频率递增:200HZ:63035:F63B250HZ:63535:F82F300HZ:63868:F97C5.3 200HZ频率输出程序介绍:利用定时器定时,在P1.0 口产生200HZ的频率输出。
定时器及其应用
(3)主要参数的计算 ① 输出高电平的脉宽tW1为C充电所需的时间 tW1=0.7(R1+R2)C ② 输出低电平的脉宽tW2为C放电所需的时间 tW2=0.7R2C ③ 振荡周期 T=tW1+tW2=0.7(R1+2R2)C
第6页/共9页
4. 555定时器的应用实例
(1)555触摸定时开关 集成电路IC1是一片555定时电路,在这里接成单稳态电路。平时由于触
第8页/共9页
谢谢大家观赏!
第9页/共9页
第4页/共9页
3. 用555定时器构成多谐触发器
(1)电路组成 用555定时器构成的多谐振荡器如图7-5所示。其中电容C经R2、T构成 放电回路,而电容C的充电回路却由R1和R2串联组成。为了提高定时器的比较电 路参考电压的稳定性,通常在5脚与地之间接有0.01μF的滤波电容,以消除干扰。 (2)工作原理 刚接通电源时,由于 电容C上的电压Uc为0,电路输出U0为高电平,放电管 T截止,处于第1暂稳态。之后VCC通过R1、R2对C充电,使Uc上升,当Uc≥UB时,触 发器置0,输出U0为低电平, 此时,放电管T由截止变为导通,进入第2暂稳态。 C经 R2和T开始放电,使Uc下降,当Uc≤UA时,电路又翻转置1,输出U0回到高电平,T截止, 回到第1暂稳态。之后上述充、放电过程被再次重复,从而形成连续振荡。
项目二 集成定时器应用举例
1. 用555定时器构成单稳态触发器
(1)电路组成 用555构成的单稳态触发器如图7-3(a)所示。图a中R、C为定时 元件构成单稳态触发器的定时电路;0.01μF电容为滤波电容。 (2)工作原理 ① 稳态 当未加触发信号Ui为高电平时,接通电源后,VCC首先通过R对C充电, 使Uc上升,当Uc≥UB时,触发器置0,输出U0为低电平,放电管T导通,此后,C又通 过T放电,放电完毕后, Uc和U0均为低电平不变,电路进入稳态。 ② 暂稳态 当触发脉冲Ui的负窄脉冲触发后,由于Ui<UA,触发器被置1,输出U0 为高电平,放电管T截止,电路进入暂稳态,定时开始。VCC通过R向C充电,电 容C上的电压Uc按指数规律上升,趋向VCC。当Uc≥UB时,触发器置0,输出U0 为低电平,放电管T导通,定时结束。电容C经T放电,Uc下降到低电平, U0维持 在低电平,电路恢复稳态。
项目五定时计数器综合应用课件.ppt
➢ 任意2个控制码输出间隔为1s,因此可以利用T0(或 T1)定时功能,每1s后,根据阶段标志判断输出下一 个控制码。
霓虹灯模拟控制程序
采用T1定时器
➢ 在方式1(晶振频率为6MHz)下,T1定时最大为 131.072ms,为了定时1s,采用硬件定时加软件计数 方式,即设置T1定时100ms,软件计数10次。
计数溢出时,13位加1计数器为0,TF0由硬件自 动置1,并申请中断,同时13位加1计数器继续从 0开始计数。
方式0应用示例
在P1.0输出周期为1 ms(频率1kHz)的方波,采用定时器1 方式0设计程序,晶振频率为12MHz。
➢ 使P1.0每隔500s取反一次即可得到周期1 ms的方波,T1的定时 时间为T=500s;
定时器/计数器0方式2逻辑结构如图所示
振荡器 12分频 C/T=0
T0(P3.4) TR0
GATE 1 INT0(P3.2)
C/T =1
& ≥1
TL0 (8位)
TF0
重新装入
TH0 (8位)
中断
T0方式3逻辑结构
T0分为两个独立的8位加1计数器TH0和TL0。
➢ TL0既可用于定时,也能用于计数; ➢ TH0只能用于定时。
生产线自动打包控制电路
用LED模拟打包机;
用按钮模拟零件通过一个装有光电传感器的传输带传送, 产生一个脉冲信号,向单片机发出一个计数脉冲信号。
VCC
C3
10uF
GND
R9
10k
C1 30pF X1
CRYSTAL
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8051 定时/计数器-编程
• • • • • • • •
#include "reg51.h" #define COUNT 50000 void T0_ISR(void) interrupt 1 { //TF0=0; TH0=(65536COUNT)/256; TL0=(65536COUNT)%256; //中断程序添加 处 }
• 对应的外部计数引脚为如图: – Pin14(T0) – Pin15(T1)
• 8位还是16位 • 定时还是计数等 – 赋计数初值 • 计数可从任意值开始,因此应根据 具体要求确定计数初始值 – 启动计数器 • 初始化完成后,定时/计数器需要 启动,一启动就开始硬件计数,计 数完成自动产生溢出标志,CPU根 据溢出标志执行预先约定的操作。
• 【赋计数初值】 • 8051单片机计数方式:递增溢出;若采 用16位计数 – 问题:若要加50000次出现溢出,则 计数初值应如何确定?
– 十进制计数初值 • 65536-50000=15536
– 因此本例的计数初值为 – 十六进制计数初值 – TH=0x3C;//15536的高8位 • (15536)D=0x3CB0 – TL=0xB0;//15536的低8位 • 但8051单片机为8位机,它是通 过两个8位寄存器来存储16位计 数初值,即 – 但此方法涉及十进制到十六进 • TH:高8位计数值(初值) 制转换过程,操作不便。可考 虑采用其它手段实现。 • TL:低8位计数值(初值)
• 启动定时器(TR0=1)后,T0从计数初值处对机 器周期进行硬件递增计数;当计至 TH0=0xff,TL0=0xff后,再计1次则定时器产 生溢出(溢出标志TF0=1): • 此时 – 若中断允许(ET0=1且EA=1)
• 则CPU立即停止当前程序 • 自动跳转到T0对应的中断入口(中断号为1 的ROM保留地址0x000B)处 • 硬件自动清溢出标志(TF0=0) • 执行中断服务程序 • 中断服务程序执行完后回原执行程序处;
• 另该延时采用软件等待方式实现,延时过程中, CPU不执行任何“有用”操作,对其后的任务执 行会产生影响。
延时时间测量方法
#include "reg51.h" #define N 1 sbit P1_0=P1^0; void delay(unsigned char n) { unsigned char i; for(i=0;i<n;i++) ; } void main(void) { P1_0=0; while(1) { P1_0=~P1_0; delay(N); } }
y1=32.82+17.34*x1(us) y2=41.79+26.01*x2(us)
• 若要实现1S的延时,N的数值约为多少? • X2=(1000 0000uS-41.79uS)/26.01=38445 • 但这种估计建立在特定的晶振频率基础上;若晶振频率改变,规律得重新进 行实验,相当繁琐。
ay函数延时的缺陷
• M1 M0:计数方式(位数)定义
8051 定时/计数器-工作方式
定时/计数器工作方式 M1 M0 方式 功 16位定时器/计数器 常数自动载入的8位定时器/计数器 仅适用于T0,两个8位定时器/计数器 能
0
0 1 1
0
1 0 1
0
1 2 3
13位定时器/计数器,TL存低5位,TH存高8位
• 【定义工作方式】 – 要求:试定义T0为16位内部定时方式 • TMOD=**** 0001B 即:TMOD=0x01;//TMOD=0000 0001B • 以上语句的实际功能是:定义T0为16位内部定时方式,同时修改 T1为13位内部定时方式。这样就改变了T1的工作方式。 – 要求:试定义T0为16位内部定时方式,而保持T1原有的工作方式。 • TOMD=(TMOD&0xf0)|0x01;
– 启动后,定时器开始硬件计数,计数满产生溢出标志
• TF0:高电平有效 • TF1
8051 定时/计数器-中断原理
• 【定时器中断控制】
– 8051单片机为T0、T1设置了中断机制。即当计数溢出(TF=1)时CPU可 停止当前的任务,自动跳转到对应(固定)的入口地址处,执行中断 服务程序(ISR:Interrupt Service Routine),等中断服务程序执行 完成后回到原被中断处继续执行。 • 因此中断服务程序应事先写好,另中断服务程 序是否执行受对应的中断允许位控制 • 中断允许:溢出时自动执行中断服务程序; • 中断不允许:溢出时不执行中断服务程序。 • T0、T1的中断允许控制位见下
8051 定时/计数器-控制位
• 【定时器启动】
– TCON:Timer Control Register
• • • • • • • /* TCON */ #include “reg51.h” sbit TF1 = 0x8F; sbit TR1 = 0x8E; sbit TF0 = 0x8D; sbit TR0 = 0x8C; TR0=1;//Trigger T0启动控制位,高电平有效 TR1=1;
– 若T0中断不允许(ET0=0或EA=0) • 问题: • 1、T0溢出标志TF0与T0中断使能控制位ET0、EA间的关系是什么? • 2、T0溢出时,16位计数器的当前计数值为多少? • 3、T0在中断服务程序内是否计数?
• 则不执行中断服务程序 • 中断标志TF0也不能自动清0)
8051 定时/计数器-计数值重载
案例4 定时器及其应用 ftp://10.28.86.201 用户名:stu 密码:stu
2014.10.16
案例4 定时器及其应用
• 问题提出
–软件延时 –硬件延时
• 定时器应用案例
– 简单应用 – 综合应用 – 工程应用
• 定时/计数器工作原理 • 初始化 • 中断服务程序
问题提出-软件延时函数
• T0的计数是硬件实现的,因此不管在主程序还是中断服务程 序内,计数器都在计数。 • 在进入中断服务程序瞬间,当前计数值为TH0=0、TL0=0,对 于某些实际应用需对计数初值进行重载,方法见下:
• 【方法1】 void T0_ISR(void)interrupt 1 { TH0=(65536-COUNT)/256; TL0=(65536-COUNT)%256; //中断程序 } 先重载计数初值,后执行中断程序 • 【方法2】 void T0_ISR(void)interrupt 1 { //中断程序 TH0=(65536-COUNT)/256; TL0=(65536-COUNT)%256; } 先执行中断程序,后重载计数初值
8051 定时/计数器-计数初值
• 【赋计数初值】 • 其它手段计数初值TH、TL的确定 • #define COUNT 50000//计数次数
– 方法一:位操作
– 方法三:共用体法 union T_C TH0=(unsigned char)((65536-COUNT)>>8); TL0=(unsigned char)((65536-COUNT)&0x00ff);{ unsigned int data16; unsigned char data8[2]; }; void main(void) { – 方法二:对256求整、求余法 union T_C T0_count; T0_count.data16=65536-COUNT; TH0=(65536-COUNT)/256; TH0=T0_count.data8[0]; TL0=(65536-COUNT)%256; TL0=T0_count.data8[1]; }
• • 定时器:如果信号是周期 对于接在定时/计数器上的外部脉冲信号类型, 信号(T),若计数值为n, 处理器是没有办法要求的。因此定时器/计数 则定时时间t=n*T 器的功能分为: • 外部计数:对外部的脉冲信号计数 • 内部定时:对处理器内部的周期信号进行 计数,次数乘以机器周期即为定时时间 因此统一到一点,定时、计数都是计数
• 之前延时采用delay函数实现,而延时时间无法 精确估算,如下:
void delay(unsigned char n) { unsigned char i; for(i=0;i<n;i++) ; } void delay(unsigned int n) { unsigned int i; for(i=0;i<n;i++) ; }
8051 定时/计数器-工作方式
• GATE:门控位(高电平有效)
• 【定义工作方式】 – TMOD:定时器工作方式寄存器, • C/T#:计数/定时器选择控制位 该寄存器不能位寻址。 – 1:外部计数方式 • 高4位:T1工作方式 – 0:内部定时方式 • 低4位:T0工作方式 – 0:启动仅受TR*信号控制 – 1:启动受TR*与INT#引脚信号双 重控制
8051 定时/计数器-计数初值
• 【赋计数初值】 • 8051单片机计数方式:递增溢出; 若采用16位计数 –当计数初值为65535(0xffff) 时,计数1次就溢出 –最少计1次溢出
–当计数初值为0(0x0000)时, 计数65536次后溢出 –最多计65536次溢出
8051 定时/计数器-计数初值
• 定时/计数器 • delay延时函数缺陷 – 定时/计数器是一硬件资源,对应 – 不能实现精确延时 有脉冲输入接口 – 该延时由软件实现,延时期间无 – 计数器:若对应端口上输入非周 法执行其它任务,对于某些特定 期信号,该硬件能实现脉冲计数 时序的任务会造成影响。 • 为此要引入一种由硬件定时的电路 – 定时/计数器
– 计数方式
• 固定递增:加1计数 • 固定递减:减1计数 • 可设置递增、递减
– 脉冲触发方式
• • • • 固定上升沿计数 固定下降沿计数 双沿计数 可设置边沿计数