新聞中心

外部異步時(shí)鐘的操作

作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏
#include

#define uchar unsigned char
#define uint unsigned int
#define OUT PORTA
uchar Data[4];//={0,0,0,0};
uchar CNT;//定義中斷次數(shù)
void DelayMs(uint i) //0.25ms
{uchar j;
for(;i!=0;i--)
{for(j=250;j!=0;j--) {;}}
}
/************以下為顯示*************************/
void Display(uchar *p) //適當(dāng)?shù)卣{(diào)節(jié)延時(shí),可以改變其亮度
{
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;//異步時(shí)鐘使能
TCCR2=0X07;//1024分頻
TIMSK=0X40;//T/C2中斷使能
SREG=SREG|0X80;//全局中斷使能
while(1)
{
Display(Data);
if(TCNT2==32)
{TCNT2=0;
dealwith(Data);
}
}
}

本文引用地址:http://butianyuan.cn/article/201611/315787.htm

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

//1.由于ATMEGA8中沒(méi)有A口,故采用一宏定義,只能在ATMEGA8中采用D口,也因此在設(shè)計(jì)中,采用宏定義;
//2.經(jīng)測(cè)試:采用內(nèi)部2M及以下運(yùn)行不穩(wěn)定,故推薦采用場(chǎng)4M—8M;
//3.關(guān)于外部采用外部異步晶振不必采用外接電容,內(nèi)部有36PF電容;當(dāng)然接上也無(wú)防;
//4.注意32.768K晶振的使用,以及1024分頻;



關(guān)鍵詞: 外部異步時(shí)鐘ATMEGA

評(píng)論


技術(shù)專區(qū)

關(guān)閉