⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sz.c

📁 时钟芯片ds1302和atmega36的应用显示时间
💻 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 + -