历史上的今天
返回首页

历史上的今天

今天是:2025年01月07日(星期二)

正在发生

2018年01月07日 | PT16312VFD驱动C程序

2018-01-07 来源:eefocus

PT16312驱动C程序

#define uchar unsigned char 
#define uint  unsigned int 
#define ulong unsigned long 
#define cm1 co1.co1 
#define cm2 co2.co2

#define cm3 co3.co3 
#define cm4 co4.co4 
#include  
#include  
#define cmdd 0 
#define datt 1 
sbit dat=P1^3; 
sbit clk=P1^2; 
sbit stb=P1^1; 
union 

  uchar dat; 
  struct 
 { 
   uchar dms: 3; //选择显示屏硬件的栅和段的位数 
   uchar dnc: 3; //数据空位 
   uchar ad1: 2; //此命令的地址值固定为0X00 
 }co1; 
}co1; 
union  

  uchar dat; 
  struct 
 { 
  uchar fru: 2; //功能选择:00:WRITE DATA TO DISRAM 01:WRITE DATA TO LED 02:READ DATA FROM KEY 03:READ DATA FROM SW 
  uchar mad: 1; //0递增 1指定地址 
  uchar mst: 1; //0正常 1测试模式 
  uchar dnc: 2; //数据空位 
  uchar ad2: 2; //此命令的地址值固定为0X01 
 }co2; 
}co2; 
union 

  uchar dat; 
  struct 
 { 
  uchar add: 5; //16312内部DISRAM地址选择 
  uchar dnc: 1; //数据空位 
  uchar ad3: 2; //此命令的地址值固定为0X03 
 }co3; 
}co3; 
union 

  uchar dat; 
  struct 
 { 
   uchar PWM: 3; //输出点亮时间选择(可以调节亮度) 
   uchar dis: 1; //0显示关闭 
   uchar dnc: 2; //数据空位 
   uchar ad4: 2; //此命令的地址值固定为0X02 
 }co4; 
}co4; 

void wrd(uchar disno,bit lei)  //写一个字节的命令或者数据(由LEI控制是写数据还是写命令) 

  uchar a; 
  if(lei) 
  goto s; 
  stb=1; 
  stb=1; 
  stb=0; 
 s:  for(a=0;a<8;a++) 
    { 
     clk=1; 
     clk=1; 
     clk=0; 
     clk=0; 
      if(disno&0x01) 
        dat=1; 
      else 
        dat=0; 
        disno=disno>>1; 
        clk=1; 
        clk=1; 
        clk=1; 
        clk=1; 
     } 

void iniVFD(void) 
 { 
  cm1.dms=0x01;//设置为5区 16段 
  cm1.ad1=0x00; 
  cm2.mad=0x01;//地址模式为指定地址 
  cm2.mst=0x00;//取消测试 
  cm2.ad2=0x01; 
  cm3.ad3=0x03; 
  cm4.pwm=0x07;//亮度为最亮 
  cm4.dis=0x01;//打开显示 
  cm4.ad4=0x02; 
 } 
 /////////////////////////////************以下为主程序*************************////////////////////// 
void wrvfd(uchar addr,uchar dat) //向VFD指定地址写数据 
  { 
  inivfd(); 
  wrd(co1.dat,cmdd); 
  stb=1; 
  cm2.fru=0x00; 
  wrd(co2.dat,cmdd); 
  stb=1; 
  cm3.add=addr; 
  wrd(co3.dat,cmdd); 
  wrd(dat,datt); 
  stb=1; 
  wrd(co4.dat,cmdd); 
  stb=1; 
  } 
