单片机相关论文1文档格式.docx
- 文档编号:22683222
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:42
- 大小:217.28KB
单片机相关论文1文档格式.docx
《单片机相关论文1文档格式.docx》由会员分享,可在线阅读,更多相关《单片机相关论文1文档格式.docx(42页珍藏版)》请在冰豆网上搜索。
3.3总体工作电路原理图10
4软件的设计11
4.1键盘控制模块程序设计11
4.212864显示模块程序设计12
4.3总体程序设计14
5总结16
参考文献16
附录:
17
致谢32
基于单片机的电子秤的人机界面子系统的设计
摘要:
本文设计了一个基于AT89C51单片机的简易电子秤,主要设计了人机交互界面子系统的设计。
系统设计时采用AT89C51单片机作为核心控制芯片,对传感器采集的信号经过三运放大电路调理后经ADC0808进行A/D转换后输入单片机中进行处理,处理的结果以及商品的其他信息在12864LCD上显示,其中还设计了控制按键以进行简易的电子秤控制,实现的功能有控制显示欢迎界面,对单个商品进行称重并计价,对所有商品价钱进行总计等。
系统设计部分通过Proteus仿真软件仿真通过。
关键词:
电子秤;
单片机;
12864LCD;
键盘
DesignandImplementionHuman-machineInterfaceSub-SystemBasedOnSingle-Chip
Abstract:
Thispaperdesignsasimpleelectronicscalebasedonasingle-chipmicrocomputerAT89C51,mainlydesignsthesubsystemforthehuman-machineinterface.TheAT89C51single-chipmicrocomputerisusedasacorecontrolchipinthissystemdesign,thesensorsignalisamlicatedforthreetimesthroughamplifiers.Afteramplication,thesingleisconverteredbyADC0808.Inthisprocess,thecontrolbuttonsaredesginedtosimplelycontroltheelectronicweighingsystem,thefunctionincludescontrolinganddisplayingwelcomeinterface,weighingasingleindividualcommoditieandpricingallcommodities,andsoon.PartofthesystemdesignisverifedbyProteussimulationsoftware.
Keyword:
Electronicscale,One-chipcomputer12864LCD,Keyboard
1绪论
随着时代科技的迅猛发展,微电子学和计算机等现代电子技术的成就给传统的电子测量与仪器带来了巨大的冲击和革命性的影响。
常规的测试仪器仪表和控制装置被更先进的智能仪器所取代,使得传统的电子测量仪器在远离、功能、精度及自动化水平定方面发生了巨大变化,并相应的出现了各种各样的智能仪器控制系统,使得科学实验和应用工程的自动化程度得以显著提高。
作为重量测量仪器,智能电子秤在各行各业开始显现其测量准确,测量速度快,易于实时测量和监控的巨大优点,并开始逐渐取代传统型的机械杠杆测量称,成为测量领域的主流产品。
本文介绍了基于AT89C51单片机的电子计价秤的软硬件设计方法,重点在于人机交互界面的设计。
该方法是由应变片式传感器组成的全桥电路感应物料重量后转换成与之成线性关系的电压,再经过信号放大等处理后输入AT89C51单片机进行处理,且通过LCD液晶时时显示,并设计了适当的键盘以控制称重的过程[1]。
1.1本设计的任务和主要内容
主要任务为数据的显示与控制,采用键盘来控制数据的显示,采用12864LCD来显示,以及如何来控制显示,在屏幕上达到什么样的效果进行描述。
⑴12864LCD显示欢迎界面
⑵显示商品的名称、单价、重量以及总计
⑶设计按键,以控制不同物品称重之间的切换
⑷显示所有商品的价钱总额及致谢界面
1.2基本工作原理及原理框图
当被称物体放置在秤体的秤台上时,其重量便通过秤体传递到称重传感器,传感器随之产生力-电效应,将物体的重量转换成与被称物体重量成一定函数关系(一般成正比关系)的电信号(电压或电流等)。
此信号由放大电路进行放大、经滤波后再由模/数(A/D)器进行转换,数字信号再送到微处器的CPU处理,CPU不断扫描键盘和各种功能开关,根据键盘输入内容和各种功能开关的状态进行必要的判断、分析、由仪表的软件来控制各种运算。
运算结果送到内存贮器,需要显示时,CPU发出指令,从内存贮器中读出送到显示器显示[2]。
一般地信号的放大、滤波、A/D转换以及信号各种运算处理都在仪表中完成。
原理框图如图1-1。
图1-1原理框图
2单片机最小系统扩展
2.1单片机的引脚功能
AT89C51单片机都采用DIP40引脚的双列直插封装方式。
图2-1为引脚排列图。
但是单片机为了实现功能需要的信号数目不止40个,所以为了解决这一矛盾,一些引脚定义了第二功能,即复
图2-1单片机引脚
用。
引脚说明如下(只介绍主要引脚)[3]:
P0口(P0.0~P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动8个LSTTL负载。
P1口(P1.0~P1.7)是一个带有内部提升电阻的8位准双向I/O口。
能驱动(吸收或输出电流)4个LSTTL负载。
P2口(P2.0~P2.7)是一个带有内部提升电阻的8位准双向I/O口。
在访问外部存储器时,它输出高8位地址。
P2口可以驱动(吸收或输出电流)4个LSTTL负载。
P3口(P3.0~P3.7)是一个带有内部提升电阻的8位准双向I/O口。
P3口各位引脚都具有第二功能,如表2-1所示
表2-1P3口线的第二功能
P3口引脚
第二功能
备注
P3.0
RXD
串行数据接收
P3.1
TXD
串行数据发送
P3.2
外部中断0申请
P3.3
外部中断1申请
P3.4
T0
定时器/计数器0计数输入
P3.5
T1
定时器/计数器1计数输入
P3.6
外部RAM写选通
P3.7
外部RAM读选通
2.2存储器扩展原理及设计
本系统由于要存储商品的名称、单价等信息,当商品数量较多时,单片机自身的存储器的存储容量将不能满足系统要求,所以要考虑存储器的扩展[4]。
2.2.1程序存储器的扩展设计
AT89C51应用系统通常为特定功能的专用计算机系统。
在系统调试完后,其软件基本上定型,因此,AT89C51的程序存储器通常由ROM或EPROM或E2PROM电路构成。
其特点是断电以后,内部的程序信息不会丢失,因而提高了系统的可靠性[5]。
AT89C51单片机扩展外部程序存储器的硬件电路如图2-2所示[6]。
图2-2AT89C51单片机外部程序存储器扩展
2.2.2EPROM接口设计
紫外线擦除电可编程只读存储器EPROM可作为AT89C51系列芯片的外部程序存储器,其典型的产品有2716(2K×
8),2764(4K×
8),27128(16K×
8),和27256(32K×
8)等。
这些芯片上均有一个玻璃窗口,在紫外线光下照射5~20分钟左右,存储器中的各位信息均变为1,此时,可以通过相应的编程器将工作程序固化到这些芯片中,2716,2732现在停产了,要买很难、价格又贵[7]。
下面介绍2764EPROM存储器。
2764是一种8K×
8位的紫外线擦除电可编程只读存储器,单一+5V供电,工作电流为100mA维持电流为50mA,读出时间最大为250ns[7]。
2764为28线双列直插式封装,其管脚配置如图2-3所示。
图2-32764管脚配置
A0~A12:
地址线;
D0~D7:
数据输出线;
:
片选线;
编程脉冲输入;
VPP:
编程电源。
2764的5种工作方式如表2-2所示[8]
表2-22764工作方式选
方式
引脚
(20)
(22)
(27)
Vpp
(1)
Vcc
(28)
输出
(11~13)
(15~19)
读
VIL
VIH
DOUT
维持
任意
高阻
编程
Vpp*
DIN
编程校验
编程禁止
3硬件电路的设计
3.1控制键盘的设计择
3.1.1键盘的组合与去抖设计
单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。
⑴独立式按键结构
独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O图3-2为独立式按键电路口线,每个按键的工作不会影响其它I/O口线的状态。
独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。
图3-2中按键输入均采用低电平有效,此外,上拉电阻保证了按键断开时,I/O口线有确定的高电平。
当I/O口线内部有上拉电阻时,外电路可不接上拉电阻[9]。
⑵独立式按键的软件结构
本设计采用独立式键盘组合设计。
作为一个按键从没有按下到按下以及释放是一个完整的过程,也就是说,当我们按下一个按键时,总希望某个命令只执行一次,而在按键按下的过程中,不要有干扰进来,因为在按下的过程中,一旦有干扰过来,可能造成误触发过程,这并不是我们所想要的。
机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来[10]。
其抖动过程如图3-1所示,抖动时间的长短与开关的机械特性有关,一般为4~5ms。
图3-1按键干扰
在触点抖动期间检测按键的通与断状态,可能导致判断出错。
即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。
为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。
采用硬件将会增加单片机的体积和成本,本设计采用软件去抖。
软件上采取的措施是:
在检测到有按键按下时,执行一个5ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态;
同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响
3.1.2与单片机的连接
独立式按键软件常采用查询式结构。
先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序[9]。
图3-2中的I/O口采用P2.5、P2.6、P3.7。
独立式键盘与单片机的连接如图3-2所示
图3-2独立键盘与单片机的连接
3.212864模块设计
3.2.1液晶显示原理
液晶显示器(LCD)是现在非常普遍的显示器。
它具有体积小、重量轻、省电、辐射低、易于携带等优点。
液晶显示器(LCD)的原理与阴极射线管显示器(CRT)大不相同。
LCD是基于液晶电光效应的显示器件。
包括段显示方式的字符段显示器件;
矩阵显示方式的字符、图形、图像显示器件;
矩阵显示方式的大屏幕液晶投影电视液晶屏等[11]。
液晶显示器的工作原理是利用液晶的物理特性,在通电时导通,使液晶排列变得有秩序,使光线容易通过;
不通电时,排列则变得混乱,阻止光线通过。
3.2.2显示器件介绍及其与单片机的连接
(1)12864LCD模块介绍
本设计中我用到的是12864J-1图形液晶显示器,它主要由行驱动器/列驱动器及128*64全点阵液晶显示器组成,可完成图形显示,也可以显示8*4个汉字。
其结构框图如下:
图2-912864J-1结构框图
12864LCD液晶显示模块是128×
64点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接接口,具有8位标准数据总线、6条控制线及电源线。
采用KS0108控制IC[11]。
其管脚介绍如表3-1所示
表3-112864-1,12864-2,12864-5接口说明表
管脚号
管脚
方向
说明
1
VSS
-
逻辑电源地。
2
VDD
逻辑电源+5V。
3
V0
I
LCD调整电压,应用时接10K电位器可调端
4
RS
数据\指令选择:
高电平:
数据D0-D7将送入显示RAM;
低电平:
数据D0-D7将送入指令寄存器执行。
5
R/W
读\写选择:
高电平:
读数据;
写数据。
6
E
读写使能,高电平有效,下降沿锁定数据。
7
DB0
I/O
数据输入输出引脚。
8
DB1
9
DB2
10
DB3
11
DB4
12
DB5
13
DB6
14
DB7
15
CS1
片选择信号,高电平时选择左半屏。
16
CS2
片选择信号,高电平时选择右半屏。
17
/RET
复位信号,低电平有效。
18
VEE
O
LCD驱动,负电压输出,对地接10K电位器
19
LEDA
背光电源,LED+(5V)。
20
LEDK
背光电源,LED-(0V)。
⑵12864模块与单片机的连接
AT89c51单片机的P1口与12864液晶显示器的数据口(DB0-DB7)相连,P2.0与接口E相连,P2.1与接口R\W相连,P2.2与接口DI相连。
图2-1012864LCD模块与单片机的连接
3.3总体工作电路原理图
在总程序中,液晶显示器会先显示已设定好的字符。
之后程序调用A/D转换函数,接收ADC0808转换过的数据,通过单片机P0口传入单片机,单片机P1口与显示器DB0-DB7相连,将数据传入显示器等待显示[12]。
图2-11总体仿真结构图
4软件的设计
4.1键盘控制模块程序设计
图4-1键盘控制流程图
键盘控制程序结构如下:
//判断是否1号键盘按下,显示欢迎界面
if(P25==0)
{
Delay(800);
lcd_init();
Chinese(0,2,table5);
//欢
Chinese(16,2,table5+32);
//迎
Chinese(32,2,table5+64);
//使
Chinese(48,2,table5+96);
//用
Chinese(64,2,table5+128);
//电
Chinese(80,2,table5+160);
//子
Chinese(96,2,table5+192);
//秤
}
//判断是否2号键盘按下,显示计量过程
if(P26==0)
此部分为计量的控制部分,详见4.3节
}
//判断是否3号键盘按下,显示总额界面
if(P37==0)
{
Delay(800);
sum[0]=0;
for(i=1;
i<
=k;
i++)
sum[0]=sum[0]+sum1[i-1];
Chinese(0,0,table7);
Chinese(16,0,table7+32);
Chinese(32,0,table7+64);
Num(0,2,sum[0],0);
4.212864显示模块程序设计
首先初始化LCD显示器,R/W为1进行读操作,此时,E端由高电平条变成低电平,液晶执行命令。
CS1为1,CS2为0选中做半屏,然后显示做半屏内容;
CS1为0,CS2为1选中右半屏进行显示。
如图4-2。
图4-2液晶显示流程图
函数功能:
指令寄存器(IR):
当D/I=1时,在E信号下降沿的作用下,指令码写入IR.
数据寄存器(DR):
当D/I=1时,在E信号的下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7~DB0数据总线.DR和DDRAM之间的数据传输是模块内部自动执行的.
忙标志:
BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.
显示控制触发器:
DFF=1为开显示(DISPLAYON),DDF=0为关显示(DISPLAYOFF)。
XY地址计数器:
XY地址计数器是一个9位计数器。
高三位是X地址计数器,低6位为Y地址计数器,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。
显示数据RAM(DDRAM):
数据为1表示显示选择,数据为0表示显示非选择。
Z地址计数器:
Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。
本设计中的液晶显示程序是被做成一个驱动程序的,然后在主程序中调用,完成液晶显示部分设计要求的,驱动程序包含voidEn_char()、voidString()、voidNum()、voidChinese()等函数。
在主程序中通过特定参数调用这些函数时,这些参数的功能是为了定位显示位置与显示的字符。
在LCD的驱动程序中涉及到的函数如下:
voidlcd_reset();
//LCD复位
voidlcd_onoff(unsignedcharonoff);
//控制显示器开关,onoff==1表示打开,onoff==0表示关闭
voidlcd_init();
//LCD初始化
bitlcd_busy();
//LCD是否为busy状态,return1表示处于忙的状态,return0表示空闲
voidlcd_fill(unsignedcharfill);
//全屏填充,fill==0xFF表示黑屏,fill==0x00表示清屏,其他为相应纹理
voidlcd_setsl(unsignedcharsl);
//设置显示起始行从DDRAM中的sl行开始,用于实现滚屏
voidlcd_setxy(unsignedcharx,unsignedchary);
//设置x[0~127],y[0~7],左上角为(0,0),横轴为x,纵轴为y
voidw_xyd(unsignedcharx,unsignedchary,unsignedcharlcd_data);
//在坐标x[0~127],y[0~7]处写入数据lcd_data
voidEn_char(unsignedcharx,unsignedchary,unsignedcharen);
//在坐标x[0~127],y[0~7]处写入字符en
voidString(unsignedcharx,unsignedchary,unsignedchar*str);
//在坐标x[0~127],y[0~7]处写入字符数组str,暂不支持自动换行
voidNum(unsignedcharx,unsignedchary,unsignedintnum,bitf);
//在坐标x[0~127],y[0~7]处写入数字num,数字大小为[0~65535],f为反白,暂不支持自动换行
voidchinese(unsignedcharx,unsignedchary,unsignedchar*hz);
//在坐标x[0~127],y[0~7]处写入汉字*hz,汉字显示大小为16×
16像素,每个汉字字模为32字节。
4.3总体程序设计
之后程序调用A/D转换函数,接收ADC0808转换过的数据,通过单片机P0口传入单片机,单片机P1口与显示器DB0-DB7相连,将数据传入显示器等待显示。
图4-3主流程图
程序结构为
if(P26==0)//判断是否2号按键按下
k=++k;
if(k==6)//只设置了5个商品,如果超过5个,则返回
k=1;
if(k==1)
显示第一个商品信息;
if(k==2)
显示第二个商品信息;
if(k==3)
显示第三个商品信息;
if(k==4)
显示第四个商品信息;
if(k==5)
显示第五个商品信息;
系统显示的3种界面分别如下:
图4-4主流程图欢迎子界面
图4-5称重计价子界面
图4-6总计及致谢子界面
5总结
AT89C51单片机为核心部件,利用软件系统编程,通过键盘控制和液晶显示不仅实现了设计任务书中对于电子计价秤的基本功能要求和扩展要求,包括:
商品信息存储、商品信息显示、商品价格的输入的显示。
系统设计尽量做到硬件电路简单可靠,充分发挥了A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 相关 论文