CD4053控制带LCD显示

发布者:HeavenlyLove最新更新时间:2016-09-30 来源: eefocus关键字:CD4053控制  LCD显示 手机看文章 扫描二维码
随时随地手机看文章
CD4053控制带LCD显示 - Cappuccion - Cappuccion
注:P1^6、P1^7分别为两个功能键,P1^6为低通滤波器的级联端即在其按下后同时分别按其他各键则为各个放大器连的低通,P1^7
为同样为高通滤波器的组合键。实际此电路是一个键控放大器,主要做的是10dB步进可调,带LCD显示。以下为keil中的程序:
#include
sbit lcdrs=P2^6;
sbit lcden=P2^7;
sbit lcdrw=P2^5;
sbit D10=P1^0;
sbit D20=P1^1;
sbit D30=P1^2;
sbit D40=P1^3;
sbit D50=P1^4;
sbit D60=P1^5;
sbit lwchose=P1^6;
sbit hgchose=P1^7;
char code temp0[]="20LogAu=10dB";
char code temp1[]="20LogAu=20dB";
char code temp2[]="20LogAu=30dB";
char code temp3[]="20LogAu=40dB";
char code temp4[]="20LogAu=50dB";
char code temp5[]="20LogAu=60dB";
char code templ0[]="lw_10dB";
char code templ1[]="lw_20dB";
char code templ2[]="lw_30dB";
char code templ3[]="lw_40dB";
char code templ4[]="lw_50dB";
char code templ5[]="lw_60dB";
char code temph0[]="hg_10dB";
char code temph1[]="hg_20dB";
char code temph2[]="hg_30dB";
char code temph3[]="hg_40dB";
char code temph4[]="hg_50dB";
char code temph5[]="hg_60dB";
char num;
void delay(int z);
void write_com(char com)// 指令子函数
{
   lcdrs=0;
     lcdrw=0;
    P0=com;
   delay(5);
     lcden=1;
   delay(5);
   lcden=0;
   lcdrw=1;
   lcdrs=1;
}
void write_data(char datae) //  数据子函数
{
   lcdrs=1;
   lcdrw=0;
   P0=datae;
   delay(5);
   lcden=1;
   delay(5);
   lcden=0;
}
void init()
{
 lcden=0;
 write_com(0x06);  //  输入方式的设置
 write_com(0x0c);  
 write_com(0x14);    
 write_com(0x01); //清屏
write_com(0x02);  //复位
}
void main()
{
  init();
lab:  while (1)
  {
  if (D10==0)
   {
    write_com(0x01); //清屏
   P3=0x22;
   for(num=0;num<12;num++)
     {
       write_data(temp0[num]);
       delay(5);
     } 
   write_com(0x80+10);
   goto lab;
   }      
   else if (D20==0)
   {
    write_com(0x01); //清屏
  P3=0x0a;
  for(num=0;num<12;num++)
      {
        write_data(temp1[num]);
        delay(5);
      } 
   write_com(0x80+10);
   goto lab;
   }
  
   else if (D30==0)
   {
    write_com(0x01); //清屏
  P3=0x02;
  for(num=0;num<12;num++)
      {
        write_data(temp2[num]);
        delay(5);
      } 
  write_com(0x80+10);
  goto lab;
   }   
   else if (D40==0)
   {
     write_com(0x01); //清屏
   P3=0x04;
      for(num=0;num<12;num++)
      {
        write_data(temp3[num]);
        delay(5);
      } 
   write_com(0x80+10);
   goto lab;
   } 
   else if (D50==0)
   {
    write_com(0x01); //清屏
  P3=0x08;
  for(num=0;num<12;num++)
      {
        write_data(temp4[num]);
        delay(5);
      } 
  write_com(0x80+10);
  goto lab;
   }   
   else if (D60==0)
   {
    write_com(0x01); //清屏
  P3=0x00;
  for(num=0;num<12;num++)
      {
        write_data(temp5[num]);
        delay(5);
      } 
  write_com(0x80+10);
  goto lab;
   }
TAB1:   if (lwchose==0)
  {
   if (D10==0)
  {
   delay(5);
   if (D10==0)
   {
    write_com(0x01); //清屏
    P3=0x7a;     
    for(num=0;num<7;num++)
       {
         write_data(templ0[num]);
         delay(5);
       } 
      write_com(0x80+10);
    goto TAB1;
   }
  
  }
  else if (D20==0)
  {
   delay(5);
   if (D20==0)
   {
    write_com(0x01); //清屏
    P3=0x6a;     
    for(num=0;num<7;num++)
       {
         write_data(templ1[num]);
         delay(5);
       } 
      write_com(0x80+10); 
    goto TAB1; 
   }
  
  }
  else if (D30==0)
  {
   delay(5);
   if (D30==0)
   {
    write_com(0x01); //清屏
    P3=0x62;     
    for(num=0;num<7;num++)
       {
         write_data(templ2[num]);
         delay(5);
       } 
      write_com(0x80+10);
    goto TAB1; 
   }
  }
  else if (D40==0)
  {
   delay(5);
   if (D40==0)
   {
       write_com(0x01); //清屏
    P3=0x64;     
    for(num=0;num<7;num++)
       {
         write_data(templ3[num]);
         delay(5);
       } 
       write_com(0x80+10);
    goto TAB1;
   }
  }
  else if (D50==0)
  {
   delay(5);
   if (D50==0)
   {
    write_com(0x01); //清屏
    P3=0x68;     
       for(num=0;num<7;num++)
       {
         write_data(templ4[num]);
         delay(5);
       } 
      write_com(0x80+10);
    goto TAB1;
   }
  }
  else if (D60==0)
  {
   delay(5);
   if (D60==0)
   {
    write_com(0x01); //清屏
    P3=0x60;     
       for(num=0;num<7;num++)
       {
         write_data(templ5[num]);
         delay(5);
       } 
      write_com(0x80+10);
    goto TAB1; 
   }
  }
  }
TAB2:   if (hgchose==0)
  {
   if (D10==0)
  {
   delay(5);
   if (D10==0)
   {
    write_com(0x01); //清屏
    P3=0x3a;     
    for(num=0;num<7;num++)
       {
         write_data(temph0[num]);
         delay(5);
       } 
      write_com(0x80+10);
    goto TAB2;
   }
  
  }
  else if (D20==0)
  {
   delay(5);
   if (D20==0)
   {
    write_com(0x01); //清屏
    P3=0x2a;     
    for(num=0;num<7;num++)
       {
         write_data(temph1[num]);
         delay(5);
       } 
      write_com(0x80+10); 
    goto TAB2; 
   }
  
  }
  else if (D30==0)
  {
   delay(5);
   if (D30==0)
   {
    write_com(0x01); //清屏
    P3=0x22;     
    for(num=0;num<7;num++)
       {
         write_data(temph2[num]);
         delay(5);
       } 
      write_com(0x80+10);
    goto TAB2; 
   }
  }
  else if (D40==0)
  {
   delay(5);
   if (D40==0)
   {
       write_com(0x01); //清屏
    P3=0x24;     
   for(num=0;num<7;num++)
       {
         write_data(temph3[num]);
         delay(5);
       } 
      write_com(0x80+10);
    goto TAB2;
   }
  }
  else if (D50==0)
  {
   delay(5);
   if (D50==0)
   {
    write_com(0x01); //清屏
    P3=0x28;     
    for(num=0;num<7;num++)
       {
         write_data(temph4[num]);
         delay(5);
       } 
      write_com(0x80+10);
    goto TAB2;
   }
  }
  else if (D60==0)
  {
   delay(5);
   if (D60==0)
   {
    write_com(0x01); //清屏
    P3=0x20;     
    for(num=0;num<7;num++)
       {
         write_data(temph5[num]);
         delay(5);
       } 
      write_com(0x80+10); 
    goto TAB2; 
   }
  } 
  }
  }
}
void delay(int z)
{
int x,y;
for(x=z;x>0;x--)
    for(y=110;y>0;y--);
}
关键字:CD4053控制  LCD显示 引用地址:CD4053控制带LCD显示

上一篇:keil中的单片机模块化编程
下一篇:初始的STC89C52RC单片机小实验

推荐阅读最新更新时间:2024-03-16 15:12

STM32f4---TFTLCD显示实验代码(05)
//不同的 LCD驱动器不同的初始化设置 if(lcddev.id 0XFF||lcddev.id==0XFFFF||lcddev.id==0X9300) //ID 不正确,新增 0X9300判断,因为9341 在未被复位的情况下会被读成9300 { //尝试9341 ID 的读取 LCD_WR_REG(0XD3); lcddev.id=LCD_RD_DATA(); //dummy read lcddev.id=LCD_RD_DATA(); //读到 0X00 lcddev.id=LCD_RD_DATA(); //读取 93 lcddev.id
[单片机]
1602LCD显示器的使用
LCDE==P2.7 LCD使能 DB==P0 数据位 RD==P2.6 写模式选择 WR==P2.5 读写使能 指令码: 二进制 十六进制 清屏: 10000000 0x80; 光标归位: X1000000 0x40或0xC0 。。。。。。。。 读状态输入:RS=L,RW=H,E=H 输出:DB0~DB7=状态字 写指令输入:RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码输出:无 读数据输入:RS=H,RW=H,E
[单片机]
LCD显示屏出现闪烁的原因与解决
    比较CRT与LCD两类显示屏时,其中一项最为普遍见到的差别是闪烁问题。一般都会以为CRT显示屏有闪烁,而LCD则没有,查实两类显示屏皆有某程度上的闪烁,机制上的差异和纠正方法影响到成功率。本文讲述LCD显示屏上出现闪烁的原因,并且提出避免闪烁的方法。 LCD显示技术 比较CRT与LCD两类显示屏时     液晶体显示屏(LCD)於1973年出现於计算器上,首个LCD是嵌入有七段字画,让数字得以被显示。下一代LCD则於1980年面世,属於点阵式(dot-matrix)显示,除显示数字外,还有字符和图形,比如是简单的单色电脑显示屏或者流行的“电子宠物” 他妈哥池。这些矩阵设计藉著启动阵中的行与列的像素作为控制,取代了每一像素需
