📄 displa.lst
字号:
1: #include <pic.h>
2: #include "total.h"
3:
4: #define SRCK RD5 //串行时钟
5: #define RCK RD6 //并行时钟
6: #define SER_IN RD7 //串行数据
7: #define BITS 4 //每个短整数包含有4位数值。
8:
9: const unsigned char number_handle[16] = {0xAF,0x03,0x9D,0x97,0x33,0xB6,0xBE, //数字的字模
10: 0x83,0xBF,0xB7,0xBB,0x3E,0xAC,0x1F,0x00,0x10};
11:
12: /************************************************************************************************
13: * 函数名称: void SelectDisplay273(void)
14: * 功能: 选通控制显示数据输出的74HC273
15: * 入口参数: 无
16: * 出口参数: 无
17: * 全局变量: ENABLE_DISPLAY
18: * 调用模块: 无
19: * 设计者: 饶阳胜
20: * 日期: 05/2/28
21: ************************************************************************************************/
22: void SelectDisplay273(void) //选通273,让数据送到595中。
23: {
24: asm("nop");
25: asm("nop");
26: ENABLE_DISPLAY = FALSE; //RE1为显示数据输出273的选通脚
27: asm("nop");
28: asm("nop");
29: asm("nop");
30: asm("nop");
31: asm("nop");
32: ENABLE_DISPLAY = TRUE;
33: asm("nop");
34: }
35:
36: /************************************************************************************************
37: * 函数名称: void display(unsigned char *ptr)
38: * 功能: 数据显示
39: * 入口参数: unsigned short *ptr 指向要显示数据的指针
40: * unsigned char number 要显示的数据个数
41: * 出口参数: 无
42: * 全局变量: SER_IN, SRCK, RCK
43: * 调用模块: void SelectDisplay273 选通显示数据输出芯片74HC273
44: * 设计者: 饶阳胜
45: * 日期: 05/2/28
46: ************************************************************************************************/
47: void Display(unsigned short *ptr,unsigned char number)
48: {
49: unsigned char i; //显示数据个数
50: unsigned char j;
51: unsigned char display_temp; //存放字模值
52:
53: for (;number > 0; number--){
54: for (i = BITS ; i > 0; i--){
55: display_temp = number_handle[(*ptr >> (i - 1) * 4) & 0x0f]; //得到要显示数字的字模
56: if(display_weigh == 1)
57: if(i == 2) //轴重检测下的显示
58: display_temp |= 0x40;
59: if(display_weigh == 2)
60: if(number != 3) //轴重标定下的显示
61: if(i == 2)
62: display_temp |= 0x40;
63: for (j = 0; j < 8; j++){
64: SER_IN = display_temp >> (7 - j); //得到当前要输出的数据位状态
65: SelectDisplay273(); //选通数据位输出
66: SRCK = FALSE; //串行时钟拉低
67: SelectDisplay273(); //选通串行时钟输出
68: SRCK = TRUE; //串行时钟拉高
69: SelectDisplay273(); //选通串行时钟输出
70: }
71: }
72: *ptr++; //数据指针加1
73: }
74: RCK = FALSE; //并行时钟拉低
75: SelectDisplay273(); //选通并行时钟输出
76: RCK = TRUE; //并行时钟拉高
77: SelectDisplay273(); //选通并行时钟输出
78: }
79:
80: /*****************************************************************************************
81: *
82: *****************************************************************************************/
83: void Normal_Display(void)
84: {
85: display_data[0] = 0;
86: display_data[1] = 0;
87: display_data[2] = 0;
88: Display(display_data,DISPLAY_SIZE);
89: }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -