微机原理三级项目

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

瓶装饮品灌装的计算机控制技术的实现

班级:机制2班

学号:

姓名:

课程名称:微机原理、汇编语言及接口技术

指导教师:

2016年5月

摘要

本次三级项目的题目是瓶装饮品生产线的自动控制,通过分析题目给定的要求确定了5个主要的步骤,分别是空瓶检测、自动灌装、质量检测、不合格处理、记录不合格数。选择使用的芯片有8255、8155、8253,外接设备有步进电机、数码管、LED灯、液晶屏、逻辑笔。其中8255C端口控制步进电机模拟的是灌装过程,A口和B口控制数码管显示不合格数。LED的闪烁表示检测到质量不合格瓶子。逻辑笔检测8253输出口的状态,便于观察。液晶屏用于显示程序运行的状态。通过调试和接线,实现了预定的功能和要求。

关键字:自动控制、8255、8253、8155、步进电机、数码管、液晶屏。

目录

1.项目的描述及要求 (1)

2.项目的模拟方案 (1)

2.1硬件设备及功能 (1)

2.2系统接线图 (2)

3.控制程序 (3)

3.1详细程序 (3)

3.2程序流程图 (13)

4.模拟的实验结果 (14)

4.1程序调试的情况 (14)

4.2程序运行的结果的分析 (14)

5.项目的结论 (14)

5.1结论描述及分析 (14)

5.2程序设计改进 (14)

6.感言 (14)

7.参考文献 (15)

前言

本次三级项目的题目是瓶装饮品的生产线自动控制,工程实际要求实现自动检测空瓶到位、自动开启灌装、自动检测质量是否合格、不合格处理、记录不合格件数。这些功能的实现需要用到不同的芯片的外接设备。结合实际情况和所学的知识编写了程序,通过外接设备的功能来模拟工程实际现象,做到了理论与实际相结合。在实际生产中,遇到的情况比较多,由于无法一一地模拟,所以设计的结果还有很大改善的空间。程序的设计过程需要反复的调试,才能顺利的出现现象和结果。项目报告的内容主要包括了题目的分析,程序流程图和详细程序,系统接线图,结果分析以及对程序的改进。最后是感言和参考文献,详细地介绍了项目的实施过程和结果。

1.项目的描述及要求

项目描述:某厂生产瓶装保健饮品,要求设计自动化控制装置,检测每个空瓶到位后,启动灌装,装满600克,停止该瓶的灌装。为保证顾客利益,每瓶不得少于595克,少于595克的,通过另一传送带再处理,并记录而且显示少于595克的瓶数。

要求分析:根据给定的题目,按实际情况进行分析后确定了项目实施方案。第一步:检测空瓶是否到位;第二步:空瓶到位后模拟灌装过程;第三步:质量检测,判断是否合格;第四步:进行不合格处理。第五步:显示不合格件数。

根据实验箱的硬件设备进行选择,编写程序实现预定的功能和要求。

2.项目的模拟方案

2.1硬件设备及功能

8086芯片:中央处理器。

8255芯片:PA、PB、PC三个端口均作为输出口,用于连接处理器和外接设备。

其中PA口用于输出数码管的位码,PB口用于输出数码管的段码。PC口低四位连接步进电机的接口,用于控制电机转动;

8155芯片:PA口作为输出端口,PB口作为输入端口。PA口用于控制LED灯,PB口接8253输出口,根据输入高低电平判断空瓶是否到位。

8253芯片:其输出信号输入给8155的PB口。通过输入三次方式控制字,将1M的输入频率三次变频,前两次使用方式3产生方波,第三次使用方式0,计数初值为20,计数结束后输出变为高电平表示20个空瓶到位。

步进电机:连接8255的PC口低四位,通过输出信号正转或者反转。启动灌装用步进电机正转模拟,不合格处理用步进电机反转模拟。

LED灯:当质量不合格时通过8155的PA口输出信号控制三个红灯闪烁三次。

数码管:通过8255的PA和PB口输出信号显示不合格的瓶数。

液晶屏:在程序运行中相应地显示“灌装开始”、“灌装结束”、“不合格数为六”。

逻辑笔:实时地显示8253输出信号是高电平还是低电平。

2.2系统接线图

图1:8255接线图

图2:8155和8253接线图

3.控制程序

3.1详细程序

.model small

wr_com_ad_l equ 0d004h ;写左半屏指令地址wr_com_ad_r equ 0d000h ;写右半屏指令地址wr_data_ad_l equ 0d006h ;写左半屏数据地址wr_data_ad_r equ 0d002h ;写右半屏数据地址rd_busy_ad equ 0d001h ;查忙地址

rd_data_ad equ 0d003h ;读数据地址

x equ 0b8h ;起始显示行基址y equ 040h ;起始显示列基址firstline equ 0c0h ;起始显示行

.stack

.data

;-- 文字: 灌 --

Line1_1 db 50h, 48h, 47h,0fch, 44h, 44h, 42h, 3ah db 0efh,0bah, 82h,0fah,0afh,0bah, 02h, 00h

db 00h, 7fh, 20h, 3fh, 20h, 7fh, 02h, 01h

db 0ffh, 4ah, 4ah, 7fh, 4ah, 6ah, 40h, 00h

;-- 文字: 装 --

Line1_2 db 00h, 42h, 24h, 10h,0ffh, 00h, 44h,0a4h db 24h, 3fh, 24h, 34h, 26h, 84h, 00h, 00h

db 01h, 21h, 21h, 11h, 09h,0fdh, 43h, 21h

db 0dh, 11h, 29h, 25h, 43h,0c1h, 41h, 00h

;-- 文字: 开 --

Line1_3 db 80h, 82h, 82h, 82h,0feh, 82h, 82h, 82h db 82h, 82h,0feh, 82h, 83h,0c2h, 80h, 00h

db 00h, 80h, 40h, 30h, 0fh, 00h, 00h, 00h

db 00h, 00h,0ffh, 00h, 00h, 00h, 00h, 00h

;-- 文字: 始 --

Line1_4 db 10h, 10h,0f0h, 1fh, 10h,0f0h, 40h, 60h db 58h, 47h, 40h, 40h, 50h, 60h,0c0h, 00h

db 40h, 22h, 15h, 08h, 16h, 61h, 00h,0feh

db 42h, 42h, 42h, 42h, 42h,0ffh, 02h, 00h

;-- 文字: 灌 --

Line2_1 db 50h, 48h, 47h,0fch, 44h, 44h, 42h, 3ah db 0efh,0bah, 82h,0fah,0afh,0bah, 02h, 00h

db 00h, 7fh, 20h, 3fh, 20h, 7fh, 02h, 01h

db 0ffh, 4ah, 4ah, 7fh, 4ah, 6ah, 40h, 00h

;-- 文字: 装 --

Line2_2 db 00h, 42h, 24h, 10h,0ffh, 00h, 44h,0a4h db 24h, 3fh, 24h, 34h, 26h, 84h, 00h, 00h

db 01h, 21h, 21h, 11h, 09h,0fdh, 43h, 21h

db 0dh, 11h, 29h, 25h, 43h,0c1h, 41h, 00h

相关文档
最新文档