打印
[其它应用]

单片机简易计算器仿真

[复制链接]
778|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
androidbus|  楼主 | 2016-9-3 13:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式





#include<reg51.h>   //头文件

#define uint unsigned int //

#define uchar unsigned char




sbit lcden=P2^3; //定义引脚

sbit rs=P2^4;

sbit rw=P2^0;

sbit busy=P0^7;




char i,j,temp,num,num_1;

long a,b,c;     //a,第一个数 b,第二个数 c,得数

float a_c,b_c;

uchar flag,fuhao;//flag表示是否有符号键按下,fuhao表征按下的是哪个符号




uchar code table[]={

7,8,9,0,

4,5,6,0,

1,2,3,0,

0,0,0,0};

uchar code table1[]={

7,8,9,0x2f-0x30,

4,5,6,0x2a-0x30,

1,2,3,0x2d-0x30,

0x01-0x30,0,0x3d-0x30,0x2b-0x30};




void delay(uchar z) // 延迟函数

{

uchar y;

for(z;z>0;z--)

   for(y=0;y<110;y++);

}




void check() // 判断忙或空闲

{

do{

    P0=0xFF;

    rs=0;     //指令

    rw=1;     //读

    lcden=0;     //禁止读写

    delay(1); //等待,液晶显示器处理数据

    lcden=1;     //允许读写

    }while(busy==1); //判断是否为空闲,1为忙,0为空闲

}

void write_com(uchar com) // 写指令函数

{

P0=com;    //com指令付给P0口

rs=0;

rw=0;

lcden=0;

check();

lcden=1;

}




void write_date(uchar date) // 写数据函数

{

    P0=date;

rs=1;

rw=0;

lcden=0;

check();

lcden=1;

}




void init() //初始化

{

    num=-1;

lcden=1; //使能信号为高电平

write_com(0x38); //8位,2行

write_com(0x0c); //显示开,光标关,不闪烁*/

write_com(0x06); //增量方式不移位 显竟獗暌贫 柚?

write_com(0x80); //检测忙信号

write_com(0x01); //显示开,光标关,不闪烁

num_1=0;

i=0;

j=0;

a=0;     //第一个参与运算的数

b=0;     //第二个参与运算的数

c=0;

flag=0; //flag表示是否有符号键按下,

fuhao=0; // fuhao表征按下的是哪个符号

}

沙发
litengg| | 2016-9-3 13:26 | 只看该作者
感觉这个代码写的比较简单。

使用特权

评论回复
板凳
qiangweii| | 2016-9-3 13:39 | 只看该作者
是不是有几个接口没有用到啊。。。

使用特权

评论回复
地板
shashaa| | 2016-9-3 13:59 | 只看该作者
a=0;     //第一个参与运算的数

b=0;     //第二个参与运算的数

c=0;

flag=0; //flag表示是否有符号键按下,

fuhao=0; // fuhao表征按下的是哪个符号
??不知道有什么用?、

使用特权

评论回复
5
feiqi1| | 2016-9-3 14:27 | 只看该作者
只是定义了四个引脚,程序比较简单。。

使用特权

评论回复
6
xia00| | 2016-9-3 14:28 | 只看该作者
不得不说,PCB板画的真心不错。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

181

主题

1597

帖子

3

粉丝