单片机多功能计数器的设计Word下载.docx
《单片机多功能计数器的设计Word下载.docx》由会员分享,可在线阅读,更多相关《单片机多功能计数器的设计Word下载.docx(58页珍藏版)》请在冰点文库上搜索。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。
从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。
在发展MCU方面,最著名的厂家当数Philips公司。
3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;
因此,专用单片机的发展自然形成了SOC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SOC的单片机应用系统设计会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
1.1.2单片机的基本结构
1.运算器
运算器由运算部件——算术逻辑单元(Arithmetic&
LogicalUnit,简称ALU)、累加器和寄存器等几部分组成。
ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。
ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。
例如,两个数6和7相加,在相加之前,操作数6放在累加器中,7放在数据寄存器中,当执行加法指令时,ALU即把两个数相加并把结果13存入累加器,取代累加器原来的内容6。
运算器有两个功能:
(1)执行各种算术运算。
(2)执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。
2.控制器
控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。
其主要功能有:
(1)从内存中取出一条指令,并指出下一条指令在内存中的位置。
(2)对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。
(3)指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。
外部总线又称为系统总线,分为数据总线DB、地址总线AB和控制总线CB。
通过输入输出接口电路,实现与各种外围设备连接。
3.主要寄存器
(1)累加器A
累加器A是微处理器中使用最频繁的寄存器。
在算术和逻辑运算时它有双功能:
运算前,用于保存一个操作数;
运算后,用于保存所得的和、差或逻辑运算结果。
(2)数据寄存器DR
数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。
它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。
(3)指令寄存器IR和指令译码器ID
指令包括操作码和操作数。
指令寄存器是用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。
当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这项工作的。
其中,指令寄存器中操作码字段的输出就是指令译码器的输入。
(4)程序计数器PC
PC用于确定下一条指令的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。
在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。
(5)地址寄存器AR
地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。
由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。
显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。
同样,如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时,也需要用到地址寄存器和数据寄存器。
1.1.3单片机的应用领域
单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,
计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
智能仪器
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
1.工业控制
单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,用单片机可以构成形式多样的控制系统、数据采集系统、通信系统、信号检测系统、无线感知系统、测控系统、机器人等应用控制系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
家用电器
家用电器广泛采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备和白色家电等。
3.网络和通信
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
4.设备领域
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
模块化系统
某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。
如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。
如:
音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。
在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。
6.汽车电子
单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器、GPS导航系统、abs防抱死系统、制动系统、胎压检测等。
此外,单片机在工商、金融、科研、教育、电力、通信、物流和国防航空航天等领域都有着十分广泛的用途。
1.2计数器概述
电子计数器是一种基础测量仪器,到目前为止以有30多年的发展历史。
早期设计师们追求的目标主要是扩展侧脸范围,再加上提高测量精度、稳定度等,这些也是人们衡量电子计算器的技术水平,决定电子计数器价格高低的主要依据。
目前这些基础技术日益完善,成熟。
应用现代技术可以轻松地将电子计数器的测频上限扩展到微波频段。
1.2.1计数器的技术背景与发展趋势
当今,单片微型计算机技术迅速发展,由单片机技术开发的技术设备和产品广泛应用到各个领域,单片机技术产品和设备促进了生产技术水平的提高。
企业迫切需要大量熟练掌握单片机技术并能开发、应用和维护管理这些智能化产品的高级工程技术人才。
单片机以体积小功能强、可靠性高、性价比高等特点,已成为实现工业生产技术进步和开发机电一体化和智能化测控产品的重要手段。
由于微电子技术和计算机技术的发展,数字频率计都在不断的发展着,频率范围不断扩大,功能不断的增加。
同时随着科学技术的发展,用户对电子计数器也提出了新的要求。
对于低档产品要求实用操作方便,量程宽,可靠性高,价格低。
而对于中高档产品,则要求高分辨率,高精度高稳定度,搞测量速率,除通常计数器所具有的功能外,还要有数据处理功能,统计分析功能,时域分析功能等等,或者包含电压测量等其他功能,这些要求有的已经实现或者部分实现,但要真正完美的实现这些目标,对于生产厂家来说,还有许多工作要做,而不是表面看来似乎发展到了尽头。
1.2.2电子计数器的分类
电子计数器是一种多功能电子测量仪器。
他利用电子学地方法测出一定时间内输入的脉冲数目,并能将结果以数字的形式显示出来。
电子计数器功能多、操作简单、测量速度快、直接显示数字,而且易于实现测量过程自动化,在工业生产和科学实验中得到广泛应用。
电子计数器利用数字电路技术数出给定时间内所通过的脉冲数并显示计数结果的数字化仪器。
电子计数器是其他数字化仪器的基础。
在它的输入通道接入各种模-数变换器,再利用相应的换能器便可制成各种数字化仪器。
电子计数器的优点是测量精度高、量程宽、通常点子计数器按照他的功能可分为以下几类:
1.通用计数器:
可测频率、周期、多周期平均、时间间隔、频率比和累计等。
2.频率计数器:
专门用于测量高频和微波频率的计数器。
3.计算计数器:
具有计算功能的计数器,可进行数学运算,可用程序控制进行测量计算和显示等全部工作过程。
4.微波计数器:
是以通用计数器和频率计数器为主配以测频扩展器而组成的微波频率计。
它的测频上限已进入毫米波段,有手动、半自动、全自动3类。
系列化微波计数器是电子计数器发展的一个重要方面。
1.2.3电子计数器工作原理和基本功能
电子计数器的基本结构如图1-1所示。
图1-1电子计数器基本的结构
由B通道输入频率为fb的经整形的信号控制闸门电路,即以一个脉冲开门,以随后的一个脉冲关门。
两脉冲的时间间隔(TB)为开门时间。
由A通道输入经整形的频率为fA的脉冲群在开门时间内通过闸门,使计数器计数,所计之数N=fA·
TB。
对A、B通道作某些选择,电子计数器可具有以下三种基本功能。
1. 频率测量:
被测信号从A通道输入,若TB为1秒,则读数N即为以赫为单位的频率fA。
由晶体振荡器输出的标准频率信号经时基电路适当分频后形成闸门时间信号而确定TB之值。
2.周期或时间间隔测量:
被测信号由B信道输入,控制闸门电路,而A通路的输入信号是由时基电路提供的时钟脉冲信号。
计数器计入之数为闸门开放时间,亦即被测信号的周期或时间间隔。
3.累加计数:
由人工触发开放闸门,计数器对A通道信号进行累加计数。
在这些功能的基础上再增加某些辅助电路或装置,计数器还可完成多周期平均、时间间隔平均、频率比值和频率扩展等功能。
电子计数器性能指标主要包括:
频率、周期、时间间隔测量范围、输入特性(灵敏度、输入阻抗和波形)、精度、分辨度和误差(计数误差、时基误差和触发误差)等。
第二章方案设计和论证
2.1计数器计数原理
利用单片机中所拥有的计数器与定时器,来编制合适可控制的定时器参数,并且接收传感器给定的实际参数来达到计数的目的。
2.2多功能计数器总体设计方案
方案一:
采用多种数字逻辑电路来实现原理图中的逻辑控制、主门、门控、计数单元的设计要求,这样设计的电路整体比较复杂,而且不宜完成发挥部分的功能要求。
所以方案一不采用。
方案二:
可以采用FPGA来实现原理图中的逻辑控制、主门、门控、计数单元的设计要求,并且设计方便,但由于对FPGA的技术原理掌握不够熟练,所以放弃方案二。
方案三:
系统采用89c52为核心的单片机控制系统,实现原理图中的逻辑控制、主门、门控、计数、晶振、分频单元的设计要求,多功能计数器系统的基本原理流程框图如图2.2。
单片机晶振产生的12MHz经内部12分频后作为基准信号,由被测输入整形后信号的下降沿触发单片机的外部中断INT0,从而形成闸门脉冲。
前一周期信号的下降沿触发中断后,在中断服务程序中开启定时器T0进行定时;
此周期信号的下降沿再次触发中断后,在中断服务程序中关闭定时器。
计算两次中断的时间间隔,即可得被测信号的周期Tx,而fx=1/Tx。
单片机定时器/计数器的方式控制寄存器TMOD中的GATE位=1时,可以很方便的进行INT0引脚的外部输入信号的时间间隔测量。
且单片机的控制电路很容易实现扩展,比如语音模块、测温I2C模块、时钟模块、A/D模块等。
依据题目的设计要求,并结合自身情况采用方案三。
通过测量周期方法来实现对周期、频率、测量,并能所测值显示,测量值语音播报、温度显示、时间显示、显示被测信号的峰值、记忆10个历史数据并可以随时查看的功能。
方案原理模块框图如图2-1所示。
图2-1方案原理模块框图
2.3多功能计数器测频率
2.3.1基本工作原理
目前用单片机组成的系统测量频率的方法有测频率法和测周期法两种。
测量频率主要是在单位定时时间里对被测信号脉冲进行计数;
测量周期则是在被测信号一个周期时间里对某一基准时钟脉冲进行计数。
对于输入信号而言,频率为周期的倒数,故频率测量与周期测量可以互通。
由于本设计中信号的频率范围较大,故对输入信号进行分段测量。
当输入信号进入系统后,单片机自动判断其频率,然后根据不同的频率选择相应的测量方法。
为了满足精度要求,本设计中采用单片机和外部计数器相结合的计数方法。
2.3.2电路设计
测频、测周电路设计如图2-2所示。
图2-2测频、测周电路设计
2.3.3电路分析
设计中所测物理量较多,本文主要分析了测频、测周电路。
测频、测周电路主要分为电平转换/保护电路、测量电路、测量转换电路、计数器。
频率测量电路如图3.8所示。
当进行周期测量时,系统开始工作前要先进行清零,单片机的P01脚对CD4040的RESET发出复位信号,P13脚发出清零信号,将74HC74的CLR管脚置高,然后系统开始工作。
此时74HC74的8脚置高,2脚也为高,则5脚输出为高,74HC08的5脚有上升沿出现时,与4脚相与后输出高,选通74HC251的D1脚,然后接入分频及计数电路开始计数。
将计数值送入单片机,经处理后在显示模块上显示所测数值。
在74HC74的5脚置高的同时,11脚CLK置高,此时8脚输同时11脚又被置高。
计数的过程就是这样不断循环的过程。
当进行频率测量时也要对系统进行清零。
单片机的P07脚对74HC74的3脚CLK发出高电平,此时输出5脚为高电平,与74HC08的2脚相与后输出为高,此时74HC74的9脚输出为高,触发单片机的INT0,引起中断,单片机开始计时。
74HC08的9脚和10脚相与后输出为高电平,选通74HC251的D0脚,然后经过分频电路,进入计数器,开始计数。
软件定时为1秒钟,1秒之后,P07发出低电平,74HC74的3脚接到低电平后,5脚输出为低电平,经74HC08后仍为低电平,74HC74的9脚输出也为低电平,这样74HC08的8脚输出为低电平。
此时INT0中断结束,计数器也停止计数,计数值经单片机处理后送显示模块显示。
2.3.4理论分析
多功能计数器测频法主要是将被测频率信号加到计数器的计数输入端,然后让计数器在定时时间Ts1内进行计数,所得的计数值N1与被测信号的频率fx1的关系如下:
fx1=N1Ts1N1fs1而多功能计数器测周法则是将标准频率信号fs2送到计数器的计数输入端,而让被测频率信号fx2控制计数器的计数时间,所得的计数值N2与fx2的关系如下:
fx2=fs2N2事实上,无论用哪种方法进行频率测量,其主要误差源都是由于计数器只能进行整数计数而引起的±
1误差:
ε1=ΔNN对于测频法,有:
ξ1=ΔN1/N1=±
1/N1=±
1/Tsfs1=±
fx1/fs1
对于测周发有:
ξ1=ΔN2/N2=±
1/N2=±
fx2/fs2=±
Tsfx2
可见,在同样的Ts下,测频法fx1的低频端,误差远大于高频端,而测周期法在fx2的高频端,其误差远大于低频端。
理论研究表明,如进行n次重复测量然后取平均,则±
1误差会减小n倍。
如给定±
1误差ε0,则要求ε≤ε0对测频法要fx1≥fs1ε0对测周期法则要求fx2≤ε0fs2。
因此,对一给定频率信号fs进行测量时,用测频法fs1越低越好,用测周期法则fs2越高越好。
51系列单片机的定时器/计数器接口,在特定晶振频率fc=12MHz时,可输人信号的频率上限是fx≤fc24=500MHz。
如用测频法,则频率的上限取决于单片机,故测频法的测量范围是:
fs1ε0≤fx1≤fc24,即:
fx1≤500MHz。
用测频法测频时,定时器/计数器的计数时间间隔可由单片机的另外一个定时器/计数器完成,外接100分频器的情况下,fx1的频率范围可扩展到50MHz;
用测周期法设计时,其频率的下限取决单片机计数器的极限。
考虑到单片机内部为16位,加上TF标志位,计数范围为217,因此其最大计数时间为12·
1fc·
217秒。
而如果采用半周期测量,则测频范围是:
fc24×
217≤fx2≤fs2ε0,在测周期法中,标准频率信号fs2由单片机的内部定时结构产生,fs2恒为fc/12,因此,在给定ε0为0.01时,fx2既有一定的上限频率,也有一定的下限频率。
即:
fs124×
217≤fx2≤fcε012从以上分析可以看出,测频法测量的频率覆盖范围较宽,且在高频段的测量精度较高,而在低频段的测量精度较低,同时测量时间较长。
测周期法测量的频率覆盖范围较窄,在高频段的测量精度较低,在低频段的测量精度较高,测量时间短。
因此,测频法适于高频信号的测量,测周期法适于低频信号测量。
为了满足精度要求,本设计中对低频段信号采用了测周期法,高频信号采用了测频法。
2.3.5软件设计
在本设计中的软件主要包括按键处理、物理量的测量、显示等子程序。
为了提高测量的精度,在数据处理时使用了数字滤波等技术。
主程序框图如图3所示。
频率测量、周期测量的子程序框图如图4所示。
测试与结果分析在频率、周期、时间间隔及信号峰值的测试过程中,输入信号采用高精度SF20函数发生器,输出0.01Hz~10MHz的信号。
测试中主要用到的工具有示波器、万用表、自制电路板、信号发生器等。
通过对输入信号和输出端信号的参数的比较,判断设计是否符合要求。
若结果在规定的误差范围内,则本设计完成要求。
若结果不理想,则需要对电路重新进行参数的设置。
经过多次的测试,该设计已完成各项指标。
测频子程序流程图如图2-3所示。
NY
图2-3测频子程序流程图
2.3.6测试与结果分析
在频率、周期、时间间隔及信号峰值的测试过程中,输入信号采用高精度SF20函数发生器,输出0.01Hz~10MHz的信号。
具体实验数据如表2-1所示。
表2-1
理论值
实际值(每HZ)
绝对误差(每HZ)
10MHZ
9991424
0.08576
6MHZ
6003952
-0.06587
2MHZ
2001498
0.07494
1MHZ
999154
0.05465
800KHZ
779751
0.03120
200KHZ
199883
0.05986
1KHZ
9999.76
0.02354
100HZ
99.9310
0.06983
1HZ
1.0008