大学生电子设计大赛多功能计数器_第1页
大学生电子设计大赛多功能计数器_第2页
大学生电子设计大赛多功能计数器_第3页
大学生电子设计大赛多功能计数器_第4页
大学生电子设计大赛多功能计数器_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、2008年山东省“zlg杯”大学生电子设计竞赛2008年山东省大学生电子设计大赛 编号 f乙7602 f题 多功能计数器 参赛学生: 指导老师:参赛院校:所学专业:应 用 电 子 技 术2008年山东省“zlg杯”大学生电子设计竞赛f题 简易多功能计数器摘要本设计共分电源、单片机控制模块、信号前向通道处理模块、键盘、液晶显示模块、模数(a/d)转换模块、语音播报模块、测温及时钟八个模块。以at89c52单片机为控制模块核心,对多功能计数器可编程控制,实现周期、频率、时间间隔的测量。同时可实现对测量结果、时钟、温度及被测信号幅度的液晶显示及语音播报。关键词:多功能 周期 频率 时间间隔 测量 语

2、音播报abstract the design consists of power, mcu control module, before the signal to channel processing module, keyboard, lcd module (a / d) converter modules, voice on several modules, temperature and clock module eight modules. at89c52 mcu to control module for the control of the core, the counter-p

3、rogrammable control, and cycle, frequency, time interval measurement. at the same time can be realized on the measurement results, clock, temperature of the liquid crystal display and voice broadcast.key words: cycle-time interval measurement frequency voice broadcast目 录摘要-2一 方案设计与论证-41.1 计数法测量周期原理-

4、41.2 计数法测量时间间隔原理-51.3 总体设计方案比较与选择-5二 模块电路设计及比较-72.1 电源模块-72.2 前向信号通道处理模块-82.3液晶显示模块-92.4 键盘控制模块-112.5 a/d转换模块 -112.6 语音报温模块(发挥)-122.7 时钟模块(发挥)-132.8 测温模块(发挥)-14三 软件方案设计-153.1主程序流程方框图-153.2语音播报程序方框图-163.3 keil c程序-17四 数据处理-22 4.1 测试数据分析-224.2 实测中误差分析与处理-22五 电路原理图-24 5.1 系统原理图-245.2 系统pcb图-255.3 multi

5、sim 仿真图-265.4作品实物图-29参考文献-30一.总体方案设计比较与选择1.1计数法测量周期原理周期是频率的倒数,电子计数器能测量信号周期,通过计算得到待测信号的频率。具体原理如下: 图1.1 计数法测量周期原理流程图 当输入信号为正弦波时,波形如图2.2所示。可以看出,被测信号经整形、m分频后,形成控制闸门脉冲信号,其宽度等于被测信号的周期mtx。晶体振荡器的输出经分频后得到的频率为fc的标准信号,其周期为tc,加入主门输入端,在闸门时间tx内,标准频率脉冲信号通过闸门形成技术脉冲,送至计数器计数,经译码显示计数值n。由图2.2所示的波形图可得mtx=ntc; tx=ntc/ m当

6、tc为一定时,计数结果可直接表示为tx值。例如tc=1us, n=1000,m=1时,则tx=1000us=1ms,fx=1khz;tc=1us,n=1000,m=10时,则tx=100us=0.1ms,fx=10khz。在实际电子计数器中,根据需要,m可以有几种数值,用有若干个档位的开关实施转换,显示器能自动显示时间单位和小数点,使用起来非常方便。1.2计数法测量时间间隔原理 单片机定时器/计数器的方式控制寄存器tmod中的gate位=1时,可以很方便的进行int0引脚的外部输入信号的时间间隔测量。将被测信号由int0引脚的外部输入,当输入信号为高电平时启动定时,高电平结束自动停止计数,计算

7、后可得被测信号的时间间隔,当测量时间间隔时输入信号经数据选择器74ls153不分频直接送int0引脚。1.3多功能计数器总体设计方案方案一:采用多种数字逻辑电路来实现原理图中的逻辑控制、主门、门控、计数单元的设计要求,这样设计的电路整体比较复杂,而且不宜完成发挥部分的功能要求。所以方案一不采用。方案二:可以采用fpga来实现原理图中的逻辑控制、主门、门控、计数单元的设计要求,并且设计方便,但由于对fpga的技术原理掌握不够熟练,所以放弃方案二。方案三:系统采用89c52为核心的单片机控制系统,实现原理图中的逻辑控制、主门、门控、计数、晶振、分频单元的设计要求,多功能计数器系统的基本原理流程框图

