LCD简易计算器

发布者:自在自由最新更新时间:2016-04-08 来源: eefocus关键字:LCD  简易计算器 手机看文章 扫描二维码
随时随地手机看文章
#include
#define uchar unsigned char
#define uint unsigned int
 
sbit rs=P2^6;
sbit rw=P2^5;
sbit en=P2^7;
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit k5=P3^4;
sbit k6=P3^5;
sbit k7=P3^6;
sbit k8=P3^7;
 
uchar t,k;
uint a,b,c;
uchar code table[]={'+','-','*','/'};
 
void delayms(int z)
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
 
void write_com(uchar com)
{
rs=0;
rw=0;
en=0;
P0=com;
delayms(10);
en=1;
delayms(10);
en=0;
delayms(2);
}
 
void write_dat(uchar dat)
{
rs=1;
rw=0;
en=0;
P0=dat;
delayms(10);
en=1;
delayms(10);
en=0;
delayms(2);
}
 
void write_zfc(uchar *ch)
{
while(*ch!=0)
write_dat(*ch++);
}
 
void init_1602()
{
write_com(0x38);
delayms(5);
write_com(0x0c);
delayms(5);
write_com(0x04);
delayms(5);
write_com(0x01);
delayms(5);
write_com(0x80+1);
delayms(5);
write_zfc("input      =");
delayms(5);
write_com(0x80+0x40+2);
delayms(5);
write_zfc("output ");
delayms(5);
}
 
void keyscan()
{
uchar bai,shi,ge;
if(k1==0)
{
delayms(5);
while(!k1);
if(t==0)
{
write_com(0x80+8);
delayms(5);
write_com(0x0f);
delayms(5);
}
if(t==1)
{
write_com(0x80+9);
delayms(5);
write_com(0x0f);
delayms(5);
}
if(t==2)
{
write_com(0x80+11);
delayms(5);
write_com(0x0f);
delayms(5);
}
t++;
if(t>2)
t=0;
}
if(k2==0)
{
delayms(5);
while(!k2);
write_com(0x0c);
t=0;
switch(k)
{
case 1:c=a+b;break;
case 2:c=a-b;break;
case 3:c=a*b;break;
default :c=a/b;break;
}
bai=c/100;
shi=(c-bai*100)/10;
ge=c;
write_com(0x80+0x40+9);
delayms(5);
write_dat(0x30+bai);
delayms(5);
write_com(0x80+0x40+10);
delayms(5);
write_dat(0x30+shi);
delayms(5);
write_com(0x80+0x40+11);
delayms(5);
write_dat(0x30+ge);
delayms(5);
}
if(k3==0)
{
delayms(5);
while(!k3);
switch(t)
{
case 1:a++;
shi=a/10;
ge=a;
write_com(0x80+7);
delayms(5);
write_dat(0x30+shi);
delayms(5);
write_com(0x80+8);
delayms(5);
write_dat(0x30+ge);
delayms(5);
write_com(0x80+8);
break;
case 2:
write_com(0x80+9);
delayms(5);
write_dat(table[k]);
write_com(0x80+9);
k++;
if(k>3)
k=0;
break;
default :b++;
shi=b/10;
ge=b;
write_com(0x80+10);
delayms(5);
write_dat(0x30+shi);
delayms(5);
write_com(0x80+11);
delayms(5);
write_dat(0x30+ge);
delayms(5);
write_com(0x80+11);
break;
}
}
if(k4==0)
{
delayms(5);
while(!k4);
switch(t)
{
case 1:a--;
shi=a/10;
ge=a;
write_com(0x80+7);
delayms(5);
write_dat(0x30+shi);
delayms(5);
write_com(0x80+8);
delayms(5);
write_dat(0x30+ge);
delayms(5);
write_com(0x80+8);
break;
case 2:
write_com(0x80+9);
delayms(5);
write_dat(table[k]);
write_com(0x80+9);
k++;
if(k>3)
k=0;
break;
default :b--;
shi=b/10;
ge=b;
write_com(0x80+10);
delayms(5);
write_dat(0x30+shi);
delayms(5);
write_com(0x80+11);
delayms(5);
write_dat(0x30+ge);
delayms(5);
write_com(0x80+11);
break;
}
}
}
 
void main()
{
init_1602();
while(1)
{
keyscan();
}
}

关键字:LCD  简易计算器 引用地址:LCD简易计算器

上一篇:百米计时器LCD1602显示
下一篇:c51中的_crol_和_cror_

推荐阅读最新更新时间:2024-03-16 14:49

