基于tc1的波形发生器设计

发布者:Delightful789最新更新时间:2016-10-25 来源: eefocus关键字:tc1  波形发生器 手机看文章 扫描二维码
随时随地手机看文章
//***************FileName:Compare.C***************//

//***************ICCAVR V6.30编译*****************//

#include                  
#define uchar unsigned char
#define uint unsigned int

//数码管字型表,对应0,1,2,3,4,5,6,7,8,9//
uchar Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar Data[4]={0,0,0,1};       //定义初始方波频率:1KHz
uchar Key1_Flag,Key2_Flag,Key3_Flag;

void DelayMs(uint i)           //Ms级延时,参数i为延时时间
{uint j;
for(;i!=0;i--)
{for(j=8000;j!=0;j--) {;}}
}

void Display(uchar *p)         //动态显示函数,参数p为待显示的数组名
{uchar i,sel=0x01;           
for(i=0;i<4;i++)
{PORTA=sel;                  //选通最右边的数码管
   PORTC=0xff-Table[p[i]];          //送字型码
   DelayMs(1);                 //显示延时    
   sel=sel<<1;                 //移位以显示前一位
}
}

void Key_Process(uchar *p)
{uchar i,j,k;
while((PINB&0x01)==0) {Display(Data);Key1_Flag=1;}                //处理频率百位,最高5
while((PINB&0x02)==0) {Display(Data);Key2_Flag=1;}
while((PINB&0x04)==0) {Display(Data);Key3_Flag=1;}
if(Key1_Flag==1)
   {p[3]++;
if(p[3]==10) p[3]=0;
Key1_Flag=0;}   
if(Key2_Flag==1)                 //处理频率十位,最高9
    {p[2]++;
if(p[2]==10) p[2]=0;
Key2_Flag=0;}
if(Key3_Flag==1)                 //处理频率各位,最高9
    {p[1]++;
if(p[1]==10) p[1]=0;
Key3_Flag=0;}
}

void Set_Process(void)
{uint i,j;
i=Data[0]*1000+Data[1]*100+Data[2]*10+Data[3];
j=500/i;
OCR1AH=j>>8;
OCR1AL=j&0x00ff;
}

void Init_IO(void)             //初始化I/O口
{DDRA=0xff;                    //设置A口为推挽1输出
PORTA=0xff;
DDRC=0xff;                    //设置C口为推挽1输出             
PORTC=0xff;
DDRB=0x00;                    //设置B口为三态输入
PORTB=0x00;
DDRD=0xff;                    //设置D口为推挽1输出
PORTD=0xff;    
}

void Init_Timer1(void)         //初始化T/C1的输入捕获中断
{TIMSK=TIMSK|0x10;             //输出比较使能
TCCR1B=0x0a;                  //时钟1                                                               频,输出比较匹配清除定时器值
TCNT1H=0x00;                  //清除定时器值
TCNT1L=0x00;
Set_Process();                //OCR1A,OCR1B置初值
SREG=SREG|0x80;               //全局中断开
}

void main(void)
{Init_IO();                    //初始化I/O口
PORTA=0xff;                   //点亮以测试所有的数码管
PORTC=0x00;   
Init_Timer1();                
DelayMs(300);                //延时
PORTC=0xff;                   //熄灭所有的数码管
while(1)
{Key_Process(Data);
Set_Process();
Display(Data);               //动态扫描显示
}
}

#pragma interrupt_handler Compare:7
void Compare(void)
{PORTD=~PORTD;}

关键字:tc1  波形发生器 引用地址:基于tc1的波形发生器设计

上一篇:基于tc1的频率计设计
下一篇:基于tc0的时钟设计

推荐阅读最新更新时间:2024-03-16 15:17