8、 如 图1.1。单片机晶振产生的12mhz经内部12分频后作为基准信号,由被测输入整形后信号的下降沿触发单片机的外部中断int0,从而形成闸门脉冲。前一周期信号的下降沿触发中断后,在中断服务程序中开启定时器t0进行定时;此周期信号的下降沿再次触发中断后,在中断服务程序中关闭定时器。计算两次中断的时间间隔,即可得被测信号的周期tx,而fx=1/tx。单片机定时器/计数器的方式控制寄存器tmod中的gate位=1时,可以很方便的进行int0引脚的外部输入信号的时间间隔测量。且单片机的控制电路很容易实现扩展,比如语音模块、测温i2c模块、时钟模块、a/d模块等。依据大赛题目的设计要求,并结合自身情况

9、采用方案三。通过测量周期方法来实现对周期、频率、时间间隔的测量,并能所测值显示,测量值语音播报、温度显示、时间显示、显示被测信号的峰值、记忆10个历史数据并可以随时查看的功能。 图1.2 方案原理模块框图二 模块电路设计及比较系统硬件以89c52单片机为核心,外围包括电源模块、信号处理模块、液晶显示模块、键盘模块、a/d转换模块、语音报数模块、及时钟芯片模块。2.1 电源模块稳压电源由电源变压器、整流电路、滤波电路和稳压电路组成,如图2.1图2.1 电源方框图a 整流和滤波电路:整流作用是将交流电压u2变换成脉动电压u3。滤波电路一般由电容组成,其作用是脉动电压u3中的大部分纹波加以滤除,以得

10、到较平滑的直流电压u4。b 稳压电路:由于得到的输出电压u4受负载、输入电 压 和 温度的影响不稳定,为了得到更为稳定电压添加了稳压电路,从而得到稳定的电压u0。图2.3中电路提供+5v的电源;主要用于单片机(at89c52)、液晶显示(包括74ls164,cc7107)、键盘、。图2.2 5v电源原理图图2.3 +5v电源原理图2.2 前向信号通道处理模块方案一:op07比较器整形,74ls161计数器分频 实验验证此电路整形输出波形前后沿均上冲,毛刺较多,易引起误触发。而计数器74ls161为十六进制计数,需加与非门改为十进制,电路略复杂,后找到cd4017十进制计数器,取代了74ls16

11、1。此方案不采用。方案二:施密特整形,计数器分频实验验证此电路在200k以下时,波形良好,但超出200k时输出信号幅度大幅衰减,不能满足后继电路的设计要求。从而无法实现发挥部分测频要求。故此方案不采用。 方案三:非门整形,计数器分频 图2.4前向信号通道原理图分波段测量:第四波段:1mhz10mhz 1000分频10mhz1000分频104hz10kt=0.1ms启用中断、定时器 1mhz1000分频103hz1k t=1ms 启用中断、定时器第三波段:100khz 1mhz 100分频 1mhz100分频104hz10kt=0.1ms启用中断、定时器 100khz100分频103hz1k t

12、=1ms 启用中断、定时器第二波段:10khz100khz 10分频100khz10分频104hz10kt=0.1ms 启用中断、定时器10khz10分频103hz1k t=1ms 启用中断、定时器第一波段:0.01hz10khz 1分频10khz 1分频104hz10kt=0.1ms启用中断、定时器0.01hz1分频10-2hzt=100s启用中断、定时器2.3显示模块方案一:led七段数码管 电路需译码和驱动,电路结构较复杂,电路布线连接繁杂,而且显示频率,周期时不是太方便,显示内容单一且不美观。所以对本电路设计要求不宜采用 图 2.5数码显示模块原理图方案二:1602lcd lcd160

13、2字符型液晶主控制驱动电路为hd44780,可以显示32个(16*2)5*8点阵字符,模块结构紧凑轻巧,装配容易,单+5v电源供电,低功耗长寿命高可靠性。硬件部分简单,符合设计要求,能快速简便的显示周期、频率、时间,而且做工美观,显示效果较好。用软件编写更加方便系统的扩展,节省了更多的i/o端口。综合对两种方案的分析,我们采用方案二。图 图2.6 液晶显示模块2.4键盘控制模块 图2.7 键盘控制原理图键盘对单片机输入数据,键盘为单行排列,用at89c52的p1扩展口接键盘,以p1.0p1.4作独立按键。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合

14、或断开时的抖动。通过软件查表,查出该键的功能。2.5 a/d转换模块采用了tlc1543。tlc1543是多通道,低价格十位逐次a/d逼近模数转换器。采用串行通信接口,具有输入通道多,性价比高,易于和单片机接口。引脚图2.8。芯片内部有一个14通道多路选择器可选择11个模拟输入通道或3个内部自测电压的任意一个进行测试,可广泛应用于各种数据采集系统。tlc1543的三个控制输入端cs、i/o 、clock、address和一个数据输出段data out 遵循串行外设接口spi协议,要求微处理器具有spi接口。工作过程分两个周期:访问周期和采样周期。工作时cs必须置低电平,cs为高电平时i/o 、

15、clock 、adress被禁止,同时data out 为高阻状态。当cpu使cs变低时,tlc1543开始数据的转换。 图2.8 tlc1543引脚图 2.6 语音报数模块(发挥)isd2560是系列单片语音录放集成电路的一种。这是一种永久记忆型语音录放电路,录音时间为,可重复录放万次。该芯片采用多电平直接模拟量存储专利技术,每个采样值可直接存储在片内单个单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,从而避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。该器件的采样频率为,同一系列的产品采样频率越低,录放时间越长,但通频带和音质会有所降低。此外,还省去了和转换器。

16、其集成度较高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器和 字节的。内部存储单元均匀分为行,有个地址单元,每个地址单元指向其中一行,每一个地址单元的地址分辨率为 。此外,还具备微控制器所需的控制接口。通过操纵地址和控制线可完成不同的任务,以实现复杂的信息处理功能,如信息的组合、连接、设定固定的信息段和信息管理等。可不分段,也可按最小段长为单位来任意组合分段。 .本系统中的语音芯片工作在放音状态下,其片内的信息可通过专用的2560.录音编程器录音,因此放音质量非常好,也可以通过它来读取每段语音的存储地址。本设计中分段存储:0,1,2,3,4

17、,5,6,7,8,9,十,百,千,兆,赫兹,度,伏特等语音信息。根据测量数据进行组合输出。 2.7 时钟模块(发挥) ds12c887 实时时钟芯片功能丰富,可以用来直接代替ibm pc 上的时钟日历芯片ds12887,同时,它的管脚也和mc146818b、ds12887 相兼容。由于 ds12c887 能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题;ds12c887 中自带有锂电池,外部掉电时,其内部时间信息还能够保持10 年之久;时间的表示方法也有两种,一种用二进制数表示,一种是用bcd 码表示;ds12c887 中带有12

18、8 字节ram,其中有11 字节ram用来存储时间信息,4 字节ram用来存储ds12c887 的控制信息,称为控制寄存器,113 字节通用ram 供用户使用;此外用户还可对ds12c887 进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。 图2.9 时钟信号模块ds12c887可以轻松记忆存储10个历史记录数据,并可以随时调用查看。时钟芯片ds12c887 功能丰富,使用简单,可能性高,是时间产生电路的良好选择。2.8 测温模块(发挥) ds18b20 “一线总线”数字化温度传感器是dallas最新单线数字 温度传感器, 支持“一线总线”接口,测量温度范围为 -55c+1

19、25c,在-10+85c范围内,精度为0.5c。ds18b20的精度较差为 2c 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,支持3v5.5v的电压范围,使系统设计更灵活、方便。而且价格便宜,体积较小。 ds18b20可以程序设定912位的分辨率,精度为0.5c。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在eeprom中,掉电后依然保存。ds18b20的性能稳定,性价比非常高。ds18b20能软件兼容,省略了存储用户定义报警温度、分辨率参数的eeprom,精度降低为2c,适用于对性能要求不高,成本控制严格

20、的应用,是经济型产品。 继“一线总线”的早期产品后,ds18b20开辟了温度传感器技术的新概念。可以构建的经济的测温系统。测量结果直接输出数字温度信号,以“一线总线”串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力。 三 软件方案设计3.1主程序流程方框图 开 始 初 始 化 无 显示时钟 键盘识别 有k=5 k=2 k=1 k=3 k=4 启动测量 调时钟 测量功能的设定 测温 测峰值k=3 k=4显示测量值 + - 显示测量值 播报测量结果3.2语音播报子程序流程方框图 开始数据 选择语音起始点 逐位放音输出 结束语音播报子程序3.3keil c程序#include #i

21、nclude #include/使用xbyte必须使用的头文件 #include main() dy_qu=0; jq_int0=0;dy_t1countl=0; flag_addcycle=0;dy_frequence=0; reg_a=0x20; reg_b=0x06; lcd1602init( );lcd_clear(); tmod=0x12; th0=0; tl0=0;th1=-2400/256;tl1=-2400%256; scon=0x40; pcon=0; it0=1; ea=1;pt0=1; et0=0; et1=1; tr0=0; tr1=1;while(1) if(flag

