资源简介
基于51单片机的计算器Proteus仿真:资源包含原理图,源程序及文档。
代码片段和文件信息
#include
#include“lcd1602_8.h“
#include
/***********延时1ms程序******/
void delayms(uint x) //12M延时1ms
{
unsigned int TempMS = x*110;
while(TempMS--);
}
/*******写命令**********/
void lcdwrite_com(uchar i)
{
lcddata=i;
LCDRS=0;
LCDRW=0;
LCDEN=0;
delayms(1);
LCDEN=1;
}
/*******写数据***********/
void lcdwrite_data(uchar i)
{
lcddata=i;
LCDRS=1;
LCDRW=0;
LCDEN=0;
delayms(1);
LCDEN=1;
}
/*******写字符串***********/
void lcdwrite_string(uchar *s)
{
while(*s)
{
lcdwrite_data(*s);
s++;
}
}
/*设置lcd光标值*/
void lcd_setxy(uchar xuchar y)
{
uchar address;
y&=0x0f;
if(!x)
address=0x80+y;//0在第一行
else
address=0xc0+y;//1在第二行
lcdwrite_com(address);
}
//********显示1位数字************//
void lcdwrite_num1(uint n)
{
lcdwrite_data(n+48);
}
//*****显示任意位数字******//
void lcdwrite_num(long n)
{
uchar length=0ja[8]={00000000};
long nx;
if(n==0)
{
lcdwrite_data(‘0‘);
return;
}
if(n<0)
{
lcdwrite_data(‘-‘);
n=0-n;
}
nx=n;
for(j=0;j<8;j++)
{
if(nx>=1)
length++;
nx/=10;
}
nx=n;
for(;length>0;length--)
{
a[length-1]=nx%10+0x30;
nx/=10;
}
lcdwrite_string(a);
}
/******显示7位小数*********/
void lcdwrite_float(float n)
{
uchar i=0;
uint j=0;
long nxtemp;
if(n==0)
{
lcdwrite_data(‘0‘);
return;
}
if(n<0)
{
lcdwrite_data(‘-‘);
n=0-n;
}
nxtemp=n;
n=n;//+0.000002;
lcdwrite_num(nxtemp);
if((n-nxtemp)>0.000009)
{
lcdwrite_data(‘.‘);
n=(n-nxtemp)*10000000;
n=n-1;
nxtemp=n;
if(nxtemp%10!=0)
lcdwrite_data(nxtemp/1000000+0x30);//显示第7位小数
if((nxtemp%1000000%100000%10000%1000%100/10!=0)||(nxtemp%1000000%100000%10000%1000/100!=0)||(nxtemp%1000000%100000%10000/1000!=0)||(nxtemp%1000000%100000/10000!=0)||(nxtemp%1000000/100000!=0))
lcdwrite_data(nxtemp%1000000/100000+0x30);//显示第6位小数
if((nxtemp%1000000%100000%10000%1000%100/10!=0)||(nxtemp%1000000%100000%10000%1000/100!=0)||(nxtemp%1000000%100000%10000/1000!=0)||(nxtemp%1000000%100000/10000!=0))
lcdwrite_data(nxtemp%1000000%100000/10000+0x30);//显示第5位小数
if((nxtemp%1000000%100000%10000%1000%100/10!=0)||(nxtemp%1000000%100000%10000%1000/100!=0)||(nxtemp%1000000%100000%10000/1000!=0))
lcdwrite_data(nxtemp%1000000%100000%10000/1000+0x30);//显示第4位小数
if((nxtemp%1000000%100000%10000%1000%100/10!=0)||(nxtemp%1000000%100000%10000%1000/100!=0))
lcdwrite_data(nxtemp%1000000%100000%10000%1000/100+0x30);//显示第3位小数
if((nxtemp%1000000%100000%10000%1000%100/10!=0))
lcdwrite_data(nxtemp%1000000%100000%10000%1000%100/10+0x30);//显示第2位小数
lcdwrite_data(nxtemp%10+0x30);//显示第1位小数
}
else
return;
}
/*******初始化液晶*******/
void lcd_init(void)
{
lcdwrite_com(0x01); //显示清屏
lcdwrite_com(0x01); //显示清屏
lcdwrite_com(0x38);//设置成1602显示
delayms(5);
lcdwrite_com(0x38);//设置成1602显示
delayms(5);
lcdwrite_com(0x38);//设置成1602显示
delayms(5);
lcdwrite_com(0x0f); //开显示 0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 108033 2014-11-05 10:18 计算器\仿真\Last Loaded 计算器.DBK
文件 113986 2014-11-05 11:21 计算器\仿真\计算器.DSN
文件 768 2019-05-30 10:35 计算器\仿真\计算器.PWI
文件 14600 2014-11-05 10:23 计算器\程序\hex\lcd1602.obj
文件 23164 2014-11-05 10:23 计算器\程序\hex\main.obj
文件 31652 2014-11-05 10:23 计算器\程序\hex\obj
文件 22195 2014-11-05 10:23 计算器\程序\hex\obj.hex
文件 124 2014-11-05 10:23 计算器\程序\hex\obj.lnp
文件 1359 2014-11-05 11:21 计算器\程序\hex\obj.plg
文件 810 2014-11-05 10:23 计算器\程序\hex\STARTUP.obj
文件 3243 2014-11-05 09:15 计算器\程序\lcd1602.c
文件 482 2014-11-05 09:15 计算器\程序\lcd1602_8.h
文件 7325 2014-11-05 10:23 计算器\程序\list\lcd1602.lst
文件 24289 2014-11-05 10:23 计算器\程序\list\main.lst
文件 37239 2014-11-05 10:23 计算器\程序\list\obj.m51
文件 14147 2014-11-05 10:23 计算器\程序\list\STARTUP.lst
文件 8377 2014-11-05 10:23 计算器\程序\main.c
文件 396 2014-11-03 16:44 计算器\程序\obj\obj.plg
文件 144761 2014-11-05 11:21 计算器\程序\obj\obj.uvopt
文件 13577 2014-11-05 11:21 计算器\程序\obj\obj.uvproj
文件 143329 2014-11-05 09:47 计算器\程序\obj\obj_uvopt.bak
文件 13578 2014-11-05 09:45 计算器\程序\obj\obj_uvproj.bak
文件 6376 2009-05-07 14:37 计算器\程序\obj\STARTUP.A51
文件 535040 2019-07-17 14:30 计算器\计算器.doc
目录 0 2014-11-05 10:23 计算器\程序\hex
目录 0 2014-11-05 10:23 计算器\程序\list
目录 0 2014-11-05 11:21 计算器\程序\obj
目录 0 2019-05-30 10:35 计算器\仿真
目录 0 2014-11-05 09:14 计算器\程序
目录 0 2019-07-17 14:30 计算器
............此处省略3个文件信息
- 上一篇:delphi treeview 加载时 改变字体颜色
- 下一篇:MacOS版计算器
相关资源
- 51+bmp180+lcd1602+proteus.zip
- Proteus-基于51实现波形发生器
- 基于8086的电子琴proteus仿真有代码
- pic单片机实现的频率计
- 基于AT89C51单片机的温度控制系统
- tdc-gp2的测试程序
- 单片机proteus设计有倒计时的红绿灯
- 51单片机上实现对短信猫控制的程序
- 51单片机读电池电量
- 51单片机最小系统Protel99SE原文件
- 51单片机汇编语言音乐程序
- 点阵式LED滚动汉字显示屏的Proteus仿真
- 51单片机迷宫小车
- 基于51单片机的记分器
- 单片机温度测量,与protues仿真
- 基于51单片机的比赛用记分器
- 用DS1302与LCD12864设计的可调电子钟及仿
- 顾晖的《微机原理与接口技术-基于
- 16×16点阵屏-四块8x8并排的效果
- 51单片机nrf24L01遥控小车
- 51单片机的数字温度,使用DS18B20,数
- 51单片机的步进电机控制,lcd1602显示
- stc 51单片机实现的交通灯包括keil程序
- 基于 ATMEGA-16 的 PWM 与 Proteus 仿真
- 51单片机光敏电阻寻光程序
- 电子密码Proteus锁仿真
- 交通灯proteus仿真电路图
- 基于51单片机的遥控小车设计小车和遥
- 基于51单片机的DDS函数信号发生器的设
- 51单片机定时器初值计算器
评论
共有 条评论