| 
高级会员 主题
回帖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接反了,对调了试也没得;后面见你的回复也调过延时函数及其参数,无果
 
 | 
 |