ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:736.59KB ,
资源ID:24266376      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24266376.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(频率计设计预习报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

频率计设计预习报告.docx

1、频率计设计预习报告电气工程学院微机原理课程设计设计题目: 频率计 学号: 11291060 姓 名: 吴宝明 同 组 人: 王子珩 指导老师: 徐建军 设计时间: 2014年3月18日 设计地点: 电气学院实验中心 1.思路1.首先对信号输入进行波形的变换、整形、分频处理,然后输送给单片机89S51(由于测频方法为减小误差采用测频和测周两种方式,事先设置好两者的分档点(下面有详细论述)方便单片机进行处理)2.由单片机判断使用测频或测周方式测量,执行测量程序得到测量结果3.将结果进行处理(尤其是测周方式要将结果通过浮点运算得出频率数值)4.最后将结果输出到显示电路由6个数码管进行数值显示。2.概

2、述 单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的8

3、9C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 本项目应用89C51的定时器和计数器或者外部中断,来测量10Hz-150kHz的方波频率,把频率与周期按5秒一切换分时显示在6位数码管。可应用于教学实验,学生自主实验等对频率精确度要求不高的场合,也可应用于家用情况下频率的初步获取。3.原理本频率计的设计以89S51单片机为核心,利用它内部的定时/ 计数器完成待测信号周期/ 频率的测量。单片机89S51内部具有2个16位定时/计数器,定时/ 计数器的工作可以由编程来实现定时、计数和产生计数溢出中断要求的功能。在构成为计

4、数器时,在相应的外部引脚发生从1 到0 的跳变时计数器加1 ,这样在计数闸门的控制下可以用来测量待测信号的频率。为了兼顾频率测量精度和测量反应时间的要求,把测量工作分为两种方法。当待测信号的频率大于1000Hz 时,以机器周期为基准,由软件产生计数闸门,进行计数定时,采集数据然后输出。当待测信号的频率小于或者等于1000Hz 时,定时/ 计数器构成为定时器,由频率计的予处理电路把待测信号变成方波,方波宽度等于待测信号的周期。用方波作计数闸门,计数值通过浮点预算得到频率进行输出显示。4系统硬件1) 芯片主要性能:8位CPU;片内振荡器和时钟电路;32根I/O线;外部存贮器寻址范围ROM、RAM6

5、4K;2个16位的定时器/计数器;5个中断源,两个中断优先级;全双工串行口;布尔处理器;2) 功能特性描述:89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89

6、C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3) 引脚描述:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/89C51引脚图地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是

7、由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电

8、阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当

9、振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外

10、部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间为外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器读取外部ROM数据。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,单片机读取内部程序存储器。(扩展有外部ROM时读取完内部ROM后自动读取外部ROM)。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。5. 设计电路图6. 仿真电路图7

11、. C语言源程序#include#include#define uchar unsigned char#define uint unsigned intsbit Key=P10;sbit Led=P30;uchar code led_code18=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80, /段码 0x90,0x88,0x83,0xc6,0xa1,0x86,0x81,0x7f,0xff;uchar data dis_data6=0,0,0,0,0,0;unsigned long data counter;uchar data timer_coun

12、ter=0;void Init();void Timer_Init();void delayms(uchar n);void Data_Deal();void display(uchar *p,uchar n);void Delay100ms(unsigned int _100ms);void Delay1ms(unsigned int ms);/*主程序*/void main() Init(); while(1) if(timer_counter=20) TR1=0; /关闭计时 TR0=0; /关闭计数 TH0=0; /计数清0 TL0=0; TH1=0x4c; /50ms定时 TL1=0

13、x00; timer_counter=0; Key=1; if(Key) Delay1ms(5); if(Key) counter=counter*16; counter=counter/100; Led=0; Data_Deal(); /更新数据 else if(counter200000) /超过200K范围后显示全FF dis_data0=0x0f; dis_data1=0x0f; dis_data2=0x0f; dis_data3=0x0f; dis_data4=0x0f; dis_data5=0x0f; else Led=1; Data_Deal(); /更新数据 counter=0

14、; TR1=1; /启动计时 TR0=1; /启动计数 display(dis_data,6); /*程序初始化*/void Init() Delay100ms(5); /开机先调用一段延时 Timer_Init(); /*定时器初始化*/void Timer_Init() TMOD=0x15; /定时器1定时方式1,定时器0计数方式1 TH0=0; /计数清0 TL0=0; TH1=0x4c; /50ms定时 TL1=0x00; ET1=1; EA=1; TR1=1; /启动计时 TR0=1; /启动计数 Led=1;/*显示程序*/void display(uchar *p,uchar n

15、) uchar i; for(i=0;i0;loop-) x=ms; for(;x0;x-) for(n=225;n0;n-) _nop_();_nop_();_nop_();_nop_(); /*void Delay100ms(unsigned int _100ms) /100ms级延时 unsigned char n,i,ms,loop; for(loop=6;loop0;loop-) ms=_100ms; for(;ms0;ms-) for(n=145;n0;n-) for(i=251;i0;i-)_nop_(); /*定时中断程序*/void Timer1(void) interrupt 3 TR0=0; TH1=0x4c; TL1=0x00; counter=counter+TH0*256; counter=counter+TL0; TH0=0; TL0=0; timer_counter+; /50ms计数 TR0=1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1