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

📄 dianzhen3左右移.c

📁 单片机应用系统(光盘内容)
💻 C
字号:
#include <reg51.h>           // 引用标准库的头文件
#define uchar unsigned char
#define uint  unsigned int
sbit sh_cp=P3^0;             //595时钟端
sbit ds=P3^1;                //595数据端
sbit st_cp=P3^2;             //595锁存端
uchar num=20;                //汉字个数
uchar code tab[]={           //取码方式 阴码 逆向 逐列 16×16 十六进制

 //《(0) 单(1) 片(2) 机(3) 开(4) 发(5) 典(6) 型(7) 模(8) 块(9) 设(10) 计(11) 》(12)

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x01,0x20,0x02,
0x90,0x04,0x48,0x09,0x24,0x12,0x12,0x24,0x09,0x48,0x04,0x90,0x02,0x20,0x00,0x00,/*"《",0*/

0x00,0x08,0x00,0x08,0xF8,0x0B,0x28,0x09,0x29,0x09,0x2E,0x09,0x2A,0x09,0xF8,0xFF,
0x28,0x09,0x2C,0x09,0x2B,0x09,0x2A,0x09,0xF8,0x0B,0x00,0x08,0x00,0x08,0x00,0x00,/*"单",1*/

0x00,0x80,0x00,0x40,0x00,0x30,0xFE,0x0F,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01,
0x10,0x01,0x1F,0x01,0x10,0x01,0x10,0xFF,0x10,0x00,0x18,0x00,0x10,0x00,0x00,0x00,/*"片",2*/

0x08,0x04,0x08,0x03,0xC8,0x00,0xFF,0xFF,0x48,0x00,0x88,0x41,0x08,0x30,0x00,0x0C,
0xFE,0x03,0x02,0x00,0x02,0x00,0x02,0x00,0xFE,0x3F,0x00,0x40,0x00,0x78,0x00,0x00,/*"机",3*/

0x40,0x00,0x42,0x40,0x42,0x20,0x42,0x10,0x42,0x0C,0xFE,0x03,0x42,0x00,0x42,0x00,
0x42,0x00,0x42,0x00,0xFE,0x7F,0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x00,0x00,/*"开",4*/

0x00,0x40,0x10,0x20,0x3E,0x10,0x10,0x88,0x10,0x87,0xF0,0x41,0x9F,0x46,0x90,0x28,
0x90,0x10,0x92,0x28,0x94,0x27,0x1C,0x40,0x10,0xC0,0x10,0x40,0x10,0x00,0x00,0x00,/*"发",5*/

0x00,0x00,0x00,0x04,0x00,0x84,0xF8,0x47,0x48,0x64,0x48,0x3C,0xFF,0x17,0x48,0x04,
0x48,0x04,0xFF,0x07,0x48,0x0C,0x48,0x34,0xF8,0xE7,0x00,0x44,0x00,0x04,0x00,0x00,/*"典",6*/

0x10,0x40,0x12,0x42,0x92,0x49,0x7E,0x48,0x12,0x48,0x12,0x48,0xFE,0x49,0x12,0x7E,
0x12,0x48,0x10,0x48,0xFC,0x48,0x00,0x4A,0x00,0x4C,0xFF,0x4B,0x00,0x40,0x00,0x00,/*"型",7*/

0x10,0x03,0xD0,0x00,0xFF,0xFF,0x50,0x00,0x90,0x00,0x04,0x84,0xF4,0x85,0x54,0x45,
0x5F,0x35,0x54,0x0F,0x54,0x15,0x5F,0x25,0xF4,0x65,0x04,0xC4,0x00,0x44,0x00,0x00,/*"模",8*/

0x10,0x08,0x10,0x18,0xFF,0x0F,0x10,0x04,0x10,0x85,0x00,0x41,0x08,0x31,0x08,0x0D,
0xFF,0x03,0x08,0x05,0x08,0x09,0x08,0x11,0xF8,0x31,0x00,0x61,0x00,0x21,0x00,0x00,/*"块",9*/

0x40,0x00,0x41,0x00,0xCE,0x7F,0x04,0x20,0x00,0x90,0x80,0x80,0x40,0x40,0xBE,0x43,
0x82,0x2C,0x82,0x10,0x82,0x10,0xBE,0x2C,0xC0,0x43,0x40,0xC0,0x40,0x40,0x00,0x00,/*"设",10*/

0x20,0x00,0x21,0x00,0x2E,0x00,0xE4,0x7F,0x00,0x20,0x00,0x10,0x20,0x08,0x20,0x00,
0x20,0x00,0x20,0x00,0xFF,0xFF,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,/*"计",11*/

0x02,0x20,0x04,0x90,0x09,0x48,0x12,0x24,0x24,0x12,0x48,0x09,0x90,0x04,0x20,0x02,
0x40,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"》",12*/

/*--  调入了一幅图像:"心"型 --*/
0x00,0x00,0x3C,0x38,0x7E,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFE,0x7F,0xFC,0x3F,0xF8,0x1F,0xF0,0x0F,0xE0,0x07,0xC0,0x03,0x00,0x00,

//=========================清    屏==============6个字模==============================
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 send(uchar dat595);       //595发送8位扫描段码子程序
void delay(uint n);            //延时子程序
void disp(uchar k);            //显示子程序
void dispmove(void);           //左右移动显示子程序


main()                         //主程序
{
	while(1)
	{
		dispmove();             //显示
	}
}

void send(uchar dat595)         //595发送8位扫描段码子程序
{
	uchar dat=dat595;           //把要发送的数据给dat
	uint i;
	for(i=0;i<8;i++)            //8位发送循环
	{
		dat<<=1;                //数据左移一位至CY  即先发送高位
		ds=CY;                  //数据送至595的数据端
		sh_cp=0;                //时钟产生上升沿
		sh_cp=1;                //
	}
}

void delay(uint n)               //延时子程序
{
	uint i,j;
	for(i=0;i<n;i++)
		for(j=0;j<100;j++);
}


void disp(uchar k)
{   uchar i,row,j,m;
	uint g;
	for(j=0;j<5;j++)              //动态显示5次后,再移动
	{
		row=0x08;                 //74138的编码初值08 第一行有效
		for(i=0;i<16;i++)         //16行循环有效
		{
			st_cp=0;              //595锁存端无效				
			for(m=6;m>0;m--)      //6组16×16数据发送循环
			{
				g=2*i+2*k+m*32-32;//取字模
				send(tab[g+1]);   //上半屏
				send(tab[g]);	  //下半屏			
			}
			P1=row;               //对应行输出
			row++;                //行号加1  
			st_cp=1;              //595锁存数据
			delay(1);             //延时后刷屏
		}	
	}	
}

void dispmove(void)               //左右移动显示
{	uchar k,j;	
	
	
	for(k=0;k<16*(num-6);k++)	  //num个字,6个16×16的led,16*(num-6)为需要的点数
	{
		disp(k);		          //k++为向后取码,则向左移动		
	}	
	for(k=16*(num-6);k>0;k--)	  //num个字,6个16×16的led,16*(num-6)为需要的点数
	{ 
		disp(k);	              //k--为向前取码,则向右移动		
	}
	
	for(j=0;j<3;j++)              //分三页静态显示
	{
		for(k=16;k>0;k--)	      //动态扫描
		{ 
			disp(16*6*j);	      //一页显示6个字	
		}
	}
		
}

⌨️ 快捷键说明

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