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

📄 m32_16.c

📁 点阵
💻 C
字号:
/*
mu通过减小m值,加速;md通过增大m值,减速
nu通过增大n值,加速,nd通过减小n值,减速
*/
#include <at89x52.h>
sbit mu=P1^4;
sbit md=P1^5;
sbit nu=P1^6;
sbit nd=P1^7;
unsigned char m=10,n=8;
//阴码,逐列式
char code table[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 	//4行空内容,刚好2个字,即字从右边第一列开始显示
//0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	//如果没有,从左边第一列,一下就显字,感觉很突然


0x10,0x40,0x10,0x23,0xFF,0x1A,0x10,0x04,0xD0,0x1B,0x30,0x40,0x00,0x38,0xFC,0x01,0x54,0x39,0x57,0x43,0x55,0x4D,0x54,0x41,
0x54,0x71,0xFC,0x05,0x00,0x18,0x00,0x00,//"媳"


0x10,0x80,0x10,0x41,0xD0,0x22,0x3F,0x14,0x10,0x0C,0x90,0x13,0x70,0x60,0x08,0x20,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,
0x08,0x21,0xF8,0x7F,0x00,0x00,0x00,0x00,//"妇"

0x80,0x00,0x40,0x00,0xF0,0x7F,0x2C,0x00,0x43,0x10,0x20,0x0C,0x98,0x03,0x0F,0x21,0x0A,0x40,0xE8,0x3F,0x08,0x00,0x88,0x00,
0x28,0x03,0x1C,0x1C,0x08,0x08,0x00,0x00,//"你",

0x10,0x80,0x10,0x43,0xF0,0x22,0x1F,0x14,0x10,0x0C,0xF0,0x73,0x80,0x20,0x82,0x00,0x82,0x40,0x82,0x80,0xF2,0x7F,0x8A,0x00,
0x86,0x00,0x82,0x00,0x80,0x00,0x00,0x00,//"好",



0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //显示空屏,如果只有一个字或将字全部移出必须设置一个空屏幕
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

void delay(int c)
    {
    int i,j;
    for(i=0;i<c;i++)
        for(j=0;j<10;j++)
            ;
     }

void main()
    {
    unsigned char i,j;    //i:每个字的显示循环;j每个字的显示码除以2?    unsigned int b=0;      //显示偏移控制,char类型最多只能显示14个汉字+一个空白位字符
    unsigned char a;        //控制移动间隔时间
	IT0=1;    //设置中断触发方式,下降沿
	IE=0X81; 
while(1)
    {
    j=0;
    if(a>m) //m移动间隔时间;char型取值0--255	内容显示a次,才开始往后挪
        {
        a=0;		
        b+=n;		//跳动步伐,最好为2的整数倍,因为每个字节是16位点阵=2个8位
		//b+=16; //每次跳动半个汉字
		//b+=32; //每次跳动一个汉字  
        if(b>=200)  //显示到最后一个字,回头显示,判断值=字数*32
            {		//此值,只能比code 区“判断值”小,否则系统会造成垃圾信息
            b=0;
            }   
        }
   
     P3_0=1;
     for(i=0;i<16;i++)	   //如果想用for(i=0;i<32;i++),毕竟一屏是32+32个字节显示完就ok了,其实这么写就麻烦了
        {				   //因为一个值是赋给p0,加1的值赋给P2,那么还需要再判断奇偶性,麻烦!
        P1=0xff;			  //???????????????????如何使用,避免和后面的冲突????????
		P1=(i|(P1&0xf0));
		
        P0=table[j+b];
        P2=table[j+b+1];
        delay(5);
        P0=0x00;
        P2=0x00;
        j+=2;	   //每次加2,因为是2个字节一个汉字 2*16=32,刚好显示全一个字
        }
     P3_0=0;

	 for(i=0;i<16;i++)
        {
		P1=0xff;
        P1=(i|(P1&0xf0));
        P0=table[j+b];
        P2=table[j+b+1];
        delay(5);
        P0=0x00;
        P2=0x00;
        j+=2;
        }
        a++; 
    }
	
}

void a_key() interrupt 0 using 2 //外部中断0 ,第一组寄存器,r0
{
  /* switch (P1) 
   {
   	 case 0xfe:  //第一个键按下
  }*/
  if (mu==0)
     {if(m>1)m-=2;}
  else if (md==0)
     {if(m<16) m+=2;}
  else if (nu==0)
     { if(n<=32)
	   m+=4;
	 
	 }
  else if (nd==0)
     { if(n>=4)
	    m-=4;
	   		 
	  }
  else ;//异常原因引起的中断,不处理,但此处有个问题,如果同时按下两个键呢,呵呵,总有个先后,你说呢

}









⌨️ 快捷键说明

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