[嵌入式]
51单片机1602LCD显示数字频率计
;硬件连接:1602LCD 显示000000Hz 短接p1.4--p3.5则显示0000010hz ;LCD1602显示在不增加外部计数硬件的情况下,本试验软件可测最高频率达到460KHz ;工作原理: ;1S 钟内对输入脉冲所计数的次数则为频率值。 ;16位二进制加法计数器的最大计数值为 65535。 ;设置定时器 0 工作在定时方式1,定时1S。 ;设置定时器 1 工作在计数方式1,对输入脉冲进行计数,溢出产生中断。 ;将定时器 1中断定义为优先。在中断处理程序里对中断次数进行计数。1S到后, ;将中断次数和计数器里的计数值取出进行综合数据处理,处
[单片机]
LCD显示器2009年增长3.8%,面板厂商减成本保利润
    据iSuppli公司,尽管2009年面临全球经济衰退和台式机销售萎缩的双重挑战,但液晶显示器的单位出货量仍实现增长3.8%,结果远好于厂商在2009年1月的预测。     液晶面板厂商削减成本以提高利润率     尽管最近几年全球大尺寸液晶市场取得巨大增长,但面板供应商在维持获利能力方面仍很困难,这迫使他们削减材料和元件成本。     红火的数字标牌显示器市场吸引IT厂商兴趣     据iSuppli公司,全球标牌与专业显示器市场快速增长,正在吸引一群重量级厂商加入这个领域,它们是以IT业务为主的企业,包括头号PC厂商惠普和微处理器巨头英特尔。     2010年LED突现短缺     iSuppl
[焦点新闻]
浅谈汽车空调控制器的原理及开发方案
汽车空调控制器,属于一种汽车车载空调设备的控制装置。 汽车空调控制器简介: 汽车空调控制器常规采用LCD显示,要求有风机PWM控制,并具有故障显示功能。常规设计中采用电子开关代替传统的继电器,可提高电路的可靠性,采用串行移位技术解决键盘扫描问题,可简化电路。结合MCU的智能控制和其他电路巧妙地将控制信号转换为机械动作,保证车内温度调节和即时化霜终端执行器的运行。 原理框图:     汽车空调控制器的设计有很多种方式,接下来小编给大家介绍一下基于单片机的汽车空调控制器设计方案。 本设计是基于PIC16F917的汽车空调控制器的软件及硬件设计。该控制器具有操作简单,显示界面良好,抗干扰性强的特点。
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved