课程设计电子秤_第1页
课程设计电子秤_第2页
课程设计电子秤_第3页
课程设计电子秤_第4页
课程设计电子秤_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品资料推荐电子信息与电气工程系课程设计报告精品资料推荐课程设计任务书设计题目电子秤的设计设计类型实验研究导师姓名李海鲲赵春江1、课题目的(1)熟练掌握单片机系统的设计方法。(2)设计并实现一个简易电子称。2、设计说 1)重量显示。单位为克,最大称重10千克,重量误差不大于 5 克。2)单价金额显示及总价金额显示。单价金额单位为“分”,最大显示金额为 999。99 元,单价误差不大于 1 分。明3、设计要求(1)方案论证 按系统功能实现要求,决定控制系统的实现方案,选择芯片,作出系统框图。(2)硬件电路设计 按控制系统的实现方案,作出硬件原理图。/数转换子程序(3)系统程序设计 采用模块化设计

2、方法,作出初始化程序、主程序、显示子程序和模(4)调试及仿真用 Keil+Proteus 进行软、硬件联合仿真和调试。4、总结报告 写出完成整个设计的详细步骤和系统性能分析。具 有 的 设1、计算机2、Keil+Proteus 仿真软件计划需要 1 人1、从接题开始收集资料、准备设计2、第 1 周画出设计框图,制定设计方案,画出电路原理图,进行实验 ,3、第 2 周电路调试和完善,软件设计、仿真,用 Keil+Proteus 进行软、硬件联合仿真和调试,同时编写设计报告。1、单片机原理及应用 孙涵芳等编著 北京航空航天大学出版社 20012、微型计算机原理 吴秀清等编著 中国科技大学出版社 2

3、001精品资料推荐目录1 摘要: 4关键字2 方案论证及选择: 521输入模块 52 2 显示模块 53 系统硬件及功能: 53 1 单片机控制电路功能及介绍 532 AD 转换 633 34键盘 734 LCD 显示 74 设计思路及程序流程图: 85 结果仿真: 96 总结与心得体会: 107 参考文献 10附录精品资料推荐1:摘 要现代社会的发展, 对称重技术提出了更高的要求。 目前, 台式电了秤在商业贸易中的 使用已相当普遍,但存在较大的局限性:体积大、成本高、需要工频交流电源供应、携带不便、应用场所受到制约。 现有的便携秤为杆秤或以弹簧压缩、 拉伸变形来实现计量的弹簧秤, 居民用户使

4、用的是国家已经明令淘汰的丰卜秤。 多年来, 人们一直期待测量准确、 携带方便、 价格低廉的便携式电子秤投放市场。 木文设计了一种便携式电子秤, 论述了仪器的工作原理, 介绍了仪器的误差来源与误差分配, 给出了仪器电路设计与软件流程, 探讨了仪器的工程设 计技术。 针对电容式称重传感器非线性影响大的问题, 提出并建立了电容式称重传感器的非 线性影响模型与校正模型, 为便携式电子秤的低成本准确称量奠定了理论基础。 便携式电子 秤主要由电源、称重传感器、单片机、键盘/开关、 LCD 显示器等部分构成。主要技术指标为:称量范围 0- lOkg;分度值 O.Olkg; 精度等级 m级;电源 DC 1.5

5、V。关键字 :电子秤, AT89C51, LCD精品资料推荐2:方案论证及选择:2 1: 输入模块方案一:采用独立式按键作为输入模块,其特点:直接用 I/O 口构成单个按键电路,接口电 路配置灵活、软件结构简单,但是当键数较多时,占用 I/O 口较多; 方案二:采用矩阵式键盘作为输入电路,其特点:电路和软件稍复杂,但相比之下,当键数 越多时越节约 I/O 口。本设计使用键盘输入价格值, 若采用独立按键, 对数值进行递增递减需频繁按键, 为软件设 计增加负担,且操作界面不友好。若采用矩阵式按键,可以方便地输入一个价格值,节约了 宝贵的 I/O 口资源。通过对比,故采用方案二作为系统输入模块。22

6、:显示模块方案一:用 LCD 显示,液晶显示屏具有低耗电量,无辐射危险,以及影像不闪烁等优 势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。方案二:采用 LED 数码管并行动态显示,电路简单,同样的功率驱动下,显示亮度不 及静态显示,且占用 I/O 口较多。综上所述,我们采用方案一使用了 1602 型号的的 LCD 进行显示,能显示出更多的重 量值以及显示更大的总额从而扩大了称量范围。3 系统硬件及功能:3 1 单片机控制电路功能及介绍本设计中单片机控制电路是由 AT89C51组成,它是一个低功耗, 高性能 CMOS8 位单片机, 片内含 4k Bytes ISP(In-system

7、 programmable) 的可反复擦写 1000 次的 Flash 只读程序存 储器,器件采用 ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及 80C51引脚结构,芯片内集成了通用 8位中央处理器和 ISP Flash 存储单元,功能强大的 微型计算机的 AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51具有如下特点: 40 个引脚, 4k Bytes Flash 片内程序存储器, 128 bytes精品资料推荐的随机存取数据存储器( RAM), 32个外部双向输入 /输出(I/O )口, 5个中断优先级 2层中断嵌套中断, 2 个

