资讯详情

MEGA16单片机定时器(16位)源代码

/* 程序名: mega16a 芯片16位定时 ; 概括: 学会了控制8位定时器,16位定时器和它如出一辙,It's a piece of cake! 在芯片 上实现精确一秒闪烁... 心得 : 电子技术和音乐一样 ,都是一门艺术,令人回味... finish time: 2014年3月8日19:33:10; 作者 : 肖邦; */ #include //头文件; typedef unsigned char uint8 ; //在程序中用 uint8 相当于写 unsigned char ; typedef unsigned int uint16; //用法同上; void reset_io(void) //初始化所有io口; { A=0XFF; PORTA=0X00; DDRB=0XFF; PORTB=0X00; DDRC=0XFF; PORTC=0X00; PORTC|=1<<5; //12864液晶屏复位引脚置1; PORTC&=~(1<<5); //12864 清零 (复位) ; PORTC|=1<<5; //12864液晶屏复位引脚置1; DDRD=0XFF; PORTD=0X00; } int main(void) //主函数!!!!! { uint16 num=0; reset_io(); //初始化io口; TC 1=0xff44; //设置定时器初始值,1毫秒溢出一次 0xff45==65536-(12兆/64分频*0.001秒); TCCR1B=0x03; //( 64分频 )设置定时器分频并开启定时器; PORTB=1<<2; while(1) { if( FR&0X04) //一旦溢出标志位置一,就进入; { // PORTA^=0XFF; //物理引脚PA口跳变,此语句没用; num++; if(num==1000) {PORTA^=0XFF;num=0;} 每一毫秒num变量加一,加1000次是你秒; TCNT1=0XFF44; //回复初始值; TIFR|=0X04; //此语句很重要!!!!!!溢出标志位只有置一才会自动清零; } } } -电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台