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

📄 show.c

📁 单片机驱动32X64点阵资料
💻 C
字号:
#include "NEW_8051.H"
#include <intrins.h>
#include"task.h"
#include"sbit.h"
uchar a;           //标志计数器 a为自动转换显示时间,b为手动与自动标志
uchar b;
uchar f;
uchar ha;
uchar msec;
uchar id;
uchar x;
uchar y;
uchar h;
uchar p;
uchar n;
uchar q;
uchar l;
uchar mm;
uchar OldSec;
/********************************************************/
void Show_word()		                 //串行输出显示
{  		  
    for(h=0;h<16;h++)   
    {  
        n=(h+1)%4;
        if((h==0)||(h==15))
        { 
            for(l=0;l<8;l++)
            {            
                if(h==0)
                    Send_data6((&timer[15][p]),(&timer[15][5]));
                else
                    Send_data6((&timer[15][5]),(&timer[15][3-p]));
            }
           // P0=sw[h];	
		   scan(h);			      //输出行信号
            STR=1;
            STR=0;
            STR=1;
            //锁存为高,595锁存信号
            DelayMs();	              //延时,等待一段时间,让这列显示的内容在人眼内产生“视觉暂留”现象。*/
            
            if(h==0)
            {
                q++;
                h++; 
                if(q>18)
                {
                    p++;
                    q=0;
                    if(p>3)
                    p=0; 
                }
            }
        }	  
        
        
        if((id==0)&&(f==0)||(id==1))			//f为三秒转换显示
        { 
            if(Hour/16<1)
            { 
                r=0;Send_data9((&timer[0][0]),(&timer[0][0]));
            }	    //不显示
            else
            { 
                r=0;
                Send_data9((&timer[0][0]),(&timer[Hour/16][h]));
            }	    
            if((Flicker==1)&&(id==1))       //闪烁标志为1时不亮,为零时亮
            { 
                Send_data((&timer[0][0]),(&timer[Hour%16][h]));	                 //不显示
    			Send_data((&timer[0][0]),(&timer[10][h]));	                 //不显示
                Send_data((&timer[0][0]),(&timer[Cent/16][h]));	                 //不显示
    			Send_data((&timer[0][0]),(&timer[Cent%16][h]));	                 //不显示
            }
            else
            {
                Send_data((&timer[2][h]),(&timer[Hour%16][h]));        //20年
                if(w==0)  
                    Send_data((&timer[0][h]),(&timer[10][h]));
                else
                    Send_data((&timer[0][h]),(&timer[17][h]));
                Send_data((&timer[Year/16][h]),(&timer[Cent/16][h]));  //年值   
                Send_data((&timer[Year%16][h]),(&timer[Cent%16][h]));
            }
            if(w==0)
                Send_data((&hanzi[h*2+641]),(&timer[10][h]));          //年字符
            else
                Send_data((&hanzi[h*2+641]),(&timer[17][h])); 
            Send_data((&hanzi[h*2+640]),(&timer[Sec/16][h]));
            ri=0;
            Send_data9((&timer[0]),(&timer[Sec%16][h]));	              //不显示
        
        }
        
        if((id==0)&&(f==1)||(id==2)||(id==3))			      
        {        
            if((Flicker==1)&&(id==2))		//闪烁标志为1时不亮,为零时亮
            { 
                Send_data9((&timer[0][0]),(&timer[Hour/16][h]));	                 //不显示
    			Send_data((&timer[0][0]),(&timer[Hour%16][h]));	                 //不显示            
            }
            else if((Month/16<1)&&(Hour/16<1))
            {
                r=0;
                Send_data9((&timer[0]),(&timer[0][0]));
                Send_data((&timer[Month%16][h]),(&timer[Hour%16][h]));
            }	             //月十位为零时不显示
            else if((Month/16<1)&&(Hour/16>0))
            {
                 r=0;
                Send_data9((&timer[0]),(&timer[Hour/16][h]));
                Send_data((&timer[Month%16][h]),(&timer[Hour%16][h]));
            }	             //月十位为零时不显示
            else if((Month/16>0)&&(Hour/16<1))
            {
                r=0;
                Send_data9((&timer[Month/16][h]),(&timer[0][0]));
                Send_data((&timer[Month%16][h]),(&timer[Hour%16][h]));
            }
            else
            {
                r=0;
                Send_data9((&timer[Month/16][h]),(&timer[Hour/16][h]));      //月值   
                Send_data((&timer[Month%16][h]),(&timer[Hour%16][h]));
            }
            
            if(w==0)	
                Send_data((&hanzi[h*2+673]),(&timer[10][h]));	             //月字符
            else
                Send_data((&hanzi[h*2+673]),(&timer[17][h]));	
                Send_data((&hanzi[h*2+672]),(&timer[Cent/16][h]));	
            if((Flicker==1)&&(id==3))		             //闪烁标志为1时不亮,为零时亮 
            { 
               	Send_data((&timer[0][0]),(&timer[Cent%16][h]));	             //不显示
    			Send_data((&timer[0][0]),(&timer[10][h]));	                 //不显示           
            }
            else
            {				      
                Send_data((&timer[Day/16][h]),(&timer[Cent%16][h]));          //日值
            if(w==0)   
                Send_data((&timer[Day%16][h]),(&timer[10][h]));
            else
                Send_data((&timer[Day%16][h]),(&timer[17][h]));
            
            }
            Send_data((&hanzi[h*2+961]),(&timer[Sec/16][h]));                 //日字符  
            ri=0;Send_data9((&hanzi[h*2+960]),(&timer[Sec%16][h]));        
        }
        /**********************************************************************************/          
        if((id==0)&(f==5)|(id==4))//f为三秒转换显示
        {
            if(Hour/16<1)
            {
                r=0;
                Send_data8((&timer[0]),(&timer[0][0])); 
			} //不显示
            else
            {
                r=0;
                Send_data8((&timer[0]),(&timer[Hour/16][h]));
			}	                     
                Send_data2((&hanzi[h*2+705]),(&timer[Hour%16][h]));	             //星字符
            if(w==0)
               {Send_data2((&hanzi[h*2+704]),(&timer[10][h])); }
            else
                {Send_data2((&hanzi[h*2+704]),(&timer[17][h]));}
            
            Send_data2((&hanzi[h*2+737]),(&timer[Cent/16][h]));	             //期字符
            Send_data2((&hanzi[h*2+736]),(&timer[Cent%16][h]));
            if((Flicker==1)&&(id==4))		             //闪烁标志为1时不亮,为零时亮 
            { 
                    Send_data2((&timer[0][0]),(&timer[10][h]));	                 //不显示
    				Send_data2((&timer[0][0]),(&timer[Sec/16][h]));	                 //不显示
            }
            else
            {
                if(w==0)				 	    
                   { Send_data2((&hanzi[Week%16*32+h*2+737]),(&timer[10][h]));}       //星期值
                else
                    {Send_data2((&hanzi[Week%16*32+h*2+737]),(&timer[17][h]));}       //星期值
                
                Send_data2((&hanzi[Week%16*32+h*2+736]),(&timer[Sec/16][h])); 
            }     
            ri=0;
            Send_data8((&timer[0][0]),(&timer[Sec%16][h]));        
        }	                 //不显示    
/**************************************************************************************/
        if(id>4)		             //f为三秒转换显示
        {
            SERr=SERg=1;
            if((Flicker==1)&&(id==5))		             //闪烁标志为1时不亮,为零时亮 
            { 
                Show_pass1();			                 //不显示一个字
            }
            else
            { 
                if(Hour/16<1)
                    Send_data5(&timer[0][0]);	           //时十位小于1时不显示  
                else
                    Send_data5(&timer[Hour/16][h]);         //时值
                Send_data5(&timer[Hour%16][h]);
            }
            Send_data4(&timer[10][h]);	                   //两个点  
            if((Flicker==1)&&(id==6))		               //闪烁标志为1时不亮,为零时亮 
            {
                Show_pass1();			                   //不显示一个字
            }
            else
            { 
                Send_data3(&timer[Cent/16][h]);   
                Send_data3(&timer[Cent%16][h]);           //分值
            } 
            Send_data4(&timer[10][h]);                     //两个点
            if((Flicker==1)&&(id==7))		               //闪烁标志为1时不亮,为零时亮 
            { 			                   
                Show_pass1();							   //不显示一个字
            }
            else
            { 
                Send_data4(&timer[Sec/16][h]);            //秒
                Send_data4(&timer[Sec%16][h]);  
            }
        }
        
        
        
        if((id==0)&&(f==3))			             //f为三秒转换显示
        {	  	 
            if(Hour/16<1)
            {
                r=0;
                Send_data7((&hanzi[h*2+1185]),(&timer[0][0]));//温字符
            }	             
            else
            {
                r=0;
                Send_data7((&hanzi[h*2+1185]),(&timer[Hour/16][h]));
            }
            Send_data1((&hanzi[h*2+1184]),(&timer[Hour%16][h]));
            if(w==0)
                Send_data1((&hanzi[h*2+1217]),(&timer[10][h]));	             //度字符
            else
                Send_data1((&hanzi[h*2+1217]),(&timer[17][h]));
            Send_data1((&hanzi[h*2+1216]),(&timer[Cent/16][h]));
            Send_data1((&timer[10][h]),(&timer[Cent%16][h]));					 //两个点								            
            if(U8T_data_H/10==0x00)            
            { 
                if(w==0)
                    Send_data1((&timer[0][0]),(&timer[10][h]));
                else
                    Send_data1((&timer[0][0]),(&timer[17][h]));
            }		   
            else
            {  
            if(w==0)
                Send_data1((&timer[U8T_data_H/10][h]),(&timer[10][h]));         //温度值的十位值
            else
                Send_data1((&timer[U8T_data_H/10][h]),(&timer[17][h])); 
            }
            Send_data1((&timer[U8T_data_H%10][h]),(&timer[Sec/16][h]));			 //温度值的个位
            
            ri=0;
            Send_data7((&timer[11][h]),(&timer[Sec%16][h]));
        }
/******************************************************************************/        
        if((id==0)&&(f==4))			             //f为三秒转换显示
        {	  	         
            if(Hour/16<1)
            {
                r=0;
                Send_data7((&hanzi[h*2+3457]),(&timer[0][0]));
            }	             //湿字符
            else
            { 
                r=0;
                Send_data7((&hanzi[h*2+3457]),(&timer[Hour/16][h]));
            }
            Send_data1((&hanzi[h*2+3456]),(&timer[Hour%16][h]));
            if(w==0)
                Send_data1((&hanzi[h*2+1217]),(&timer[10][h]));	             //度字符
            else
                Send_data1((&hanzi[h*2+1217]),(&timer[17][h]));
            
            Send_data1((&hanzi[h*2+1216]),(&timer[Cent/16][h]));
            Send_data1((&timer[10][h]),(&timer[Cent%16][h]));					 //两个点
            
            
            
            
            if(U8RH_data_H/10==0x00)
            {
                if(w==0)
                    Send_data1((&timer[0][0]),(&timer[10][h]));
                else
                    Send_data1((&timer[0][0]),(&timer[17][h]));
            
            }		   
            else
            {
                if(w==0)
                    Send_data1((&timer[U8RH_data_H/10][h]),(&timer[10][h])); 
                else
                    Send_data1((&timer[U8RH_data_H/10][h]),(&timer[17][h])); 
            }        //湿度值的十位值
            Send_data1((&timer[U8RH_data_H %10][h]),(&timer[Sec/16][h]));//湿度值的个位
            
            ri=0;
            Send_data7((&timer[16][h]),(&timer[Sec%16][h]));			 //湿度值的符号
        }
/***********************************************************************************************/
        
 //修改程

⌨️ 快捷键说明

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