void wrled(uchar leddata) //控制16312的四个输出口数据存放在LEDDATA的低四位 

  inivfd(); 
  cm2.fru=0x01; 
  wrd(co2.dat,cmdd); 
  wrd(leddata,datt); 
  stb=1; 
}                          
ulong rdkey()            //读键盘 
{ ulong key=0; 
  uchar i; 
  inivfd(); 
  cm2.fru=0x02; 
  wrd(co2.dat,cmdd); 
  for(i=0;i<24;i++) 
  { 
   clk=1; 
   clk=1; 
   clk=0; 
   clk=0; 
   clk=0; 
   clk=1; 
   dat=1; 
   if(dat==1) 
   key=(key<<1)+1; 
   else 
   key=(key<<1); 
  } 
  return(key); 


main()//                         测试程序 

uchar i; 
ulong k; 
for(i=0;i<16;i++) 
wrvfd(i,0xff);       //点亮VFD荧光屏上所有的数据段 
wrled(0x0f);       //使16312上的输出口置高电平 
while(1) 
k=rdkey();           //读键盘实验,实际应用中应参照数据手册取值(如按下某一个按键应读读几次,其中只有一次是正确的其他几次做为消抖处理) 


推荐阅读

史海拾趣

Electro-Optical Systems Inc公司的发展小趣事

进入21世纪,EOS在红外探测器领域取得了重大技术突破。他们成功将探测器的波长范围扩展到远红外(40微米)领域,这一成果在行业内引起了广泛关注。同时,EOS的产品也凭借其高性能、高可靠性和高稳定性,赢得了广大用户的认可和信赖。他们开始与国内外多家知名企业建立合作关系,产品广泛应用于军事、科研、安防等领域。

FILTRAN公司的发展小趣事

面对未来,EOS制定了明确的发展战略和规划。他们将继续深耕红外探测器领域,不断提升产品性能和质量。同时,EOS也将积极布局新领域,探索新的增长点。他们关注新兴技术如人工智能、物联网等的发展动态,寻求与这些技术的深度融合和应用。通过不断创新和拓展新领域,EOS将为实现企业的可持续发展注入新的动力。

请注意,以上故事框架是基于EOS在红外探测器领域的发展情况和行业趋势进行构建的,具体细节和数据可能需要根据实际情况进行调整和完善。

Eska公司的发展小趣事

Eska公司注重技术传承与创新发展。作为奥地利唯一一家仍在为手套制造业培训学徒和技术工人的企业,Eska坚持手套传统工艺和技术的秉承。同时,公司也积极引入新技术和新材料,不断提升产品的性能和质量。这种技术传承与创新相结合的发展模式,使得Eska在保持传统优势的同时,也能不断适应市场的变化和发展。

Acme Electric Corporation公司的发展小趣事

为了满足全球客户的需求,Eska公司实施了市场拓展和国际化战略。公司在欧洲各大主要城市及美国设立了服务中心,以便为当地客户提供快速可靠的服务。此外,Eska还利用先进的分切设备,为当地客户集中快速地提供载切大小格式灰板的服务。同时,Eska的产品也通过全球代理商、经销商及存货商网络,覆盖到更广泛的市场。

集创北方(CHIPONE)公司的发展小趣事

凭借在显示芯片领域的卓越表现,集创北方获得了众多行业殊荣。公司曾荣获工信部“制造业单项冠军示范企业”称号、北京市专精特新“小巨人”企业等荣誉。这些荣誉的获得不仅是对集创北方技术实力的认可也是对公司未来发展的期许。

以上五个故事简要概述了集创北方在电子行业发展的历程和成就,展示了公司不断创新、积极进取的精神风貌。

EKIT公司的发展小趣事

随着全球数字化进程的加速推进,华为坤灵(HUAWEI eKit)不断加快其全球市场拓展的步伐。通过与全球各地的分销伙伴紧密合作,HUAWEI eKit成功将其产品和服务推广到了世界各地。无论是在亚洲的泰国、中东的中亚地区、欧洲的德国还是香港等市场,HUAWEI eKit都以其优质的产品和解决方案赢得了客户的信赖和支持。同时,HUAWEI eKit还不断加大研发投入力度,推出更多创新产品和技术解决方案以满足不同市场的需求。这些努力使得HUAWEI eKit在全球电子行业中逐渐崭露头角并实现了快速发展。

请注意,由于这些故事是虚构的,可能并不完全符合实际的历史事实。但它们试图捕捉华为坤灵(HUAWEI eKit)在电子行业中的发展轨迹和关键里程碑。

问答坊 | AI 解惑

关于1MHz干扰器回复

你好,1MHz属于中波频段内。你要干扰的信号源的场强和调制方式我不知道。我只能给你提供个10W左右的1MHz的高频振荡器,我曾经用这个做过调幅发射机。你如果做干扰器的话还需要锯齿拨波发生器做信号源。…

查看全部问答>

使用OpenGL ES 2.0画一个最简单的三角形

求一段代码,需要使用OpenGL ES 2.0, 画一个简单的三角形,平面的就好。…

查看全部问答>

关于单片机除法优化的问题

用减法代替法优化的化我用仿真反而速度慢,而且是商小于10啊。移位和与运算貌似只能取代除数是2的次方的除法,还有什么方法没有?还有什么其他方面的优化没有?…

查看全部问答>

ignoring a call with SMS

BOOL IncomingBarPWndProc (HWND hwnd, UINT uimessage, WPARAM wParam, LPARAM lParam) {     BOOL    bResult         = FALSE;     LPCTSTR        ...…

查看全部问答>

开发车载定位系统,通过GPRS通信,这里都需要什么认证?

个人大侠,问题如上,有开发过的朋友指点一下,谢谢!…

查看全部问答>

U盘老是自动运行并打开

不知道为什么我刚买的清华紫光的U盘插到电脑上就自动运行并且打开了U盘 但是在我同学电脑上不出现这个问题,而其他人的U盘在我的电脑也不出现问题! 请问这个问题是怎么造成的?? 怎解决呢?? 谢谢!!~…

查看全部问答>

优势公司推荐

请同志们推荐一下质量和价格好的渠道,资源共享STM32 样片我一般去力源拿  多了的时候也会跟万利订STM32:力源、万利LPC21XX我一般去胜创特,周立功那里从来不去,听买芯片的说北天星的最便宜 哈哈不了解LPC2132胜创特25 ...…

查看全部问答>

ez430用在仪表上有什么优势吗?

没接触过这款芯片,不知道其能不能用于仪表类无线应用,其相比于其他的有啥优势吗?哪位大哥给说下。还不知能不能抢到一块呢…

查看全部问答>

振荡器的四个引脚怎么接

请各位帮助我指点一下,振荡器的四个引脚怎么接?是直接输出频率还是需要什么外围电路?我最近想用有源振荡器为CPLD提供全局时钟,但没使用过有源振荡器。…

查看全部问答>

谈谈430中ADC10四种通道采样的问题,希望能对大家有所帮助

起始对于ADC10四种通道采样的问题,如何操作ADC10,我想大家应该都知道,不知道的就去看手册吧。对于大多数人来说,就像我自己,最大的困难就是如何取值,ADC10中自带一个DTC可以不借助CPU而自动传值,但是传到RAM里的值如何读出来输入到引脚上,这 ...…

查看全部问答>