📄 displa.c
字号:
#include <pic.h>
#include "total.h"
#define SRCK RD5 //串行时钟
#define RCK RD6 //并行时钟
#define SER_IN RD7 //串行数据
#define BITS 4 //每个短整数包含有4位数值。
const unsigned char number_handle[16] = {0xAF,0x03,0x9D,0x97,0x33,0xB6,0xBE, //数字的字模
0x83,0xBF,0xB7,0xBB,0x3E,0xAC,0x1F,0x00,0x10};
/************************************************************************************************
* 函数名称: void SelectDisplay273(void)
* 功能: 选通控制显示数据输出的74HC273
* 入口参数: 无
* 出口参数: 无
* 全局变量: ENABLE_DISPLAY
* 调用模块: 无
* 设计者: 饶阳胜
* 日期: 05/2/28
************************************************************************************************/
void SelectDisplay273(void) //选通273,让数据送到595中。
{
asm("nop");
asm("nop");
ENABLE_DISPLAY = FALSE; //RE1为显示数据输出273的选通脚
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
ENABLE_DISPLAY = TRUE;
asm("nop");
}
/************************************************************************************************
* 函数名称: void display(unsigned char *ptr)
* 功能: 数据显示
* 入口参数: unsigned short *ptr 指向要显示数据的指针
* unsigned char number 要显示的数据个数
* 出口参数: 无
* 全局变量: SER_IN, SRCK, RCK
* 调用模块: void SelectDisplay273 选通显示数据输出芯片74HC273
* 设计者: 饶阳胜
* 日期: 05/2/28
************************************************************************************************/
void Display(unsigned short *ptr,unsigned char number)
{
unsigned char i; //显示数据个数
unsigned char j;
unsigned char display_temp; //存放字模值
for (;number > 0; number--){
for (i = BITS ; i > 0; i--){
display_temp = number_handle[(*ptr >> (i - 1) * 4) & 0x0f]; //得到要显示数字的字模
if(display_weigh == 1)
if(i == 2) //轴重检测下的显示
display_temp |= 0x40;
if(display_weigh == 2)
if(number != 3) //轴重标定下的显示
if(i == 2)
display_temp |= 0x40;
for (j = 0; j < 8; j++){
SER_IN = display_temp >> (7 - j); //得到当前要输出的数据位状态
SelectDisplay273(); //选通数据位输出
SRCK = FALSE; //串行时钟拉低
SelectDisplay273(); //选通串行时钟输出
SRCK = TRUE; //串行时钟拉高
SelectDisplay273(); //选通串行时钟输出
}
}
*ptr++; //数据指针加1
}
RCK = FALSE; //并行时钟拉低
SelectDisplay273(); //选通并行时钟输出
RCK = TRUE; //并行时钟拉高
SelectDisplay273(); //选通并行时钟输出
}
/*****************************************************************************************
*
*****************************************************************************************/
void Normal_Display(void)
{
display_data[0] = 0;
display_data[1] = 0;
display_data[2] = 0;
Display(display_data,DISPLAY_SIZE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -