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

📄 display.c

📁 采用PICC18编写的单片机源代码
💻 C
字号:
/****************显示子程序*********************
**本文件实现数码管的动态显示
**动态显示的控制由移位寄存器74164完成
**端口定义参见PORT.H
***********************************************/
#include "port.h"
#include "main.h"
#include "display.h"

static uint8 ORDER;     //存储笔段码
void display_initial(void)
{
   //设置输出口方向
   TrDispBitData=0;
   TrDispBitClk=0;  
   TrDispWordData=0; 
   TrDispWordClk=0;
   Tr_OutPut=0;
   //显示缓冲区赋初值
   for(dispCtr=0;dispCtr<con_Disp_Bit;dispCtr++)
   {
      dispBuf[dispCtr]=TableNum[0];
   }
   dispCtr=con_Disp_Bit-1;   //显示循环控制变量赋初值
}
/*************************显示子程序***********************
/*入口:待显示数据的笔段码存入全局变量dispBuf[con_Disp_Bit]
/*出口:无
/*调用函数:无
/*占用资源:全局变量dispBuf[con_Disp_Bit]
/*          本单元变量ORDER-位码寄存器
/*                    dispCtr-显示循环控制变量
/*********************************************************/
void display(void)
{
   static uint8 codeCtr;    //笔段码循环控制
   //点亮数码管
   if(dispCtr==con_Disp_Bit-1)   //判断是否是点亮第一个数码管
   {
      DispBitClk=0;
      dispCtr=0;       //显示循环控制变量赋初值
      DispBitData=0;   //位码管脚=0      
      DispBitClk=1;   //给出脉冲点亮第一个数码管      
   }
   else    //不是点亮下一个数码管
   {
      DispBitClk=0;
      dispCtr++;    //显示位数加1
      DispBitData=1;   //位码管脚=1
      DispBitClk=1;   //给出脉冲,循环点亮
   }
   //显示笔段码
   ORDER=dispBuf[dispCtr];   //笔段码赋值给ORDER
   for(codeCtr=8;codeCtr!=0;codeCtr--)
   {
      DispWordClk=0;
      if(chkbit(ORDER,(codeCtr-1))==0)
      {
         DispWordData=0;
      }
      else
      {
         DispWordData=1;
      }
      DispWordClk=1;
   }
}

⌨️ 快捷键说明

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