资源简介
基于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版计算器
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- proteus仿真 AT89C51输出各种波形
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- proteus_24C08—有注释(proteus里面使用的
- DS18B20分布式多点测温的Proteus仿真
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 51多机通信(内附Proteus及.hex文件)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
评论
共有 条评论