• 大小: 410KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: 其他
  • 标签: 51单片机  Proteus  

资源简介

基于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个文件信息

评论

共有 条评论