单片机啤酒生产线系统

上传人:豆浆 文档编号:28682339 上传时间:2018-01-19 格式:DOC 页数:14 大小:103.50KB
返回 下载 相关 举报
单片机啤酒生产线系统_第1页
第1页 / 共14页
单片机啤酒生产线系统_第2页
第2页 / 共14页
单片机啤酒生产线系统_第3页
第3页 / 共14页
单片机啤酒生产线系统_第4页
第4页 / 共14页
单片机啤酒生产线系统_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《单片机啤酒生产线系统》由会员分享,可在线阅读,更多相关《单片机啤酒生产线系统(14页珍藏版)》请在金锄头文库上搜索。

1、数字化产品设计报告专业:嵌入式系统哈尔滨工业大学华德应用技术学院姓名: 班级:学号: 课题编号: C004课题名称: 啤酒装箱生产线系统基本功能:由单脉冲代表生产线啤酒统计数,按一下单脉冲有一瓶酒过去,24瓶为一箱,显示在数码管上。扩展功能:能够实现清零重新计数和存储及显示存储数据成绩: 评审老师:一、需求分析:(应用:工业生产线成品计数器是一种自动记录生产过程中随机产量,并通过计算机进行显示、累计、储存的装置。广泛应用于啤酒.饮料.药品计数.汽车测速.电机测速.点钞机等等。目的:设计此程序主要是为了控制产品装箱生产线,实现自动化的产品装箱计数。从而让生产者对产品生产情况有了具体的了解,与传统

2、的生产计数方式相比,能够让生产者更合理的调度人力物力资源 ,节省劳动力,能够在最短的时间内而获得更多经济效益。立题意义:为了能让学生更深入了解 MSC-51单片机各个芯片应用,在理论知识的基础上加强动手能力,创新思维,为将来走向社会岗位奠定扎实基础.二、硬件设计方案MCS-51 电动机脉冲信号8279 键盘输入LED 显示硬件所需器件:51 单片机、0832 数模转换器、LED 数码管、直流电动机键盘及 8279键盘/显示接口芯片。各芯片的简要介绍如下:8XC51系列单片机是 MCD-51中的一个子系列,是一组高性能兼容性单片机。其中,x 的规定为程序存储器的配置:0 表示无片内 ROM,3

3、表示片内为掩膜 ROM,7 表示片内为 EPROM/OTPROM,9表示片内为 FlashROM。DAC0832芯片是美国 National semiconductor公司生产的具有 2个数据寄存器的 8位分辨率的 D/A转换芯片。此芯片与处理器完全兼容,它由 8位输入锁存器、8 位 DAC电路及转换控制电路构成,通过两个输入寄存器构成两级数据输入锁存。Intel8279芯片是一种通用可编程键盘/显示接口芯片,它具有同时完成键盘输入和显示控制两种功能。 )三、软件设计方案开始初始化堆栈区初始化 82792按键01数据出栈读取调用 8279 显示子程序数据进栈存储计数器清零计数调用 8279显示

4、子程序YNYNNYNY算法分析:1. 初始化堆栈区域:设置存储地址的首地址 0D0.0F0、0B0。后来的的数据进栈存储、数据出栈读取可通过 R0寄存器间接寻址进行地址操作存储。2. 初始化 8279:送控制字 00H(左边输入 八位字符显示,外部译码键扫描方式,双键互锁)给 8279的 Z8279状态/命令口置控制方式。再将清屏控制字 0C1H送入 Z8279让LED数码管清屏。3. 判断是否有键值输入:把状态口地址送入特殊功能寄存器DPTR中让其与 0F进行 ANL运算屏蔽 D4-D7个状态,JZ 判断是否有键入如果没有继续判断,如果有把控制字 40H送入状态命令口并把键值数据通过 DPT

5、R送入累加器 A中后进行判断。4. 当判断键值是 0键:通过 DAC0832的数据口 8000H送入数据,通过数模转换控制电压启动电动机送出脉冲,用于存储数据瓶数、箱数、百箱数的 R1、R2、R3 清零,初始化计数器 T1清零开始对脉冲计数。计数值送 R1当等于 24是 R2自增 1,R1 清零计数器清零重新计数,当 R2自增到到 99时 R2清零 R3自增 1,计数值通过做除法设偏移量调用显示子程序,显示子程序是通过显示起始地址加偏移量设置显示位置的,数据显示通过查表的方法,表的起始地址加偏移量是要显示的数据。5. 当判断键值是 1时:把当前的人 R1,R2,R3 分别通过 R0进行寄存器间

6、接寻址存储在 newp、newx、newb 中,newp、newx、new 内的地址自增 1.进栈方式6. 当判断键值是 2时:数据显示出栈后进先出方式把地址减一通过 R0寄存器间接寻址把数据送入累加器 A,是通过做除法设显示偏移量调用显示子程序,显示子程序是通过显示起始地址加偏移量设置显示位置的,数据显示通过查表的方法,表的起始地址加偏移量是要显示的数据。当当前地址减至等于首地址时 R7重新赋值 1.四、系统调试硬件调试:1.使用试验箱时试验箱的 USB口无法使用,后改用串口线试验箱能够正常使用。2起初使用单脉冲进行控制脉冲信号输入,后改用送数据给0832数模转换器控制电动机电压从而电动机产

