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

📄 text1.c

📁 单片机驱动32X64点阵资料
💻 C
字号:

#include<STC12C5A60S2.H>
#define uchar unsigned char
#define uint unsigned int
const uchar code hanzi[];

sbit IA  =P4^0;  //行控制线A
sbit IB  =P2^0;  //行控制线B
sbit IC  =P2^1;  //行控制线C
sbit ID  =P2^2;  //行控制线D

#define  scan0    {IA=0;IB=0;IC=0;ID=0;}
#define  scan1    {IA=1;IB=0;IC=0;ID=0;}
#define  scan2    {IA=0;IB=1;IC=0;ID=0;}
#define  scan3    {IA=1;IB=1;IC=0;ID=0;}
#define  scan4    {IA=0;IB=0;IC=1;ID=0;}
#define  scan5    {IA=1;IB=0;IC=1;ID=0;}
#define  scan6    {IA=0;IB=1;IC=1;ID=0;}
#define  scan7    {IA=1;IB=1;IC=1;ID=0;}
#define  scan8    {IA=0;IB=0;IC=0;ID=1;}
#define  scan9    {IA=1;IB=0;IC=0;ID=1;}
#define scan10    {IA=0;IB=1;IC=0;ID=1;}
#define scan11    {IA=1;IB=1;IC=0;ID=1;}
#define scan12    {IA=0;IB=0;IC=1;ID=1;}
#define scan13    {IA=1;IB=0;IC=1;ID=1;}
#define scan14    {IA=0;IB=1;IC=1;ID=1;}
#define scan15    {IA=1;IB=1;IC=1;ID=1;}
//extern uiAllData;
uchar code hanzi[];					    //汉字字模
uchar code hanzi1[];
uchar l=0;					    //汉字字模
				 //0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16行段码*///138驱动数据
				   


sbit STR=P4^1;              //锁存	 
sbit SCK=P2^7;	            //时钟	 
sbit SERr1= P2^4;            //数据
sbit SERg1= P2^6;



sbit SERr= P2^3;
sbit SERg= P2^5;	
uchar Move=0,Speed,line;  //时间温度变量
uint zimuo;		                   //字模计数器
uchar BUFF[50];			           //缓存
uchar BUFF1[50];			           //缓存

void   DelayMs(void);              // 延时
void   in_data();				   // 调整移动数据
void   rxd_data();				   // 串口发送移动数据
/******************************************************/
/*****不影响其他端口的扫描*************************/
void scan(unsigned char Value)
{switch(Value)
        {case  15: scan0;break;
		  case  0: scan1;break;
		   case  1: scan2;break;
		    case  2: scan3;break;
             case  3: scan4;break;
		      case  4: scan5;break;
		       case  5: scan6;break;
		        case  6: scan7;break;
                 case  7: scan8;break;
		       case  8: scan9;break;
		      case 9:scan10;break;
		     case 10:scan11;break;
            case 11:scan12;break;
		  case 12:scan13;break;
		 case 13:scan14;break;
	    case 14:scan15;break;
	   default:break;
        }
}
/**************************延时***********************/

void DelayMs(void)
 {
  uchar TempCyc;
  for(TempCyc=150;TempCyc>1;TempCyc--)
     {;}
 }
/********************************************/

/*主函数*/
void main()
{  
   Move=0;
   zimuo=0;
   while(1)  
   {
   while(zimuo<1792)
    { 
	 while(Move<32)				             //数据移位。
       {
	     for(Speed=0;Speed<2;Speed++)       //移动速度
	      {	
		    for(line=0;line<16;line++)
			  {
		         in_data();				     //调整移动数据
	             rxd_data();
                 scan(line);       
			                      						 
				//	STR=1;//锁存
					STR=0;
				    STR=1;
				    DelayMs();	 //延时,等待一段时间,让这列显示的内容在人眼内产生“视觉暂留”现蟆

⌨️ 快捷键说明

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