


文档简介
、 ,1 w n日 di o COrn cn 频率是指周期性信号在单位时间 ( 1 s )内变化的次数, 测量频率的仪器 叫频率计。这讲的实验主要介绍怎 样用ATme g a 8和LC D1 6 0 2液晶显示 器组成数字频率计,频率测量范围为 l H z 4 MH z , 通过实验和学习使大家 掌握A T me g a 8 的定时器 计数器的功 能和基本使用方法 。 一 频率涓量原理 频率测量有计数法和测量周期法 这两种方法。计数法是在一定时间间 隔呐 计得信号重复变化的次数, 根 据公式户N T 就可以计算出频率, 为 了方便时间间隔 T通常取 1 s ,这样计 数的结果就是频率 ;测量周期法是先 测量信号的周期,再根据公式产 1 T 即可计算出频率。上述两种测量方法 各有优劣 ,为了提高测量精度,一般 当信号频率较高采用计数法测量 ,而 当频率较低时, 由于计数法有 土1 的误 差 ,这会引起较大的相对误差,因此 在这种情况下就要采用测量周期法。 本文为了简便只介绍计数法一种方法。 =、A k 明拍 的定时器 , 计数器 A T me g a 8 单片机有 3 个定时器 计数器 :两个 8位的 T C 0和 T C 2 , 一 个 1 6 位的T C 1 。 和5 1 系列单片机 不同的是这些定时器 计数器除有通 常的定时和计数功能外, 还具有捕捉、 比较、 P WM输出和实时时钟计数等功 能。本文的实验中只用到T C 0和T Cl 的计数和定时功能。 下面就实例编程 中要用到的有关 知识对 T C 0 和 T C 1 的有关功能进 行介绍,读者在学习时参照配套程序 的相关内容可加深理解。 1 8 位的定时器 计数器 T c 0 TC 0和 TCl 都可以独立的通 过预分频器将单片机的时钟频率分频 后得到时钟源,也可从外部引脚输入 时钟源。预分频器结构见 图 1 。 ( 1 )T C 0 控制寄存器 T C C R 0 TCC R0的定义见表 1 。 TCC R0 中的C S 0 2 C S o o 这三个 标志位用于选择时钟源,即确定预分 频器的分频系数 , 默认值为0 , 其定义 定时 计数器 1 时钟源 c K T l 图 1 定时 计数器0时钟源 CK T0 囡 、电 衰 1 见表 2 。 当选择使用外部时钟源时, 在 TO引脚上 的逻辑 电平的变化会驱动 T C 0 计数, 这个特性使用户能通过软 件来控制计数。 衰 2 辫 躐峨l 戳鬻 溉 冀 建 菇 灞 鞠 黪 0 0 0 无时钟 源 ( 停止 T C 0 ) 0 0 l C K ( 系统时钟 ) 0 l 0 C K s 0 l l CK 6 4 l 0 0 CK2 5 6 l 0 l CKl 0 2 4 l l 0 外部 T O 脚 下降沿触发 l l l 外部 TO 脚,上升沿触发 ( 2 )T C 0 计数寄存器 T C N T 0 T C N T 0 是8 位寄存器, 其初始值 为0 ) 【 o o , 能直接进行读写访问, 是T C O 的计数值寄存器。 ( 3 ) T C 0 中断屏蔽寄存器T I MS K T I MS K的定义见表 3 。 T O I E 0 是T C 0 溢出中断允许标 志位 ( T O I E 1 是 T C 1 溢出中断允许 标志位) , 当T O I E 0 被设为 1 , 且状态 寄存器S R E G中的全局中断允许I 位被 设为 1 时, 将使能T C 0 溢出中断, 若 T C 0 发生溢出时 ( T O V 0 = I ) ,则执 行 T C 0 溢出中断服务程序。 ( 4 )T C 0 中断标志寄存器 T I F R 当T C 0 产生溢出时,T O V0 = 1 位被设置为 1 。当单片机转入执行 T C O 溢出中断服务程序时, T O V 0由硬 件 自动清零。 T C 0 对每一个时钟 C K T O 加一 计数, C K T 0 的来源由标志位 C S 0 2 - C S 0 0 设定, 当T C 0 选择内部时钟源 维普资讯 时, 可用来作定时器;当选择 从T 0 脚输入的脉冲信号作信 号源时,可用来当计数器。一 旦寄存器 T C N T 0 的计数值达 到 o X F F时 ,下一个计数脉冲 到来时便恢复为0 x 0 0 , 并继续 向上开始计数。在 T C N T 0 为 O x O 0的同时,置溢出标志位 T O V 0 为 l ,申请中断。当T C 0 选择 内部时钟源时,可用 0 冀 一 叠 群 ; 簿避 j 、 譬i毒 、 嚣 疆焉 l 一_了 _一 一: 娥 一 、 0 i 2 0 0 7 0 3 5 3 4 m = , e cu。 = : a l - r 1 J r i 治乞 i la n I CIATme g a 8 P C6 1 P C6 R E S En ( ADC 5 S CL ) P C 5 2 8 1 6 0 2 B 2 P D 0 R X D ) (A D C 4 S D A ) P C 4 2 7 量 主 8 石 吕 3 P D 1 T x D ) (A D C 3 ) P C 3 2 6 4 P D 2 lN T 0 ) (A D C 2 ) P C 2 垄 1 利 量 l 16 5 P D 3 l卜 r r 11 ( A D C 1 ) P C 1 丝 6 23 PC0 , , V c c 卜_ r L 一 L1 U J L 一 u J 1- u 2 2 R 8 。 2。 2 VCC GND 2l R P I 。 - -厂P 匦 B7 二 1 0 GND AREF 2 0 P B6( X1 TOS CI 1 AVCC l 9 PB5 m l 1 P B7 ( X 2 , I 0S C 2 1 ( S CK) P B 5 1 8 P B 4 I L C D显示 P D5 ( Tl 1 ( MI S O) P 13 4 1 7 P B 3 I P D6 ( AI N 0 1 ( MOS l ,C C2 ) P B 3 l 6 P B 2 一 P D 7 ( A I N 1 1 ( S S O C l B ) P B 2 亘 一 1 4 P B0 ( I C P 1 ) ( OC1 A) P B1 图 2 来作定时器; 当选择从T O 脚输入的脉 冲信号作信号源时, 可用来当计数器 。 在T C 0 作定时器时,可以通过设置 TC NT 0的初始值和标志位 C S 0 2 一 C S o 0 设定分频系数来设定定时时间。 2 1 6 位的定时器 , 计数器 T c 1 T C l 的中断 屏 蔽寄存 器 T I MS K、 中断标志寄存器T I F R和T C 0使用同一个寄存器,有关标志位 T O I E 1 、 T O V 1 的定义和T C 0 相应标 志位的定义相同。T Cl 除了具有 T C O 的功能外,还有一些特殊的功能。 TC l的控 制寄存器有两个 : TC C Rl A和 TCC Rl B,TCC Rl A主 要用于 T C 1 的输出比较和 P WM 功 能设定。T C C R1 B主要用于 T C 1 输 入 捕 获 和 时 钟 分 频 系 数 设 定 , TC C RI B的定义见表 4 。 由于 T C 1 的时钟源与 T C 0的 时钟源相同 ,因此标志位 C S l 2一 C S 1 0 和 T C 0的标志位 C S 0 2 一C S o 0 的定义方法相同。 因为T C 1 是 l 6 位定时器 计数 器 ,因此 TC l的计数寄存器 由 T C N T 1 H和T C N T1 L 这两个8 位寄存 器组成 ,T C N T l H 存储高 8位 , T C N T1 L存储低 8 位。T C N T1 H和 T C N T l L 的初始值均为o X o 0 , 能直接 进行读写访问。 T C 1 用来作定时器、 计数器的方 法和 T C 0 相似 。 三、数字频率计实验 1 实验电路 数 字 频 率 计 主 要 由 单 片 机 ATme g a 8 和液晶显示器 L C D1 6 0 2组 成 ,采用七位数码显示。 实验板上与数字频率计有关的电 路部分见图2 ,脉冲信号通过 儿输入 A T me g a 8 的 T l 脚,频率测量结果通 过 LC D1 6 0 2显示。 2 程序设计 程序有主函数、 初始化函数、 T C O 中断函数、T C 1 中断函数、计数 值处理函数、LC D显示函数和延时函 数等部分组成。 程序中T C 0 作定时器 ,定时时 间为1 秒。 T C 1 作计数器 , 记录由T l 脚输入的的脉冲数。初始化函数中关 于定时器 计数器设置的语句如下: T C C R 0 = O x O 5 ; T c 0工作于 定时方式,内部 1 0 2 4分频 T C C R I B = 0 x 0 6 f T C I - _专 计数方式,外部下降沿触发 S RE G=0 x80 f f开 TI MS K:0 x05 T C0、T Cl 中断允许 T C N T 0 = 4 ; T I C 0 计数 器初始值 结合前面的内容就很容易搞清楚 这些语句的含义。 T C l中断函数如下: # pr a g ma i nt e r r u pt _ ha n dl e r Ti mer10vf: 9 、 voi d Ti me r1 0 vf( voi d) ( n+;) 上面程序第一行中的数字9 是中断 向量, 一旦T C l 的计数寄存器的计数 值达到0 x F F F F 时, 即申请中断通过中 断向量转移到执行此中断函数。由于 T C 1 中断一次最多要输入 6 5 5 3 5( 即 0 x F F F F )个脉冲,如果仅用它作为计 数器,能记录的脉冲数最多只有6 5 5 3 5 个, 也就是说用 1 秒作为计时单位能测 量的最高频率为6 5 5 3 5 H z 。为了解决这 一 问题引进一个计数变量 - , 使得T C l 每中断一次 - 的值都加 l , 这样每过 l s 只要计算6 5 5 3 5 _ T C l 的计数寄存 器计数值就能得到脉冲信号的频率了。 T C 1 根据程序的设定在T l 的下 降沿对外部脉冲信号进行采样,为了 确保对外部时钟的正确采样 ,要保持 外部信号的转换时间至少为一个时钟 周期。 因此对于A T m a 8 的时钟频率 为 8 MH z ,假设输入的脉冲信号为方 波,则能测量的最高频率为 4 MHz 。 T C 0中断函数如下: # p r a g ma i n t er r u pt _h a nd l er Timer0 0vf:10 void Ti mer0 0vf( voi d) ( TCNT0=4; k+: i f( k = = 3 1) 若计时满 1 S f uint m unsigned long f; k:0: m=TCNT1L: 维普资讯 、 , v v w r adi 0 cor n cn m =( T C N TI H 8 ) + m 取 T C l n次计数后计数的尾数 TCNTIH=0; TCNTIL=0; f= ( un signed lOng ) 6 5 5 3 6 n + m 取频率值 p r oc esS fI Dat a 、; 计数 值 处理 Dis pla y( 0, 0, Dat a); 显 示 n=0; ) ) 这一段程序主要有两个功能 :一 是作1 秒钟定时器 , 二是进行数值计算 并调用显示函数显示频率。 实验板上A T me g a 8 的时钟频率为 8 MH z ,一个时钟周期只有 0 1 2 5 1 1 S , T C 0 计数寄存器TC NT0 计满2 5 6 ( 即 O x F F )个脉冲的时间也只有 3 2 ms , 达不到 1 s 定时的要求, 为此采取两个 措施解决这一问题,一是通过对标志 值 C S 0 2 C S 0 0 的设置将时钟信号进 行 1 0 2 4 分频后再作为计数脉冲 , 从而 延长脉冲周期;二是引入变量k对T C O的中断次数进行计数,使得T C0 每 中断一次k 的值加 1 , 这样总的延时 时间为T C 0 的定时时间和k 的积。 通 过计算, 我们取T C N T 0 的初始值为4 , 即TCNT0计满 2 4 2个就产生一次中 断, 当k 累加到3 1 时所需的时间约为 1 S ,即( 1 0 2 4 8 0 0 0 0 0 0 ) 2 5 2 3 1 = O 9 9 9 9 3 6 ( s ) 1 s , 因此每过 1 s ( 即 k 累加到 3 1 )读一次总的脉冲数即可 得到脉冲信号的频率。 3 频率测量 用下载线把配套程序的 目标文件 写入实验板上的A T me g a 8 , 接通实验 J它 板的电源, 把一个输入幅度约5 V的脉 冲 信号 送到 J 2 接 口,就 可以在 L C DI 6 0 2 液晶显示器显示出频率值 。 如果没有信号源, 可以自己按图3 用非 门制作一个信号发生器供测试用。 在实际使用中由于被测信号往往 幅度较小而且波形不规则 ,这时候必 须加一个输入信号处理 电路,其作用 主要是对信号进行放 大和整形。 图4 提供了 一 种用非门制作的电 路。图3 和图4 j g 个 电 路可以用一个六非门 电路C D 4 0 6 9 做在一起, 使用5 V电源。 需要说 明的是由于实验板上的 A T me g a 8 使用内部R C振荡器作时钟 源, 因此这个数字频率计的精度较低 , 如果要提高测量精度必须使用外部晶 振作时钟源。 本文的配套源程序和相关资料见 本期配刊光盘。 圆 i f I I j 单 片 机 编 程 技 巧 f l l文 万飞 ; 一一一一一一 一一 一一一 一一一一一一一一一 一一一一一一一一一一一一 一一一一一 i l 1 定义的变量不要太多。 低1 2 8 位 复,或一部分一部分复制到另一个文 为用户定义变量的存放区域 ( 默认 件中编译。 l时) ,也可把变量放在高 1 2 8 位,但容 9 如产生脉冲信号用到定时器 , l易出错,尽量少放,最好不放。通过 要去掉脉冲信号时, 应先关定时器, 再 l M5 1 可以 查看内 存变 量的 存放, 最 按要求把电 平置为高电平或低电平。 i l好不要超过 l l 0 个字节,否则程序无 1 0 可使用软件实现 “ 看门狗” 功 ; 法运行或出错。 能。比如:一个程序运行一个循环需j 2 如一个变量多处使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 品牌运营咨询服务合同范本
- 期货从业资格之《期货基础知识》题库检测题型及答案详解(考点梳理)
- 个人买卖土地合同协议书
- 养老服务用工协议书范本
- 难点详解陕西省韩城市中考数学真题分类(数据分析)汇编专题测试试卷(含答案详解版)
- 小儿心衰的护理查房课件
- 三不放过原则课件
- 期货从业资格之期货投资分析能力检测附答案详解【考试直接用】
- 期货从业资格之《期货法律法规》练习题(一)带答案详解(考试直接用)
- 难点详解吉林省桦甸市七年级上册整式及其加减综合练习试卷(含答案详解)
- 2025-2030中国生物质能行业市场深度调研及投资前景与投资策略研究报告
- 物业外包管理实施方案
- 初中英语作文课件
- 生产企业班组长培训课件
- 基于数据的员工能力预测模型-全面剖析
- 升压站、储能站建筑施工方案
- 脐尿管瘘护理查房
- 重症监护室护理人文关怀
- 造价咨询廉政管理制度
- 隧道养护资金管理制度
- Android移动应用开发(微课版)全套教学课件
评论
0/150
提交评论