模拟电子秤仿真实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
阿坝师范高等专科学校电子信息工程系课程设计模拟电子秤仿真设计
学生姓名樊益明
专业名称计算机控制技术
班级计控班
学号20113079
阿坝师范高等专科学校电子信息工程系
二○一三年四月
模拟电子秤设计报告
一、设计原理及要求
设计原理:
电子秤系统设计框图大致如图1所示:
图1 系统整体设计框图
设计要求:
1、要求单价由键盘输入;
2、重量的精度能够达到十分之一千克;
四个定值电阻加一个电位器,模拟应
变式传感器,
采集微小的电压信号
利用差分放大电
路,对采集到的微小
电压放大到0~~5V
ADC0832:8位2进制
模数转换器;将放大的电压信号转化为数值信号,方便单片机的处理
51单片机:处理和控制单元,整个模拟
仿真的灵魂原件。1、将ADC0832转化来的数据处理后存放在重量(Wight )并用LCD 显示;2、将键盘输入的数据赋给单价(Price );3、将总价(Total_price )计算出来,并显示
MM74C922:键
盘解码器,方便了对4x4键盘的扫描。键盘的作用主要在单价的输入上。
3、按键有提示音;
4、有去皮的功能;
二、主要硬件及仿真软件
硬件:
(一)、ADC0832
ADC0832 是一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎。图2.1为ADC0832在Proteus中的逻辑符号
图2.1 ADC0832逻辑符号
芯片接口说明:
CS片选使能,低电平芯片使能;
CH0 模拟输入通道0,或作为IN+/-使用。
CH1 模拟输入通道1,或作为IN+/-使用。
GND 芯片参考0 电位(地)。
DI 数据信号输入,选择通道控制。
DO 数据信号输出,转换数据输出。
CLK 芯片时钟输入。
Vcc/REF 电源输入及参考电压输入(复用)。
单片机对 ADC0832 的控制原理:
正常情况下 ADC0832 与单片机的接口应为 4 条数据线,分别是 CS、CLK、DO、DI但由于 DO 端与 DI 端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将 DO 和 DI 并联在一根数据线上使用。(见图 3.6)当 ADC0832 未工作时其 CS 输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行 A/D 转换时,须先将 CS 使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端 CLK 输入时钟脉冲,DO/DI 端则使用 DI 端输入通道功能选择的数据信号。在第 1 个时钟脉冲的下沉之前 DI 端必须是高电平,表示启始信号。在第 2、3 个脉冲下沉之前 DI 端应输入 2 位数据用于选择通道功能,其功能项见表 1。
表 1
如表 1 所示,当此 2 位数据为“1”、“0”时,只对 CH0 进行单通道转换。当 2 位数据为“1”、“1”时,只对 CH1 进行单通道转换。当 2 位数据为“0”、“0”时,将 CH0 作为正输入端 IN+,CH1 作为负输入端 IN-进行输入。当 2 位数据为“0”、“1”时,将 CH0 作为负输入端IN-,CH1 作为正输入端 IN+进行输入。所以我们利用前1——2个脉冲来设置ADC0832的通道选择,到第 3 个脉冲的下沉之后 DI 端的输入电平就失去输入作用,此后 DO/DI端则开始利用数据输出 DO 进行转换数据的读取。从第 4 个脉冲下沉开始由 DO端输出转换数据最高位 DATA7,随后每一个脉冲下沉 DO 端输出下一位数据。直到第 11 个脉冲时发出最低位数据 DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第 11 个字节的下沉输出
DATD0。随后输出 8 位数据,到第 19 个脉冲时数据输出完成,也标志着一次 A/D 转换的结束。最后将 CS 置高电平禁用芯片,直接将转换后的数据进行处理就可以了。更详细的时序说明请见图2.2(图2.2为ADC0832的时序图)。
图2.2 ADC0832时序图
(二)、LCD12232
图2.3 LCD12232逻辑符号管脚说明:
VDD:逻辑电源正
GND(VSS):逻辑电源地
VO(VEE):LCD驱动电源
RESET:复位端。
E1:读写使能。
E2:同E1引脚。
/RD:读允许,低电平有效。
/WR:写允许,低电平有效。
R/W:读写选择
A0:数据/指令选择高电平:数据D0-D7将送入显示RAM;低电平:数据D0-D7将送入指令执行器执行。
D0-D7:数据输入输出引脚。
图2.4为LCD的时序图
图2.4 LCD12232时序图
图2.5为显示存储器(DDRAM)与地址的对应关系
(显示设定为1/32DUTY,显示起始行为10th)
图2.5
(三)、AT89C51
在Protues中AT89C51的逻辑符号如图2.6所示:
图2.6 AT89C51逻辑符号
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51 提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
仿真软件:
(一)、P roteus
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具,在这里完全能够满足我们对电子秤的仿真需要。
(二)、Keil C51
Keil C51是51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,因为我们在此次模拟仿真中使用C语言编程,所以Keil几乎就是我们的不二之选。
三、设计步骤
(一)、软件设计
1、延时函数delay()的编写(Delay.c):
在这个C文件中,只有一个函数void delay(uint x),该函数的作用是,延时100*x(微秒)。
2、ADC0832的驱动代码编写(ADC0832.c):
在这个C文件中,只有一个函数uchar ReadADC(),它的返回值为8位2进制数,表示的放大后的电压值。
图3.1为uchar ReadADC()的程序设计流程图