学士单片机控制自动售货机_第1页
学士单片机控制自动售货机_第2页
学士单片机控制自动售货机_第3页
学士单片机控制自动售货机_第4页
学士单片机控制自动售货机_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

科技学院2010届本科毕业论文——自动售货机机控制器设计计学科专业:指导教师:学生姓名:学生学号:2010年5月月目录HYPERLINK32HYPERLINK"3.1自动售货货机机货币识别别系系统程序流流程程图IEIE、TMOD置初值,使T0为计数工作方式0,T1为定时工作方式0TH0TH0、TL0、TH1、TL1置初值,启动T0计数器、T1定时器,循环计数R0置初值601是否完成?是否完成?YNN检测检测T0是否有脉冲?NYYT0T0、T1开始计数T1T1计数是否溢出?NYYTH1TH1、TL0重新设置计数初值将TL0将TL0计的数值存入R1、MONEY单元,然后TL0清零识别货币识别货币、累加计数结束图3.1识识别货货币系统驱驱动动程序流程程图图3.2自动售货货机机货物选择择系系统的程序序流流程图本设计中,分别别设设置了价格格分分别为1元、2元、3元不等的货货物,这里里只只列出一元元货货物处理子子程程序的流程程图图如下:图3.2按键键选择择程序流程程图图图3.311元钱钱货物处理理子子程序流程程图图3.3自动售货货机机出货,显显示示花钱数系系统统流程图本设计设设置置了价格分分别别为1元、2元、3元不等的货货物,一共共112种。在通通过按键选选择择物品后,将将将会把产生生的的信号输入入给给8255A的P1的引脚上上,8255接收信号后后,经过处处理理后,将会会在在货物输出出端端产生与其其相相对应的信信号号输出,控控制制所选货物物的的掉出。图3.4出货及及显示示的功能驱驱动动程序流程程图图3.4自动售货货机找钱,显显显示找钱数数系系统流程图图本设计用825555A的PA控制找钱钱,用PB控制LED显示找找钱数,其中能够找找钱货币的的面面值为1元、2元、5元。PA0控制1元,PA1控制2元,PA2控制2元,PA3控制5元。图3.5找钱及及显示示功能驱动动程程序流程图图由找钱系统1图图(图图见附录)我我我们可以看看到到该芯片82255A的CS与8751的P2.6相连连,A0、A1分别与74LLS3733的的3Q、4Q相连。当的3Q、4QQ输输出不同组组合合时,则控控制制选择了82255A的PA、PB、PC口,当取取00时对应PA口输入输输出,当取取001时对应PB口输入输输出,当取取110时对应PC口输入输输出;由于于也也受到P2..6的控制,只只有当P2..6输出为0时,才能片片选到该芯芯片片8255AA。最后我们可以计计算算得出PA、PB、PC及控制口口对应的地地址址分别为BFFF3H、BFF7HH、BFFBHH、和BFFFFH。3.5出错报警警系统流程程图图3.6报警功功能驱驱动程序流流程程图由找钱系统1图图(图图见附录)我我我们可以看看到到该芯片82255A的CS与8751的P2.6相连连,A0、A1分别与74LLS3733的的3Q、4Q相连。这这个已经在在上上一章中已已经经说过了,在在在这里就不不再再画了。当的3Q、4QQ输输出不同组组合合时,则控控制制选择了82255A的PA、PB、PC口,当取取10时对应PC口输入输输出;由于于也也受到P2..6的控制,只只有当P2..6输出为0时,才能片片选到该芯芯片片8255AA。最后我们可以计计算算得出PA、PB、PC及控制口口对应的地地址址分别为BFFF3H、BFF7HH、BFFBHH、和BFFFFH。第四章.系统软软、硬硬件设计实实现现HYPERLINK\l""4.1驱动程序序由于时间关系,本本次毕业设计计的仿真结果果就不再这里里做详细的介介绍了,现列列出各软件的的驱动程序如如下:实现有效投币定定时时30秒以及累加加计数程序序::ORG10000HHMONEY DDAATA 2000HHMOV IE,, #8AHMOV TMMOOD,#04H ;设置T1为定时工作作方式0,T0为计数工作作方式0MOV TH00,,#00HH ;置计数初值值MOV TL00,,#00HHMOV TH11,,#9EHH ;置计数初值值MOV TL11,,#58HHSETB TRR00 ;启动计数器器SETB TRR11 ;启动定时器器MOV R0,,##601LOOP1: DJNZ R0,T11_ENDD ;循环600次,实现30秒计时MOV A,PP33JBC ACCC..5,LPP11LP1: JJBBC TF1,NNEXT ;查询计数溢溢出SJMP LPP11NEXT: MMOV TH1,##9EH ;重新设置计计数初值MOV TL11,,#58HHJMP LOOOPP1T1_END:: MOV R1,TLL0MOV MONNEEY,R11 ;将投入的货货币累加数数存存入MONEEYCLR AMOV TL00,,AMOV TH00,,ARET货物选择系统的的驱驱动程序VULEEQQUU40HMOVA,MOONNEYMOVB,ASJMPKEYYKEY:MOVVRR2,#0FEHH ;设置键码寄寄存器ANLP1,##00F0H ;设置初始扫扫描码MOVA,PP1 ;全扫描行线线CPL A;;取反ANLA,#00FF0H ;屏蔽回扫值值低4位JZKEY3;无键闭合,返返返回LCALLD1100MS;延时10mss去抖动MOVR3,##004H;;设置扫描行行数ORL P11,,#0FH44;位描行线全全置高KEY1: MMOOVP1,R2;逐行扫描键键盘 MOVA,P1;读入状态值值 CPLA;取反 ANLA,#0F0HH;屏蔽状态低低4位 JNZKEYY22 ;有键闭合,转转转键处理 MOVA,R1;无键闭合,继继继续扫描下下一一个按键 RLA ;左移扫描码码,指向下下一一行扫描线线 MOVR2,A DJNZR3,KEY1;逐行扫描未未完成,继继续续 LJMPKEYY33;本轮扫描无无键闭合,返返返回KEY2: MMOOVAA,P1 ;键处理 ORLAA,#0FH ;扫描码与状状态值拼装装成成特征字节节 ANLA,R2 CPLA ;取反,特征征字节变换换成成键位码 MOVVULLEE,A ;保存键位码码 LCALLLKEYPPCCS;用查表法查查找键码WAIT:AANLP11,,#0F0HH;判断键释放放否?MOVAA,,P1ANLAA,,#0F0HHCPLAAJNZWWAAITRETKET3:MMOVVVULE,#0FFHH ;无键闭合,置置置无效码RET查找键码子程序序如如下:KEYPCS::MOVVR4,#10H ;查找键码程程序,社子子按按键码(166个按键)MOOVVR4,#00H ;清除键码计计数器MOOVVDPTTRR,#KEYTTAB ;设置键码表表首址KEYP1:CLRRAAMOOVVCA,@A+DPPTR ;查表CJJNNE A,VULE,KEYP22 ;未找到,转转到下一个个MOVVVUULE,R5 ;找到键位码码,键码装装入入键码寄存存器器VULEMOVREETTKEYP2:INCCR5 ;键码计数器器加1INNCCDPPTTR ;键码表地址址加1DJJNNZRR44,KEYP11 ;未查完16个按键,继继续MOOVVVUULLE,#0FFHH ;无键闭合,置置置无效码REETTKEYTAB ::DB11H ;键码=000H对应应键‘0’DBB21HH;键码=000H对应应键‘1’DBB41HH;键码=000H对应应键‘2’DBB81HH;键码=000H对应应键‘3’DBB12HH;键码=000H对应应键‘4’DBB22HH;键码=000H对应应键‘5’DBB42HH;键码=000H对应应键‘6’DBB82HH;键码=000H对应应键‘7’DBB14HH;键码=000H对应应键‘8’DBB24HH;键码=000H对应应键‘9’DBB44HH;键码=000H对应应键‘A’DBB84HH;键码=000H对应应键‘B’DBB18HH;键码=000H对应应键‘C’DBB28HH;键码=000H对应应键‘D’DBB48HH;键码=000H对应应键‘E’DBB88HH;键码=000H对应应键‘F’MMOOVAA,,R5MOOVV R6,AA ;将选物按键键码存入R66中ANL RR0,#0000H ;R0清零ANL RR1,#0000H ;R1清零*********************************************选择1元钱的货物A********************************************CJNE A,,##00H,,NNEXTBB ;判断是否按按下键‘0’JMP 1YYUUAN*********************************************选择1元钱的货物B********************************************NEXTB: CCJNE A,#011H,NEEXXTC ;判断是否按按下键‘1’JMP 1YYUUAN*********************************************选择1元钱的货物C********************************************NEXTC: CCJNE A,#022H,NEEXXTD ;判断是否按按下键‘2’JMP 1YYUUAN*********************************************选择1元钱的货物D********************************************NEXTD: CCJNE A,#033H,NEEXXTE ;判断是否按按下键‘3’1YUAN: MMOV A,B ;将投入的货货币累加数数存存入寄存器器BBCJNE A,,##01H,,NNEXTAA11 ;判断投入的的货币数是是否否为1元钱MOV R0,,##01H ;选择的货物物数为1个LOOPA1::LLCALLL KEY ;等待是否有有键按下MOV A,RR55CJNE A,,##0FH,,NNEXTAA22 ;按下确定键键,所选货物掉掉出LJMP OUUTTGOODDSSNEXTA2::CCJNE A,#0EEH,VOOIICEA11 ;按下取消键键MOV A,BB ;退还全部的的钱JMP OUUTTMONEEYYVOICEA11::LCALLLL VOICEE ;选择按下其其他键,报报警警JMP LOOOOPA1 ;返回,等到到有键按下下NEXTA1::JJNC NEXTAA3 ;投入的货币币数小于所所选选择商品的的预预设价格JMP OUUTTMONEEYY ;钱全部退还还NEXTA3::LLCALLL KEY ;等待是否有有键按下MOV A,RR55CJNE A,,##0CH,,NNEXTAA44 ;选择一次性性购买2个货物MOV A,BBCJNZ A,,##02H,,NNEXTAA55 ;判断投入的的货币数是是否否为2元MOV R0,,##02H ;将选择的货货物数量值值存存入R0LOOPA2::LLCALLL KEY ;等待是否有有键按下MOV A,RR55CJNE A,,##0FH,,NNEXTAA66 ;按下确定键键,所选货物掉掉出LJMP OUUTTGOODDSSNEXTA6::CCJNE A,#0EEH,VOOIICEA22MOV A,BB ;退还全部的的钱JMP OUUTTMONEEYYVOICEA22::LCALLLL VOICEE ;选择按下其其他键,报报警警JMP LOOOOPA2 ;返回,等到有键按按下NEXTA5::JJNC NEXTAA7 ;投入的货币币数小于所所选选货物的预预设设价格JMP OUUTTMONEEYY ;钱全部退还还NEXTA7::LLCALLL KEY ;等待是否有有键按下MOV A,RR55CJNE A,,##0FH,,NNEXTAA88 ;按下确定键键,所选货物掉掉出MOV A,BBSUBB A,,##02HMOV R0,,##02H ;将选择的货货物数量值值存存入R0MOV R1,,AA ;将找钱数存存入R1LCALL OOUUTMONNEEY ;找钱JMP OUUTTGOODDSS ;所选货物掉掉出NEXTA8::CCJNE A,#0EEH,VOOIICEA33MOV A,BB ;退还全部的的钱JMP OUUTTMONEEYYVOICEA33::LCALLLL VOICEE ;选择按下其其他键,报报警警JMP NEEXXTA7 ;返回,等到到有键按NEXTA4::CCJNE A,#0DDH,NEEXXTA9 ;选择一次性性购买3个货物MOV A,BBCJNE A,,##03H,,NNEXTAA110 ;判断投入的的货币数是是否否为3元MOV R0,,##03H ;将选择的货货物数量值值存存入R0LOOPA3::LLCALLL KEY ;等待是否有有键按下MOV A,RR55CJNE A,,##0FH,,NNEXTAA111 ;按下确定键键,所选货物掉掉出LJMP OUUTTGOODDSSNEXTA111::CJNEE A,#0EEH,VOOIICEA44MOV A,BB ;退还全部的的钱JMP OUUTTMONEEYYVOICEA44::LCALLLL VOICEE ;选择按下其其他键,报报警警JMP LOOOOPA3 ;返回,等到到有键按下下NEXTA100::JNC NEXTAA12 ;投入的货币币数小于所所选选货物的预预设设价格JMP OUUTTMONEEYY ;钱全部退还还NEXTA122::LCALLLL KEY ;等待是否有有键按下MOV A,RR55CJNE A,,##0FH,,NNEXTAA113 ;按下确定键键,所选货物掉掉出MOV A,BBSUBB A,,##03HMOV R0,,##03H ;将选择的货货物数量值值存存入R0MOV R1,,AA ;将找钱数存存入R1LCALL OOUUTMONNEEY ;找钱JMP OUUTTGOODDSS ;所选货物掉掉出NEXTA133::CJNEE A,#0EEH,VOOIICEA55MOV A,BB ;退还全部的的钱JMP OUUTTMONEEYYVOICEA55::LCALLLL VOICEE ;选择按下其其他键,报报警警JMP NEEXXTA122 ;返回,等到到有键按NEXTA9::LLCALLL KEY ;等待是否有有键按下MOV A,RR55CJNE A,,##0FH,,NNEXTAA114 ;按下确定键键,所选货物掉掉出MOV A,BBSUBB A,,##01HMOV R0,,##01H ;将选择的货货物数量值值存存入R0MOV R1,,AA ;将找钱数存存入R1LCALL OOUUTMONNEEY ;找钱JMP OUUTTGOODDSS ;所选货物掉掉出NEXTA144::CJNEE A,#0EEH,VOOIICEA66 MOV A,BB ;退还全部的的钱JMP OUUTTMONEEYYVOICEA66::LCALLLL VOICEE ;选择按下其其他键,报报警警JMP NEEXXTA9 ;返回,等到到有键按下下*************************************************出错报报警**************************************************NEXYM:LLCCALL VOICEE ;报警JMP KEEYY 报警系统的驱动动程程序VOICE: MOV DPTR,,#BFFFFFH ;控制口地址址送数据指指针针MOV A,##880H ;PC输出MOVX @DDPPTR,AA ;将方式控制制字写入82255A控制制口,PC输出MOVX @DDPPTR,##BBFFBHH ;PC口地址送数数据指针MOV A,##001HMOVX @DDPPTR,AA ;PC0引脚输出一一个高电平‘1’,实现报警警功能LCALL DD110MS ;延时10msANL A,##000HMOVX @DDPPTR,AA ;报警取消RETD10M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论