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

📄 display.lst

📁 这个是汽车制动台控制程序的C语言版本. 用于实际产品中.单片机用的是PIC16F877A.
💻 LST
字号:
     1: #include <pic.h>

     2: #include "total.h"

     3: 

     4: const unsigned char number_handle[16] = {0xAF,0x03,0x9D,0x97,0x33,0xB6,0xBE,            //数字的字模

     5:                                         0x83,0xBF,0xB7,0xBB,0x3E,0xAC,0x1F,0x00,0x10};

     6: 

     7: /************************************************************************************************

     8: * 函数名称: void SelectDisplay273(void)

     9: * 功能: 选通控制显示数据输出的74HC273

    10: * 入口参数: 无

    11: * 出口参数: 无

    12: * 全局变量: PORTE_DisplayOut

    13: * 调用模块: 无

    14: * 设计者: 饶阳胜

    15: * 日期: 05/2/28

    16: ************************************************************************************************/

    17: void SelectDisplay273(void)     //选通273,让数据送到595中。

    18: {       

    19:         asm("nop");

    20:         ENABLE_DISPLAY = false;         //RE1为显示数据输出273的选通脚

    21:         asm("nop");

    22:         ENABLE_DISPLAY = true;

    23:         asm("nop");

    24: }       

    25: 

    26: /************************************************************************************************

    27: * 函数名称: void display(unsigned char *ptr)

    28: * 功能: 数据显示

    29: * 入口参数: *ptr                        指向要显示的数据的指针

    30: * 出口参数: 无

    31: * 全局变量: PORTD_SerIn,PORTD_Srck,PORTD_Rck,NumberHandle[]

    32: * 调用模块: void SelectDisplay273       选通显示数据输出芯片74HC273

    33: * 设计者: 饶阳胜

    34: * 日期: 05/2/28

    35: ************************************************************************************************/

    36: void Display(unsigned char *ptr)

    37: {

    38:         unsigned char i;                        //显示的位数变量(外环)

    39:         unsigned char j;                        //数据位变量(内环)

    40:         unsigned char DisplayTemp;      //临时数据变量

    41:         static bit NumberSelect;        //当前要显示的高位还是低位数字

    42: 

    43:         NumberSelect = false;   //初始化为显示高位

    44: 

    45:         for (i = 0; i < 8; i++){

    46:                 if(NumberSelect == false){

    47:                         DisplayTemp = number_handle[*ptr >> 4];         //得到要显示数字的字模值

    48:                         NumberSelect = true;                    //更新高低位标志

    49:                 }

    50:                 else{

    51:                         DisplayTemp = number_handle[(*ptr++) & 0x0F];   //得到要显示数字的字模值

    52:                         NumberSelect = false;                   //更新高低位标志

    53:                 }               

    54:                 for (j = 0; j < 8; j++){

    55:                         SER_IN  = DisplayTemp >> (7 - j);       //得到当前要输出的数据位状态    

    56:                         SelectDisplay273();                     //选通数据位输出

    57:                         SRCK = false;                                   //串行时钟拉低

    58:                         SelectDisplay273();                     //选通串行时钟输出

    59:                         SRCK = true;                                    //串行时钟拉高

    60:                         SelectDisplay273();                     //选通串行时钟输出

    61:                 }

    62:         }               

    63:         RCK = false;                            //并行时钟拉低

    64:         SelectDisplay273();             //选通并行时钟输出

    65:         RCK = true;                             //并行时钟拉高

    66:         SelectDisplay273();             //选通并行时钟输出

    67: }

⌨️ 快捷键说明

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