基于MC9S08AW60单片机的频率计设计_第1页
基于MC9S08AW60单片机的频率计设计_第2页
基于MC9S08AW60单片机的频率计设计_第3页
基于MC9S08AW60单片机的频率计设计_第4页
基于MC9S08AW60单片机的频率计设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、基于MC9S08AW60频率计设计 设 计 名 称: 基于MC9S08AW60单片机的频率计设计 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 设 计 时 间: 目录概述21 MC9S08AW60单片机特点:22 频率计设计硬件构成框图33频率计硬件设计33.1 MC9S08AW60最小系统设计33.2频率计的测量电路43.3 人机接口电路54 软件设计部分64.1 软件设计框图6参考文献7附录A8原理图8附录B9相关源程序9基于MC9S08AW60单片机的频率计设计微控制这门课已经进行了一个学期的学习,这个课程围绕飞思卡尔的8位单片机MC9S08AW60展开论述。选

2、择的本课程的结课题目为简易频率计设计。设计要求:1. 对方波、三角波、正弦波的频率测量;2. 对方波、三角波、正弦波的单个周期的测量,按键控制单次触发测量;3. 在LCD屏上显示频率,周期的信息;4. 自带内部校准频率发生器1KHZ,幅值为5V;5. 对输入接口的保护;6. 信号波的幅值在0.1V5V之间;7. 可以测量的信号波频率在020MHZ之间,自适应量程;8. 输入电阻近似无穷大;概述数字频率计是一种用十进制数字,显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号以及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,

3、测量迅速,显示直观,所以经常要用到数字频率计。     频率测量中直接测量的数字频率计主要由四个部分构成:时基(T)电路、输入电路、计数显示电路以及控制电路。在一个测量周期过程中,被测周期信号在输入电路中经过放大、整形、微分操作之后形成方波信号,加到与非门的另一个输入端上.该与非门起到主阀门的作用,在与非门第二个人输入端上加阀门控制信号,控制信号为低电平时阀门关闭,无信号进入计数器;控制信号为高电频时,阀门开启整形后的信号进入计数器,若阀门控制信号取1s,则在阀门时间1s内计数器得到的脉冲数N就是被测信号的频率. 在普通的电子测量仪器

4、中,示波器在进行频率测量时测量精度较低,误差较大。频谱仪可以准确的测量频率并显示被测信号的频谱,但测量速度较慢,无法实时快速的跟踪捕捉到被测信号频率的变化。正是由于频率计能够快速准确的捕捉到被测信号频率的变化,因此,频率计拥有非常广泛的应用范围。1 MC9S08AW60单片机特点:8 位 HCS08 中央处理单元(CPU)40MHz 的 HCS08 的CPU(中央处理单元) 20MHz 的内部总线频率单线后台调试模式接口支持多达 32个中断/复位源高达 60KB的片内在线可编程 FLASH 存储器,带有块保护和安全选项高达 2KB 的片内 RAM 可选的计算机正常操作(COP)复位ADC-多达

5、 16 个通道,10 位 AD转换器与自动比较功能SCI-两个串行通信接口模块与可选的 13 位中断SPI 的-串行外设接口模块Timers-1 个 2 通道和 1 个 6 通道 16 位定时器/脉冲宽度调制器(TPM)模块:可选输入捕捉,输出比较,和边沿分布的 PWM 能力,在每个通道。每个定时器模块,高达 54 通用输入/输出(I/O)引脚输入时,每个端口都有软件选择的上拉电阻输出时,每个端口都有软件选择的回转速率控制输出时,每个端口都有软件选择的驱动强度64 引脚的四方扁平封装(QFP)2 频率计设计硬件构成框图 3频率计硬件设计3.1 MC9S08AW60最小系统设计最小系统

