控制/MCU
经过努力,利用PIC16F877A的T0定时器制作的电子钟实验成功!下面是部分源程序:
/#include 《pic.h》 //调用头文件
__CONFIG(0x3F32); //芯片配置字
#define uchar unsigned char
#define uint unsigned int
const uchar table[]={
0xC0,/*0*/ 0xF9,/*1*/
0xA4,/*2*/ 0xB0,/*3*/
0x99,/*4*/ 0x92,/*5*/
0x82,/*6*/ 0xF8,/*7*/
0x80,/*8*/ 0x90,/*9*/
0x88,/*A*/ 0x83,/*b*/
0xC6,/*C*/ 0xA1,/*d*/
0x86,/*E*/ 0x8E,/*F*/};
const uchar table1[]={
0x40,/*0*/ 0x79,/*1*/
0x24,/*2*/ 0x30,/*3*/
0x19,/*4*/ 0x12,/*5*/
0x02,/*6*/ 0x78,/*7*/
0x00,/*8*/ 0x10,/*9*/};
//0-9的显示代码
uchar sec,min,couter;
void delay(uint x);
void ShowLed(uchar a,uchar b,uchar c);
void SHOW();
void main (void)
{
uchar temp1;
TRISA=0;
TRISD=0;
ADCON1=0X06;
OPTION=0x07;
INTCON=0XA0;
TMR0=0x70;
while(1)
{
if(couter》49)
{
couter=0;
sec++;
if(sec》59)
{
sec=0;
min++;
}
if(min》59)
min=0;
}
SHOW();
}
}
void interrupt TMR0INT()
{
T0IF=0;
couter++;
TMR0=0x70;
}
void delay(uint x)//延时
{
uint a,b;
for(a=x;a》0;a--)
for(b=110;b》0;b--);
}
---------------
全部0条评论
快来发表一下你的评论吧 !