22、_addcycle) dy_frequence=0; dy_cycle=0; dy_cycle=(dy_t1countl*255+tl0)/30; dy_frequence=1000000/dy_cycle; flag_addcycle=0; delay(400);display();void display() uchar i; switch(dy_dismode) case 0:lcd_string( frq:0.01hz-10mhz, 1); lcd_string( value:, 2); translate(dy_frequence); wrd(0x30+dy_smwei); wrd(

23、0x30+dy_mwei);wrd(0x30+dy_swwei);wrd(0x30+dy_wwei);wrd(0x30+dy_qwei); wrd(0x30+dy_baiwei);wrd(0x30+dy_shiwei); wrd(0x30+dy_gewei); wrd(h); wrd(z); break; case 1:lcd_string( cyq:1us-10s, 1); lcd_string( value:, 2); translate(dy_cycle); wrd(0x30+dy_smwei); wrd(0x30+dy_mwei);wrd(0x30+dy_swwei);wrd(0x30

24、+dy_wwei);wrd(0x30+dy_qwei); wrd(0x30+dy_baiwei);wrd(0x30+dy_shiwei); wrd(0x30+dy_gewei); wrd(u); wrd(s); break; case 2:lcd_string( inq:1us-10s, 1); lcd_string( value:, 2); translate(dy_cycle); wrd(0x30+dy_smwei); wrd(0x30+dy_mwei);wrd(0x30+dy_swwei);wrd(0x30+dy_wwei);wrd(0x30+dy_qwei); wrd(0x30+dy_

25、baiwei);wrd(0x30+dy_shiwei); wrd(0x30+dy_gewei); wrd(u); wrd(s); break;/* case 3: break;*/ case 4:lcd_string( beijing time: , 1);lcd_string( ,2);/if(dy_distime=200) / i=dy_hour; ttranslate(dy_hour); wrd(0x30+dy_ch); wrd(0x30+dy_cl); wrd(:);i=dy_minute; ttranslate(dy_minute); wrd(0x30+dy_ch); wrd(0x3

26、0+dy_cl); wrd(:);i=dy_second; ttranslate(dy_second);wrd(0x30+dy_ch); wrd(0x30+dy_cl); / /*else if(dy_qu=1) wrd(0xff); wrd(0xff); else ttranslate(dy_hour); wrd(0x30+dy_ch); wrd(0x30+dy_cl); wrd(:); if(dy_qu=2) wrd(0xff); wrd(0xff); else ttranslate(dy_minute); wrd(0x30+dy_ch); wrd(0x30+dy_cl); wrd(:);

27、 if(dy_qu=3) wrd(0xff); wrd(0xff); else ttranslate(dy_second); wrd(0x30+dy_ch); wrd(0x30+dy_cl); */ wrd(0x20); wrd(0x20); wrd(0x20); wrd(0x20); break;case 5:lcd_string( temperature: , 1); lcd_string( value:, 2); ctranslate(75.3); wrd(0x30+dy_baiwei); wrd(0x30+dy_shiwei); wrd(.); wrd(0x30+dy_gewei);

28、wrd(0x86); wrd(c); wrd(0x20); wrd(0x20); wrd(0x20); wrd(0x20); default:break; void serv_t1() interrupt 3 using 3 th1=-(2500/256); tl1=-(2500%256); dy_distime=dy_distime+1; if(dy_distime=400) dy_distime=0; serv_key(); void serv_key() p1=0xff; dy_keyvalue=p1; dy_keyvalue=dy_keyvalue|0xe0; dy_keyvalue=

29、dy_keyvalue; if(dy_keyvalue!=0) /*key down*/ jq_keydown=jq_keydown+1; jq_keyup=0; if(jq_keydown=3) flag_keydown=1; keyvalue=dy_keyvalue; else /*key up*/ jq_keydown=0; if(flag_keydown) jq_keyup=jq_keyup+1; else jq_keyup=0; if(jq_keyup=3) flag_keydown=0; switch(keyvalue) case 0x1:key_func();break; cas

30、e 0x2:key_qu();break; case 0x4:key_add();break; case 0x8:key_dec();break; case 0x10:key_start(); default:break; void serv_ex0() interrupt 0 using 1 jq_int0=jq_int0+1; switch(jq_int0) case 1:tr0=1; break; case 31:tr0=0; et0=0; ex0=0; flag_addcycle=1; jq_int0=0; break;default:break; void serv_t0() interru

温馨提示

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

最新文档

评论

0/150

提交评论