8、 16 位可编程定时计数器 ,2 个全双工串行通信口,看门狗( WDT)电路,片内时钟振荡器。图此外, AT89S51设计和配置了振荡频率可为 0Hz并可通过软件设置省电模式。空闲模式 下, CPU暂停工作,而 RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振 荡器而保存 RAM的数据, 停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、 TQFP和 PLCC等三种封装形式,以适应不同产品的需求。32 A/D 转换8 位 A/D 精度: 10Kg/1204=2.44g 考虑到其他部分所带来的干扰 ,12 位 A/D 无法满足系统精度要求。 所以我们需要选择 14

9、 位或者精度更高的 A/D。方案一、逐次逼近型 A/D 转换器,如: ADS7805、 ADS7804等。逐次逼近型 A/D 转换,一般具有采样 / 保持功能。采样频率高, 功耗比较低,是理想的高 速、高精度、省电型 A/D 转换器件。高精度逐次逼近型 A/D 转换器一般都带有内部基准源和内部时钟,基于 89C52 构成的系统 设计时仅需要外接几个电阻、电容。但考虑到所转换的信号为一慢变信号,逐次逼近型 A/D 转换器的快速的优点不能很好的发 挥,且根据系统的要求, 14 位 AD足以满足精度要求,太高的精度就反而浪费了系统资源。 所以此方案并不是理想的选择。方案二、双积分型 A/D 转换器:

10、如: ICL7135 、ICL7109 ADC0808 等。双积分型 A/D 转换器精度高,但速度较慢 (如: ICL7135), 具有精确的差分输入,输入阻抗精品资料推荐高,可自动调零,超量程信号,全部输出于 TTL 电平兼容。双积分型 A/D 转换器具有很强的抗干扰能力。对正负对称的工频干扰信号积分为零,所以对 50HZ 的工频干扰抑制能力较强, 对高于工频干扰 (例如噪声电压) 已有良好的滤波作用。只要干扰电压的平均值为零,对输出就不产生影响。尤其对本系统,缓慢变化的压力信号, 很容易受到工频信号的影响。故而采用双积分型 A/D 转换器可大大降低对滤波电路的要求。作为电子秤,系统对 AD

11、 的转换速度要求并不高,精度上 8 位的 AD 足以满足要求。另 外双积分型 A/D 转换器较强的抗干扰能力, 和精确的差分输入, 低廉的价格。 综合的分析其 优点和缺点,我们最终选择了 ADC0808。33 3 4键盘34 键盘采用扫描技术进行识别,处值是七个端口都是高电平,对各行进行扫描时,先 令第一列全是低电平, 若第一列为低电平就表示一行一列为选中即有键按下, 若第二行为低 电平即二行一列为选中即有键按下,以此类推就可以对所有的见进行编码了。3.4 LCD 显示精品资料推荐1602 型号的的 LCD 是能够显示 16 列 2 行的液晶显示器,功率小显示面积大。4 设计思路及程序流程图压

12、力传感器在我设计的系统中, 由于只是仿真层面的所有我用力电位器代替, 应为单片 机只是采集变化的数字量, AD 转换器是将变化的模拟量即电压量,转化为数字量从而可以 用电位器改变电压值得到数字量给单片机。当改变电位器时就会得到相应的数字量,单片机对数字进行运算处理,处理好的数据 就是所称的重量, 当要输入物品单价时先把键盘的打开键闭合, 此时就启动了键盘, 然后输 入数值, 结束时按下确定键, 当输入值超出了范围是系统会把最后一位输入同时对系统确定 这时:单片机就会对数据处理,最终得到总价。并且显示会没一步进行显示在对应的位置。软件流程图精品资料推荐5 结果仿真1:当输入不超出位时:9精品资料

13、推荐2:当输入超出位时:6. 总 结 与 体 会两周的课程设计结束了,虽然不轻松但是我学到是很多知识,尽管单片机 我们课堂上学了而且感觉还不错但是在实际应用中会发现很多问题,即使很 小的错误都能导致很大的错误,我经常会犯的错误就是重复定义不知为什么 但是经过了这个课程设计之后,我会不自觉的注意这个问题,特别当对共阴 还是共阳管道应用上,在定义时老会出现反的情况,这样就导致根本就的不 到值,还有一个问题是我在写键盘程序时用了死循环,然后在最后把所有模 块连接时就出现键盘和称重不能同时进行的情况。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当

14、中, 学习单机片机更是如此, 程序只有在经常的写与读的过程中才能提高。10精品资料推荐参考文献1. 手把手教你学单片机 周兴华著 北京航空航天出版社 2005.419982. 单片机原理及接口技术 余锡存 曹国华著 西安电子科技出版社 1999.11 3李朝青 .单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,4. 李广弟 .单片机基础 .北京:北京航空航天大学出版社,19945. 阎石 .数字电子技术基础(第三版) . 北京:高等教育出版社, 19896. 廖常初 .现场总线概述 J .电工技术, 1999.11精品资料推荐附录:源程序#include #include c

