基于 AT89C52 单片机的计算器设计(2)
#define uint unsigned int
sbit pinRS = P2^6; //复位端
sbit pinRW= P2^5; //写数据端
sbit pinE= P2^7; //使能端
//#include "LCD1602.h"
void shortdelay(uchar i)//短延时
{
for(;i>0;i--);
}
//长延时
void longdelay(uint i)
{
uint j;
for(;i>0;i--)
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。随着微电子技术的不断发展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D 转换器,D|A 转换器等多种电路。
{for(j=100;j>0;j--);}
}
//延时程序
void delay(int i)
{int j;
for(;i>0;i--)
for(j=0;j<100;j++);
}
//初试状态
void io_init()
{P1=0xff;
}
//---------------------------键盘扫描部-----------------------------//
unsigned char key_scan()
{ unsigned char key;
unsigned char temp;
uint flag;
io_init(); //初始化
P1=0xf0; //高四位输入 行为高电平 列为低电平 flag=0;
loop: temp=P1^0xf0; //屏蔽低四位 分
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。随着微电子技术的不断发展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D 转换器,D|A 转换器等多种电路。
while(temp)
{
P1=0xfe;
delay(1);
if((P1&0xfe)!=0xfe)
switch(P1)
{
case 0xee: key=0x11;flag=1;break;
case 0xde: key=0x12;flag=1;break;
case 0xbe: key=0x13;flag=1;break;
case 0x7e: key=0x14;flag=1;break;
}
if(flag)
goto exit;
else
P1=0xfd;
delay(1);
if((P1&0xfd)!=0xfd)
switch(P1)
{
case 0xed: key=0x21;flag=1;break;
case 0xdd: key=0x22;flag=1;break;
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。随着微电子技术的不断发展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D 转换器,D|A 转换器等多种电路。
case 0xbd: key=0x23;flag=1;break;
case 0x7d: key=0x24;flag=1;break;
}
if(flag)
goto exit;
else
P1=0xfb;
delay(1);
if((P1&0xfb)!=0xfb)
switch(P1)
{
case 0xeb: key=0x31;flag=1;break;
case 0xdb: key=0x32;flag=1;break;
case 0xbb: key=0x33;flag=1;break;
case 0x7b: key=0x34;flag=1;break;
}
if(flag)
goto exit;
else
P1=0xf7;
delay(1);
if((P1&0xf7)!=0xf7)
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。随着微电子技术的不断发展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D 转换器,D|A 转换器等多种电路。
switch(P1)
{
case 0xe7: key=0x41;flag=1;break;
case 0xd7: key=0x42;flag=1;break;
case 0xb7: key=0x43;flag=1;break;
case 0x77: key=0x44;flag=1;break;
}
exit: return key;
}
if(temp==0)
goto loop;
}
//--------------------------------- 键盘扫描完 //--------------------------------- 显示初始化 //P0 口初始化
void initpindata(bit i)
{
//uchar pindata,pinRS,pinRW,pinE;
if(i==1) P0=0xff;
else P0=0X00;
}
//数据命令选择设置
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。随着微电子技术的不断发展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D 转换器,D|A 转换器等多种电路。
void setRS(bit i)
{
if(i==1) pinRS=1; //RS高电平选择数据寄存器 else pinRS=0; //RS低电平选择指令寄存器
}
//读写操作控制
void setRW(bit i)
{
if(i==1) pinRW=1; //RW高电平选择读
else pinRW=0; //RW低电平选择写
}
//使能信号
void setE(bit i)
{
if(i==1) pinE=1;
else pinE=0; // 下降沿执行
}
//读BF 以及AC 的值
uint read_BF_AC() //忙标志位和地址计数器AC命令 BF为1表示忙
{
uint temp;
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。随着微电子技术的不断发展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D 转换器,D|A 转换器等多种电路。
initpindata(1); //初始化
setRS(0); //数据命令选择设置
setRW(1); //读写操作控制设置
setE(1); //以上是忙标志设置 shortdelay(1);
temp=P0;
shortdelay(10);
setE(0); //E下降沿开始执行
return(temp);
}
//判忙
bit statuscheck()
{
return((bit)(read_BF_AC()&0x80)); //
}
//写指令函数
void writeinstruc(uint instruc)
{
while(statuscheck());
initpindata(0);
setRS(0);
setRW(0); //00写指令 判最高位是否为1
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。随着微电子技术的不断发展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D 转换器,D|A 转换器等多种电路。
setE(0);
P0=instruc;
//short delay(1);
setE(1);
shortdelay(10);
setE(0); //下降沿开始执行
}
//写数据到RAM
void writedata(uint data1)
{
initpindata(0);
setRS(1);
setRW(0); //10写数据
setE(0);
P0=data1;
setE(1);
shortdelay(10);
setE(0); //下降沿开始执行
}
//从RAM 中读数据函数
uint readdata(void)
{
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算。随着微电子技术的不断发展,微处理芯片的集成程度越来越高,单片机已可以在一片芯片上同时集成cpu,存储器,定时器,计数器,并行和串行接口,看门狗,前置放大器,A|D 转换器,D|A 转换器等多种电路。
uint temp;
initpindata(1);
setRS(1);
setRW(1); //数据寄存器读出
setE(1);
…… 此处隐藏:3605字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




