16点阵显示.c

来自「单片机写的程序都含有Protues仿真结果」· C语言 代码 · 共 47 行

C
47
字号
#include"reg51.h"			 
#include"intrins.h"
#define uchar unsigned char	   //为什么显示 的 字数多 仿真的时候会 出现抖动
#define uint unsigned int	嘉   使
uchar code tab[]={
	0x82,0x00,0x4A,0x02,0x2A,0x02,0x1E,0xE2,0x4B,0xAA,0x8A,0xAA,0x7A,0xAA,0x02,0xAF,0x02,0xAA,0x7B,0xAA,0x4A,0xAA,0x4A,0xE2,0x7A,0x02,0x02,0x02,0x02,0x00,0x00,0x00,  //嘉
	0x20,0x00,0x10,0x20,0x08,0x24,0x04,0x24,0x02,0x24,0x01,0xA4,0x00,0x64,0xFF,0xFC,0x00,0x62,0x01,0xA2,0x02,0x22,0x0C,0x23,0x18,0x22,0x30,0x30,0x10,0x20,0x00,0x00,  //禾
	0x10,0x10,0x10,0x10,0x0F,0xFE,0x48,0x10,0x28,0x10,0x1F,0xFC,0x00,0x44,0x7D,0x54,0x25,0x55,0x27,0xFE,0x25,0x54,0x25,0x54,0x7D,0xF4,0x00,0x44,0x00,0x44,0x00,0x00,  //塘
	0x04,0x10,0x03,0x10,0x00,0xD0,0xFF,0xFF,0x00,0x50,0x01,0x90,0x00,0x00,0x00,0x90,0x03,0x10,0x40,0x10,0x80,0x10,0x7F,0xFF,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x00,  //村
	0x80,0x00,0x40,0x00,0x30,0x00,0x0F,0xFE,0x00,0x02,0x00,0x42,0x1F,0x4A,0x09,0x4A,0x09,0x7E,0x09,0x4A,0x1F,0x4A,0x40,0x42,0x80,0x02,0x7F,0xFE,0x00,0x00,0x00,0x00,  //周
	0x00,0x00,0x40,0x20,0x20,0x20,0x10,0x22,0x0C,0x22,0x03,0xE2,0x00,0x22,0x00,0x22,0x00,0x22,0x3F,0xE2,0x40,0x22,0x40,0x22,0x40,0x22,0x40,0x20,0x70,0x20,0x00,0x00,  //元
	0x00,0x80,0x40,0x80,0x20,0x80,0x10,0x80,0x0E,0xBE,0x10,0xAA,0x20,0xAA,0x3F,0xAA,0x44,0xAA,0x44,0xAA,0x44,0xAA,0x44,0xBE,0x44,0x80,0x40,0x80,0x40,0x80,0x00,0x00,  //是
	0x00,0x40,0x00,0x40,0x00,0x40,0x3F,0xFC,0x40,0x48,0x40,0x20,0x40,0x20,0x47,0xFF,0x40,0x22,0x42,0x10,0x44,0x10,0x48,0x10,0x47,0xF8,0x78,0x10,0x20,0x00,0x00,0x00};  //也
/*	0x04,0x00,0x02,0x04,0x01,0x04,0x7F,0xC4,0x00,0x64,0x20,0x9C,0x20,0x87,0x20,0x84,0x20,0x84,0x3F,0xE4,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x04,0x00,0x00,  //在
	0x20,0x00,0x20,0x00,0x3F,0xF0,0x10,0x00,0x10,0x00,0x0F,0xFF,0x08,0x20,0x08,0x20,0x00,0x00,0x3F,0xFF,0x40,0x40,0x40,0x20,0x40,0x20,0x40,0x10,0x78,0x10,0x00,0x00,  //此
	0x02,0x00,0x01,0x08,0x00,0x88,0x7F,0xC9,0x01,0x2E,0x02,0x98,0x44,0x48,0x20,0x00,0x10,0x08,0x0C,0x08,0x03,0xF8,0x20,0x08,0x40,0x08,0x3F,0xFC,0x00,0x08,0x00,0x00,  //初
	0x20,0x00,0x21,0x00,0x22,0x00,0x2C,0x3E,0x20,0x2A,0x3F,0xEA,0x20,0x2A,0x20,0x2A,0x20,0x2A,0x3F,0xEA,0x28,0x2A,0x24,0x3E,0x23,0x00,0x20,0x00,0x20,0x00,0x00,0x00,  //显
	0x00,0x00,0x42,0x00,0x42,0x00,0x22,0x00,0x23,0xFC,0x12,0x56,0x12,0x55,0x0A,0x54,0x0A,0x54,0x46,0x54,0x86,0x54,0x7F,0xFC,0x03,0x00,0x02,0xE0,0x02,0x40,0x00,0x00,  //手
	0x02,0x00,0x02,0x24,0x02,0x24,0x02,0x24,0x02,0x24,0x42,0x24,0x82,0x24,0x7F,0xFE,0x02,0x22,0x02,0x22,0x02,0x22,0x02,0x22,0x02,0x22,0x02,0x20,0x02,0x00,0x00,0x00,  //脚
	0x07,0xFC,0x01,0x04,0x01,0x04,0x03,0xFC,0x00,0x20,0x00,0x20,0x7F,0x50,0x21,0x48,0x21,0x44,0x21,0x43,0x21,0x44,0x21,0x48,0x7F,0x58,0x00,0x30,0x00,0x10,0x00,0x00,  //哈
	0x07,0xFC,0x01,0x04,0x01,0x04,0x03,0xFC,0x00,0x20,0x00,0x20,0x7F,0x50,0x21,0x48,0x21,0x44,0x21,0x43,0x21,0x44,0x21,0x48,0x7F,0x58,0x00,0x30,0x00,0x10,0x00,0x00,  //哈 	
	0x07,0xFC,0x01,0x04,0x01,0x04,0x03,0xFC,0x00,0x20,0x00,0x20,0x7F,0x50,0x21,0x48,0x21,0x44,0x21,0x43,0x21,0x44,0x21,0x48,0x7F,0x58,0x00,0x30,0x00,0x10,0x00,0x00}; //哈 */
uchar t;
void delay(t)
{
	while(t--) {;};
}							 //不扩展外部存储器 做多只能显示 3 个字的大小
void main()
{
	while(1)
	{	unsigned int j;
		for(j=0;j<256;j+=2)    //左移控制 	如果是for(j=96;j>0;j--)则右移控制
		{	uchar k;
			for(k=0;k<0x10;k++)	  //短暂 控制静态显示 左移不至于太快
			{	unsigned int i;
				P1=0;		  //列扫描 从0~15 分别对应 4~16译码器的16状态
				for(i=0;i<16;i++)	   //注意这里 每次只能 扫描一个 字
				{
					P3=tab[(2*i+j)%256];   //扫描该列时 送该列的字码  注意这里的查表方式 
					P2=tab[(2*i+1+j)%256];
					delay(50);		 //延时以保证led能持续的点亮
					P1++;
				}
			}
		}
	}
}

⌨️ 快捷键说明

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