您的位置 首页 电源

外部异步时钟的操作

#includeiom16v.h>#defineucharunsignedchar#defineuintunsignedint#defineOUTPORTAucharData[4];//={0,

#include

#define uchar unsigned char
#define uint unsigned int
#define OUT PORTA
uchar Data[4];//={0,0,0,0};
uchar CNT;//界说中止次数
void DelayMs(uint i) //0.25ms
{uchar j;
for(;i!=0;i–)
{for(j=250;j!=0;j–) {;}}
}
/************以下为显现*************************/
void Display(uchar *p) //适当地调理延时,能够改动其亮度
{
OUT=0x70+p[0]; DelayMs(15);
OUT=0xb0+p[1]; DelayMs(15);
OUT=0xd0+p[2];
DelayMs(15);
OUT=0xe0+p[3]; DelayMs(15);
}
/****************************************/
/**************以下为端口初使化*******************/
void intio()
{
DDRA=0XFF;
OUT=0XFF;
}
/*****************以下为溢出处理*******************/
void dealwith(uchar *p)
{
p[3]++;
if(p[3]==10){p[3]=0;p[2]++;}
if(p[2]==6) {p[2]=0;p[1]++;}
if(p[1]==10){p[1]=0;p[0]++;}
if(p[0]==6) {p[0]=0;}
}
/***********************************************/
void main()
{uchar i;
intio();
DelayMs(2000);
ASSR=0X08;//异步时钟使能
TCCR2=0X07;//1024分频
TIMSK=0X40;//T/C2中止使能
SREG=SREG|0X80;//大局中止使能
while(1)
{
Display(Data);
if(TCNT2==32)
{TCNT2=0;
dealwith(Data);
}
}
}

/*********************

//1.因为ATMEGA8中没有A口,故选用一宏界说,只能在ATMEGA8中选用D口,也因此在规划中,选用宏界说;
//2.经测验:选用内部2M及以下运转不稳定,故引荐选用场4M—8M;
//3.关于外部选用外部异步晶振不用选用外接电容,内部有36PF电容;当然接上也无防;
//4.留意32.768K晶振的运用,以及1024分频;

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/266731.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部