📄 sz.c
字号:
#include<mega32.h>
#include<delay.h>
#include"ds1302.h"
#include<bcd.h>
unsigned char time[]={0,0,0};
unsigned char Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//unsigned char data[4] = {0,0,0,0};
/*void display(unsigned char *p)
{
unsigned char i,sel=0xfe;
for(i=0;i<3;i++)
{PORTB=sel;
PORTA=Table[p[i]];
delay_ms(2);
sel=sel<<1;
sel|=0x01;
}
}
void process(unsigned char *p1,unsigned char *p2)
{
p2[0]=p1[0]/10;
p2[1]=p1[0]-p2[0]*10;
p2[2]=p1[1]/10;
p2[3]=p1[1]-p2[2]*10;
p2[4]=p1[2]/10;
p2[5]=p1[2]-p2[4]*10;
} */
void display(unsigned char i)
{
switch(i){
case 0x00:
PORTA=0x3f;
break;
case 0x01:
PORTA=0x06;
break;
case 0x02:
PORTA=0x5b;
break;
case 0x03:
PORTA=0x4f;
break;
case 0x04:
PORTA=0x66;
break;
case 0x05:
PORTA=0x6d;
break;
case 0x06:
PORTA=0x7d;
break;
case 0x07:
PORTA=0x07;
break;
case 0x08:
PORTA=0x7f;
break;
case 0x09:
PORTA=0x6f;
break;
case 0x0a:
PORTA=0x77;
break;
case 0x0b:
PORTA=0x7c;
break;
case 0x0c:
PORTA=0x58;
break;
case 0x0d:
PORTA=0x5e;
break;
case 0x0e:
PORTA=0x79;
break;
case 0x0f:
PORTA=0x71;
break;
default:
break;}
}
void main(void)
{
unsigned char hour,min,sec;
DDRA=0xff;
DDRB=0xff;
PORTB=0x30;
PORTA=0x3f;
rtc_init(0,0,0);
rtc_set_time(10,20,30);
while(1)
{
rtc_get_time(&time[0],&time[1],&time[2]);
sec=bin2bcd(time[2])&0x0f;
PORTB=0xf7;
display(sec);
delay_ms(5);
sec=bin2bcd(time[2])&0x70;
sec=sec>>4;
PORTB=0xfb;
display(sec);
delay_ms(5);
min=bin2bcd(time[1])&0x0f;
PORTB=0xfd;
display(min);
delay_ms(5);
min=bin2bcd(time[1])&0xf0;
min=min>>4;
PORTB=0xfe;
display(min);
delay_ms(5);
//process(time,data);
//display(data);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -