AVR单片机定时器计数
2015-07-20 来源:51hei
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar num1;
#pragma interrupt_handler miao:9//它所对应的位置
#pragma data:code//定义程序存在ROM里面
const uchar table[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,
0x8e
};
/***********************************************/
/*******************延时子程序******************/
/***********************************************/
void delay(uchar z)
{
uchar x,y;
for(x=0;x<255;x++)
for(y=0;y
}
/***********************************************/
/*******************显示子程序******************/
/***********************************************/
void xian(uchar num)
{
PORTA=table[num/10];//十位
PORTC&=~BIT(1);
delay(2);
PORTC|=BIT(1);
PORTA=table[num%10];//个位
PORTC&=~BIT(0);
delay(2);
PORTC|=BIT(0);
}
/***********************************************/
/*****************中断服务子程序***************/
/***********************************************/
void miao()
{
if(num1==60)
num1=0;
num1++;//将变量加1
TCNT1H=0XA4;//赋值高位
TCNT1L=0X71;//赋值低位
}
/***********************************************/
/*******************主程序*********************/
/***********************************************/
void main()
{
DDRA=0XFF;//设置PA口为输出方式
DDRC|=BIT(0)|BIT(1);//设置两位为输出方式
TCCR1B=0XA4;//设置256分频 6M晶体=6000000/256分频-65535化成16进制
TCNT1H=0X71;//给它高位赋值
TCNT1L=0XED;//给它低位赋值
TIMSK|=BIT(2);//打开定时器中断
SREG|=BIT(7);//打开总中断
while(1)
{
xian(num1);
}
}
进入单片机查看更多内容>>
#include
#define uchar unsigned char
#define uint unsigned int
uchar num1;
#pragma interrupt_handler miao:9//它所对应的位置
#pragma data:code//定义程序存在ROM里面
const uchar table[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,
0x8e
};
/***********************************************/
/*******************延时子程序******************/
/***********************************************/
void delay(uchar z)
{
uchar x,y;
for(x=0;x<255;x++)
for(y=0;y
/***********************************************/
/*******************显示子程序******************/
/***********************************************/
void xian(uchar num)
{
PORTA=table[num/10];//十位
PORTC&=~BIT(1);
delay(2);
PORTC|=BIT(1);
PORTA=table[num%10];//个位
PORTC&=~BIT(0);
delay(2);
PORTC|=BIT(0);
}
/***********************************************/
/*****************中断服务子程序***************/
/***********************************************/
void miao()
{
if(num1==60)
num1=0;
num1++;//将变量加1
TCNT1H=0XA4;//赋值高位
TCNT1L=0X71;//赋值低位
}
/***********************************************/
/*******************主程序*********************/
/***********************************************/
void main()
{
DDRA=0XFF;//设置PA口为输出方式
DDRC|=BIT(0)|BIT(1);//设置两位为输出方式
TCCR1B=0XA4;//设置256分频 6M晶体=6000000/256分频-65535化成16进制
TCNT1H=0X71;//给它高位赋值
TCNT1L=0XED;//给它低位赋值
TIMSK|=BIT(2);//打开定时器中断
SREG|=BIT(7);//打开总中断
while(1)
{
xian(num1);
}
}
上一篇:AVR独立按键C程序
相关文章
- 基于 Microchip AVR DA MCU 的带加热 HoD 离手检测+触摸多功能方向盘方案
- Microchip推出AVR® DU系列USB单片机,支持增强型代码保护和高达15W 的 功率输出
- 贸泽电子开售面向工业和汽车应用的Microchip Technology AVR64EA 8位AVR MCU
- 天龙DENON AVR-1507功放机内部拆解
- AVR32 MCU上的ABDAC外设音频播放设计
- AVR基础知识:ATMEGA的SPI总线 - 第1部分
- AVR基础知识:ATMEGA的SPI总线 - 第2部分
- 使用AVR微控制器控制GSM模块实现发送和接收短信
- 如何使用USBASP烧写器和Atmel Studio 7.0对AVR微控制器进行编程
- 使用AVR微控制器Atmega16连接伺服电机的方法