#include<at89x52.h>
#include<intrins.h >
sbit slk=P3^0;
sbit rck=P3^1;
sbit dat=P3^2;
sbit oe=P3^3;
sbit a=P3^4;
sbit b=P3^5;
unsigned char string[]={0xff};//你的字库,自己去弄自模型,横向,一个字一个字的加。
void send_8data(unsigned char i)
{
unsigned char s,k;
unsigned char h_data=string[i];
for(s=0;s<8;s++)
{
k=h_data&0x80;
slk=0;
if(k==0)
{
dat=0;
}
else
{
dat=1;
}
_nop_();
slk=1;
h_data=h_data<<1;
}
}
void send_16(unsigned char i)
{
unsigned char s,k;
if(i==4)
{
for(k=0;k<=1;k++)
{
for(s=4;s>0;s--)
{
send_8data(s*8-2+8*k);
}
for(s=4;s>0;s--)
{
send_8data(s*8-1+8*k);
}
}
rck=0;
oe=0;
a=1;
b=1;
rck=1;
oe=1;
}
if(i==3)
{
for(k=0;k<=1;k++)
{
for(s=4;s>0;s--)
{
send_8data(s*8-4+8*k);
}
for(s=4;s>0;s--)
{
send_8data(s*8-3+8*k);
}
}
rck=0;
oe=0;
a=0;
b=1;
rck=1;
oe=1;
}
if(i==2)
{
for(k=0;k<=1;k++)
{
for(s=4;s>0;s--)
{
send_8data(s*8-6+8*k);
}
for(s=4;s>0;s--)
{
send_8data(s*8-5+8*k);
}
}
rck=0;
oe=0;
a=1;
b=0;
rck=1;
oe=1;
}
if(i==1)
{
for(k=0;k<=1;k++)
{
for(s=4;s>0;s--)
{
send_8data(s*8-8+8*k);
}
for(s=4;s>0;s--)
{
send_8data(s*8-7+8*k);
}
}
rck=0;
oe=0;
a=0;
b=0;
rck=1;
oe=1;
}
}
void main()
{
unsigned char i=1;
init();
while(1)
{
for(i=1;i<=4;i++)
{
send_16(i);
}
}
}
51控制单元板源程序C语言
5星 · 超过95%的资源 需积分: 10 156 浏览量
2011-03-19
16:51:03
上传
评论 1
收藏 615B RAR 举报
Iceflame
- 粉丝: 6
- 资源: 1