最新版电子秤的设计与实现毕业论文设计样本

上传人:桔**** 文档编号:562142997 上传时间:2023-08-22 格式:DOC 页数:25 大小:1.56MB
返回 下载 相关 举报
最新版电子秤的设计与实现毕业论文设计样本_第1页
第1页 / 共25页
最新版电子秤的设计与实现毕业论文设计样本_第2页
第2页 / 共25页
最新版电子秤的设计与实现毕业论文设计样本_第3页
第3页 / 共25页
最新版电子秤的设计与实现毕业论文设计样本_第4页
第4页 / 共25页
最新版电子秤的设计与实现毕业论文设计样本_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《最新版电子秤的设计与实现毕业论文设计样本》由会员分享,可在线阅读,更多相关《最新版电子秤的设计与实现毕业论文设计样本(25页珍藏版)》请在金锄头文库上搜索。

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。(此文档为word格式, 下载后您可任意编辑修改! ) 电子秤的设计与实现 一. 研究的目的和意义 随着时代科技的迅猛发展, 微电子学和计算机等现代电子技术的成就给传统的电子测量与仪器带来了巨大的冲击和革命性的影响。常规的测试仪器仪表和控制装置被更先进的智能仪器所取代, 使得传统的电子测量仪器在远离、 功能、 精度及自动化水平定方面发生了巨大变化, 并相应的出现了各种各样的智能仪器控制系统, 使得科学实验和应用工程的自动化程度得以显著提高。 传统的机械秤有很多缺点, 比如精度不高, 结构复杂, 易老化, 成本高等。随着社会的发展,

2、市场对秤的要求的越来越高, 特别是人体秤、 厨房秤等各类便携式小型秤。电子秤与传统的机械秤相比有许多优越性, 它用压力传感器取代机械秤的弹簧大大减小了秤的体积和制造难度, 以LCD或LED显示屏取代传统的刻度盘使外形更加美观, 由于内部集成了单片机以及软件系统, 电子秤还拥有传统机械秤无法比拟的智能性。她能够完成过载报警, 总价计算, 数据通信等众多功能。当前市场上使用的称量工具, 或者结构复杂, 或者运行不可靠, 且成本高, 而且整体水平不高 , 部分小型企业质量差且技术薄弱, 设备不全, 缺乏产品的开发能力, 产品质量在低水平徘徊。因此, 有针对性的开发出一套具有实用价值的电子秤系统, 从

3、技术上克服上述诸多缺点, 改进电子秤应用中的不足之处, 具有现实意义。二.设计原理 1.电子秤的原理就是利用压力传感器采集因压力变化产生的电压信号, 经过电压放大电路放大, 然后再经过AD模数转换器转换为数字信号, 最后把数字信号送入单片机。单片机经过相应的处理后, 得出当前所称物品的重量及总额, 然后再显示出来。另外, 还可经过键盘设定所称物品的价格。 2. 原理仿真设计电路图图13.程序框图( 1) 主程序设计 图2 主程序设计( 2) 子程序A/D 0832的转化 图3 A/D 0832的转化( 3) 显示子程序的设计 图4 显示子程的设计( 4) 按键子程的设计在程序中能够先判断按键编

4、码, 然后根据编码将键盘代表的数值送到相应的存储单元, 再进行功能选择或数据处理。键盘扫描子程序的流程图如下: 图5 按键子程序的设计 3. 程序清单#include#include#include #include #define uchar unsigned char#define uint unsigned int#define BUSY 0x80 /常量定义#define DATAPORT P0sbit bADcs=P13; /片选位sbit bADcl=P16; /时钟位sbit bADda=P17; /数据位sbit LCM_RS=P10;sbit LCM_RW=P11;sbit

5、LCM_EN=P12;uint x1,y1,z1=0,w1,temp1;uchar ad_data,k,n,m,e,num,s; /采样值存储 uchar z; uchar data1; char press_data; /标度变换存储单元unsigned char ad_alarm; unsigned char press_ge=0; /显示值百位unsigned char press_shifen=0; /显示值十位unsigned char press_baifen=0; /显示值个位unsigned char press_qianfen=0; /显示值十分位uchar code str

6、0=Weight: . Kg ;uchar code str2=Price: ;uchar code str3=Total: ;uchar code table2=0x37,0x38,0x39,0xfd,0x34,0x35,0x36,0x78,0x31,0x32,0x33,0x2d,0x3d,0x30,0x2e,0x2b; /键盘码 void intu(); void jianpan();void delay(uint);void lcd_wait(void);void delay_LCM(uint); /LCD延时子程序void initLCM( void); /LCD初始化子程序void

7、lcd_wait(void); /LCD检测忙子程序void WriteCommandLCM(uchar WCLCM,uchar BusyC); /写指令到ICM子函数void WriteDataLCM(uchar WDLCM); /写数据到LCM子函数void DisplayOneChar(uchar X,uchar Y,uchar DData); /显示指定坐标的一个字符子函数void DisplayListChar(uchar X,uchar Y,uchar code *DData); /显示指定坐标的一串字符子函数void weishu(uint m); void weishu1(ui

8、nt m); void display(void);void ad0832(); void alarm(void);void data_pro(void); void ad0832(void) uchar i; bADcs = 0;/当ADC0832未工作时其CS输入端应为高电平, 此时芯片禁用, 开始工作CS为低电平 bADcl=0; /第一个时钟下降沿前da为1, 第二个与第三时钟下降沿前的数据为通道选择 bADda=1; /选置起始位 bADcl=1; bADcl=0; / 1down bADda=1; /通道选择第1位 bADcl=1; bADcl=0;/ 2 down bADda=0

9、; /通道选择第2位, 通道选择为1, 0选通道0 bADcl=1; bADcl=0;/ 3 down bADda=1; bADcl=1; bADcl=0;/ 4 down for(i=8;i0;i-) ad_data=1; /从第7位开始, 要左移data1=data11 bADcl=0;bADcl=1;if(bADda=1) ad_data|=0x01; /如果输出1, data1最后一位补1 bADcs=1;/转换完后CS置1 /*main funcation*/ void main(void) delay(50); /系统延时500ms启动ad_data=0; /采样值存储单元初始化为

10、0 initLCM( );intu(); WriteCommandLCM(0x01,1);/清显示屏 DisplayListChar(0,0,str0); DisplayListChar(0,1,str2);while(1) ad0832(); /采样值存储单元初始化为0 data_pro(); display(); jianpan();if(k=1) if(s=3) DisplayOneChar(s+7),1,table2num-1); if(s=1) data1=n; else data1=data1*10+n; if(k=) z1=data1*temp1; WriteCommandLCM

11、(0x01,1); DisplayListChar(0,1,str3);s=0; weishu1(z1); k=0;if(k= ) WriteCommandLCM(0x80+0x40,1); WriteCommandLCM(0x01,1); z1=0; s=0; /防止清零时指针后移动 /*延时K*1ms,12.000mhz*/void delay(uint k) uint i,j; for(i=0;ik;i+) for(j=0;j10;j+); /*写指令到ICM子函数*/void WriteCommandLCM(uchar WCLCM,uchar BusyC) if(BusyC)lcd_wait();DATAPORT=WCLCM; LCM_RS=0; / 选中指令寄存器 LCM_RW=0; LCM_RW=0; / 写模式 LCM_EN=1; _nop_(); _no

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号