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

📄 display_s.h

📁 周立功经典书籍《增强型8051单片机速成与实战》用
💻 H
字号:
/********************************************************************/
/*Display_s.h:显示函数                *******************************/
/* 功能: 用户自己的LED数码管动态显示程序包**************************/
/********************************************************************/
/**********copyright 2002 LJH ***************************************/

#ifndef  _display_
#define  _display_
#include<intrins.h>                                             //加载相关头文件
sbit SDA=P1^0;                                                  //定义串行输入数据位
sbit  CLK=P1^1;                                                 //定义串行时钟位
unsigned char data display_bit;                                 //定义位码变量
unsigned char code led[20]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8E,0xBF,0x89,0x8c};
void delay(unsigned int k)    
{
	unsigned int i,j;
	 for(i=1; i<k; i++)
			for(j=1; j<100; j++)
			{}
}	

void  send (unsigned char a) {
	unsigned char i; 											//定义变量
	for(i=0; i<8; i++) {										//控制发送数据的位数
	
		if(_crol_(a,i)&0x80)                                    //要发送的数据位是1吗?
			SDA=1; 												//是,则发送高电平1
		else
			SDA=0; 												//否则,则发送低电平0
		CLK=0;                                                  //输出一个同步时钟
		CLK=1; 
	}
}

//显示子程序,要显示的5位数据存放在display_buffer数组中
void  display(unsigned char display_buffer[5])
{
	unsigned char i ,k ; 										//定义中间变量
	display_bit=0x7f;              								//给位码赋初值
	for(i=0; i<=3;i++)											//控制显示数据的个数
	{
		k=led[display_buffer[i]]; 								//取要显示数据的段码
		send(k); 												//调发送子程序
		P1=display_bit;											//送位码数据
		delay(0x40);											//调延时子程序
		P1=0xff;
		display_bit=_cror_(display_bit,1);						//右移一位
	}
		display_bit=0x7f;										//重新赋初值
}

#endif                                                          //条件汇编结束

⌨️ 快捷键说明

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