十二、ATmega16的CTC模式方波发生器(下)
ATmega16单片机定时器讲解资料

位6: TOIE2:T/C2溢出中断使能位。 0:溢出中断禁止; 1:溢出中断使能。
位5: TICIE1:T/C1输入捕捉中断使能位。 0:输入捕捉中断禁止; 1:输入捕捉中断使能。
Page 16
R1 10K
4 /RE T
C0 4.7u
ATm eg a1 6
AJ1
C7 33 OSC1 C6 33
12 PD .3(/INT1)
8 XTAL1
7 XTAL2
L1 R21~28
L2 R29~36
L3 R37~44
L4 R45~52
dp g f e d c b a
dp g f e d c b a
dp g f e d c b a
Page 2
3.1、单片机定时器的基本应用、原理及要素
1、单片机定时器的基本应用 2、单片机定时器的基本原理图 3、单片机定时器的基本要素
Page 3
3.1.1、单片机定时器的基本应用
基本应用:
定时计数器是单片机中最基本的接口之一, 它的用途非常广泛,常用于计数、延时、测量 周期、频率、脉宽、提供定时脉冲信号等。在 实际应用中,对于转速,位移、速度、流量等 物理量的测量,通常也是由传感器转换成脉冲 电信号,通过使用定时计数器来测量其周期或 频率,再经过计算处理获得
Page 11
3.2.1、ATmega16单片机定时器T/C0的组成原理
TC0的比较匹配单元:
Page 12
在引脚的方向寄存器DDRB.3定 义为输出时,当寄存器TCCR0中 的标志位COM0[1:0]中任何一位为 1时,或门M1输出为1,多路数据 选择器S3的通道1被选中,如果端 口PB.3定义为输出时,三态门F2 被打开,OC0将替代引脚PB3原来 的I/O功能,端口PB.3上输出的就 是波形发生器产生的波形。当 COM0[1:0]都为0时,选择器S3的通 道0被选中,PB.3口输出的则是端 口PORT之值。
单片机电子琴的实验报告

姓名:班级:学号:小班学号:同组姓名:电子邮件:实验课题:基于AVR单片机电子琴的制作实验日期:2013.09.02—2013.09.15目录:一、实验简介1.1实验目的 (4)1.2实验关键词 (4)1.3基础知识 (4)二、实验器材2.1核心部件:ATmega16单片机 (5)2.2电路元件 (6)2.3管脚说明 (6)三、实验原理3.1实验原理图 (7)3.2实验流程图 (8)3.3实物效果图 (8)四、操作过程与运行结果4.1操作过程示意图 (9)4.2电子琴系统主要部分 (11)4.3具体操作过程 (11)4.4运行结果 (12)五、实验中的排错、体会与建议5.1调试与排错过程 (12)5.2体会与建议 (14)5.3小组分工 (15)5.4参考文献 (15)六、附录6.1流水灯实验 (16)6.2蜂鸣器实验 (17)6.3秒表实验 (18)6.4简易交通灯实验 (25)6.5电子琴源代码 (30)一、实验简介1.1实验目的通过设计一个模拟电子琴系统熟悉ATmega16单片机的使用及其基本功能。
使其能够通过键盘控制实现播放预存音乐,弹奏、储存弹奏音乐,变速播放,暂停及继续播放,停止播放功能。
1.2实验关键词按键检测预存播放弹奏储存变速暂停停止1.3基础知识声波是振动产生的。
频率即表示每秒钟振动的次数,采用CTC方式时avr 单片机通过特定的端口(PD4及PD5)输出一定频率的方波,TCCR1A设为比较匹配时OC1A/OC1B电平取反,TCCR1B的计数上限为OC1A,根据公式OCnA=f/2N(1+OCRnA)计算出7个频率音阶所需的OCR1A,则只需将喇叭接在PD4或PD5,通过程序控制端口输出特定频率的方波波形(发声使用正弦波最好,方波效果稍次但影响不大),喇叭就会发出七种不同的声音,依照人听觉分辨7个音阶分为三组,分别为高,中,低音阶频率,经计算可得,当OCR1A=(8000000/musicmem[i]-1)时,{131,147,165,175,196,220,247}存放低音阶频率,{262,294,330,349,392,440,494}存放中音阶频率,{524,588,660,698,784,880,988}则存放高音阶频率,所以需要定义三个数组存放各音阶的频率值。
ATMEGA16定时器的使用