6、包括电源部分、晶振电路、调试接口、复位电路。3.2频率计的测量电路为了保护单片机接口,使用电压比较器作为限流和整形电路,单片机接收的是标准的方波信号。此外,该频率计还可以产生一路标准的方波信号。3.3 人机接口电路人机接口电路包括液晶显示和按键。4 软件设计部分4.1 软件设计框图4.2频率测量算法设计如上图所示,在相同的T时间内,时钟信号的频率已知为Fbus ,所以需要求出的频率F=Fbus *(N1/N2)参考文献【1】 王威.嵌入式微控制器S08AW原理与实践.北京航空航天大学出版社.2009【2】 阮毅,陈伯时.电力拖动自动控制系统.机械工业出版社.2013附录A原理图:附录B相关源程

7、序:主函数:#include <hidef.h> /* for EnableInterrupts macro */#include "derivative.h" /* include peripheral declarations */#include "IO_Init.h"#include "LCD5110.h"#include "Timer.h"#include "interrupt.h"extern char start;void System_Init(void) IO_In

8、it(); LCD5110_Init(); Timer_Init();void main(void) System_Init(); EnableInterrupts; /* enable interrupts */ for(;) if(start) show_frequency(calculate_frequency(); else show_frequency(0); _RESET_WATCHDOG(); /* feeds the dog */ 各个模块函数:定时器:#include "Timer.h"#include "interrupt.h"ext

9、ern FreqStructure FreqStruct;void Timer_Init(void) TPM1SC=0x48;/溢出中断开启,总线时钟20M; TPM1C0SC=0x44;/使能通道0捕获中断,仅在上升沿捕获 TPM2SC=0x08;/溢出中断开启,总线时钟20M; TPM2MOD=0x4E20;/1KHZ? TPM2C0SC=0x28;/使能通道0捕获中断,仅在上升沿捕获 float calculate_frequency(void) float freq=0; freq=20000000*(float)FreqStruct.count/(0xFFFF*FreqStruct.

10、over_num+FreqStruct.time_pointFreqStruct.i); return freq;键盘中断:#include "IO_Init.h"void IO_Init(void) /*按键*/ PTGPE=0x07;/ KBIPE0,KBIPE1,KBIPE2,三个引脚使能内部上拉 KBI1SC=0x02;/下降沿,开键盘中断,仅边沿有效 KBI1PE=0x07;/KBIPE0,KBIPE1,KBIPE2,三个引脚作为键盘中断输入 /*LCD5110*/ PTADD=0x3F;/PTADD0PTADD5设置为输出#include "inter

11、rupt.h"char start=0;FreqStructure FreqStruct=0,0,0,0;interrupt VectorNumber_Vkeyboard1 void KBI_ISR(void) KBI1SC_KBACK=1; if(!PTGD_PTGD0) start+; if(!PTGD_PTGD1) start+; if(!PTGD_PTGD2) start=0; interrupt VectorNumber_Vtpm1ch0 void KBIch0_ISR(void) TPM1C0SC_CH0F=0; FreqStruct.count+; if(FreqStr

12、uct.i>=9) FreqStruct.i=0; FreqStruct.time_pointFreqStruct.i+=TPM1C0V;interrupt VectorNumber_Vtpm1ovf void KBIovf_ISR(void) TPM1SC_TOF=0; FreqStruct.over_num+;显示:void LCD5110_Init(void) LCD_RST= 0; / 产生一个让LCD复位的低电平脉冲 delay_us(1); LCD_RST= 1; LCD_CE= 0;/ 关闭LCD delay_us(1); LCD_CE = 1;/ 使能LCD delay_

13、us(1); LCD_write_byte(0x21, 0);/ 使用扩展命令设置LCD模式 LCD_write_byte(0xc8, 0);/ 设置偏置电压 LCD_write_byte(0x06, 0);/ 温度校正 LCD_write_byte(0x13, 0);/ 1:48 LCD_write_byte(0x20, 0);/ 使用基本命令 LCD_clear(); / 清屏 LCD_write_byte(0x0c, 0);/ 设定显示模式,正常显示 LCD_CE = 0; / 关闭LCD LCD_LED=0; LCD_clear(); void show_frequency(float freq) long tem; LCD_write_string(0,1,"FREQUARY:"); if(freq>1000) tem=freq/1000; LCD_Write_Num(0,2,tem,

温馨提示

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

最新文档

评论

0/150

提交评论