• 大小: 2.93MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-11
  • 语言: 其他
  • 标签:

资源简介

基于51的电子秤,包括仿真图,51程序说明,电路图文档详细解析,所用芯片的详细资料,高精度电子秤设计和高精度体重计设计

资源截图

代码片段和文件信息

#include
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit rs=P2^6;
sbit rw=P2^5;
sbit e=P2^7;
sbit scl=P2^1;
sbit sda=P2^0;
uint8 num[]=“0123456789“;
uint8 d1[]=“RMB/kg: “;
uint16 ad[5]m[5];
uint8 kn=10;
uint8 keynum[3];
uint16 pric=0;
void delay(uint16 i)
{
while(i--);
}
void wrc(uint8 c)
{
delay(1000);
rs=0;
rw=0;
e=0;
P0=c;
e=1;
delay(10);
e=0;
}
void wrd(uint8 dat)
{
delay(1000);
rs=1;
rw=0;
e=0;
P0=dat;
e=1;
delay(10);
e=0;
rs=0;
}
void init()
{
delay(1000);
wrc(0x38);
wrc(0x38);
wrc(0x38);
wrc(0x06);
wrc(0x0c);
wrc(0x01);
}
void iicinit()
{
sda=1;
scl=1;
}
void iicstart()
{
sda=1;
scl=1;
delay(10);
sda=0;
delay(10);
scl=0;
delay(10);
}
void iicstop()
{
sda=0;
scl=1;
delay(10);
sda=1;
delay(10);
sda=0;
delay(10);
}
void ack()
{
sda=1;
scl=0;
delay(2);
sda=0;
delay(2);
scl=1;
delay(10);
scl=0;
delay(2);
sda=1;
delay(5);
}
void noack()
{
sda=0;
scl=0;
delay(2);
sda=1;
delay(2);
scl=1;
delay(10);
scl=0;
delay(2);
sda=0;
delay(5);
}

void iicwrbyte(uint8 dat)
{
uint8 i;
scl=0;
for(i=0;i<8;i++)
{
if(dat&0x80)
{
sda=1;
}
else
{
sda=0;
}
dat<<=1;
scl=1;
delay(10);
scl=0;
delay(10);
}
sda=1;
delay(10);
}

uint8 iicread()
{
uint8 idat;
scl=0;
sda=1;
for(i=0;i<8;i++)
{
dat<<=1;
if(sda==1)
{
dat|=0x01;
}
scl=1;
delay(10);
scl=0;
delay(10);
}
return  dat;
}

void pcf8591wrbyte(uint8 channel)
{
iicinit();
iicstart();
iicwrbyte(0x90);    //pcf8591写数据  1001 A2A1A0 R/W
ack();
iicwrbyte(channel|0x70);   //通过打开通道channelX,模拟输出使能打开
noack();
iicstop();
}
uint8 pcf8591read()
{
uint8 dat;
iicinit();
iicstart();
iicwrbyte(0x90);
ack();
iicstart();
iicwrbyte(0x91);  // pcf8591读数据  1001 A2A1A0 R/W
ack();
dat=iicread();
noack();
iicstop();
return dat;
}

void pcf8591dac(uint8 value)    //DA转换
{
iicinit();
iicstart();
iicwrbyte(0x90);
ack();
iicwrbyte(0x70); //不需要打开通道channelX,模拟输出使能打开
ack();
iicwrbyte(value);
noack();
iicstop();
}
uint8 keyscan()  //按键扫描程序
{
uint8 hlvalue;
P1=0x0f;
h=P1&0x0f;
if(h!=0x0f)
{
delay(1);
if(h!=0x0f)
{
h=P1&0x0f;
l=P1|0xf0;
P1=l;
l=P1&0xf0;
h=P1&0x0f;
value=h+l;
}
return value;
}
}
void keypros()   //按键处理函数
{
uint8 key;
key=keyscan();
switch(key)
{
case 0xee: kn=0;break;
case 0xde: kn=1;break;
case 0xbe: kn=2;break;
case 0x7e: kn=3;break;
case 0xed: kn=4;break;
case 0xdd: kn=5;break;
case 0xbd: kn=6;break;
case 0x7d: kn=7;break;
case 0xeb: kn=8;break;
case 0xdb: kn=9;break;
case 0xbb: break;   
case 0x7b: break;
case 0xe7: kn=12;break; //小数点按下标志位
case 0xd7: kn=11;break; //计价确认按键标志 
case 0xb7: kn=13;break; //clear清空计价输入
case 0x77: break;
default :  break;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-02-01 14:42  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\
     文件      209086  2014-06-11 16:38  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\$H6W5_]KG‘9W033(F7QP}7F.jpg
     文件      238080  2014-06-12 15:11  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\PCF8591ADDA总结.doc
     文件      225994  2014-06-11 16:42  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\hx711(海芯).pdf
     文件      718421  2014-05-05 11:21  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\pcf8591中文.pdf
     目录           0  2015-02-01 14:42  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\proteus仿真图设计\
     文件       23797  2014-06-13 19:35  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\proteus仿真图设计\Backup Of New Project.pdsbak
     文件       23767  2014-06-13 19:59  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\proteus仿真图设计\New Project.pdsprj
     文件        2198  2014-06-12 17:30  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\proteus仿真图设计\New Project.pdsprj.PC-20140609AOQY.Administrator.workspace
     文件         162  2015-01-30 12:07  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\~$高精度体重计.doc
     目录           0  2015-02-01 14:42  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\仿真现象\
     文件      659773  2014-06-13 20:01  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\仿真现象\77VC%YAGFBNDP_6K%3Y7JLH.jpg
     文件      650337  2014-06-13 20:01  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\仿真现象\Y5J5(0PV4{‘@KSRD2}2J%R8.jpg
     文件      675254  2014-06-13 20:00  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\仿真现象\~6‘D76Y4QX)3‘ZQ[YZ5~940.jpg
     文件         750  2014-06-13 20:16  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\总结.txt
     目录           0  2015-02-01 14:42  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\
     文件       16265  2015-01-30 12:05  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤
     文件         870  2015-01-30 12:05  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤.LST
     文件       24938  2015-01-30 12:05  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤.M51
     文件       18618  2015-01-30 12:05  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤.OBJ
     文件        4936  2014-06-13 20:22  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤.c
     文件        5587  2015-01-30 12:05  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤.hex
     文件          84  2015-01-30 12:05  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤.lnp
     文件        1624  2015-01-30 12:05  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤.plg
     文件       55319  2015-01-30 12:06  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤.uvopt
     文件       13330  2014-06-12 17:30  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤.uvproj
     文件       55319  2014-06-13 20:22  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤_uvopt.bak
     文件       13330  2014-06-12 11:30  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\程序设计\基于单片机设计的数字电子秤_uvproj.bak
     文件      529920  2014-06-11 10:13  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\高精度体重计.doc
     文件      804864  2014-06-11 16:25  基于单片机设计的数字电子秤(程序,proteus仿真,原理图都有)\高精度电子秤设计.doc

评论

共有 条评论

相关资源