ATMEGA16定时器的使用[日期:2012-01-07 ] [来源:本站编辑作者:佚名] [字体:大中小] (投递新闻)/*本程序简单的示范了如何使用ATMEGA16的定时器AVR定时器的要点介绍T0工作于CTC模式,输出1KHz/2KHz 50%占空比的方波T1工作于快速PWM模式兼输入捕捉T2工作于相位修正PWM模式,输出490Hz的8bit PWM波出于简化程序考虑,各种数据没有对外输出,学习时建议使用JTAG ICE硬件仿真器对于定时器,AVRstudio的软件仿真是不准确的。
*/#include <AVR/io.h>#include <AVR/signal.h>#include <AVR/interrupt.h>//时钟定为8MHz,F_CPU=8000000//管脚定义#define ICPKEY 6 //ICP1 PD6 按键模拟ICP输入#define PWM0 3 //OC0 PB3#define PWM1A 5 //OC1A PD5#define PWM1B 4 //OC1B PD4#define PWM2 7 //OC2 PD7//宏定义#define PWM1A_ON() PORTD|= (1<<PWM1A) //输出高电平,灯亮#define PWM1A_OFF() PORTD&=~(1<<PWM1A) //输出低电平,灯灭//全局变量volatile unsigned int ICP_Time; //记录ICP输入捕捉事件的发生时刻volatile unsigned char T2PWM; //设置T2的PWM值volatile unsigned char T0OCR; //设置T0的时间值//仿真时在watch窗口,监控这些变量。
void timer0_init(void) //CTC模式输出1KHz/2KHz方波{OCR0 = T0OCR; //设定TOP值//TOP=8000000/(2*64*1000)-1=61.5 选61 1.008KHz(0.992mS)//TOP=8000000/(2*64*2000)-1=30.25 选30 2.016KHz(0.496ms)TCCR0 = (1<<WGM01)|(0<<WGM00)|(0<<COM01)|(1<<COM00)|(0<<CS02)|(1<<CS01)|(1<<CS00);//64分频,CTC模式,OC0取反输出方波}void timer1_init(void){OCR1A = 39062; //设定TOP值.时间5S(0.2Hz)//TOP=8000000/(1024*0.2)=39062.5OCR1B = 15624; //设定OC1B的PWM值约2秒钟40%TCCR1A = (1<<COM1B1)|(0<<COM1B0)|(1<<WGM11)|(1<<WGM10);TCCR1B = (0<<ICES1)|(1<<WGM13)|(1<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);//1024分频,WGM1=15 快速PWM模式,TOP=OCRnA,ICP下降沿触发,OC1B正向PWM输出,OC1A为普通IO}SIGNAL(SIG_INPUT_CAPTURE1) //输入捕捉中断{ICP_Time=ICR1; //读取ICP输入捕捉事件的发生时刻}SIGNAL(SIG_OUTPUT_COMPARE1A)//T1输出比较A匹配中断{//在WGM1=15 快速PWM模式下,TOP=39062等同于5S左右的定时中断T2PWM+=10;OCR2=T2PWM; //修改T2的PWM值if (T0OCR==61)T0OCR=30; //改成1KHzelseT0OCR=61; //改成2KHzOCR0=T0OCR; //修改T0的时间值}void timer2_init(void)//相位修正PWM模式{OCR2 = T2PWM; //设定PWM值(最大值固定为255,8bit)TCCR2 = (0<<WGM21)|(1<<WGM20)|(1<<COM21)|(0<<COM20)|(0<<CS22)|(1<<CS21)|(1<<CS20);//32分频,相位修正PWM模式,PWM频率为490Hz,OC2正向PWM输出//fPWM=fclk_IO/(2*N*TOP)=8000000/(2*32*255)=490Hz}int main(void){//上电默认DDRx=0x00,PORTx=0x00 输入,无上拉电阻PORTA =0xFF; //不用的管脚使能内部上拉电阻。
ATMEGA16定时器0

