简易点阵显示器:
1、使用51单片机
2、用4个16×16点阵实现汉字显示:毕业快乐。
3、具有静态和滚动显示功能
uchar next=0;//滚动控制
uchar time=0;
uchar start=0;//移位控制
uchar code str[] = {//编码
0x00,0x00,0xFF,0x88,0x88,0x48,0x48,0x00,0x7F,0x88,0x84,0x84,0x82,0xE0,0x00,0x00,
0x00,0x10,0x60,0x80,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0xC0,0x30,0x00,0x00,
0x00,0xE0,0x00,0xFF,0x10,0x20,0x08,0x08,0x08,0xFF,0x08,0x08,0xF8,0x00,0x00,0x00,
0x00,0x00,0xE0,0x9C,0x84,0x84,0x84,0xF4,0x82,0x82,0x83,0x82,0x80,0x80,0x00,0x00,
0x04,0x04,0x05,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,/*"毕",0*/
0x40,0x40,0x40,0x43,0x40,0x7F,0x40,0x40,0x40,0x7F,0x42,0x41,0x40,0x40,0x40,0x00,/*"业",1*/
0x01,0x00,0x00,0xFF,0x00,0x81,0x41,0x31,0x0D,0x03,0x0D,0x31,0x41,0x81,0x81,0x00,/*"快",2*/
0x00,0x20,0x10,0x08,0x06,0x40,0x80,0x7F,0x00,0x00,0x02,0x04,0x08,0x30,0x00,0x00};/*"乐",3*/
void delay(uint xms)//延时函数
{
while(xms--);
}
void keyscan()//按键控制程序
{
if(!k1)//静态
{
start=0;
next=0;
}
if(!k2)//动态
start=1;
}
void display()//显示
{
uchar i;
for(i=0;i<64;i++)
{
P1=0xff;
keyscan();//按键检测
P3=~str[(next+i)%64+64];
P2=~str[(next+i)%64];
P1=i;
delay(50);
}
}
//主程序
void main()
{
TMOD=0X01; //配置 16 位定时器/计数器
TH0=0x3c;//重新赋值计时初值 50ms
TL0=0xb0;
EA=1; //打开全局中断
ET0=1; //打开定时/计数 0 中断
TR0=1;
while(1) //主程序循环程序
{
display();
}
}
//定时器 1 中断服务程序
void timer0() interrupt 1 using 1
{
if(time<3)//定时
文章借鉴于此纷传