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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

频率计的设计报告Word下载.docx

1、2.2.3 显示模块:数据经74LS595送出,显示电路采用四位共阴极数码管动态显示。如图3(四位数码管) 、图4(74LS595): 图3:四位数码管 图4:74LS5953.系统硬件电路设计3.1 系统原理框图 本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机的动态扫描把测出的数据送到数字显示电路显示。如图5:四位位数码管3.2 AT89S52的介绍8位单片机是MSC-51系列产品升级版5,有世界著名半导体公司ATMEL在购买MSC-51设计结构后,利用自身优势技术(掉电不丢数据)闪存生产技术对旧技术进行改进和扩展,同时使用新的半导体生产工艺,最终得到成型产

2、品。与此同时,世界上其他的著名公司也通过基本的51内核,结合公司自身技术进行改进生产,推广一批如51F020等高性能单片机。AT89S52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。片内资源有4组I/O控制端口、3个定时器、8个中断、软件设置低能耗模式、看门狗和断电保护。可以在4V到5.5V宽电压范围内正常工作。不断发展的半导体工艺也让该单片机的功耗不断降低。同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。根据不同场合的要

3、求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。3.1.1 AT89S52引脚 AT89S52引脚如下图6所示:图6: AT89S52引脚图3.2.2 复位电路及时钟电路复位电路和时钟电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位(图7)和手动复位(图8)。 图7: 上电复位 图8:手动复位有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能6。但是告诉对系统要求较高,而且功耗

4、大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12.000M无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振。单片机最小系统如图1所示。3.2.3 引脚功能VCC:电源电压; GND:地;P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口用来接收指令字节;在程序

5、校验时,输出指令字节。程序校验时,需要外部上拉电阻7。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1 输出缓冲器能驱动4个TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入和定时器/计数器2的触发输入,P1口功能具体如表1所示。在flash编程和校验时,P1口接收低8位地址字节。表1 P1口的第二种功能说明表引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的

6、捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4 个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O

7、口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。P3口亦作为AT89C51特殊功能(第二功能)使用,P3口功能如表2所示。在flash编程和校验时,P3口也接收一些控制信号。表2 P3口的第二种功能说明表P3.0RXD(串行输入)P3.1TXD (串行输出)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6(外部数据存储器写选通)P3.7RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电

8、平。特殊寄存器 AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.2.4 单片机引脚分配根据系统设计及各模块的分析得出,单片机的引脚分配如表3所示。表 3 单片机端口分配表模 块端口功能显示模块P0.0-P0.4、 P2.0-P2.7数码管频率值显示P1.4-P1.6LED单位显示分频模块P1.0-P1.2通道选择P1.3清零4.程序流程图与源程序4.1 程序流程图程序流程图如图9所示: 图9:程序流程图4.2 主程序#include stdio.h

9、math.hintrins.h /* 定义位变量*/ sbit SCL=P03; /移位; sbit RCL1=P01; /RCL1,RCL2位码锁存时钟; sbit RCL2=P02; sbit SDATA=P00; /数据位; sbit key=P10;/* 定义数组*/ Unsigned char code led1 =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xf1,0x38,0x39; /09,r,l,c不带小数点; 段位代码宏定义 #define k00 0x8000 #define k01 0x4000 #define

10、k02 0x2000 #define k03 0x1000 #define k10 0x0800 #define k11 0x0400 #define k12 0x0200 #define k13 0x0100 #define k20 0x0080 #define k21 0x0040 #define k22 0x0020 #define k23 0x0010unsigned char a4=0;bit int_flag; /定时器0 1S到标志位unsigned char volatile int_count=0; /定时器0中断次数unsigned char volatile T1coun

11、t=0; /定时器1中断次数unsigned long sum; /1S内脉冲总个数函数名:void delay() 出口参数:无入口参数:功能:延时函数(100ms)void delay(void) unsigned int l; for(l=0;l500;l+); Data_Out(unsigned int n_LED,unsigned char Data_595) n_led,data_595;段码及显示的数据发送数据并显示void Data_Out(unsigned int n_LED,unsigned char Data_595) unsigned char y; RCL2=1; /