一种高精度波形发生器的设计
摘要:随着电子技术的发展,在诸如测量、控制等领域,经常要求信号的幅度保持在某个高精度的整数值上。但由于一般数据转换器在最小量化电平上的限制,其输出的信号电平很难在整数值上得到较高的精度。针对该问题,介绍一种高性能的16位数据转换器AD7846,使用TMS320VC54X系列DSP作为核心控制器,设计出幅度可精确至1mV的波形发生器。文中给出具体的硬件实现框图以及用来产生波形的DSP汇编源程序。 关键词:波形发生器 高精度 AD7846 DSP 引言 随着电子技术的发展,波形发生器已经广泛的应用在通信、控制、测量等各个领域。在很多地方,如测试测量领域,需要输出的波形能够精确地定位在某一整数值上,但通常由于ADC参考电平的限制,
[应用]
基于18位数模转换器AD760的波形发生器的设计
1.前言   信号发生器既可以构成独立的信号源,也可以是高性能网络分析仪、频谱仪及其它自动测试设备的组成部分。信号发生器的关键技术是多种高性能仪器的支撑技术,因为它能够提供高质量的精密信号源及扫频源,可使相应系统的检测过程大大简化,降低检测费用并极大地提高检测精度。但是目前的产品体积大,精度低,无法满足用户对精度和便携性要求高的波形发生器的需求。   AD760是AD公司开发的一种具有自校正功能的16/18位DAC器件,片内带有电压基准,双缓冲寄存器和输出放大器 。特别是在采用AD760的18位数据输入时能够获得很高的精度。本文针对高精度波形发生器的开发,进行了以AD760为核心的波形发生器的软硬件系统设计。 2.系统结构及功
[模拟电子]
在SOPC上实现的波形发生器
摘 要:可编程片上系统(SoPC)设计是一个崭新的、富有生机的嵌入式系统设计方向。嵌入式集成化设计已成为电子领域发展的一个重要方向。Xilinx提供的EDK正是用于创建基于FPGA的嵌入式系统的开发工具包。本文介绍基于SoPc的波形发生器在EDK工具包下的设计与实现。本设计采用嵌入式软处理器核MicroBlaze以及自主编写的包括实现DDS在内的多种IP Core,最大限度地实现系统的集成化。 引 言 SoPc可编程片上系统是一种特殊的嵌入式微处理器系统。首先,它是片上系统(SoC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,以FPGA为硬件基础,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件系统
[应用]
生成复杂波形的四种方法 - 了解所见及所得的波形生成功能
成信号以便对电气设计或系统进行表征、 测试或故障诊断可能会单调乏味且耗时。 因此,我们的专家提出了四个秘诀, 帮助您更高效地生成简单或复杂的波形。 了解所见即所得的波形生成功能 方法一 从纯正弦波开始 检查波形发生器输出的清晰度 在制作软饮或啤酒等饮品时,纯水无可替代,因为几乎不可能从最终产品中去除杂质。同样,在创建放大、混合或调制信号的电路时,使用具有低谐波失真的纯正弦波来对电路进行测试很有意义。在对设计进行故障诊断以确定错误来源,特别是对发射机、接收机和锁相环进行故障诊断时,使用具有最干净输出的波形发生器将会大有帮助。 利用频谱分析仪检查波形发生器的噪声电平时,首先要看波形发生器的带宽。查看带宽是否指定为 3 db
[测试测量]
生成复杂波形的四种方法 - 了解所见及所得的波形生成功能
改善音色的可调EX波形发生器电路图
改善音色的可调EX波形发生器电路图
[模拟电子]
改善音色的可调EX<font color='red'>波形发生器</font>电路图
AD9833型高精度可编程波形发生器及其应用
1 引言 AD9833是ADI公司生产的一款低功耗,可编程波形发生器,能够产生正弦波、三角波、方波输出。波形发生器广泛应用于各种测量、激励和时域响应领域,AD9833无需外接元件,输出频率和相位都可通过软件编程,易于调节,频率寄存器是28位的,主频时钟为25MHz时,精度为0.1Hz,主频时钟为1MHz时,精度可以达到0.004Hz。 可以通过3个串行接口将数据写入AD9833,这3个串口的最高工作频率可以达到40MHz,易于与DSP和各种主流微控制器兼容。AD9833的工作电压范围为2.3V-5.5V。 AD9833还具有休眠功能,可使没被使用的部分休眠,减少该部分的电流损耗,例如,若利用AD9833输出作为时钟源,就可
[工业控制]
德国Spectrum公司发布两款新型任意波形发生器
2016年1月13日,德国汉斯多尔夫讯 德国Spectrum公司今日发布了两款新型任意波形发生器(AWG's)。新产品从速度、精度以及体积上,树立了新的行业标杆。新产品可为客户提供1至2个通道,每个通道所输出的电子信号频率可达1.25GS/s,垂直分辨率高达16位。这种完美的表现和性能可使新款任意波形发生器在确保高精度和保真度的同时,产生高达400 MHz的高频信号。 新推出的任意波形发生器因其杰出的频率范围和动态性能获得了众多领域工程师和科学家们的青睐,这其中包括通信、雷达、半导体、元器件测试、纳米技术、媒体测试、自动化、超声波、光学、物理学、医学和生物科学等领域。任意波形发生器几乎适用于生成任意波形,这其中包括激
[测试测量]
德国Spectrum公司发布两款新型任意<font color='red'>波形发生器</font>
是德科技任意波形发生器和光波元器件分析仪双双获创新奖
是德科技任意波形发生器和光波元器件分析仪双双荣获2020年度Lightwave创新奖项 2021 年 4 月30日,北京——是德科技(NYSE:KEYS)日前宣布,在 2020 年度 Lightwave 创新奖评选中,两款是德科技产品获得实验室/生产测试设备类别的最高分。是德科技提供先进的设计和验证解决方案,旨在加速创新,创造一个安全互联的世界。该公司的M8199A 128/256 GSa/s 任意波形发生器(AWG)摘得该类别桂冠,另一款N4372E 110 GHz 光波元器件分析仪紧随其后,荣获第二名。 《Lightwave》杂志的 Lightwave 创新奖每年评选一次,旨在表彰光网络行业内的优秀产品和解决方案。评审
[测试测量]
是德科技任意<font color='red'>波形发生器</font>和光波元器件分析仪双双获创新奖
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved