📄 lx.c
字号:
//本程序利用TMR1的自带外部时钟通过查询实现1S计时,利用SPI方式显示的数码管60S计数。
#include<pic.h>
#include<math.h>
unsigned int k,data,i;
const table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int s1=0,s2=0; //定义个位 十位计数器
bank3 unsigned char s[2]={0,0};
//SP初始化子程序
void spiint()
{//PIR1=0;
SSPCON=0X30;
SSPSTAT=0XC0;
TRISC=0X00;
// TRISA=0x00;
ADCON1=0X0F;
}
void tmr1int()
{TMR1IF=0;
TMR1ON=0;
T1CON=0x0F;
TMR1H=0x80;
TMR1L=0x00;
TMR1ON=1;
// TRISD=0X00;
}
fasong(data)
{ SSPBUF=data;
do
{;}while(SSPIF==0);
SSPIF=0;
}
void jisuan()
{tmr1int();
do{;}while(TMR1IF==0);
TMR1IF=0;
s1=s1+1;
if(s1==10)
{s1=0;
s2=s2+1;
if(s2==10)s2=0;
}
s[0]=s1;
s[1]=s2;
}
void display()
{RA5=0;
for(k=0;k<=1;k++)
{data=s[k];
data=table[data];
fasong(data);
}RA5=1;
}
main()
{ OPTION=0XFF;
// PORTD=0X00;
di();
spiint();
while(1)
{jisuan();
//PORTD=PORTD^0X57;
display();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -