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

📄 led_595.c

📁 利用DS1302
💻 C
字号:


sbit ser        =P1^3;   //串行线
sbit srclk      =P3^5;   //
sbit rclk       =P3^3;   //

code unsigned char seg[16] = {
                   0x03,0x9f,0x25,0x0d,//0,1,2,3,
                   0x99,0x49,0x41,0x1f,//4,5,6,7,
                   0x01,0x09,0x11,0xc1,//8,9,A,B,
                   0x63,0x85,0x61,0x71 //C,D,E,F,
                              };


unsigned char disp_buff[4];        //定义缓存

void disp_buff_char(void)     //缓冲区
{
   unsigned char char_seg;     //待显示数码管的数值
   char i,j;
   rclk=0;
   for(j=3;j>=0;j--)           //给4个595赋值
   {
      char_seg=disp_buff[j];
      for(i=0;i<8;i++)         //把单片机内的数值转换为串行数据传送给595,由595自动再将串行转并行
      {
         srclk=0;
         ser=char_seg&0x01;
         srclk=1;
         char_seg=char_seg>>1;
      }
   }
   rclk=1;      //发送4个595里面的数值给数码管显示
}

void disp_num(int i,char dp_p)   //显示数字和小数点
{
   if(i>=10000)
   {
      disp_buff[3]=seg[14];
      disp_buff[2]=0xff;
      disp_buff[1]=0xff;
      disp_buff[0]=0xff;
   } else
   {
      disp_buff[3]=seg[i/1000];
      disp_buff[2]=seg[(i%1000)/100];
      disp_buff[1]=seg[(i%100)/10];
      disp_buff[0]=seg[i%10];

      if((dp_p<=3)&&(dp_p>=1))
      {
         disp_buff[dp_p] = disp_buff[dp_p]&0xfe;
      }
   }
   disp_buff_char();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -