武汉理工大学数电课设自动售货饮料机控制电路的设计与实现.docx
- 文档编号:6293170
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:26
- 大小:1.39MB
武汉理工大学数电课设自动售货饮料机控制电路的设计与实现.docx
《武汉理工大学数电课设自动售货饮料机控制电路的设计与实现.docx》由会员分享,可在线阅读,更多相关《武汉理工大学数电课设自动售货饮料机控制电路的设计与实现.docx(26页珍藏版)》请在冰豆网上搜索。
武汉理工大学数电课设自动售货饮料机控制电路的设计与实现
课程设计任务书
学生姓名:
张亚男专业班级:
通信1104班
指导教师:
刘可文工作单位:
信息工程学院
题目:
自动售货饮料机控制电路的设计与实现
初始条件:
本设计既可以使用计数器、比较器、脉冲发生器等和必要的门电路等,也可以使用单片机系统构建。
用数码管、LED灯显示结果。
要求完成的主要任务:
(包括课程设计工作量及技术要求,以及说明书撰写等具体要求)
1、课程设计工作量:
1周。
2、技术要求:
1)售货机只接受5角和1元的硬币,可以用按钮代替硬币的投入。
投入硬币的总金额用两位数码管显示,最大投入金额为9.5元。
2)售货机可以自动出售3种饮料,售价分别是0.5元,1元和1.5元。
当顾客完成投币后,根据投入金额,各饮料对应的LED将亮起(如投入1元硬币,0.5元和1元饮料的LED亮起,表示可以购买0.5元或1元饮料)。
3)顾客根据自身需要按下各饮料对应的按钮,每按一次掉出一瓶饮料,两位数码管显示剩余金额,LED继续指示可购饮料的种类;
4)顾客按下“找零”按钮将使机器发出找零信号,两位数码管清零。
5)确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。
3、查阅至少5篇参考文献。
按《武汉理工大学课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
时间安排:
1、2013年5月16日,布置课设具体实施计划与课程设计报告格式的要求说明。
2、2013年6月27日至2013年6月29日,方案选择和电路设计。
3、2013年6月30日至2013年7月3日,电路调试和设计说明书撰写。
4、2013年7月5日,上交课程设计成果及报告,同时进行答辩。
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
本文详细介绍了自动售货饮料机系统的方案设计、硬件选择、软件规划和编写,并重点描述了自动售货机系统的工作原理、系统设计、软件编程的思路。
该系统以单片机STC89C52芯片为核心,采用集中控制方式实现了对自动售货饮料机全过程的自动控制。
本系统选择独立式键盘按键作为投币和货物选择端,用数码管实现了投币总数和余额的显示功能。
此外,系统程序采用keil软件进行程序的编写和编译,并用Proteus软件进行仿真,最后根据原理电路焊接实物并调试。
关键词:
自动售货饮料机STC89C52数码管显示Proteus仿真
Abstract
Thispaperdescribesavendingmachinesystemdesign,hardwareselection,softwareplanningandpreparation,anddescribesthefocusoftheworkvendingmachinesystemtheory,systemdesign,softwareprogrammingmentality.STC89C52inthesystemasthecorechip,realizestheautomaticcontrolofthevendingmachine’sentireprocessbyusingthecentralizedcontrolmode.Thestand-alonekeyboardkeysarechosetoinsertcoinsandchoosethegoodsside,theNixietubeisusedtorealizethefunctionofshowingthetotalnumberofinsertedcoinsandremainingsum.Inaddition,thesystemprogramusingkeilsoftwaretoprepareandcompileprocedures,andProteussoftwareisusedforsimulation.Atlast,thematerialobjectisweldedanddebuggedaccordingtotheschemacircuit.
Keywords:
TheVendingMachinesSTC89C52DigitalDisplayProteusSimulation
1总体方案设计
根据设计要求,自动售货饮料机主要由四个模块构成,即投币模块、选择购买模块、找零模块和显示模块(余额显示和可购买类型指示灯显示)。
按照此思路,可以用数字芯片设计,也可以用单片机系统设计,两种设计方案如下。
1.1方案比较选择
方案1:
电路从两部分输入,第一部分通过开关闭合模拟投币,投币后进入计数器74LS161和二进制全加器74LS283进行累加,通过数码管显示投币总值。
再通过数值比较器74LS85比较可以购买不同价格的饮料类型。
另一部分通过开关闭合模拟选择饮料,选择货物后用编码器和数码管显示饮料价格,最后将投币总值和饮料价格一起通过减法器,做差值后显示。
原理框图如图1-1所示。
图1-1方案一原理框图
方案2:
用单片机实现自动售饮料功能,通过编写程序来控制数码管上金额的显示和各种价格的饮料对应的LED灯显示,通过按键的操作来实现投币,买饮料和找零。
原理框图如图1-2所示。
投币
图1-2方案二原理框图
分析得出,方案一和方案二都可行。
但是,方案一需要使用74LS161,74LS283,74LS85等芯片,电路组成比较复杂,焊接电路花费的时间较长,不容易做出实物。
而方案二使用单片机思路清晰,电路简单易焊接。
综合考虑,我选择方案二。
1.2实现自动售货饮料机功能的总体思路
采用单片机系列中的STC89C52所组成的单片机最小系统作为中央控制元件。
投币模块:
用端口P1.0和P1.1作为投币输入端,分别表示投入0.5元和1.0元。
选择购买模块:
用端口P1.2、P1.3和P1.4作为选择购买输入端,分别表示购买0.5元、1.0元和1.5元的饮料。
找零模块:
用端口P1.7作为找零输入端。
显示模块:
用端口P0.5、P0.6和P0.7作为可购买指示输出端,分别表示可购买0.5元、1.0元和1.5元的饮料;用端口P2.0-P2.7作为显示输出端,连接数码管显示余额。
2硬件单元电路设计
2.1中央控制单元---单片机最小系统
2.1.1STC89C52的介绍
STC89C52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制作技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
其引脚图如下图所示。
图2-1STC89C52引脚图
STC89C52RC引脚功能说明:
VCC(40引脚):
电源电压
VSS(20引脚):
接地
P0端口(P0.0~P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。
此时,P0口内部上拉电阻有效。
在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流(
)。
在对FlashROM编程和程序校验时,P1接收低8位地址。
P2端口(P2.0~P2.7,21~28引脚):
P2口的基本功能和P1端口相同。
在访问外部程序存储器和16位地址的外部数据存储器时,P2送出高8位地址。
在访问8位地址的外部数据存储器时,P2口引脚上的内容在整个访问期间不会改变。
在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7,10~17引脚):
P3口的基本功能和P1端口相同。
在对FlashROM编程或程序校验时,P3还接收一些控制信号。
RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/
(30引脚):
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(
)也用作编程输入脉冲。
(29引脚):
外部程序存储器选通信号(
)是外部程序存储器选通信号。
当AT89C51RC从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而访问外部数据存储器时,
将不被激活。
/VPP(31引脚):
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
注意加密方式1时,
将内部锁定位RESET。
为了执行内部程序指令,
应该接VCC。
在Flash编程期间,
也接收12伏VPP电压。
XTAL1(19引脚):
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2(18引脚):
振荡器反相放大器的输入端。
2.1.251系列单片机最小系统的介绍
单片机最小系统是能补足单片机工作的最简单电路,它由单片机、电源、晶体振荡器、复位电路等构成。
它是本系统的处理单元也是控制单元,负责处理信号、外设的接口与控制,同时它也是所有软件的载体。
对51系列单片机来说,最小系统一般应该包括:
单片机、时钟电路、复位电路、输入/输出设备等。
51系列单片机最小系统见下图。
图2-251系列单片机最小系统
时钟电路:
XTAL1(19脚):
芯片内部振荡电路输入端。
XTAL2(18脚):
芯片内部振荡电路输出端。
XTAL1和XTAL2是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。
图2-2中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。
一般来说晶振可以在1.2~12MHz之间任选,甚至可以达到24MHz或者更高,但是频率越高功耗也就越大。
在本实验套件中采用的11.0592M的石英晶振。
和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。
当采用石英晶振时,电容可以在20~40pF之间选择(本实验套件使用30pF)。
复位电路:
在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。
5l系列单片机的复位引脚RST(第9管脚)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
复位操作通常有两种基本形式:
上电自动复位和开关复位。
图2-2中所示的复位电路就包括了这两种复位方式。
上电瞬间,电容两端电压不能突变,此时电容的负极和RESET相连,电压全部加在了电阻上,RESET的输入为高,芯片被复位。
随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。
并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。
一般来说,只要RST管脚上保持10ms以上的高电平,就能使单片机有效的复位。
图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替。
EA/VPP(31脚)的功能和接法:
51单片机的EA/VPP(31脚)是内部和外部程序存储器的选择管脚。
当EA保持高电平时,单片机访问内部程序存储器;当EA保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。
在本实验套件中,EA管脚接到了VCC上,只使用内部的程序存储器。
P0口外接上拉电阻:
51单片机的P0端口为开漏输出,内部无上拉电阻。
所以在当做普通I/O输出数据时,由于V2截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。
2.2投币单元
用端口P1.0和P1.1作为投币输入端,分别表示投入0.5元和1.0元。
原理电路图如图2-3所示。
图2-3投币单元原理电路
如图所示,KEY_5为投入0.5元的按键开关,与端口P1.0相接。
KEY_10为投入1.0元的按键开关,与端口P1.1相接。
P1.0和P1.1初始置为高电平1,按下开关瞬间,接地置为低电平0,表示投入对应的硬币。
2.3选择购买单元
用端口P1.2-P1.4作为选择购买输入端,分别表示购买0.5元、1.0元和1.5元的饮料。
原理电路图如图2-4所示。
图2-4选择购买单元原理电路
如图所示,KEY_buy5、KEY_buy10和KEY_buy15分别为购买0.5元、1.0元和1.5元饮料的按键,分别与端口P1.2-P1.4相连。
初始置为高电平1,按下按键瞬间,接地置为低电平0,表示购买对应金额的饮料。
2.4找零单元
用端口P1.7作为找零输入端。
原理电路图如图2-5所示。
图2-5找零单元的原理电路
如图所示,KEY_getchange表示找零,与端口P1.7相接。
P1.7初始置为高电平1,按下按键瞬间,接地置为低电平0,表示找零信号。
2.5显示单元
2.5.1可购买类型指示灯显示
用端口P0.5-P0.7作为指示灯显示输出端,分别连接LED灯指示0.5元、1.0元和1.5元的饮料可以购买。
原理电路图如图2-6所示。
图2-6可购买类型指示灯显示单元原理电路
如图所示,LED_A、LED_B、LED_C分别用来指示0.5元、1.0元和1.5元的饮料可以购买,分别与端口P0.5-P0.7相接,每个LED灯加一个100欧姆的限流电阻,然后接VCC。
P0.5-P0.7初始置为高电平1,此时LED灯截止,为熄灭状态。
当按键输入后经程序控制使P0.5、P0.6或P0.7为低电平时,对应的LED灯导通,为点亮状态。
2.5.2余额显示
用端口P2.0-P2.7作为余额显示输出端,连接译码器分别驱动两个数码管共同显示余额。
原理电路图如图2-7所示。
图2-7余额显示单元原理电路
一、元件选取:
显示元件选择了两个一位共阳数码管,并用74LS47译码器作为驱动。
二、元件介绍:
1、74LS47译码器
74LS47是BCD-7段数码管译码器/驱动器,74LS47的功能用于将BCD码转化成数码块中的数字,通过它解码,可以直接把数字转换为数码管的显示数字。
74LS47为低电平作用。
管脚图如图2-8所示。
图2-874LS47引脚图
引脚功能:
(1)LT:
试灯输入,是为了检查数码管各段是否能正常发光而设置的。
当LT=0时,无论输入A3,A2,A1,A0为何种状态,译码器输出均为低电平,也就是七段将全亮,若驱动的数码管正常,是显示8。
(2)BI:
灭灯输入,是为控制多位数码显示的灭灯所设置的。
当BI=0时,不论LT和输入A3,A2,A1,A0为何种状态,译码器输出均为高电平,使共阳极数码管熄灭。
(3)RBI:
灭零输入,它是为使不希望显示的0熄灭而设定的。
当对每一位A3=A2=A1=A0=0时,本应显示0,但是在RBI=0作用下,使译码器输出全为高电平。
其结果和加入灭灯信号的结果一样,将0熄灭。
(4)RBO:
灭零输出,它和灭灯输入BI共用一端,两者配合使用,可以实现多位数码显示的灭零控制。
74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用,表2-1列出了74LS47的真值表,表示出了它与数码管之间的关系。
表2-174LS47真值表
/
DCBA
abcdefg
说明
0
X
1
XXXX
0000000
试灯
X
X
0
XXXX
1111111
熄灭
1
0
0
0000
1111111
灭零
1
1
1
0000
0000001
0
1
X
1
0001
1001111
1
1
X
1
0010
0010010
2
1
X
1
0011
0000110
3
1
X
1
0100
1001100
4
1
X
1
0101
0100100
5
1
X
1
0110
1100000
6
1
X
1
0111
0001111
7
1
X
1
1000
0000000
8
1
X
1
1001
1001100
9
2、七段显示数码管
七段发光二极管是多种显示器中的一种,它可以直接显示出译码器输出的十进制数。
七段发光二极管显示器有共阳接法和共阴接法两种。
共阳接法就是把发光二极管的阳极都连在一起接到高电平上,输入低电平有效。
七段共阳显示器的外引线排列图和内部原理图如下。
图2-9数码管外引线排列图图2-10共阳数码管内部原理图
三、原理分析:
如图2-7所示,驱动整数部分数码管显示的译码器输入端A1-D1分别与单片机的端口P2.4-P2.7相接,驱动小数部分数码管显示的译码器输入端A2-D2分别与单片机的端口P2.0-P2.3相接。
编写程序控制端口P2.0-P2.7,并通过译码器驱动数码管显示对应的余额。
在实际电路中,译码器和数码管的对应端口间需加限流电阻,由于实际电路中VCC为5V,而发光二极管的工作电压一般在2V左右,故在实物焊接中,我选择用300欧姆的电阻作为限流电阻。
2.6原理总图
用中央控制单元--单片机最小系统控制投币模块,选择购买模块,找零模块和显示模块,设计出整体原理图如图2-11。
图2-11整体原理图
3软件设计
3.1软件简介
3.1.1Keil简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
3.1.2Proteus简介
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
Proteus软件具有其它EDA工具软件(例:
multisim)的功能。
这些功能是:
(1)原理布图
(2)PCB自动或人工布线
(3)SPICE电路仿真
另外,Proteus还有以下功能
(1)互动的电路仿真,用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
(2)仿真处理器及其外围电路:
可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。
还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。
配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。
其功能模块有4部分组成:
智能原理图设计(ISIS);完善的电路仿真功能(Prospice);Prospice混合仿真;独特的单片机协同仿真功能(VSM)
在Proteus绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在Proteus的原理图中看到模拟的实物运行状态和过程。
Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。
前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。
它的元器件、连接线路等却和传统的单片机实验硬件高度对应。
这在相当程度上替代了传统的单片机实验教学的功能,例:
元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。
课程设计、毕业设计是学生走向就业的重要实践环节。
由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台
使用Proteus软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 武汉理工大学 数电课设 自动 售货 饮料机 控制电路 设计 实现