新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 外部異步時鐘的操作

外部異步時鐘的操作

作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
#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) //適當?shù)卣{(diào)節(jié)延時,可以改變其亮度
{
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);
}
}
}

本文引用地址:http://www.2s4d.com/article/201611/315787.htm

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

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



評論


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

關閉