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

📄 数码管.c

📁 lyd-sy-5100单片机开发板的示例程序 分为C语言版本和ASM汇编版本。其他牌子的板子也可以使用其C语言版本。
💻 C
字号:

#include <reg51.h>


 sbit ch451_dclk=P1^1;                            //串行数据时钟上升延激活
 sbit ch451_din=P1^0;		                    // 串行数据输出,接CH451的数据输入
 sbit ch451_load=P1^2;                            //串行命令加载,上升延激活
 


#define CH451_RIGHTCYC  0x0303		            //设置移动方式-右循	
#define CH451_SYSOFF    0x0400                      //关显示、键盘、看门狗
#define CH451_SYSON2    0x0403                      //开显示、键盘
#define CH451_DIG0      0x0800                      //数码管位0显示
#define CH451_DIG1      0x0900		            //数码管位1显示 
#define CH451_DIG2      0x0a00		            //数码管位2显示
#define CH451_DIG3      0x0b00		            //数码管位3显示
#define CH451_DIG4      0x0c00		            //数码管位4显示
#define CH451_DIG5      0x0d00	                    //数码管位5显示	
#define CH451_DIG6      0x0e00	                    //数码管位6显示	
#define CH451_DIG7      0x0f00		            //数码管位7显示
//*****************************************************
//初始化子程序

void ch451_init()
{P1=0x60;
  ch451_din=0;                                     //先低后高,选择4线输入
  ch451_din=1;
#ifdef USE_KEY
  IT1=0;			                  //设置下降沿触发
  IE1=0;			                  //清中断标志
  PX1=0;			                  //设置低优先级
  EX1=1;			                  //开中断
#endif
}

//*****************************************************
//延时子程序


//***********************************************
//延时0.2秒子程序 
void delay02s(void)             

{ 

  unsigned char i,j,k; 
  for(i=20;i>0;i--) 
  for(j=30;j>0;j--) 
  for(k=248;k>0;k--); 

} 
//*****************************************************

 //输出命令子程序
 //定义一无符号整型变量存储12字节的命令字。
 void ch451_write(unsigned int command)
{
  unsigned char i;
#ifdef USE_KEY
  EX1=1;			                 //允许键盘中断
#endif	
  ch451_load=0;                                  //命令开始       
  for(i=0;i<12;i++){                             //送入12位数据,低位在前
    ch451_din=command&1;				
    ch451_dclk=0;
    command>>=1;
    ch451_dclk=1;                               //上升沿有效
  }
  ch451_load=1;                                 //加载数据
#ifdef USE_KEY
  EX1=1;
#endif
}

#ifdef USE_KEY

//*****************************************************主程序
void main()
{
   uchar a,b,c,d;
   d=0;
   ch451_init();								//调用初始化
   ch451_write(0x403);  
   ch451_write(0x580);                          //测试送入命令
   chch451_write(CH451_DIG0|0X00);              //最低位显示0                    
   delay02s();    
   chch451_write(CH451_DIG0|0X01);              //最低位显示1                    
   delay02s();    
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X02);              //最低位显示2                    
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X03);              //最低位显示3                     
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X04);              //最低位显示4                     
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X05);              //最低位显示5                    
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X06);              //最低位显示6                     
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X07);              //最低位显示7                    
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X08);              //最低位显示8                    
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X09);              //最低位显示9                   
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X0a);              //最低位显示a                     
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X0b);              //最低位显示b                    
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X0c);              //最低位显示c                     
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X0d);              //最低位显示d                    
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X0e);              //最低位显示e                     
   delay02s(); 
   ch451_write(0x0303);		                    //右循环
   chch451_write(CH451_DIG0|0X0f);              //最低位显示f                    
   delay02s(); 
   ch451_write(0x0303);		                    //右循环

   }

⌨️ 快捷键说明

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