自动售货机系统设计 联系客服

发布时间 : 星期六 文章自动售货机系统设计更新完毕开始阅读

江苏理工学院毕业设计说明书(论文)

XTAL2:振荡器反相放大器的输出端。 2.1.2单片机最小系统设计

单片机最小系统,或者称为最小应用系统,对于AT89S52单片机来说,最小系统一般应该包括:单片机模块、时钟模块及复位模块。

1、时钟模块。时钟电路就像是单片机的心脏,没有时钟电路来驱动单片机,单片机无法执行程序,它为单片机产生时钟信号。原理图如图2-2所示:

图2-2时钟电路图

图2-2中,利用芯片内部振荡电路,在XTAL1,XTAL2的引脚上外接定时元件,内部振荡器便能产生自激振荡。本次设计选择12MHz的晶体,每个机器周期为1us。电容一般选择20PF,本系统电容选择22pF。电容C1,C2的大小对振荡频率有微小影响,可起频率微调作用。

2、复位模块。无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期以上,则CPU就可以响应并将系统复位。复位原理图如图2-3所示:

第 13 页 共 39 页

江苏理工学院毕业设计说明书(论文)

图2-3复位电路

图2-3中,上电后,VCC对电容C1充电,C1端的电流达到最大,此时,电容C1相当于短路,复位端为高电平,单片机自动复位。复位要求RST上加高电平的时间为2个机器周期以上,本系统中晶振为12MHz,则每个机器周期为1us。当电容C1两端的电压达到电源电压时,流过C1的电流变为0,此时复位端降为低电平,单片机开始正常工作。复位时间为:

??R2?C1 (2-1)

由公式(2-1)可知?为1ms,值远大于2us,满足复位要求。

当按下按键S0后,RST直接通过R2和VCC相连,此时复位端RST为高电平,电容C1短路放电,放电完成之后,系统开始正常工作。只要复位端持续高电平两个机器周期以上,就可以保证可靠复位。

2.2按键输入模块

2.2.1 4×4矩阵键盘的工作原理

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。 在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比直接将端口线用于

第 14 页 共 39 页

江苏理工学院毕业设计说明书(论文)

键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。如图2-4为矩阵键盘电路图,列线接P1.4-P1.7,行线接P1.0-P1.3。

图2-4 矩阵键盘电路图

124578*0369#ABCD

图2-5 按键排列

图2-4中,P1.4-P1.7为 4×4 键盘的列扫描线,P1.0-P1.3 为 4×4 键盘的行扫描线。行列式键盘的操作一般完成两个任务,一是检测是否有键被按下,二是识别被

第 15 页 共 39 页

江苏理工学院毕业设计说明书(论文)

按下的键是哪一个。一般会采用行列扫描法,可以同时完成上述两项任务。基本的扫描原理是:先使行扫描线输出高电平,然后读取列扫描线的状态,得到与按键横向位置对应的4位列码;如果是有键被按下时,则对应的列扫描线必然会被读回高电平,如果是无键盘按下时,则读取的列码必定全是0。这也就可以判断有无按键的按下了。一旦检测到有键按下时,还需要有一个延时消除抖动的操作,以消除按键时带有的抖动信号;一般延时在12ms左右即可。延时后,如还能检测到有按键按下,则可确定当前是有键按下,可进入获取键值的操作。获取键值时,采用行列依次扫描的方法。首先使第一行扫描线输出高电平,其它的行扫描线输出低电平,然后读取列扫描线的状态,得到列码;如果本行无键按下,则得到的列码为全0,并扫描下一行;如本行有键按下,则会读取到对应的列码值,并退出扫描,进行键值计算。当第一行扫描没有检测到按键时,则扫描下一行,即使第二行扫描线输出高电平,其它行扫描线输出低电平,其它与前面所述类似。在行列扫描时,可以用一个变量记录下当前扫描的行号,在计算键值时可以利用此行号以及列码得知是哪一行、哪一列上的按键按下了。

2.3输出显示模块

2.3.1 LCD显示模块的设计

为了让顾客看到购物的整个过程,设计添加了LCD显示电路,具体电路如图2-6所示:

图2-6 LCD显示电路

第 16 页 共 39 页