电子秤566797677.ppt
《电子秤566797677.ppt》由会员分享,可在线阅读,更多相关《电子秤566797677.ppt(28页珍藏版)》请在悦读文库上搜索。
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,电子秤566797677,*,PPT,文档演模板,Office,PPT,电子秤566797677,2025/4/17,电子秤566797677,设计要求:,利用电位器电压模拟外部变化的重量信号,在1602第一行显示重量,通过4*4键盘(采用proteus里的KEYPAD-SMALLCALC)输入单价,在第二行显示总价电子秤566797677,基本电路:,单片机,LCD1602,4*4按键,ADC0832,电子秤566797677,电子秤的工作原理:,当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器随之产生力电效应,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号(电压或电流等)此信号由放大电路进行放大、经滤波后再由模/数(A/D)器进行转换,数字信号再送到微处器的CPU处理,CPU不断扫描键盘和各种功能开关,根据键盘输入内容和各种功能开关的状态进行必要的判断、分析、由仪表的软件来控制各种运算运算结果送到内存贮器,需要显示时,CPU发出指令,从内存贮器中读出送到显示器显示,或送打印机打印。
一般地信号的放大、滤波、A/D转换以及信号各种运算处理都在仪表中完成电子秤566797677,设计思路:,利用电位器电压模拟外部变化的重量,信号,,然后再经过模数转换器转换为数字信号,最后把数字信号送入单片机单片机经过相应的处理后,得出当前所称物品的重量及总额,然后再显示出来此外,还可通过键盘设定所称物品的价格主要技术指标为:称量范围010kg;分度值10/256kg电子秤566797677,系统总图,电子秤566797677,系统方案论证与选型,电子秤566797677,程序代码,#include,#include,#define uchar unsigned char,#define uint unsigned int,#define nop _nop_(),#define channal_0 0 x02,电子秤566797677,sbit lcden=P21;/液晶使能端,sbit lcdrs=P20;/液晶数据命令选择端,sbit cs=P22;/adc0832片选端,sbit clk=P23;/adc0832时钟,sbit d=P24;/adc0832的输入通道及数字量输出端,sbit ACC1=ACC1;,sbit ACC0=ACC0;,uchar code table=kg;,uchar code table1=yuan/kg;,uchar code table2=Price:;,uchar code table3=yuan;,uchar code table4=total:;,uchar code table5=Weight:;,uchar num,n,s,k;,uint m1;,电子秤566797677,延时子程序,void delay(uint z)/延时z毫秒,uint x,y;,for(x=z;x0;x-),for(y=110;y0;y-);,电子秤566797677,lcd1602写命令函数输入:com,void write_com(uchar com),lcdrs=0;,P1=com;,delay(5);,lcden=1;,delay(5);,lcden=0;,电子秤566797677,lcd1602写数据函数输入:date,void write_data(uchar date),lcdrs=1;,P1=date;,delay(5);,lcden=1;,delay(5);,lcden=0;,电子秤566797677,lcd1602初始化函数,void init(),lcden=0;,write_com(0 x38);/设置16X2显示,5X7点阵,8位数据接口,write_com(0 x0c);/设置开显示,不显示光标,write_com(0 x06);/写一个字符后地址指针加1,write_com(0 x01);/显示清零,数据指针清零,电子秤566797677,adc0832启动函数,void start()/在第 1 个时钟脉冲的下沉之前 DI 端必须是高电平,表示启始信号。
cs=1;,nop;,clk=0;,nop;,cs=0;,nop;,d=1;,nop;,clk=1;,nop;,d=0;,clk=0;,nop;,电子秤566797677,adc0832读函数,uchar adc0832(uchar channal)/在第 2、3 个脉冲下沉之前 DI 端应输入 2 位数据用于选择通道功能,uchar i;,start();,ACC=channal;/应用ACC可以位寻址,d=ACC1;,clk=1;,nop;,d=0;,clk=0;,d=ACC0;,clk=1;,电子秤566797677,nop;,d=1;,clk=0;,clk=1;,nop;,ACC=0;,for(i=0;i8;i+)/转化后的数字量送到ACC中,clk=0;,ACC=ACC1;,ACC0=d;,clk=1;,cs=1;,return ACC;,电子秤566797677,键盘扫描函数,void key(),uchar temp;,P3=0 xfe;,temp=P3;,temp=temp,if(temp!=0 xf0)/按键消抖,delay(5);,temp=P3;,temp=temp,while(temp!=0 xf0),temp=P3;,switch(temp)/判断第一行哪一个按键按下,case 0 xee:num=1;n=7;k=1;break;,case 0 xde:num=2;n=8;k=1;break;,case 0 xbe:num=3;n=9;k=1;break;,case 0 x7e:num=4;k=/;break;,while(temp!=0 xf0)/直到按键松开,temp=P3;,temp=temp,电子秤566797677,P3=0 xfd;,temp=P3;,temp=temp,if(temp!=0 xf0),delay(5);,temp=P3;,temp=temp,while(temp!=0 xf0),temp=P3;,switch(temp)/判断第二行哪一个按键按下,case 0 xed:num=5;n=4;k=1;break;,case 0 xdd:num=6;n=5;k=1;break;,case 0 xbd:num=7;n=6;k=1;break;,case 0 x7d:num=8;k=*;break;,while(temp!=0 xf0),temp=P3;,temp=temp,电子秤566797677,P3=0 xfb;,temp=P3;,temp=temp,if(temp!=0 xf0),delay(5);,temp=P3;,temp=temp,while(temp!=0 xf0),temp=P3;,switch(temp)/判断第三行哪一个按键按下,case 0 xeb:num=9;n=1;k=1;break;,case 0 xdb:num=10;n=2;k=1;break;,case 0 xbb:num=11;n=3;k=1;break;,case 0 x7b:num=12;k=-;break;,while(temp!=0 xf0),temp=P3;,temp=temp,电子秤566797677,P3=0 xf7;,temp=P3;,temp=temp,if(temp!=0 xf0),delay(5);,temp=P3;,temp=temp,while(temp!=0 xf0),temp=P3;,switch(temp)/判断第四行哪一个按键按下,case 0 xe7:num=13;k=;break;,case 0 xd7:num=14;n=0;k=1;break;,case 0 xb7:num=15;k=;break;,case 0 x77:num=16;k=+;break;,while(temp!=0 xf0),temp=P3;,temp=temp,电子秤566797677,主函数,void main(),uchar num1,date,i;,uchar a1,a2,a3,a4;,uint s1,s2,s3;,init();,write_com(0 x80+14);,while(tablenum1)/显示table的内容,write_data(tablenum1);,delay(5);,num1+;,电子秤566797677,write_com(0 x80);/显示table5的内容,for(i=0;i7;i+),write_data(table5i);,delay(5);,num1=0;,write_com(0 x80+0 x40);,while(table2num1)/显示table3的内容,write_data(table2num1);,delay(5);,num1+;,电子秤566797677,while(1),date=adc0832(channal_0);/选择通道0,s1=date*10/256;/把0255转化成010,s2=(date*10%256)*10)/256;,s3=(date*10%256)*10)%256)*10)/256;,write_com(0 x80+8);/在第一行显示重量,write_data(0 x30+s1);,write_data(.);,write_data(0 x30+s2);,write_data(0 x30+s3);,key();,电子秤566797677,if(k=1)/有数字键按下,write_com(0 x80+0 x40);/在第二行显示table2内容,for(i=0;i6;i+),write_data(table2i);,delay(5);,write_com(0 x80+0 x40+7);/显示输入的价格,write_data(0 x30+n);,write_com(0 x80+0 x40+9);/显示table1的内容,for(i=0;i7;i+),write_data(table1i);,delay(5);,电子秤566797677,if(k=)/按下=号,write_com(0 x80+0 x40);/显示table4的内容,for(i=0;i6;i+),write_data(table4i);,delay(5);,电子秤566797677,m1=s1*100+s2*10+s3;/计算总价,m1=m1*n;,a1=m1/1000;,a2=m1%1000/100;,a3=m1%100/10;,a4=m1%10;,write_com(0 x80+0 x40+6);/显示总价,write_data(0 x30+a1);,write_data(0 x30+a2);,write_data(.);,write_data(0 x30+a3);,write_data(0 x30+a4);,write_com(0 x80+0 x40+11);/显示table3的内容,电子秤566797677,if(k=)/按下on/c键,num1=0;,write_com(0 x80+0 x40);/显示table2的内容,while(table2num1),write_data(table2num1);,delay(5);,num1+;,电子秤566797677,演讲完毕,谢谢听讲,!,再见,see you again,3rew,2025/4/17,电子秤566797677,。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子秤 566797677