15、hushi.h#includejianpan.h void main() void jianpan();void delay2();OE=0;/定时 1 开TMOD=0x02;TH1=(65536-400)/256; TL1=(65536-400)%256;TR1=1;ET1=1;EA=1;ST=1;ST=0;Lcd_Init(); while(1)if(ctrl=0)set=!set;while(ctrl=0);geat=1;t=0;num5=0;if(set=1) jianpan();if(EOC=1&set=0)OE=1; num1=P3; delay2(); OE=0; delay2(

16、);ST=1;ST=0;12精品资料推荐num1=num1*9999/255; count0=num1%10000/1000; count1=num1%1000/100; count2=num1%100/10; count3=num1%10;max=num1*up; count7=max%10000000/1000000; count8=max%1000000/100000; count9=max%100000/10000; count10=max%10000/1000; count11=max%1000/100; count12=max%100/10; count13=max%10;Disp

17、layOneChar(0,1,j);DisplayOneChar(1,1,g);DisplayOneChar(2,1,:);DisplayString(6,1,max:);DisplayOneChar(9,1,count7+0x30);DisplayOneChar(10,1,count8+0x30);DisplayOneChar(11,1,count9+0x30);DisplayOneChar(12,1,count10+0x30);DisplayOneChar(13,1,count11+0x30);DisplayOneChar(14,1,count12+0x30);DisplayOneChar

18、(15,1,count13+0x30);DisplayString(0,0,dj:);DisplayOneChar(3,0, count0+0x30);DisplayOneChar(4,0,count1+0x30);DisplayOneChar(5,0,count2+0x30);DisplayOneChar(6,0,count3+0x30);void delay2()unsigned char i,j,k; for(k=2;k0;k-)13精品资料推荐for(i=2;i0;i-)for(j=248;j0;j-);void Lcd_Init(void);void Lcd_WriteCmd(uns

19、ignedchar TempData,unsignedchar BuysC);void Lcd_WriteData(unsignedchar TempData);void Lcd_ReadStatus(void);/unsigned char Lcd_ReadData(void);void DisplayOneChar(unsigned char X, unsigned char Y , unsigned char DData); void DisplayString(unsigned char X, unsigned char Y , unsigned char *DData); void

20、Delay(unsigned int delaytime);void Lcd_WriteData(unsigned char TempData) Lcd_ReadStatus(); Lcd_Data = TempData; Lcd_RS = 1;Lcd_RW = 0;Lcd_E = 0;Lcd_E = 0;Lcd_E = 1; /写指令void Lcd_WriteCmd(unsigned char TempData,unsigned char BuysC) if (BuysC) Lcd_ReadStatus();Lcd_Data = TempData; Lcd_RS = 0;Lcd_RW =

21、0;Lcd_E = 0;Lcd_E = 0;Lcd_E = 1; /读数据 /*unsigned char Lcd_ReadData(void)Lcd_RS = 1;14精品资料推荐Lcd_RW = 1; Lcd_E = 0;Lcd_E = 0;Lcd_E = 0;Lcd_E = 0;Lcd_E = 1; return(Lcd_Data);*/ void Lcd_ReadStatus(void)Delay(500);void Lcd_Init(void) /LCM 初始化Lcd_Data = 0;Lcd_WriteCmd(0x38,0); / 三次显示模式设置,不检测忙信号Delay(6000

22、);Lcd_WriteCmd(0x38,0);Delay(6000);Lcd_WriteCmd(0x38,0);Delay(6000);Lcd_WriteCmd(0x38,1); / 显示模式设置 ,开始要求每次检测忙信号Lcd_WriteCmd(0x08,1); / 关闭显示Lcd_WriteCmd(0x01,1); / 显示清屏Lcd_WriteCmd(0x06,1); / 显示光标移动设置Lcd_WriteCmd(0x0C,1); / 显示开及光标设置/按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y , un

23、signed char DData)Y &= 0x1;X &= 0xF; / 限制 X 不能大于 15, Y 不能大于 1if (Y) X |= 0x40; / 当要显示第二行时地址码 +0x40;X |= 0x80; / 算出指令码Lcd_WriteCmd(X, 0); / 这里不检测忙信号,发送地址码Lcd_WriteData(DData);/按指定位置显示一串字符void DisplayString(unsigned char X, unsigned char Y , unsigned char *DData)15精品资料推荐 unsigned char ListLength;ListL

24、ength = 0;Y &= 0x1;X &= 0xF; / 限制 X 不能大于 15, Y 不能大于 1 while (DDataListLength!=0) / 若到达字串尾则退出 if (X 0;i-)for(j=200;j0;j-);temp=P1;temp=temp&0xf8;if(temp!=0xf8)if(han1=0) key=3;if(han2=0) key=6;if(han3=0) key=9;if(han4=0) key=11;set=0;while(han1=0|han2=0|han3=0|han4=0);17精品资料推荐t+;if(t=1) up=key;if(t=2) up=up*10+key;if(t=3) up=up*10+key;P1=0xff; lie2=0; temp=P1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论