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

📄 display.c

📁 汽车侧滑台检测仪表.用的单片机是PIC16F877A. 产品经过市场检验
💻 C
字号:
/*********************************************************************************************
* 函数名称: display(short display_data)
* 功能: 数据显示
* 入口参数: display_data	要显示的数据
* 出口参数: 无
* 全局变量: 无
* 调用模块: 无
* 设计者: 饶阳胜
* 日期: 05-3-23
*********************************************************************************************/
#include <pic.h>				//包含系统头文件

#define 	SER_IN		RA2		//串行输出数据口
#define 	RCK			RA4		//并行时钟输出口
#define 	SRCK		RA5		//串行时钟输出口

//显示据字的字模值"0-9","a-d","消隐","-"
const unsigned char NumberHandle[16] = {0xAF,0x03,0x9D,0x97,0x33,0xB6,0xBE,
					0x83,0xBF,0xB7,0x10,0x00,0x3E,0xAC,0x1F,}; 


bit point = 0;
//显示函数的原代码
void display(short display_data)
{
	unsigned char i;			//显示位数变量	(如要显示5位数据,则此变量初值赋为5)
	unsigned char j;			//字模位数变量	(固定为8位,字模为8位2进制数)
	unsigned char data_buffer;	//字模变量

	for(i = 0; i < 4; i++){									//设置要显示数据位数循环	
		data_buffer = (display_data >> (3 - i) * 4) & 0x0f;	//取得要显示的一位数数值 
		data_buffer = NumberHandle[data_buffer];			//取得该位数据的字模值
		if(i == 2 && point  == 1)
		{
			data_buffer |= 0x40;
		}
		for(j = 0; j < 8; j++){								//设置字模位数(8位)循环
			SER_IN = data_buffer >> (7 - j);				//串行数据输出
			asm("nop");
			asm("nop");	
			SRCK = 1;										//串行时钟输出		
			asm("nop");	 
			asm("nop");
			SRCK = 0;
			asm("nop");	 
			asm("nop");
		}
	}	
	RCK = 1;			//并行时钟输出
	asm("nop");	 
	asm("nop");
	RCK = 0;
	asm("nop");	 
	asm("nop");
}	

⌨️ 快捷键说明

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