📄 99.c
字号:
//16×64单色点阵参考程序:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//清屏
/*先写几个清屏(4个清屏刚好4个字),是为了刚开始让
屏幕什么都没有显示,在主函数扫描的时候是从起始位
置开始扫描,然后程序会慢慢移动到要显示的字*/
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//清屏
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//清屏
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//清屏
0xDF,0xF7,0xEC,0x03,0xED,0xF7,0xFD,0xF7,0x01,0xF7,0xF5,0xF7,0xED,0xF7,0xC4,0x07,
0xA9,0x57,0x6F,0x5F,0xEF,0x5F,0xEE,0xDF,0xEE,0xDD,0xED,0xDD,0xEB,0xE1,0xE7,0xFF,//祝
0xEE,0xFF,0xEE,0xFF,0xEE,0xFF,0xDC,0x03,0xDD,0xFB,0x9B,0xF7,0x57,0xBF,0xDF,0xBF,
0xDE,0xAF,0xDE,0xB7,0xDD,0xB3,0xDB,0xBB,0xDF,0xBF,0xDF,0xBF,0xDE,0xBF,0xDF,0x7F,//你
0xFE,0xFF,0xEE,0xFF,0xEE,0xFF,0xEE,0xF7,0xC0,0x03,0xDE,0xFF,0xBE,0xFF,0xBE,0xFF,
0x7E,0xEF,0xC0,0x07,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x00,0x01,0xFF,0xFF,//生
0xFF,0xEF,0xE0,0x07,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,
0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0,0x0F,0xEF,0xEF,0xFF,0xFF,//日
0xEF,0x7F,0xEF,0x7F,0xEF,0x7F,0xEF,0x77,0xA4,0x03,0xAB,0x77,0xAF,0x77,0x6F,0x77,
0xEF,0x77,0xE0,0x01,0xEF,0x7F,0xEE,0xBF,0xEE,0xDF,0xED,0xEF,0xEB,0xF1,0xE7,0xFB,//快
0xFF,0xDF,0xFF,0x0F,0xE0,0xFF,0xEF,0xFF,0xEE,0xFF,0xEE,0xFF,0xDE,0xFB,0x80,0x01,
0xFE,0xFF,0xFE,0xFF,0xF6,0xDF,0xF6,0xEF,0xEE,0xF7,0xDE,0xF3,0xBA,0xFB,0xFD,0xFF,//乐
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xF8,0xFF,0xF9,0xFF,0xF3,0xFF,0xF7,
0xFF,0xE7,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFE,0x3F,0xFF,0xFF,0xFF,0xFF,//!
0xFF,0xF7,0x80,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x00,0x01,0xFE,0xFF,
0xFD,0x7F,0xFD,0x7F,0xFB,0xBF,0xFB,0xBF,0xF7,0xDF,0xEF,0xEF,0xDF,0xF1,0x3F,0xFB,//天
0xFF,0xF7,0x80,0x03,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,0x00,0x01,0xFE,0xFF,
0xFD,0x7F,0xFD,0x7F,0xFB,0xBF,0xFB,0xBF,0xF7,0xDF,0xEF,0xEF,0xDF,0xF1,0x3F,0xFB,//天
0xFF,0xF7,0x80,0x03,0xF7,0xDF,0xF7,0xDF,0xF7,0xDF,0xF7,0xDF,0xF7,0xDB,0x00,0x01,
0xF7,0xDF,0xF7,0xDF,0xF7,0xDF,0xF7,0xDF,0xEF,0xDF,0xEF,0xDF,0xDF,0xDF,0xBF,0xDF,//开
0xFD,0xFF,0xFE,0xFF,0xFF,0x7F,0xFF,0x3F,0xF7,0x7F,0xF7,0xFF,0xD7,0xF7,0xD7,0xFB,
0xD7,0xFD,0xB7,0xFD,0x77,0xFD,0xF7,0xFF,0xF7,0xEF,0xF7,0xEF,0xF8,0x0F,0xFF,0xFF,//心
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFF,0xF8,0xFF,0xF9,0xFF,0xF3,0xFF,0xF7,
0xFF,0xE7,0xFF,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFE,0x3F,0xFF,0xFF,0xFF,0xFF,//!
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//清屏
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//清屏
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//清屏
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//清屏
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//清屏
};
sbit DS=P3^0; //74HC595的数据串行输入端口
sbit ST=P3^5; //74HC595并行输出使能
sbit SH=P3^1; //74HC595移位寄存器移位使能
sbit G=P3^6;
//******延时子程序******//
void delay(uint a)
{
uint i,j;
for(i=0;i<a;i++)
for(j=0;j<4;j++);
}
/*将1个字节(8位)数据送到74HC595的移位寄存器,但未输出*/
void SendByte(uchar date)
{
uchar i;
for(i=0;i<8;i++)
{
SH=0;
if(date&0x80) //将date最高位移到74HC595的移位寄存器
DS=1;
else
DS=0;
SH=1; //SH上升沿时移位
date=date<<1;
}
}
//主函数
void main(void)
{
uchar i, k,t,j;
while(1)
{
G=1;
for(k=0;k<17;k++) //翻动的屏数,要实现的翻屏数越多,则在数组中的清屏个数就要求越多
{
for(t=0;t<15;t++) //翻动速度
{
for(i=0,j=0;i<16;i++,j+=2) //扫描
{
SendByte(table[32*k+j+129]);
SendByte(table[32*k+j+128]);
// delay(40);
SendByte(table[32*k+j+97]);
SendByte(table[32*k+j+96]);
//delay(40);
SendByte(table[32*k+j+65]);
SendByte(table[32*k+j+64]);
//delay(40);
SendByte(table[32*k+j+33]);
SendByte(table[32*k+j+32]);
// delay(40);
ST=0;
G=0;
P1=i;
ST=1;
delay(10);
G=1;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -