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

📄 text1.c

📁 采用7279显示模块
💻 C
📖 第 1 页 / 共 2 页
字号:
#include<reg51.h>                                                                     
#define uchar unsigned char                                               
#define uint unsigned int                                                   
#define ulong unsigned long                                                 
/**************子函数定义****************************/                       
void long_delay(void);                                                        
void short_delay(void);                                                     
void delay10ms(uchar);                                                       
void write7279(uchar,uchar);                                               
uchar read7279(uchar);                                                     
void send_byte(uchar);                                                      
uchar receive_byte(void);                                                   
void display7279();                            
void keyunit(void);            //按键及显示测试                      
                          
/************程序变量定义***************************/                       
                                                             
uchar key_number,j,k,key0,key1,key2,key3,key4,key5,p;                                                           
                                                    
/**************端口初始化**************************/                        
sbit key=P3^4;                                                                
sbit dat=P3^5;                                                                   
sbit clk=P3^6;                                                              
sbit cs=P3^7;     													      
/***********7279指令初始化*************************/                      
#define DEC0DE0 0x80				  //采用译码方式0                       
#define DEC0DE1 0xc8                              //采用译码方式1                          
#define CMD_READ 0x15    			  //读键盘的数据指令                      
#define UNDECODE 0x90				  //不译码                                
#define RTL_CYCLE 0xa3				  //循环左移                             
#define RTR_CYCLE 0xa2				  //循环右移                             
#define RTL_RESET 0xa1				  //左移                                   
#define CMD_RESET 0xa4				  //复位,所有的显示清除                 
#define CMD_TEST 0xbf				  //测试,将所有的LED点亮                
#define RTR_UNCYL 0xa0				  //右移                                 
#define ACTCTL 0x98			          //消隐                                
#define SEGON 0xe0			          //段亮                                 
#define SEGOFF 0xc0			          //断灭                                    
#define  BLINKCTL 0x88				  //闪烁                                 
                                                                             
/****************************************************                     
		              主函数                                                            
主要功能:测试、复位、不译码显示、译码【0】【1】                                    
         显示、按键值测试并显示、移位、消隐、段显等                     
***************************************************/                        
main()                                                                      
{                                                                                
  while(1)                                                                  
  {                                 
	  keyunit();                                                        
	                                                    
   }                                                                          
}                                                                           
/************************************************                          
		          7279写入函数                                             
**********************************************/                             
void write7279(uchar cmd,uchar dta)                                         
{                                                                              
  send_byte(cmd);                                                            
  send_byte(dta);                                                           
}                                                                           
/*************************************************                          
		           7279读取函数                                             
**************************************************/                             
uchar read7279(uchar command)                                               
{                                                                         
  send_byte(command);                                                      
  return(receive_byte());                                                   
}                                                                             
/*************************************************                         
		        7279发送字节函数                                          
***************************************************/                      
void send_byte(uchar out_byte)                                          
{                                                                             
  uchar i;                                                                 
  cs=0;                                                                              
  long_delay();                                                            
  for(i=0;i<8;i++)                                                          
  {                                                                                   
	  if(out_byte&0x80)                                                      
	  {                                                                   
	      dat=1;                                                           
	   }                                                                   
	  else                                                                  
	  {                                                                    
	      dat=0;                                                             
	   }                                                                   
	  clk=1;                                                                
	  short_delay();                                                                  
	  clk=0;                                                                
	  short_delay();                                                      
	  out_byte=out_byte*2;                                                   
   }                                                                          
  dat=0;                                                                   
 }                                                                         
/***************************************************                          
		       7279接受字节函数                                           
******************************************************/                     
uchar receive_byte(void)                                                     
{                                                                          
  uchar i,in_byte;                                                       
  dat=1;                                                                    
  long_delay();                                                              
  for(i=0;i<8;i++)                                                           
  {                                                                      
      clk=1;                                                              
	  short_delay();                                                        
	  in_byte=in_byte*2;                                                   
	  if(dat)                                                               
	  {                                                                    
	      in_byte=in_byte|0x01;                                           
	   }                                                                   
	  clk=0;                                                              
	  short_delay();                                                       
   }                                                                       
  dat=0;                                                                  
  return(in_byte);                                                       
}                                                                         
/***************************************************                        
		       7279长延迟函数                                              
****************************************************/                       
void long_delay(void)                                                        
{                                                                          

⌨️ 快捷键说明

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