微机原理三级项目.docx

上传人:b****2 文档编号:23280021 上传时间:2023-05-15 格式:DOCX 页数:27 大小:270.21KB
下载 相关 举报
微机原理三级项目.docx_第1页
第1页 / 共27页
微机原理三级项目.docx_第2页
第2页 / 共27页
微机原理三级项目.docx_第3页
第3页 / 共27页
微机原理三级项目.docx_第4页
第4页 / 共27页
微机原理三级项目.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

微机原理三级项目.docx

《微机原理三级项目.docx》由会员分享,可在线阅读,更多相关《微机原理三级项目.docx(27页珍藏版)》请在冰豆网上搜索。

微机原理三级项目.docx

微机原理三级项目

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

级:

机制2班号:

名:

称:

微机原理、汇编语言及接口技术师:

2016年5月

1

摘要

本次三级项目的题目是瓶装饮品生产线的自动控制,通过分析题目给定的要求确定了5个主要的

步骤,分别是空瓶检测、自动灌装、质量检测、不合格处理、记录不合格数。

选择使用的芯片有

8255、8155、8253,外接设备有步进电机、数码管、LED灯、液晶屏、逻辑笔。

其中8255C端口控制

步进电机模拟的是灌装过程,A口和B口控制数码管显示不合格数。

LED的闪烁表示检测到质量不合格

瓶子。

逻辑笔检测8253输出口的状态,便于观察。

液晶屏用于显示程序运行的状态。

通过调试和接线,实现了预定的功能和要求。

关键字:

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

2

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

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

2.1硬件设备及功能.................................................................................................1

2.2系统接线图.........................................................................................................2

2.控制程序.................................................................................................................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

3

前言

本次三级项目的题目是瓶装饮品的生产线自动控制,工程实际要求实现自动检测空瓶到位、自动

开启灌装、自动检测质量是否合格、不合格处理、记录不合格件数。

这些功能的实现需要用到不同的

芯片的外接设备。

结合实际情况和所学的知识编写了程序,通过外接设备的功能来模拟工程实际现象,

做到了理论与实际相结合。

在实际生产中,遇到的情况比较多,由于无法一一地模拟,所以设计的结

果还有很大改善的空间。

程序的设计过程需要反复的调试,才能顺利的出现现象和结果。

项目报告的

内容主要包括了题目的分析,程序流程图和详细程序,系统接线图,结果分析以及对程序的改进。

最后是感言和参考文献,详细地介绍了项目的实施过程和结果。

4

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输出信号是高电平还是低电平。

1

2.2系统接线图

图1:

8255接线图

图2:

8155和8253接线图

2

3.控制程序

3.1详细程序

.modelsmall

wr_com_ad_lequ0d004h;写左半屏指令地址wr_com_ad_requ0d000h;写右半屏指令地址wr_data_ad_lequ0d006h;写左半屏数据地址wr_data_ad_requ0d002h;写右半屏数据地址rd_busy_adequ0d001h;查忙地址rd_data_adequ0d003h;读数据地址

xxxx0b8h

yyyy040h

;起始显示行基址;起始显示列基址

firstlineequ0c0h;起始显示行.stack

.data

;--文字:

灌--

Line1_1db50h,48h,47h,0fch,44h,44h,42h,3ah

db0efh,0bah,82h,0fah,0afh,0bah,02h,00hdb00h,7fh,20h,3fh,20h,7fh,02h,01hdb0ffh,4ah,4ah,7fh,4ah,6ah,40h,00h

;--文字:

装--

Line1_2db00h,42h,24h,10h,0ffh,00h,44h,0a4h

db24h,3fh,24h,34h,26h,84h,00h,00hdb01h,21h,21h,11h,09h,0fdh,43h,21hdb0dh,11h,29h,25h,43h,0c1h,41h,00h

;--文字:

开--

Line1_3db80h,82h,82h,82h,0feh,82h,82h,82h

db82h,82h,0feh,82h,83h,0c2h,80h,00hdb00h,80h,40h,30h,0fh,00h,00h,00hdb00h,00h,0ffh,00h,00h,00h,00h,00h

;--文字:

始--

Line1_4db10h,10h,0f0h,1fh,10h,0f0h,40h,60h

db58h,47h,40h,40h,50h,60h,0c0h,00hdb40h,22h,15h,08h,16h,61h,00h,0fehdb42h,42h,42h,42h,42h,0ffh,02h,00h

;--文字:

灌--

Line2_1db50h,48h,47h,0fch,44h,44h,42h,3ah

db0efh,0bah,82h,0fah,0afh,0bah,02h,00hdb00h,7fh,20h,3fh,20h,7fh,02h,01hdb0ffh,4ah,4ah,7fh,4ah,6ah,40h,00h

;--文字:

装--

Line2_2db00h,42h,24h,10h,0ffh,00h,44h,0a4h

db24h,3fh,24h,34h,26h,84h,00h,00hdb01h,21h,21h,11h,09h,0fdh,43h,21hdb0dh,11h,29h,25h,43h,0c1h,41h,00h

3

;--文字:

结--

Line2_3db00h,30h,28h,0a4h,63h,10h,08h,48h

db48h,48h,7fh,48h,48h,4ch,08h,00h

db00h,22h,63h,22h,12h,12h,00h,0feh

db42h,42h,42h,42h,42h,0ffh,02h,00h

;--文字:

束--

Line2_4db04h,04h,0e4h,24h,24h,24h,24h,0ffh

db24h,24h,24h,24h,0f4h,26h,04h,00h

db40h,40h,27h,22h,12h,0ah,06h,0ffh

db06h,0ah,12h,12h,27h,60h,20h,00h

;--文字:

不--

Line3_1db02h,02h,02h,02h,02h,82h,42h,0f2h

db0eh,42h,82h,02h,02h,03h,02h,00h

db00h,08h,04h,02h,01h,00h,00h,0ffh

db00h,00h,00h,01h,03h,06h,00h,00h

;--文字:

合--

Line3_2db80h,80h,40h,20h,50h,48h,44h,43h

db44h,48h,50h,20h,40h,0c0h,40h,00h

db00h,00h,00h,0feh,42h,42h,42h,42h

db42h,42h,42h,0ffh,02h,00h,00h,00h

;--文字:

格--

Line3_3db10h,10h,0d0h,0ffh,50h,0b0h,18h,17h

db0a4h,44h,0a4h,14h,0ch,00h,00h,00h

db04h,03h,00h,0ffh,08h,04h,0feh,45h

db44h,44h,44h,45h,0feh,06h,02h,00h

;--文字:

数--

Line3_4db10h,92h,54h,30h,0ffh,50h,94h,32h

db0d8h,17h,10h,10h,0f0h,18h,10h,00h

db02h,82h,4eh,33h,22h,52h,8eh,40h

db23h,14h,08h,16h,61h,0C0h,40h,00h

;--文字:

六--

Line3_5db20h,20h,20h,20h,20h,22h,2ch,38h

db20h,20h,20h,20h,20h,30h,20h,00h

db00h,40h,20h,18h,06h,03h,00h,00h

db00h,01h,02h,0ch,38h,70h,00h,00h

leddb3fh,06h,5bh,4fh,66h,

db6dh,7dh,07h,7fh,6fh;定义LED变量数码管显示0-9的数字quadb1,1,0,1,1,1,0,1,0,1,

db1,1,0,1,0,1,1,1,0,1;定义qua变量存放20个质量数据.code

start:

nop

calllcd_init;调用清屏子程序

movdx,0f003h;dx指向8255控制端口地址

moval,80h;al存放方式控制字,A、B、C全为输出口

4

outdx,al;将方式控制字存入控制端口

movdx,0e100h;dx指向8155控制端口地址

moval,01h;al存放方式控制字,A口输出B口输入

outdx,al;将方式控制字存入控制端口

movdx,0b003h;dx指向8253控制端口地址

moval,00100111b;第一次写入方式控制字

outdx,al

movdx,0b000h;8253A口方式3工作,计数初值为1000

moval,10h

outdx,al

movdx,0b003h;第二次写入方式控制字

moval,01100111b

outdx,al

movdx,0b001h;8253B口方式3工作,计数初值为200

moval,02h

outdx,al

movdx,0b003h;第三次写入方式控制字

moval,10010001b

outdx,al

movdx,0b002h;8253C口方式1工作计数初值20用于计数20个空瓶moval,20h

outdx,al

l1:

movdx,0e102h;检测8155B端口状态

inal,dx

andal,80h;判断最高位是否为1

jzl1;不为1,说明空瓶未到位继续检测

calldisline1;最高位是1,液晶屏第1行显示"灌装开始"字样calldelaytime;调用显示延时子程序

callbujin1;调用步进电机子程序,模拟灌装过程

calllcd_init;调用液晶屏清屏子程序