stm32之TFT触摸屏:通过LCD_ShowChar显示的过程分析
使用TFT触摸屏时,想要对字符串,图形或者数字进行显示时,发现他们的库函数中都有一个最重要的函数LCD_ShowChar,貌似目前很少有人分析这个函数,虽然简单但是还是有点绕的。 先贴一下这个函数的代码,由于函数显示分为叠加显示和非叠加显示,原理类似,所以只分析非叠加方式的部分应该就都懂了。 void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode) { u8 temp,t1,t; u16 y0=y; u16 colortemp=POINT_COLOR; num=num-' ';//得到偏移后的值 if(!mode) //非叠加方式 {
[单片机]
stm32之TFT触摸屏:通过<font color='red'>LCD</font>_ShowChar显示的过程分析
京东方第10.5代TFT-LCD生产线落地武汉
  今天, 京东方 科技集团股份有限公司发布公告,公司与武汉市人民政府、湖北省长江经济带产业基金管理有限公司共同签署了《武汉高世代薄膜晶体管液晶显示器件( TFT-LCD )生产线项目及配套项目投资框架协议》。下面就随网络通信小编一起来了解一下相关内容吧。   公告称, 京东方 将在湖北省武汉市投资建设高世代薄膜晶体管液晶显示器件 TFT-LCD 生产线项目,玻璃基板尺寸为2940mm×3370mm,设计产能为12万张/月,用于生产65英寸等液晶显示模组产品,预计2017年第四季度开工(最晚不迟于 2018 年3 月 31 日),并在开工后 24 个月内正式投产。这也是BOE( 京东方 )布局的第二条10.5代线。   根据公告
[网络通信]
飞兆半导体推出互补型40V MOSFET 能改进LCD设计的尺寸、成本和可靠性
双DPAK封装使半桥和全桥逆变器的热阻抗提高10倍 飞兆半导体公司 (Fairchild Semiconductor) 推出互补型40V MOSFET器件FDD8424H,采用双DPAK封装,提供业界领先的散热能力,有助于提高系统可靠性、减小线路板空间及降低系统总体成本。FDD8424H专为半桥和全桥逆变器设计而优化,是液晶电视、液晶显示器所用背光单元 (BLU) 以及电机驱动和电灯驱动的理想选择。与采用8引脚直插和双SOIC (SO8) 封装的替代解决方案相比,双DPAK封装FDD8424H的热阻抗分别是其五分之一及十分之一。此外,FDD8424H在单一封装中集成了一个P沟道高端MOSFET和一个N沟道低端MOSFET,因而容
[新品]
LCD-TV、机顶盒市场上半年表现超预期
  同整个电子供应链一样,2009年上半年消费电子市场也未能免于全球经济衰退的影响。但即使在这严峻时期,据iSuppli公司,部分消费电子分支市场仍呈上升趋势,而不是止步不前。   预计全球消费电子设备营收仍将下降8.2%,从2008年的3,350亿美元下降到约3,080亿美元。但iSuppli估计2010年市场将开始复苏,营收将增长2%,达到3,140亿美元。预计未来五年将实现持续增长,到2013年达到3,700亿美元。 LCD-TV走势强劲   液晶电视 (LCD-TV) 今年上半年的表现超出预期,部分原因在于中国的激励措施。一直到2013年,LCD-TV都将是营收最多的消费电子产品。上半年的经济低迷对面板及半导
[家用电子]
自制51单片机常用头文件(LCD1602)
/*-------------------------------------------------------------------------- LCD1602.H The user function is C51. Copyright (c) 1988-2004 Keil Elektronik GmbH sum zhaojun All rights reserved. --------------------------------------------------------------------------*/ #ifndef __LCD1602_H__ #define __LCD1602_H__ /*连接线
[单片机]
s3c2440裸机-LCD编程(三、框架准备和LCD初始化)
1.准备框架 为了让程序更加好扩展,体现出”高内聚、低耦合 的特点,能够兼容各种不同型号的lcd,假如有两款尺寸大小的lcd,如何快速的在两个lcd上切换? 首先我们抽象出lcd_3.5.c和lcd_4.3.c的共同点,比如都有初始化函数init(),我们可以新建一个lcd.c,然后定义一个结构体: struct lcd_opr{ void (*init)(void); }; 用户不接触lcd_3.5.c和lcd_4.3.c,只需要在lcd.c里通过指针访问对应的结构体的函数,也就调用了不同init(),如下图所示: 我们的目的是在LCD显示屏上画线、画圆(geomentry.c)和写字(font.c)其核心是画点
[单片机]
s3c2440裸机-<font color='red'>LCD</font>编程(三、框架准备和<font color='red'>LCD</font>初始化)
51单片机温度+pwm控制风扇转速,且温度在LCD1602上显示
原理图如下: 源代码如下: #include reg52.h #include intrins.h #include define.h #include delay.h #include LCD1602.h #include DS18B20.h #include HL_alarm.h sbit KEY3 = P3^5; //定义开始/停止 void zhuan(); unsigned char timer1; //***********************************************************************/ void main() { if(
[单片机]
51单片机温度+pwm控制风扇转速,且温度在<font color='red'>LCD</font>1602上显示
传LGD延后关停LCD产线 OLED产业进程提速很明显
受新冠疫情的影响,全球液晶面板价格大幅反弹,第三季度大部分尺寸LCD TV面板的价格上涨30%以上。据业内消息透露,由于LCD面板价格大幅度上涨,LGD决定将生产计划延长一年。据悉,LGD已将这一计划告知了合作伙伴及其他相关公司。 近两年,随着大陆高世代产线产能的释放,LCD面板价格持续下降,导致韩系两大液晶面板巨头三星和LGD的经营业绩陷入亏损状态,今年年初他们先后宣布将会在2020年底之前停止对液晶面板的生产计划,从而把重心放在下一代显示技术的研发上。三星把重点放在QD-OLED面板技术上,而LGD则全力拓展OLED面板。 不过,由于受新冠疫情的影响,全球LCD市场大幅反弹,从而导致液晶面板的价格从今年下半年后持续“上涨”。根
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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