高级会员
主题
回帖0
积分2665
阅读权限30
注册时间2013-4-21
最后登录1970-1-1
在线时间 小时
|
#include<reg52.h>
sbit clk=P3^2;
sbit din=P3^3;
sbit en=P3^4;
void dt (unsigned char t)
{
char ii;
for(;t>0;t--)
{
for(ii=12;ii>0;ii--);
}
}
void sendone(unsigned char dat)//------------------------发送数据底层协议
{
char i;bit j;
{
for(i=0;i<8;i++)
{
clk=0;
j=dat%2;
din=j;
dt(4);
clk=1;
dt(4);
}
}
}
void vfd_init()
{
dt(250);
en=0;
dt(4);
sendone(0xb0);
dt(127);
sendone(16);
dt(127);
en=1;
dt(20);
en=0;
dt(4);
sendone(0xa0);
dt(127);
sendone(0);
dt(127);
en=1;
dt(10);
}
void sendchar(char com,char *p)
{
unsigned char buf;
en=0;
dt(4);
sendone(0x80);
dt(127);
sendone(com);
dt(127);
sendone(0x90);
dt(127);
while(*p>0)
{
if((*p)>='0'&(*p)<='9')buf=(*p)-'0';
if((*p)>='A'&(*p)<='Z')buf=(*p)-'A'+10;
if((*p)>='a'&(*p)<='z')buf=(*p)-'a'+36;
if((*p)=='.')buf=62;
if((*p)==',')buf=63;
if((*p)=='`')buf=120;
if((*p)=='!')buf=123;
if((*p)=='?')buf=124;
if((*p)=='-')buf=125;
if((*p)==' ')buf=126;
sendone(buf);
p++;
dt(127);
}
en=1;
}
main()
{
vfd_init();
sendchar(0,"Hello !");
}
是改成上面这样子吗,我照上面的编译也不亮。
昨晚也想过是不是clk和en接反了,对调了试也没得;后面见你的回复也调过延时函数及其参数,无果
|
|