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

📄 595串行显示.txt

📁 这是一个用串口驱动595数码管显示的源代码
💻 TXT
字号:
#include <reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
#define nop() _nop_();_nop_();

sbit RCLK = P3^7;
sbit CLK  = P3^6;
sbit DAT  = P3^5;


ulong a;
void delay_1ms(void);
void delay_nms(unsigned int n);
void sendbyte(uchar byte);
void out595(void);
void Display(unsigned long dat,unsigned char DotPosition,bit ClearZeroFlag);

//---------------8位2进制段代码对应数码管笔段 hcdb afge----------------//
uchar code displaycode[] = {0x82,0xaf,0xc4,0x85,0xa9,0x91,0x90,0xa7,0x80,0x81,
				            0xa0,0x98,0xd2,0x8c,0xd0,0xf0,0xfd,0xff};//0-9,A-F,-,全灭
							//0x82,0xaf,0xc4,0x85,0xa9,0x91,0x90,0xa7,0x80,0x81,
				            //0xa0,0x98,0xd2,0x8c,0xd0,0xf0,0xfd,0xff

uchar PortCode[8] = {0,0,0,0,0,0,0,0};

main()
{   
	unsigned int a;

    while(1)							  
    { 
     	a++; 
		Display(a,0,1);
		delay_nms(100);
		
    }    
}

void delay_1ms(void)                
  { 
   	unsigned int b; 
   	for (b=0;b<150;b++); 
  } 
   
void delay_nms(unsigned int n)      
  { 
   	unsigned int c=0; 
   	for (c=0;c<n;c++) 
   	delay_1ms(); 
  }

void Display(unsigned long dat,unsigned char DotPosition,bit ClearZeroFlag)
{
	unsigned char i;

	for(i = 0; i != 8; i++)
	{ 	
		if(i == DotPosition)/// 小数点处理
			{
			PortCode[i] = (displaycode[(dat%10)]&0x7f);
			}
		else
		PortCode[i] = displaycode[dat%10];

		if(ClearZeroFlag&&(!dat)&&(i>DotPosition)) PortCode[i]=0xff;		

		dat /= 10;			

		
	}	

		sendbyte(PortCode[0]);			
		sendbyte(PortCode[1]);
		sendbyte(PortCode[2]);
		sendbyte(PortCode[3]);
		sendbyte(PortCode[4]);			  
		sendbyte(PortCode[5]);				   
		sendbyte(PortCode[6]);
		sendbyte(PortCode[7]);
		out595();
}

void sendbyte(uchar byte)
{    
        uchar c;  
   		for(c=0;c<8;c++)
         {
	         CLK=0;
	         DAT=byte&0x80;
	         byte=byte<<1;     
	         CLK=1;
         }        
}

void out595(void)
{
        RCLK=0;
        nop();
        RCLK=1;
}

⌨️ 快捷键说明

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