项目六:使用定时-计数器制作数字时钟_第1页
项目六:使用定时-计数器制作数字时钟_第2页
项目六:使用定时-计数器制作数字时钟_第3页
项目六:使用定时-计数器制作数字时钟_第4页
项目六:使用定时-计数器制作数字时钟_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目六:使用定时/计数器制作数字时钟定时/计数器应用与实践目录/CONTENTS01项目学习目标02项目基本知识03项目技能实训04项目小结01项目学习目标技能目标识别单片机定时/计数器结构及引脚功能(P3.4/T0等)配置工作方式、计算计数初值,识读程序流程图编写、编译、调试应用程序,制作数字时钟电路按照步骤下载程序并调试运行系统知识目标掌握定时/计数器溢出概念、工作原理及内部结构熟悉工作方式寄存器(TMOD)和控制寄存器(TCON)理解与中断系统的协同机制,掌握4种工作方式掌握数字时钟系统的电路原理和程序逻辑素养目标匠心塑造:体会定时器精确性,培养“精益求精”的工匠精神时间养成:依托定时任务,养成珍惜、高效利用时间的习惯诚信培育:关联定时与履责,树立诚实守信的职业品质02项目基本知识-定时/计数器结构与原理内部结构组成(T0/T1)16位计数器:TH0/TL0,TH1/TL1(存放初值/计数值)控制寄存器:TMOD(工作方式),TCON(启停/中断)核心工作原理加1计数:每来一个脉冲,计数器值自动加1溢出中断:计满溢出后置位TF标志,向CPU请求中断两种工作模式定时模式:脉冲来自内部系统时钟(精确计时)计数模式:脉冲来自外部引脚T0/T1(统计外部事件)02项目基本知识-定时/计数器控制开关功能选择开关(C/T位)C/T=0(定时模式):开关拨向内部,计数脉冲来自系统时钟分频。C/T=1(计数模式):开关拨向外部,计数脉冲来自外部引脚T0/T1。启动控制开关(GATE位&TRx位)GATE=0(软件控制):仅由TRx位决定。TRx=1启动,TRx=0停止。GATE=1(软硬件结合):需TRx=1且外部引脚(INT0/1)为高电平。定时/计数器控制逻辑结构示意图02项目基本知识-工作方式0逻辑电路结构图兼容性提示方式0专为兼容早期产品设计,计数范围小且无自动重装,现代应用中通常推荐使用方式1。13位定时/计数器模式(M1M0=00)结构组成与范围由THx(8位)+TLx(低5位)组成,高3位未用。最大计数值为2¹³=8192。工作流程解析装载初值:分别写入THx(高8位)和TLx(低5位)启动计数:TRx=1且GATE条件满足时开始加1溢出中断:计满8192溢出,置位TFx请求中断软件重装:无自动重装功能,需手动重新赋值02项目基本知识-工作方式116位计数器结构(M1M0=01)由THx(高8位)和TLx(低8位)组成,最大计数值为2^16=65536。是最常用的工作方式。工作过程详解装载初值:分别写入THx和TLx启动计数:TRx=1且GATE条件满足溢出中断:计满65536溢出,TFx置1软件重装:无自动重装,需中断服务程序手动重装核心优势计数范围大,定时灵活(微秒级至秒级),是数字时钟等周期性定时的首选。02项目基本知识-工作方式28位自动重装模式(M1M0=10)TLx负责计数,THx保存初值。溢出时硬件自动重装,无需软件干预。工作流程解析1.初值装载同时写入THx和TLx2.启动计数TRx=1且GATE条件满足3.溢出与重装溢出时自动加载THx至TLx4.循环定时周期性计数,精度高特性总结优点定时精确,无软件重装误差;适合波特率发生器。缺点计数范围小,最大值为256,定时时间较短。02项目基本知识-定时初值计算核心计算原理计数初值X=最大计数值M-计数值NM(最大计数值):方式0=8192|方式1=65536|方式2=256N(计数值):N=定时时间t/机器周期TT(机器周期):T=12/fosc(12MHz晶振时T=1μs)实战示例:定时50ms(12MHz,方式1)确定M=65536,计算T=1μs计算N=50ms/1μs=50000计算X=65536-50000=15536(0x3CB0)装载:TH1=0x3C,TL1=0xB0工具辅助计算手动计算繁琐易出错,推荐使用专用工具自动生成THx和TLx值。03项目技能实训-制作数字时钟▌实训任务:基于定时/计数器的数字时钟核心计时逻辑配置定时器1(方式1)产生50ms中断,累计20次中断即为1秒,实现精准计时。四位数码管动态显示将时、分数据编码后,通过动态扫描方式在四位数码管上显示(如12:34显示为1234)。自动进位与清零机制在中断服务程序中处理进位逻辑(60秒进1分,60分进1时),并在24时自动清零。▌任务目标与核心能力知识综合运用:融会贯通定时/计数器、中断系统和数码管显示技术。底层配置掌握:熟练编写定时器初始化代码及中断服务程序(ISR)。周期性任务实现:掌握基于硬件定时器中断的周期性任务调度方法。系统级设计:完成从需求分析到代码实现的完整数字系统开发流程。03项目技能实训-硬件电路设计03项目技能实训-硬件电路设计四位共阴极数码管接口段选端(a~dp):连接至P0口,需外接上拉电阻以确保驱动能力。位选端(1~4):分别连接P3.0-P3.3引脚,用于选通对应位数码管。动态扫描显示原理分时点亮:单片机依次选通每位数码管并输出段码,利用视觉暂留效应实现稳定显示。关键参数:扫描频率需大于100Hz,单点亮时间约1ms,避免闪烁。03项目技能实训-软件程序设计思路延时函数模块(delay)提供毫秒级延时,用于数码管动态扫描核心函数:voiddelay_ms(unsignedintms)数码管显示模块(display)定义共阴极段码表,实现四位数字动态扫描核心函数:display_time(hour,min,sec)定时器1中断模块(timer1_isr)程序核心,实现计时与进位逻辑(60/24进制)核心函数:voidtimer1_isr()interrupt3主函数模块(main)系统初始化入口,配置TMOD/IE寄存器并启动定时器主循环:持续调用display_time刷新显示03项目技能实训-软件程序流程图03项目技能实训-定时器初始化代码main.c-定时器1初始化核心代码voidmain(void){//1.设置定时器1为工作方式1(16位自动重装)TMOD|=0x10;//2.装载50ms定时初值(晶振12MHz)TH1=0x3C;TL1=0xB0;//3.开启中断允许(定时器1&全局)ET1=1;EA=1;//4.启动定时器1TR1=1;while(1){display_time(hour,min,sec);}}配置工作方式(TMOD)设置M1M0为01,将定时器1配置为16位自动重装工作方式。装载定时初值(TH1/TL1)根据晶振频率(12MHz)计算,50ms定时初值为0x3CB0。开启中断允许(ET1/EA)必须同时开启定时器1中断允许位和全局中断总开关。启动定时器(TR1)置位TR1启动定时器,程序进入主循环等待中断触发。03项目技能实训-定时器中断服务函数timer1_isr.c//定时器1中断服务函数,序号3voidtimer1_isr()interrupt3{TH1=0x3C;TL1=0xB0;//手动重装初值count++;if(count>=20){//累计20次(1秒)count=0;sec++;if(sec>=60){sec=0;min++;if(min>=60){min=0;hour++;if(hour>=24)hour=0;}}}}中断入口标识通过`interrupt3`关键字标识,告诉编译器这是定时器1的服务程序。手动重装初值工作方式1无自动重装功能,每次中断需手动给TH1/TL1赋值以维持定时精度。多级进位逻辑累计20次中断(1秒)进1分,累计60分进1时,累计24时清零。通过嵌套的if语句实现完整的计时进位。03项目技能实训-数码管显示代码display_time.c//显示时间的函数,h:小时,m:分钟,s:秒

voiddisplay_time(unsignedcharh,unsignedcharm){//显示小时的十位和个位

DIG1=1;P1=seg_table[h/10];delay_ms(1);DIG1=0;

DIG2=1;P1=seg_table[h%10];delay_ms(1);DIG2=0;//显示分钟的十位和个位

DIG3=1;P1=seg_table[m/10];delay_ms(1);DIG3=0;

DIG4=1;P1=seg_table[m%10];delay_ms(1);DIG4=0;

}参数解析与分解函数接收时、分参数,通过整除(/)和取模(%)运算将数字分解为十位和个位。动态扫描原理依次点亮每一位数码管,输出对应段码后延时1ms熄灭,利用视觉暂留实现稳定显示。扩展与优化当前实现4位显示。如需显示秒,可增加硬件位数或采用时分秒交替显示策略。03项目技能实训-程序流程图解析数字时钟系统工作流程解析系统初始化与主循环配置定时器并启动,进入while(1)循环,持续调用display_time显示初始时间。定时器中断触发定时器每50ms溢出一次,CPU暂停主循环,转去执行中断服务程序。时间更新与中断返回累计中断次数至1秒时更新时间值,随后CPU自动返回主循环继续显示。循环往复协同工作周期性任务(中断)与显示任务(主循环)协同,实现持续计时。03项目技能实训-开发与验证01代码开发与编译在KeilC51环境输入代码并编译,确保无语法错误。勾选生成HEX文件选项,为程序下载做准备。02下载与硬件连接使用下载工具将HEX文件烧录至单片机。检查数码管与单片机接口电路,确认无误后上电。03功能验证与测试观察数码管是否从“0000”开始显示。测试走时精度,验证秒、分、时进位逻辑是否正确。常见问题排查提示若功能异常,请重点检查定时器初始化配置、中断服务程序中的初值重装逻辑以及硬件连接的稳定性。04项目小结核心知识点回顾定时/计数器原理理解加1计数器核心,区分定时模式与计数模式的触发源差异。控制寄存器配置(TMOD/TCON)掌握GATE、C/T、M1M0及TRx位功能,实现工作方式与启停控制。四种工作方式解析重点掌握方式1(16位计数器)和方式2(8位自动重装)的应用场景。定时初值计算方法根

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论