7、生的电动机脉冲信号。3脉冲信号是通过多功能 P3口中的 P3.5定时/计数器 T1的外输入引脚送入的。软件测试:1. 最开始实现的功能只有简单的脉冲计数显示,在程序设计的过程中,在显示的过程中起初只能显示一位计数非常不理想,后来通过研究电子钟的程序理解了设置偏移量设定显示位置显示数据是通过查表地方法实现的。计数值做除法商和余数分别是两个位置,通过设置偏移量分别设置显示位置,调用子程序。2. 后来又加入了键盘控制,清零计数,清屏,是通过查询按键及键值的方法解决的。3. 课设要求中是单脉冲输入信号,自己改了一通过 0832控制电压控制直流电动机输出脉冲信号。4. 加入拓展功能存储并显示是遇到了很大

8、的困难,起初是想用 Flash闪存,老师讲解后,自己是试着编写了一下,结果未成功,由于时间比较紧,借鉴了老师的设立堆栈存储的方法,在便携存储与显示程序后,无法实现,添加存储地址的观察项,单步执行查看存储情况,发现首地址初始化出了问题经改正实现了存储及显示。总结:时光如逝,为期两周的数字化产品设计以接近尾声,在这段时间里,学习了很多,也成长了很多这次单片机课程设计我们历时两个星期,不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!尽力在两个星期后的今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的

9、实际动手能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多!作为一名嵌入式专业的大二学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,因

10、此我想把课设做的更加贴切现实生活当中的应用,因此我想把数码管显示改为液晶显示,我想这样就更加贴切实际当中的生产线了。 附录 1:( 程序代码 )Z8279 EQU 8701H ;8279 状态/命令口地址D8279 EQU 8700H ;8279 数据口地址LEDMOD EQU 00H ;左边输入 八位字符显示;外部译码键扫描方式,双键互锁D0832 EQU 8000HLEDCLS EQU 0C1H ;清除显示 RAMLEDWR0 EQU 80H ;设定的将要写入的显示 RAM地址NEWP EQU 30H ;定义存储地址指针NEWX EQU 31HNEWB EQU 32HOLDP EQU 33

11、HOLDX EQU 34HOLDB EQU 35HORG 0000HAJMP STARTORG 0040HSTART: MOV SP,#60H ;初始化堆栈段MOV R7,#1MOV NEWP,#0D0H ;送首地址MOV NEWX,#0F0HMOV NEWB,#0B0HMOV OLDP,#0D0HMOV OLDX,#0F0HMOV OLDB,#0B0HMOV R1,#0 ;瓶数MOV R2,#0 ;箱数 MOV R3,#0 ;百箱数MAIN: MOV A,#00H ;送 0832初状态MOV DPTR,#D0832MOVX DPTR,ALCALL INIT8279 ;初始化 8279GETK

12、EY: MOV DPTR,#Z8279 MOVX A,DPTRANL A,#0FHJZ GETKEY ;判断是否有键值输入MOV A,#40HMOVX DPTR,A ;送控制字MOV DPTR,#D8279MOVX A,DPTR ;开始判断键值CJNE A,#00H,KEY1 ;判断 0键;0键保存,清零重新进行计数MOV R1,#0 ;瓶数MOV R2,#0 ;箱数MOV R3,#0 ;百箱数MOV A,#15H ;通过 0832控制电动机送入脉冲MOV DPTR,#D0832MOVX DPTR,ALJMP COUNT_INTPUSH ACCMOV A,#00HMOV DPTR,#D0832

13、MOVX DPTR,APOP ACC KEY1:CJNE A,#01H,KEY2;1键清屏PUSH 0MOV R0,NEWP ;数据指针 MOV A,R1MOV R0,APOP 0 PUSH 0MOV R0,NEWXMOV A,R2MOV R0,APOP 0PUSH 0MOV R0,NEWBMOV A,R3MOV R0,APOP 0INC NEWP ;存储后地址自增INC NEWXINC NEWBJMP MAIN KEY2: CJNE A,#02H,GETKEY;2键显示储存数据MOV A,NEWP ;地址自减一显示CLR CSUBB A,R7MOV OLDP,ACLR CMOV A,NEWX

14、SUBB A,R7MOV OLDX,AMOV A,NEWBCLR CSUBB A,R7MOV OLDB,AINC R7MOV A,OLDP CJNE A,#0D0H,N1 ;判断下次从开始显示MOV R7,#1N1: PUSH 0MOV R0,OLDPMOV A,R0POP 0MOV B,#10DIV ABMOV R5,AMOV R4,#1LCALL DISLEDMOV R5,BMOV R4,#0LCALL DISLEDPUSH 0MOV R0,OLDXMOV A,R0POP 0MOV B,#10DIV ABMOV R5,AMOV R4,#5LCALL DISLEDMOV R5,BMOV R4,#4LCALL DISLEDPUSH 0MOV R0,OLDBMOV A,R0POP 0MOV B,#10DIV ABMOV R5,AMOV R4,#7LCALL DISLED MOV R5,BMOV R4,#6LCALL DISLEDLJMP GETKEYCOUNT_INT: MOV TMOD,#40H ;送计数器控制字MOV TL1,#00H MOV TH1,#00H ;计时器的初始化SETB TR1 ;定时/计数器运

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号