图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中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
仿真软件:
(一)、Proteus
它不仅具有其它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()的程序设计流程图
开始
图3.1 程序设计流程图
结束 输出dat1 输出0x00 dat2=dat2|((uchar)ADC_DIO<
在这个C文件中,有三个函数:?、uchar Get_key(),作用是获得MM74C922转化的4位二进制,并转化为十进制;?、void Beep(),是蜂鸣器的驱动程序;?、void Juge_key()判断按键值,并作出相应操作
图3.2为void Juge_key()的程序设计流程图
图3.2 程序设计流程图
结束 b=Get_key(); switch(b) uchar Get_key()获得MM74C922转化的4位二进制,并转化为十进制b 开始 0~9 输出 0~9 12 归零 14 确认 11 去皮 15、4、7 显示时间、特效、小数点(。) 4、LCD12232的驱动代码编写(LCD12232.c):
在这个C文件中,主要包含了两个显示函数 ?、 void LCDshow010(uint *a,uint b)
这个函数主要是实现LCD第一行的显示,显示“P: 0 W 0.0kg”字样。 ?、void LCDshow230(uint c)
这个函数主要是实现LCD第二行的显示,显示“总价: 0.0元”字样。
5、Main文件的编写(Main.c):
在这个C文件中,主要包含了main()函数,它的功能是调用其他C文件中的函数,因此,在写main()函数时,应当先做其他文件的调用声明,如下:
#include\存放取模数据的头文件 #include\延时函数
#include\的驱动程序 #include\的驱动程序 #include\的驱动程序
图3.3为main()的程序设计流程图
图3.3 程序设计流程图
按键扫描函数Juge_key() LCD第二行显示LCDshow230(Total_price); 计算出总价Total_price=Price*Weight 将电压信号与重量建立等式关系开始 LCD的复位操作,为LCD的显示做准备,LCDrst(); 获得ADC的返回值adcdata=ReadADC(); weight=2*adcdata*1.960-Levelweight-3; LCD的第一行显示LCDshow010(p,weight); (二)、硬件电路搭建
1、模拟应变式传感器单臂电桥的搭建: