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

📄 程序3.c.c

📁 分别按照不同的方式动态显示 数字,适用于AT89S52单片机,LED为8位共阴
💻 C
字号:
//逐步显示01234567
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define hi0 0x3c
#define lo0 0xb0
#define hi1 0xff
#define lo1 0x00
sbit P20=P2^0;sbit P21=P2^1;sbit P22=P2^2;
unsigned char code ledk[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6D,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
unsigned char t0_count,t1_count;
char show_no=7,disp=7;
sbit P37=P3^7;sbit P10=P1^0;
sbit clk=P0^7;sbit sda=P0^6;                                                                                      //p3
//=============================
void delay (unsigned int n)
{unsigned int i,j;
 for(i=0;i<n;i++)
   for(j=0;j<n ;j++);   }
void shift(dd)
  {unsigned char j=0;
	while(j<8){if((dd&0x80)!=0)sda=1;else sda=0;
				   clk=0; clk=1; dd<<=1;j++;}	}
//---------disp-----------
void display( )
{uchar i; 
for(i=0;i<=7;i++)
  {if(i>=disp)shift(ledk[i]);
     else shift(ledk[16]);
   P20=i&0x04;P21=i&0x02;P22=i&0x01;
   delay(15);}
  }
void t0() interrupt 1
  {TH0=hi0;TL0=lo0;t0_count++;
   if(t0_count%20==0)disp--;
   if(disp<0)disp=7; } 

//---------------------------
void main(void)
 {TMOD=0x11;TH0=hi0;TL0=lo0; 
  EA=1;ET0=1;TR0=1;
  P10=0; 
   while(1)
     {display();}
  }


⌨️ 快捷键说明

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