ATMEGA16定时器0(2013-04-09 21:51:35)转载▼分类:AVR标签:avr定时器0MEGA16定时器0T/C0 是一个八位定时器,主要有定时、外部事件计数、产生PWM 波形这几个功能,我们在使用这些功能之前,首先要设置T/C0 工作在合适的工作模式下。
T/C0 有四种工作模式,分别是普通模式、CTC 模式、快速PWM、相位可调的PWM 模式四种。
模式设置通过T/C0 的控制寄存器TCCR0 来完成。
1.普通模式在此模式下,T/C0 的计数寄存器TCNT0 在时钟的驱动下不停累加。
当计满后(计数值达到最大,8 位寄存器最大计数值为0xff),由于数值的溢出寄存器清零重新开始累加。
当计数器溢出后,TIFR 中的溢出标志位TOV0 会置位,也可触发中断。
所以我们可以通过查询或中断的方式得知定时器的溢出从而进行相关处理。
此模式适合定时与计数。
关于定时和计数,这里的定时功能是T/C0 在对时钟计数达到一定的值后引发中断,达到了定时功能,然而本质的过程是计数工作。
那么这里所说的计数功能是外部事件计数。
实例:T/C0 定时实验,将T/C0 设置为普通模式,对1024 分频的系统时钟进行计数,计满发生中断,40 次中断递增一个计数用的变量,主函数则不停显示这个变量。
第一步:开总中断,SREG |= 0X80;第二步:开T/C0 溢出中断第三步:模式设置、分频设置、匹配输出模式设置T/C0 控制寄存器用于设置工作模式,时钟分频和波形输出模式。
这里T/C0 设置为普通模式,WGM00-WGM01设置为00。
此模式下定时器的TOP 值,也就是能够达到的最大计数值为0xFF。
TOV0 在计数器计满后置位,也就是计到MAX,八位的定时器计数达到255 为计满。
低三位设置定时器时钟。
T/C0 在系统时钟的分频或外部时钟的驱动下递增或递减。
系统时钟也就是晶振的大小是11.0592MHZ。
此实验中,设置为1024 分频。
ATMEGA16A中文资料

ATMEGA16A中文资料高性能,低功耗AVR 8-bit微控制器•高级RISC建筑– 131条指令–绝大多数为单时钟周期执行– 32 x 8通用工作寄存器–全静态工作–高达16吞吐量在MIPS 16 MHz–片2—cycle乘数高耐久性非易失性内存段– 16K字节的程序存储器,在系统内可编程Flash– 512字节的EEPROM– 1K字节内部SRAM–写/擦除周期:10,000闪光/ 100,000的EEPROM–数据保存:在20年85°C/100年在25°C(1)–可选引导具有独立锁定Bits代码段•在系统编程的片上引导程序•真Read-While-Write操作–锁编程软件安全JTAG (IEEE std。
1149.1兼容)接口–边界扫描功能根据JTAG标准–广泛的片上调试支持–编程闪存,EEPROM,熔丝位和锁定Bits通过JTAG接口外设特点–两个8—bit定时器/计数器具有独立预分频器和比较模式–一个16-bit定时器/计数器具有独立预分频器,比较功能和捕捉模式–实时计数器具有独立振荡器–四PWM频道– 8-channel, 10-bit ADC• 8单端通道• 7在TQFP 包装差分通道只有• 2在1x, 10x,差分通道具有可编程增益或200x–面向字节的两线串行接口可编程串行USART的––主/从串行接口SPI–可编程看门狗定时器具有独立片内振荡器–片内模拟比较器单片机的特殊功能–上电复位和可编程的掉电检测–内部振荡器校准RC–外部和内部中断源– 6种睡眠模式:空闲,ADC降噪,省电,省电,待机和扩展待机I / O和封装– 32可编程I / O线– 40—pin PDIP, 44—lead TQFP,和44—pad QFN/MLF 工作电压– 2。
7为- 5。
5V ATmega16A速度等级– 0 —为16 MHz ATmega16A功耗@ 1 MHz, 3V,和25°C为ATmega16A–活动:0。
AVR单片机复习题答案

AVR单片机复习题(答案在后面)第一章填空:1.单片机的基本组成结构包括:、、、五大部分。
2.哈佛结构是指,计算机由五大部分构成,五大部分分别是:、、、3.ATmega16包含程序存储器,数据存储器和的EEPROM。
4.ATMEL公司生产的单片机以三大系列为主,分别是:、、5.ATMEL公司生产的TinyAVR是属于单片机。
、6.ATMEL公司生产的megaA VR是属于单片机。
7.ATMEL公司生产的XMEGA是属于单片机。
选择:1.ATMEL公司生产的单片机以三大系列为主,其中TinyAVR是属于()A、低档单片机B、中档单片机C、高档单片机D、普通单片机2.ATMEL公司生产的单片机以三大系列为主,其中megaA VR是属于()A、低档单片机B、中档单片机C、高档单片机D、普通单片机3.ATMEL公司生产的单片机以三大系列为主,其中XMEGA是属于()A、低档单片机B、中档单片机C、高档单片机D、普通单片机4. 单片机的基本组成结构包括:CPU、程序存储器、、输入接口、输出接口五大部分()A、EEPROMB、数据存储器C、ROMD、堆栈简答:1.什么是ISP技术?采用ISP技术的单片机有什么优点?2.什么是单片机?3.说明单片机的RAM、FLASH ROM、EEPROM的用途和特点?(中等)第二章填空:1.单片机的三总线结构是指:、、。
2.ATmega16包含FLASH ROM,RAM和的EEPROM。
3.FLASH ROM支持用户,可以实现的(填读写或写入)。
4.单片机的数据存储器包含和两大部分,其中是的补充。
5.ATmega16中含有的EEPROM。
它的擦写次数是,具有、。
6.ATmega16的DIP封装共有引脚,其中共有I/O 口线。
7.ATmega16的数据存储器中共有通用工作寄存器,有寄存器可以合并成为3个16位的寄存器。
8.在ATmega16的通用寄存器组中,有16位的寄存器。
ATmega16定时器0产生PWM波
#include <delay.h>
#define uchar unsigned char
#define uint unsigned int
uint count;
/********以下是端口初始化函数********/
void port_init()
{
DDRB.3=1;
}
for(count=255;count>0;count--) //OCR=255时,LED最暗,然后逐渐变亮
{
OCR0= count;
delay_ms(20);
}
}
}
void main(void)
{
port_init();
timer0_init();
while(1)
{
for(count=0;count<256;count++) //OCR=0时,LED最亮,然后逐渐变暗
{
OCR0=count; //比较匹配寄存器赋值
delay_ms(20); //延时一段时间,以观察效果
atmega16pwmpwm定时器pwm定时器工作原理单片机产生pwm波产生pwm波定时器通道实现pwmpwm波产生芯片atmega16atmega16单片机atmega16引脚图
/********************************************
* TC0产生PWM *
*实验内容:TC0产生PWM输出,并显示在LED灯上*
PORTB.3=0;
}
/********定时器0初始化********/
void timer0_init()
浅谈ATmega 16单片机的T-C0控制寄存器和T-C1控制寄存器
浅谈ATmega 16单片机的T/C0控制寄存器和T/C1控制寄存器T/C0相关1.TCCR0T/C0控制寄存器FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00位7FOC0:强制输出比较位。
FOC0仅在WGM[01:00]设置为非PWM模式时才有效。
为了保证与未来器件的兼容性,在使用PWM时,写TCCR0要对其清零。
对其写1后,将立即进行比较操作。
比较匹配输出引脚OC0将按照COM[01:00]的设置输出相应的电平。
要注意FOC0类似一个锁存信号,真正对强制输出比较起作用的是COM[01:00]的设置。
FOC0不会引发任何中断,也不会在利用OCR0作为TOP的CTC模式下对进行清零的操作。
读FOC0的返回值永远为0。
位6,位3WGM[01:00]:波形产生模式这两位控制的计数序列、计数器的最大值及产生的波形。
T/C0支持的模式有:普通模式,比较匹配发生时清除计数器模式(CTC),以及两种PWM模式,详见下表:模式WGM01 WGM00 T/C的TOP OCR0的TOV0的(CTC0)(PWM0)工作模式更新时间置位时刻0 0 0 普通0xFF 立即更新0xFF1 0 1 修正PWM 0xFF 0xFF 0x002 1 0 CTC OCR0 立即更新0xFF3 1 1 快速PWM 0xFF 0xFF 0xFF位5,位4COM[01:00]:比较匹配输出模式这些位决定了比较匹配发生时输出引脚OC0的电平。
如果COM[01:00]中的一位或全部都置位,OC0以比较匹配输出的方式进行工作。
同时其方向控制位要设置为1以使能输出驱动器。
基于ATMEGA16A单片机的超声波电机信号发生模块
超声波电机信号发生器的设计[摘要] 超声波电机(USM)是一种新型的微特电机,它一般由两路幅值相等、相位差90°的正弦信号驱动,驱动信号的频率范围一般在20KHZ—100KHZ之间。
本次设计主要的任务是设计一款新型的基于ATMEGA16单片机控制的超声波电机驱动信号发生器,并且实现输出信号的频率、幅度、相位差可调。
通过设置ATMEGA16单片机定时器模块,输出两路频率范围20KHZ—50KHZ的方波信号,采用程序控制的方法,调节输出信号的频率、幅值和相位。
采取有源低通滤波的方法将两路方波信号转换成正弦信号。
采用AD811和BUF634构成信号放大电路。
考虑到本次设计的预期目标是输出四路具有一定相角关系的正弦信号,故在信号放大模块后添加移相电路输出四路正弦信号。
最后采用1602液晶实时显示波形的频率、幅值和相位等信息。
[关键词] 超声波电机;ATMEGA16;正弦信号发生器Ultra sonic motor signal generator designAbstract: ultrasonic motor (USM) is a new type of micro motor, It is generally driven by the two channels of the sinusoidal signals, which of the amplitudes are equal, and phase difference of 90 degree, the drive signal frequency range from 20KHZ to 100KHZ. The main aim of this design is to design a new type ultrasonic motor drive control signal generator based on the ATMEGA16 micro-controller, and the output of signal’s frequency, amplitude, and phase can be difference adjustable. By setting the ATMEGA16 micro-controller timer module to produce two channels of 20KHZ-50KHZ square wave signal, and using program control to adjust the frequency, amplitude and phase of the output signal. Using the active low-pass filtering method to make two square-wave signals transform into sinusoidal signals. Using the AD811 and BUF634 constituting the signal amplification circuit. Considering the expected goal of this design is to output a certain phase angle relation between four sinusoidal signals. Therefore, after the signalamplification module, add the phase shift circuit to output four sinusoidal signals. Finally, using LCD 1602 real-time displays the information such as frequency, amplitude and phase of the waveform.Key words: ultra sonic motor; ATMEGA16; sinusoidal signal目录引言 (1)1 绪论 (2)1.1 本次课题设计的目的与意义 (2)1.2 本次课题设计的预期目标 (2)1.3 本文的主要结构 (2)2 系统总体设计方案 (3)2.1 设计目标 (3)2.2 方案论证 (3)2.3 设计思路 (5)2.4 系统设计方案 (6)3 系统硬件的设计 (7)3.1 单片机模块 (7)3.1.1 ATMEGA16芯片的简要介绍 (7)3.1.2 ATMEGA16芯片的引脚功能 (8)3.1.3 ATMEGA16单片机定时器模块 (10)3.1.4 T/C1的控制寄存器A(TCCR1A) (11)3.1.5 T/C1的控制寄存器B(TCCR1B) (12)3.1.6 T/C1的CTC模式(输出方波) (13)3.1.7 T/C1的数据寄存器(TCNT1) (15)3.1.8 T/C1的输出比较寄存器(OCR1A/OCR1B) (15)3.2 滤波器模块 (15)3.2.1 五阶巴特沃斯低通滤波器的设计 (16)3.2.2 五阶巴特沃斯低通滤波器的参数计算 (17)3.2.3 五阶巴特沃斯低通滤波器PROTEUS仿真 (19)3.3 放大电路模块 (19)3.4 4*4键盘输入模块 (20)3.5 LCD1602显示模块 (21)3.6 电源模块 (22)3.7 移相模块 (22)4 系统软件的设计 (27)4.1 方波信号的输出程序 (28)4.2 按键处理程序 (28)5 系统调试结果 (33)6 总结及展望 (36)7 致谢语 (37)8 参考文献 (38)引言超声波电机(Ultra Sonic Motor, 简称USM)与传统的电磁型电机原理不同,它的定子是由压电陶瓷和金属体构成,作为振动体。
十二、ATmega16的CTC模式方波发生器(上)
6
LCD_write_string(0,0,S2); Delay_ms(3000); MCUCR=(1<<ISC11)|(0<<ISC10)|(1<<ISC01)|(1<<ISC00); GICR=1<<INT0; SEI(); while(1) { if((PIND&(1<<PD7))==0) { Delay_ms(10); if((PIND&(1<<PD7))==0) {GICR=0x00; CLI(); break;} } } PWM_freq=100*Freq[0]+10*Freq[1]+Freq[2]; if(PWM_freq>0) PWM_init(PWM_freq); while(1) { NOP(); //asm("nop"); }
(鹰击长空,longsky2007@) ★注:网上资料,仅供学习和参考★
1、仿真环境: 仿真环境: Proteus Pro 7.4 sp3 ICC AVR 6.31a 2、电路原理图 外接 16M 晶振 外接 RC 复位电路 频率可以按键设定 3、程序 参照刘海成《AVR 单片机原理及测控工程应用:基于 ATmega48/ATmega16》P137 下载到力天电子学习板(LT-mini-M16)时需要注意更改,见: 《ATmega48 驱动 LM016L(1602)液晶》 4、注意事项 KEY1:频率位设置开始和切换 KEY2:数字加一 KEY3;频率设置完成
8
#define EN_0
LCD_Select_Port |= (1 << LCD_EN)
//-------------------------------------------读状态-------------------------------------------------unsigned char LCD_read_status(void) { LCD_Data_Dir=0x00; RS_0; RW_1; EN_0;//上升沿使能 Delay_us(20); EN_1; while(LCD_Data_Pin&0x80) //asm("nop"); return(LCD_Data_Pin); } //-------------------------------------------读数据-------------------------------------------------unsigned char LCD_read_data(void) { RS_1; RW_1; EN_0; Delay_us(20); EN_1; LCD_Data_Dir=0x00; return(LCD_Data_Pin);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于P r o t e u s的A t m e g a48单片机仿真
十二、A T m e g a16的C T C模式方波发生器(下)
(鹰击长空,l o n g s k y2007@126.c o m)
★注:网上资料,仅供学习和参考★
1、仿真环境:
u P r o t e u s P r o7.4s p3
u I C C A V R6.31a
2、电路原理图
u外接16M晶振
u外接RC复位电路
u频率可以按键设定
u硬件实体:力天电子LT-mini-M16学习板
3、程序
参照刘海成《AVR单片机原理及测控工程应用:基于ATmega48/ATmega16》P137
下载到力天电子学习板(LT-mini-M16)时液晶驱动部分需要注意更改,见:《ATmega48驱动LM016L(1602)液晶》
4、注意事项
K E Y1:频率位设置开始和切换;K E Y2:数字加一;K E Y3;频率设置完成
本例把波形输出改为O C1A(P D5)输出,即用T i m e r1的C T C模式输出。
程序中需要更改两处:
(1)D D R B|=1<<P B3;//输出P W M改为:
D D R D|=1<<P D5;//O C1A输出P W M
(2)P W M_i n i t函数改为P W M_T i m e r1_I n i t函数,上一例中的变量k、P W M_f r e q也应该是u n s i g n e d i n t型才对。
见第九页。
1
2
3
图2a 按键设定5KHz 后的仿真输出
4
图2b 按键设定5KHz 后的实际输出
5
图3a 按键设定50KHz 后的仿真输出
6
图3b 按键设定50KHz 后的实际输出
7
图4a 按键设定500KHz 后的仿真输出
8
图4b 按键设定500KHz 后的实际输出
void PWM_Timer1_Init(unsigned int k)
{
TCCR1B=0x00;
TCCR1A = 0x00; //stop
TCNT1H= 0xFF;
TCNT1L= 0x80; //set count
OCR1AH = ((8000/k)-1)>>8; //set compare
OCR1AL = ((8000/k)-1)&0xFF;
//start timer
TCCR1A=(0<<COM1A1)|(1<<COM1A0)|(0<<WGM11)|(0<<WGM10);
TCCR1B=(0<<WGM13)|(1<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10);
}
(3)使用Proteus里面的频率计
在Proteus里面“Virtual Instruments Mode”选择“Counter Timer”:
它的响应速度的确很慢,而且结果存在较大偏差,见图5。
/bbs/bbs_content.jsp?bbs_sn=1986859&bbs_page_no=1&search_mode=1&search_text=频率计&bbs_id=1037
9
10
图5a 电池BA T1设置成12V 时显示的频率 图5b BA T1设置成5V 时显示的频率
图5c 按键设定输出100KHz。