12、 输出锁存时钟 ,上升有效 RCL1=1; RCL2=0; /段码清零; for(y=0;y=1; SCL=1; /发送段信号; if(Data_595&0x80)=0x80) SDATA=1;0x80)!=0x80) SDATA=0; Data_595delay(); /延迟一会;/*数据分离*Data_con()将所需结果按单个字符输出*/void Data_con(float x) unsigned int result; result=x; a3=result%10; /低 a2=(result/10)%10; a1=(result/10)/10)%10; a0= (result/10

13、)/10)/10)%10;xianshi1() 给出显示的数据位码及段码 (频率显示) void xianshi1()/数据显示 Data_Out(k10,led1a3); Data_Out(k11,led1a2); Data_Out(k12,led1a1); Data_Out(k13,led1a0); /*定时器0初始化 * 功能: 设定初值 */void init_t0(void) TMOD=(TMOD&0xF0)|0x01; /定时器0工作于方式1 保存高4位,低4位清零,再给低 0001 TH0=(65536-50000)/256; /定时50ms TL0=(65535-50000)%

14、256;/* 定时器1初始化 */void init_t1(void)0x0F)|0x50; /timer 1 for count 高四位清零,在给0101 计数方式,方式1 TH1 =0x00; TL1 =0x00; /*主函数 实现主要功能void main (void) EA=1; /开总中断 init_t0(); /初始化定时器 init_t1(); TR0=1; /定时器开始工作 TR1=1; ET0=1; /定时器TO溢出中断允许 ET1=1; /计数器T1溢出中断允许 while(1) if(int_flag=1) /完成1秒计时 ,死循环,一只扫描是否完成1秒计时 int_fl

15、ag=0; sum=TL1+TH1*256; /+T1count*65536; /计算1秒内的脉冲个数 /以下将数据格式化,转成LED可显示的BCD码 Data_con(sum); int_count=0x00; T1count=0; TH1=0x00; /将计数器TO的值清0 TL1=0x00; /将计数器T0的值清0 xianshi1(); /*定时器0中断服务程序* T0定时开启后,做+1,溢出后中断, 进入该程序,循环20次,即1S定时完成*/void int_t0(void) interrupt 1 TH0=(65535-50000)/256; int_count+; if(int_

16、count=20) TR1=0; int_flag=1; /定时器 TO定时结束标志位5.设计心得本次课程设计有较强的综合性,不仅要求设计者能灵活使用单片机,熟练使用单片计计数器和定时器,熟练编写顺序结构程序,循环结构程序以及分支结构程序,还要求对单片机的电路连接结构,对数码管管理芯片有明确清晰的了解与认识,否则在设计的第一步就会遇到障碍。掌握了C语言的编写程序,学会了使用PROTUTES和KEIL的仿真来实现,同时掌握了如何收集、查阅、应用文献资料,如何根据实际需要有选择的阅读书籍和正确确定系统所要使用的元器件的类型。而且在精神方面锻炼了思想、磨练了意志。面对存在的困难首先分析问题根据目的要

17、求确定可实现的部分,定出那不准的方面找同学和老师讨论研究,再完善、再修改、再发现问题、再解决培养了自己的耐心、恒心及遇事不乱的精神。看着自己亲自通过自己的知识和努力设计的频率计,心里是很欣慰的,因为我从这次课程设计不仅仅只是得到了一个自己的产品,还学到了很多,例如面对问题要保持冷静,特别是在程序的编写这一块,要找出程序的错误一定要有一个冷静的头脑,否则很难发现错误甚至是越改越错。另外我还认识到与他人合作的重要性,虚心向别人学习,吸取别人编写程序的一些好的风格与特点再融入到自己的程序中,都是一些不错的方法。在本次综合设计试验中我的很多方面的能力都得到了提高,尤其在单片机软件编程方面让我感触颇深。最后,感谢在这次课程设计中王党树老师和孙广清老师及彭倩老师提供的指导和帮助!

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

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