calldisline2;液晶屏第2行显示"灌装结束"

calldelaytime;调用显示延时子程序

movbx,0;bx存放qua地址,先清零

movcl,0;cl记录不合格数,先清零

movah,0;作为指针取出qua变量存放的数据

l3:

leabx,qua;bx取得qua的初始地址

moval,ah;al取出qua中的数值

xlat

cmpal,0;判断质量是否合格

jnzl5;质量合格,判断下一个

movcx,3;质量不合格,通过8155A口控制红灯闪3次l4:

movdx,0e101h

moval,11100011b

outdx,al

calldelay1

5

moval,0ffh

outdx,al

calldelay1

loopl4

callbujin2;质量不合格的转到另外一条处理线上,用步进电机模拟inccl;取下一个质量进行检测,记录不合格数

l5:

incah

cmpah,20;依次对20个质量检测

jbl3

calllcd_init;调用清屏子程序

calldisline3;检测完成,液晶屏第3行显示"不合格数为6"

calldelaytime;调用延时子程序

l6:

movdx,0f000h;8255A端口控制数码管的位码,让最低位的数码管显示moval,11111110b

outdx,al

movdx,0f001h;8255B端口控制数码管的段码,显示数字"6"

lllll,led

mmmmm,cl

xlat

outdx,al

calldelay1

jmpl6

delay1proc;延时子程序delay1的定义

pushcx;将cx.dx.bx.ax压入堆栈

pushdx

pushbx

pushax

movcx,8000h;循环次数8000h

again:

nop

loopagain

popax;将ax.bx.dx.cx取出堆栈

popbx

popdx

popcx

ret;返回主程序,定义结束

endpdelay1

delay2proc;延时子程序delay2的定义

pushcx;将cx.dx.bx.ax压入堆栈

pushdx

pushbx

pushax

movcx,4000h;循环次数4000h

l9:

nop

loopl9

popax;将ax.bx.dx.cx取出堆栈

6

popbx

popdx

popcx

ret;返回主程序,定义结束

endpdelay2

bujin1proc;定义步进电机1的程序

pushbx;将bx.dx.cx.ax压入堆栈

pushdx

pushcx

pushax

movcx,10;循环10次

l7:

movdx,0f002h;8255C端口控制步进电机的运转

moval,01h;依次给步进电机A-B-C-D高电平,并调用延迟子程序delay1outdx,al

calldelay1

moval,02h

outdx,al

calldelay1

moval,04h

outdx,al

calldelay1

moval,08h

outdx,al

calldelay1

loopl7

popax;将ax.cx.dx.bx取出堆栈

popcx

popdx

popbx

ret;返回主程序

endpbujin1;步进电机1定义结束

bujin2proc;定义步进电机2子程序

pushbx;将bx.cx.dx.ax压入堆栈

pushcx

pushdx

pushax

movcx,10;循环10次

l8:

movdx,0f002h;8255C端口控制步进电机的运转

moval,08h;依次给步进电机D-C-B-A高电平,调用延时子程序delay2outdx,al

calldelay2

moval,04h

outdx,al

calldelay2

moval,02h

7

outdx,al

calldelay2

moval,01h

outdx,al

calldelay2

loopl8

popax;将ax.dx.cx.bx取出堆栈

popdx

popcx

popbx

ret;返回主程序

endpbujin2;步进电机2子程序结束delaytimeproc;定义液晶屏显示延时子程序movcx,0

loop$

ret

delaytimeendp;子程序结束

disline1proc;液晶屏第一行显示字样子程序leasi,line1_1

moval,2

movah,32

callworddisl

lllll,line1_2

mmmmm,2

movah,48

callworddisl

lllll,line1_3

mmmmm,2

movah,0

callworddisr

lllll,line1_4

mmmmm,2

movah,16

callworddisr

ret

disline1endp;子程序结束

disline2proc;液晶屏显示第二行字样子程序leasi,line2_1

moval,4

movah,32

callworddisl

lllll,line2_2

mmmmm,4

movah,48

callworddisl

8

lllll,line2_3

mmmmm,4

movah,0

callworddisr

lllll,line2_4

mmmmm,4

movah,16

callworddisr

ret

disline2endp;子程序结束

disline3proc;液晶屏显示第三行字样子程序leasi,line3_1

moval,6

movah,32

callworddisl

lllll,line3_2

mmmmm,6

movah,48

callworddisl

lllll,line3_3

mmmmm,6

movah,0

callworddisr

lllll,l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1