📄 display.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 + -