標(biāo)題:
16*64點(diǎn)陣程序+Proteus仿真
[打印本頁]
作者:
daixuefei
時間:
2016-1-13 18:56
標(biāo)題:
16*64點(diǎn)陣程序+Proteus仿真
16*64點(diǎn)陣單片機(jī)仿真文件下載:
http://www.torrancerestoration.com/bbs/dpj-42345-1.html
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit DS_red=P3^5;
sbit SHC=P3^2;
sbit STC=P3^3;
sbit OE_red=P3^4;
sbit SW1=P3^6;
sbit SW2=P3^7;
uint count,speed;
uchar p,next,k,high,low,yige;
unsigned char flag,a,i;
uchar code hang[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
uchar code hanzi[10][32]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x04,0x80,0x08,0x80,0x34,0x80,0xE7,0xFE,0x24,0x84,0x24,0x88,0x00,0x02,0x09,0x02,
0x09,0x04,0xFF,0xC8,0x09,0x30,0x92,0x28,0x52,0x44,0x12,0x82,0x02,0x1F,0x00,0x00},/*"錢",0*/
{0x20,0x00,0x20,0x02,0x20,0x04,0x27,0xD8,0x24,0x40,0x24,0x42,0xA4,0x41,0x64,0x7E,
0x24,0x40,0x24,0x40,0x24,0x40,0x27,0xD0,0x20,0x08,0x20,0x06,0x20,0x00,0x00,0x00},/*"京",1*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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(uint z)
{
while(z--);
}
void delay1(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void SendByte(uchar date)
{
uchar p;
for(p=0;p<8;p++)
{
SHC=0;
DS_red=date&0x80;
SHC=1;
date=date<<1;
}
}
void Send_move(uchar date,uchar f)
{
uchar i;
DS_red=1;
for(i=0;i<f;i++)
{
SHC=0;
DS_red=date&0x80;
SHC=1;
date=date<<1;
}
}
void SendBytefew(uchar temp1,uchar temp2,few)
{
uchar p;
uint temp;
temp=temp1;
temp=(temp<<8)|temp2;
for(p=0;p<few;p++)
{ SHC=0;
DS_red=temp&0x8000;
SHC=1;
temp=temp<<1;
}
}
void main()
{
TMOD=0x11;
TH0=0xff;
TL0=0x90;
EA=1;
ET0=1;
TR0=1;
OE_red=0;
speed=100;
next=0;
while(1)
{
if(!SW1)
{delay(20);
if(!SW1)
{
if(speed<=300)
speed+=20;
while(!SW1);
delay(20);
}
}
if(!SW2)
{delay(20);
if(!SW2)
{
if(speed>10)
speed-=30;
while(!SW2);
delay(20);
}
}
}
}
void timer0() interrupt 1
{
TH0=0xfa;
TL0=0x90;
count++;
SendByte(hanzi[0+next][p]);
SendByte(hanzi[0+next][p+1]);
SendByte(hanzi[1+next][p]);
SendByte(hanzi[1+next][p+1]);
SendByte(hanzi[2+next][p]);
SendByte(hanzi[2+next][p+1]);
SendByte(hanzi[3+next][p]);
SendByte(hanzi[3+next][p+1]);
SendBytefew(hanzi[4+next][p],hanzi[4+next][p+1],yige);
OE_red=1;
STC=0;
STC=1;
P1=hang[k];
OE_red=0;
k++;
p+=2;
if(p==32)
p=0;
if(k==16)
{
k=0;
if(count>=speed)
{
count=0;
yige++;
if(yige==16)
{
yige=0;
next++;
if(next==32)
next=0;
}
}
}
}
作者:
admin
時間:
2016-1-13 19:10
這個只能加5分了 沒有電路圖,有圖的話可加50分
作者:
51hei社區(qū)
時間:
2016-1-14 00:00
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit DS_red=P3^0; //串行數(shù)據(jù)輸入端,紅色燈
sbit DS_green=P3^1;
sbit SHC=P3^2; //數(shù)據(jù)在上升沿進(jìn)入移位寄存器
sbit STC=P3^3; //上升沿時將數(shù)據(jù)輸出到并行端口
sbit OE_red=P3^4; //HC595是能段,必須設(shè)置!
sbit OE_green=P3^5;
sbit SW1=P3^6; //滾動減速
sbit SW2=P3^7; //滾動加速
uint count,speed; //滾動速度
uchar p,next,k,high,low,yige;
uchar code hang[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,
0x0c,0x0d,0x0e,0x0f}; //刷行,控制74154管腳輸出
uchar code hanzi[][32]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x04,0x00,0x04,0x00,0x0F,0xF0,0x0C,0x20,0x12,0x40,0x61,0x80,0x02,0x60,0x0D,0x1E,0x71,0x08,0x1F,0xFC,0x01,0x00,0x09,0x20,0x11,0x18,0x21,0x08,0x05,0x00,0x02,0x00},
{0x05,0x00,0x45,0x00,0x29,0x00,0x13,0xFE,0x32,0x02,0x4C,0x02,0x89,0xF2,0x19,0x12,0x29,0x12,0x49,0x12,0x89,0xF2,0x09,0x02,0x08,0x02,0x08,0x04,0x50,0x14,0x20,0x08},
{0x08,0x20,0x08,0x20,0x7F,0xFC,0x08,0x20,0x08,0x20,0x0F,0xE0,0x08,0x20,0x0F,0xE0,0x08,0x20,0x08,0x20,0xFF,0xFE,0x08,0x40,0x0C,0x20,0x18,0x10,0x30,0x18,0x40,0x10},
{0x01,0x00,0x00,0x80,0x3F,0xFE,0x28,0x04,0x46,0x88,0x04,0x80,0x08,0x80,0x06,0x80,0x04,0x80,0x7F,0xFE,0x00,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x18,0x18,0x60,0x10},
{0x10,0x10,0x08,0x18,0x06,0x10,0x04,0x20,0x7F,0xFC,0x04,0x20,0x04,0x20,0x04,0x20,0x7F,0xFE,0x04,0x20,0x04,0x20,0x04,0x20,0x08,0x20,0x08,0x20,0x10,0x20,0x20,0x20},
{0x00,0x04,0x7F,0xFE,0x01,0x80,0x01,0x00,0x01,0x00,0x01,0x00,0x03,0x60,0x05,0x30,0x09,0x18,0x11,0x0C,0x21,0x08,0x41,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00},
{0x00,0x00,0x7E,0x3C,0x05,0xD0,0x09,0x50,0x11,0x50,0x15,0x50,0x19,0x50,0x31,0x50,0xD1,0x50,0x51,0x48,0x11,0x48,0x11,0x64,0x12,0x56,0x12,0xFA,0x54,0x50,0x20,0x00},
{0x08,0x20,0x06,0x30,0x04,0x40,0x3F,0xF8,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00},
{0x10,0x00,0x10,0xFC,0x10,0x84,0xFE,0xFC,0x38,0x84,0x34,0xFC,0x54,0x84,0x50,0x84,0x90,0xFC,0x00,0x00,0x01,0x00,0x08,0x84,0x28,0x82,0x28,0x12,0x67,0xF0,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x04,0x00,0x04,0x00,0x0F,0xF0,0x0C,0x20,0x12,0x40,0x61,0x80,0x02,0x60,0x0D,0x1E,0x71,0x08,0x1F,0xFC,0x01,0x00,0x09,0x20,0x11,0x18,0x21,0x08,0x05,0x00,0x02,0x00},
{0x05,0x00,0x45,0x00,0x29,0x00,0x13,0xFE,0x32,0x02,0x4C,0x02,0x89,0xF2,0x19,0x12,0x29,0x12,0x49,0x12,0x89,0xF2,0x09,0x02,0x08,0x02,0x08,0x04,0x50,0x14,0x20,0x08},
{0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x7F,0xFE,0x00,0xC0,0x01,0x40,0x01,0x40,0x02,0x40,0x04,0x40,0x08,0x40,0x10,0x40,0x60,0x40,0x00,0x40,0x01,0x40,0x00,0x80},
{0x00,0x00,0x7E,0x3C,0x05,0xD0,0x09,0x50,0x11,0x50,0x15,0x50,0x19,0x50,0x31,0x50,0xD1,0x50,0x51,0x48,0x11,0x48,0x11,0x64,0x12,0x56,0x12,0xFA,0x54,0x50,0x20,0x00},
{0x08,0x20,0x06,0x30,0x04,0x40,0x3F,0xF8,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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(uint z)
{
while(z--);
}
void delay1(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//點(diǎn)陣顯示位傳送
void SendByte(uchar date)//595數(shù)據(jù)傳送
{
uchar p;
for(p=0;p<8;p++)
{
SHC=0;
DS_red=date&0x80;
SHC=1;
date=date<<1;
}
}
void Send_move(uchar date,uchar f)
{
uchar i;
DS_red=1;
for(i=0;i<f;i++)
{
SHC=0;
DS_red=date&0x80;
SHC=1;
date=date<<1;
}
}
void SendBytefew(uchar temp1,uchar temp2,few)//將十六位數(shù)據(jù)傳給595
{
uchar p;
uint temp;
temp=temp1;
temp=(temp<<8)|temp2;
for(p=0;p<few;p++)
{
SHC=0;
DS_red=temp&0x8000;
SHC=1;
temp=temp<<1;
}
}
void main()
{
TMOD=0x11;
TH0=0xff;
TL0=0x90;
EA=1;
ET0=1;
TR0=1;
OE_red=0;
speed=100;
next=0;
while(1)
{
if(!SW1)
{
delay(20);
if(!SW1)
{
if(speed<300)
speed+=20;
while(!SW1);
delay(20);
}
}
if(!SW2)
{
delay(20);
if(!SW2)
{
if(speed>10)
speed-=30;
while(!SW2);
delay(20);
}
}
}
}
void timer0() interrupt 1
{
TH0=0xfa;
TL0=0x90;
count++;
//先刷四個空格
SendByte(hanzi[0+next][p]);
SendByte(hanzi[0+next][p+1]);
SendByte(hanzi[1+next][p]);
SendByte(hanzi[1+next][p+1]);
SendByte(hanzi[2+next][p]);
SendByte(hanzi[2+next][p+1]);
SendByte(hanzi[3+next][p]);
SendByte(hanzi[3+next][p+1]);
SendBytefew(hanzi[4+next][p],hanzi[4+next][p+1],yige);//刷文字
OE_red=1;
STC=0;
STC=1;
P2=hang[k];//行顯示
OE_red=0;//打開595使能端
k++;
p+=2;
if(p==32)
p=0;
if(k==16)
{
k=0;
if(count>=speed)
{
count=0;
yige++;
if(yige==16)
{
yige=0;
next++;
if(next==21)//注意next的值必須等于文字個數(shù)
next=0;
}
}
}
}
復(fù)制代碼
作者:
無盡之殤
時間:
2019-7-4 10:36
51hei社區(qū) 發(fā)表于 2016-1-14 00:00
請問你這個有原理圖嗎
作者:
斤斤計較2
時間:
2021-4-23 11:04
就差原理圖了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1