全自动豆浆机课程设计报告单片机原理及应用_第1页
全自动豆浆机课程设计报告单片机原理及应用_第2页
全自动豆浆机课程设计报告单片机原理及应用_第3页
全自动豆浆机课程设计报告单片机原理及应用_第4页
全自动豆浆机课程设计报告单片机原理及应用_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

————长安大学单片机课程设计PAGE2《单片机原理及应用》课程设计报告题目全自动豆浆机学院(部)电子与控制工程学院专业电气工程及其自动化班级学生姓名指导教师时间2010.12.27-2011.1.7

任务书:全自动豆浆机(一)功能介绍全自动家用豆类和谷物处理机(即全自动豆浆机)具有按预设模式自动粉碎谷物、加热功能、防止溢出、处理完毕报警等基本功能。一般可以处理如豆类、玉米、其他五谷杂粮、蔬菜等多种食品。全自动家用豆类和谷物处理机的处理食品的过程通常为:加热——粉碎1——加热——粉碎2——加热——完成报警,整个加工过程的进行按时间控制。由于食品原料的物理特性不同,在加工处理时采用不同的加工(过程)模式,其主要区别在于加热和粉碎时间的长短不同。在工作过程中,被加工的食品液体被限定在某一个给定的液位范围内,当液体加热时泡沫达到溢出液位时,停止加热,待脱离溢出液位区时继续加热。(二)设计参数(1)电机5W24VDC(2)加热器500W220VAC(3)加热容器1.25升(4)电力供应:220VAC(三)设计要求 (1)实现多模式选择。被选中的模式用LED显示器表明(2)实现不同模式下的加工过程:加热——粉碎1——加热——粉碎2——加热——完成报警,整个加工过程的进行按时间控制,时间自定(3)液位检测和控制:使被加工的食品液体限定在某一个给定的液位范围内,当液体溢出容器时,报警并断电。(4)设计系统各个部分的工作电源。摘要:1课设制作的全自动豆浆机控制电路,能实现的功能如下:一是:它能实现三种模式选择;并且模式,一次加热时间,一次粉碎时间依次在前三个数码显示器上上显示。选择模式完成后,按照规定的时间完成加热——粉碎1——加热——粉碎2——加热——完成报警整个加工过程。加热和粉碎状态分别用P3.6和P3.7口接发光二极管模拟。二是:它能实现烧干,液体溢出容器的的优先级断电报警和加热时水泡超出液位时的停止加热,延时等待水位下降后继续加热的液位控制功能。三是:扩展部分。它扩展实现了计时功能,用数码管的后三位显示。计时的目的是看在已选的模式下,看距离全过程完成还有多长时间;还可以通过显示的时间判断,报警是中途烧干,液体溢出容器的报警还是工作全过程结束的报警,有一定智能性。四是:它能在上电后或复位后显示654321六位数字。其实可以设计实现显示任意六位数字或者能显示出的字母。2全自动豆浆机控制电路各模块功能实现的方法如下:一是:模式的选择通过键盘扫描的方法,通过键盘按键1,2,3来选择。二是:烧干,液体溢出容器功能采用外部事件中断(INTO)实现,设为高优先级的中断。加热液位控制功能也采用外部事件(INTI)中断实现,设为低优先级。三是:计数显示,模式显示,加热时间,粉碎时间的显示,报警并亮报警灯,都采用动态扫描的方法实现。四是:工作过程中的加热时间,粉碎时间均采用定时中断(TR0)的方式实现。前言:豆浆营养价值丰富,需求量很大。那么提高豆浆机的智能化和自动化是非常必要的,以节俭成本和保障它工作时的安全性。该论文设计的豆浆机是基于单片机系统的控制制作的。主要通过编程烧入单片机芯片,然后软硬件结合达到制作要求。论文的附录中配有程序和原理总图,及元件清单。表一:单片机各引脚作用说明引脚作用P0口显示输出口P2口键盘连接口P1.1,P1.2,P1.3数码管和报警控制端P3.2烧干和溢出容器中断口P3.3液位控制中断口P3.6加热模拟输出口P3.7粉碎模拟输出口目录方案分析和论证6模式选择模块6加热粉碎完成报警模块6液位控制模块6计时模块6设计各个部分的工作电源6软硬件调试12软件调试与仿真12硬件调试结果16上电和复位后的界面.15不同工作模式下的调试16烧干和液体溢出容器的调试17超出液位的调试18调试过程中出现的问题及解决方案20参考书目24总结20附录21原理总图21总程序22元件清单及元件功能23方案分析与论证:模式选择模块:方案一:键盘选择模式方法。通过按下键的键值判断,来跳转到不同的模式。键盘有九个键,最多可以设计九中模式,设计时设计三种模式即可。该方案可行。方案二:定时计数模式方法。设计一个三循环的计数。通过按一下,外部给单片机一个低电平,计数一次。按两下,计数加二,按三下计数加三。按四下后回到按一下的状态。然后通过计数后的数值来选择不同的模式。该方案可行。方案选择:模式选择模块选择方案一,由于板上有键盘,可以加以运用。计数口可以留着扩展外部事件中断用。总体来讲,两种方案都挺好。、矩阵式键盘实现的模式选择框图如图1加热粉碎完成报警模块:方案一:加热和粉碎时都有一定的时间,用延时实现。方案二:加热和粉碎需要的时间可以用定时实现。方案选择:选择方案二,因为加热和粉碎的时间需要用动态扫描的方式显示出来,因此定时可以实现加热和粉碎时的显示,而延时方式不行。液位控制模块:液位控制模块可用外部事件中断方式实现。烧干,液体溢出容器功能采用外部事件中断(INTO,P3.2)实现,设为高优先级的中断。加热液位控制功能也采用外部事件(INTI,P3.3)中断实现,设为低优先级。加热粉碎完成报警及液位控制模块的框图如图2a,2b,2c。扩展计时模块:计时用来动态计量在某种模式下工作了多久,以此来观察还需要多久完成全过程。并且工作过程中有两个报警的状态,由计时的时间大概可以判断属于那种情况。计时还可以检测豆浆机工作的时间是否正常。方案一:正计时。方案二:倒计时。方案选择:两种方案均可,本设计采用的是正计时。计时模块的框图如图3a,3b.设计各个部分的工作电源:豆浆机的加热和粉碎部分用单片机的输出口控制继电器的开与关来实现,单片机P3.6输出为高电平时,使外部电路接通,220v的电压接在加热电阻上;单片机P3.7输出为高电平时,继电器控制外部变压电路闭合,使220v的电源通过变压和滤波得到电动机需要的25v直流电。开始开始置置P2为输入有按键按下? N有按键按下?Y延时延时20ms消抖 Y有按键按下?有按键按下?按键识别按键识别按键释放?按键释放?Y延时延时20ms消抖Y按键释放?按键释放?Y选择模式1KEY1按下选择模式1KEY1按下?N选择模式2KEY2按下选择模式2KEY2按下?N选择模式3KEY3按下选择模式3KEY3按下?NRETRET图1,矩阵式键盘实现的模式选择框图开始开始定时加热定时加热定时粉碎定时粉碎定时加热定时加热定时粉碎定时粉碎定时加热定时加热完成报警RET完成报警RET RETRETRETRETRETRET图2,加热粉碎完成报警及液位控制模块的框图a加热超出液位子框图:加热时是否超液位 加热时是否超液位中断,停止加热,延时适当时间Y中断,停止加热,延时适当时间返回继续加热返回继续加热图2,加热粉碎完成报警及液位控制模块的框图b工作时时烧干或者液体溢出容器子框图工作时时烧干或者液体溢出容器工作时时烧干或者液体溢出容器RET'中断,断电,并报警RET'中断,断电,并报警Y 图2,加热粉碎完成报警及液位控制模块的框图c开始开始设置显示起始位置设置显示起始位置取显示数据取显示数据查显示数据字型码查显示数据字型码显示显示数据是否显示完 数据是否显示完 NYRETRET图3,显示子程序框图a开始开始显示区初始化显示区初始化定时一秒,并调用显示程序定时一秒,并调用显示程序末位加一末位是不是9 N末位加一末位是不是9 Y末位清零,判断倒数第二位是不是不6末位清零,判断倒数第二位是不是不6倒数第二位加一 N倒数第二位加一Y倒数第二位清零,倒数第三位加一倒数第二位清零,倒数第三位加一如图3,计时模块的框图b开始开始设置TMOD设置TMODTH0,TL0置初值TH0,TL0置初值0 允许定时器工作允许定时器工作等待,并调用正计时显示程序及模式显示程序定时器是否溢出等待,并调用正计时显示程序及模式显示程序定时器是否溢出 N YRET 图4定时程序RET总框图如下:开始开始主程序初始化主程序初始化调用显示程序,初始化显示654321调用显示程序,初始化显示654321调用键盘扫描程序,有键按下?调用键盘扫描程序,有键按下? NY选择相应模式,并显示。同时显示加热和粉碎的时间及调用正计时程序选择相应模式,并显示。同时显示加热和粉碎的时间及调用正计时程序 中断返回调用加热粉碎程序,是否有中断调用加热粉碎程序,是否有中断执行烧干和溢出容器中断程序执行超液位中断程序Y Y执行烧干和溢出容器中断程序执行超液位中断程序 N完成报警,调用所有显示程序完成报警,调用所有显示程序 RETRETRET软硬件调试:RET软件调试模块:1,上电和复位时的仿真:上电和复位后,设置数码管显示为654321.2,选择模式一的仿真:选择模式一,第一位数码管显示1,第二位代表加热三分钟,第三位代表粉碎你三分钟。后三位是正计时。3,选择模式2的仿真选择模式二,第一位数码管显示2,第二位代表加热4分钟,第三位代表粉碎4分钟。后三位是正计时。4,选择模式三时的仿真选择模式三,第一位数码管显示3,第二位代表加热5分钟,第三位代表粉碎你5分钟。后三位是正计时。5,超出液位时的仿真超出液位后,加热停止,下面开关闭合表示超液位。6,烧干和溢出容器的仿真上面开关闭合表示烧干或者液体溢出容器,此时,停止加热和粉碎,报警并且报警灯亮。7,模式一完成报警时的仿真由图可知,选择的模式一,加热三分钟,粉碎三分钟。所用时间刚好是计时的45分钟,与理论值一致。硬件调试:1模式一完成的状态2,上电后和复位后的初始状态3,模式一的工作状态5,模式三的工作状态4,超出液位的状态6,模式二的工作状态烧干或者液体溢出容器的状态调试出现的问题及解决方案:1,键盘的程序按原理图上接时发现,按键和对应键值是混乱的,最后通过测试发现,原理图有误。按照正确的接法编程就可以了。2,问题:中断执行后不能返回到主程序?解决方案:将中断程序紧跟放在主程序后面就可以了。3,问题:中断时,返回的不是原来的状态?解决方案:因为中断里面的程序改变了主程序里面的端口状态,所以返回时不时原来的状态。需要对影响主程序的量进行保护和还原就行了。4,问题:通过键盘选择某模式,复位后,必须复位后的瞬间选择其它模式,否则就无法选择其他模式了?解决方案:这是因为键盘扫描程序里没有对无按键时的状态进行操作。让无按键时,执行重新扫描键盘即可。5,动态显示问题?解决方案:采用定时来加热和粉碎,并在里面调用显示程序。否则,不能满足动态显示的要求。总结:此次单片机课程设计,收益匪浅,是原创作品。Wave和protuse是个非常好的工具用来基于单片机的编程和仿真。该课设联系生活且具有趣味性,把理论知识应用到实践,大大的提高了动手能力。过程中,遇到一些问题,运用单步跟踪寻找错误及向老师同学讨论,最终问题都解决了。此次课设相对完成的比较早,做出来实物的心情是激动的。参考书目:单片机原理及接口技术段晨东附录1元件明细元器件数量备注电阻31K电阻45.1K电阻28K独石电容60.1uF独石电容230PF电解电容110Uf25V51单片机实验板189C52芯片1MAX232芯片174LS245芯片274LS138芯片1DS18B201三极管90122PNP二极管IN40011数码管2三位八段共阴继电器1晶振111.0592MHz芯片座6电源座1三脚5V通信插座1CON232电源适配器1通讯电缆1微型按钮开关10实验插板1单排插针若干双排插针若干短路块若干导线若干

附录2:实物总原理图附录三:程序清单ORG0000HLJMPMAINORG0003HLJMPP_T0ORG0013HLJMPP_T1ORG0030HMAIN:MOVSP,#60H;开辟栈区CLRIT0;INT0低电平触发CLRIT1;INT1低电平触发 SETBEA;开CPU中断SETBEX0;允许INT0中断SETBEX1;允许INT1中断SETBPX0;设置INT0为高优先级CLRPX1;设置INT1为低优先级CLRP3.6;加热指示灯清零CLRP3.7;粉碎指示灯清零MOV20H,#06HMOV21H,#05HMOV22H,#04HMOV25H,#03HMOV26H,#02HMOV27H,#01H;选择模式前的显示初始化LCALLDSPLY1;显示前三位LCALLDSPLY2;显示后三位LCALLSCAN_KEYB;调用键盘扫描程序MOV25H,#00HMOV26H,#00HMOV27H,#00H;选择模式后的,显示部分初始化MOVA,R5;根据扫描结果R5的值来选择模式CJNEA,#01H,NEXT1;是否为模式一LCALLS1_PRESS;调用模式显示,加热时间和粉碎时间显示程序LLCALLLOOP6;调用正计时程序LCALLLOOP4;调用加热粉碎完成报警子程序RETNEXT1:CJNEA,#02H,NEXT2LCALLS2_PRESSLCALLLOOP6LCALLLOOP4;模式二,同上RETNEXT2:CJNEA,#3,NEXT3LCALLS3_PRESSLCALLLOOP6LCALLLOOP4;模式三,同上NEXT3:RETORG0100H;烧干和溢出容器子程序P_T0:PUSHACC;保护现场PUSHPSWCLRP3.6;停止加热CLRP3.7;停止粉碎LCALLALARM;调用报警程序POPPSW;恢复现场POPACCRETI;中断返回ORG0200H;超液位中断程序P_T1:CLREA;关中断PUSHACCPUSHPSWSETBEA;开中断SETBRS0把工作寄存器切换到1区,避免中断处理程序CLRP3.6;停止加热CLRP3.7;停止粉碎LCALLDL1MIN;延时让液位下降SETBP3.6;恢复中断前的状态CLREA;关中断POPPSW;保护现场POPACCSETBEA;开中断RETIS1_PRESS:MOV20H,#01H;模式一,前三位数码管显示的初始化MOV21H,#03HMOV22H,#03HLCALLDSPLY1;调用显示前三位的显示程序RETS2_PRESS:MOV20H,#02H;模式二MOV21H,#04HMOV22H,#04HLCALLDSPLY1RETS3_PRESS:MOV20H,#03H;模式三MOV21H,#05HMOV22H,#05HLCALLDSPLY1RETDSPLY1:MOVR0,#20H显示数码管前三位的显示程序MOVR2,#00HREDO:ACALLDISPINCR2MOVA,R2INCR0XRLA,#03HJNZREDORETDSPLY2:MOVR0,#25H;显示数码管后三位的显示程序MOVR2,#03HREDO2:ACALLDISPINCR2MOVA,R2INCR0XRLA,#06HJNZREDO2RETDISP:MOVP1,R2;显示子程序MOVDPTR,#LED_SEGMOVA,@R0MOVCA,@A+DPTRMOVP0,ALCALLDL1MSRETLED_SEG:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;0~9的数码管的字型编码LOOP6:LCALLDL1S正计时程序,定时1SMOVA,27HCJNEA,#09H,GOON1;判断末位是不是9MOV27H,#00HMOVA,26H;末位清零,倒数第二位加一CJNEA,#05H,GOON2;判断倒数第二位是不是5MOV26H,#00HINC25H;倒数第二位清零,倒数第三位加一RETGOON1:INC27H;末位加一RETGOON2:INC26HRETDL20MS:MOVTMOD,#01H;定时20MS的子程序MOVTH0,#0DBHMOVTL0,#00HSETBTR0CONT1:JBCTF0,OVERF1SJMPCONT1OVERF1:RETLOOP4:豆浆机工作全过程的子程序LCALLJIARELCALLFENSUILCALLJIARELCALLFENSUILCALLJIARECLRP3.6CLRP3.7LCALLALARMRETJIARE:MOV23H,21H;加热子程序,通过21H的值来控制加热的时间CLRP3.7SETBP3.6LOOP1:LCALLDL1MINDJNZ23H,LOOP1RETFENSUI:MOV24H,22H;粉碎子程序,通过22H的值来控制粉碎的时间CLRP3.6SETBP3.7LOOP2:LCALLDL1MINDJNZ24H,LOOP2RETALARM:;报警子程序LOOP5:MOVR1,#20MOVA,#06HMOVP1,A;控制使蜂鸣器响LCALLDL1MSLCALLDL1MS;延时稳定显示INCAMOVP1,A;显示报警灯LCALLDL1MSLCALLDL1MSLCALLDSPLY1LCALLDSPLY2DJNZR1,LOOP5RETDL1MIN:MOVR7,#60;定时一分钟的子程序DL1:LCALLLOOP6DJNZR7,DL1RETDL1MS:MOVR1,#200;延时1MS的子程序DL2:NOPNOPNOPDJNZR1,DL2RETDL1S:MOVR6,#20;定时1S的子程序WAIT:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0CONT2:JBCTF0,OVERF2LCALLDSPLY1;定时中加入显示程序LCALLDSPLY2;定时中加入显示程序,保证动态显示SJMPCONT2OVE

温馨提示

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

评论

0/150

提交评论