微机原理课程设计项目报告

合集下载

微机原理电路设计项目报告

微机原理电路设计项目报告

微机原理电路设计项目报告项目简介本项目是基于微机原理的电路设计项目,旨在实现一个能够运行简单计算机指令的微处理器电路。

项目目标1. 设计一个能够执行简单计算机指令的微处理器电路。

2. 实现数据存储和寻址功能。

3. 设计相关电路模块,如时钟控制电路和输入输出接口电路。

4. 搭建整个微处理器电路的原型,并进行测试。

设计思路本项目的设计思路分为以下几个步骤:1. 确定基本指令集和寻址方式。

根据项目需求,选择常用的机器指令集,并确定寻址方式,如直接寻址、间接寻址等。

2. 设计并实现数据存储和寻址功能。

根据选定的寻址方式,设计数据存储单元(如寄存器)和地址译码电路,以实现数据存储和读取功能。

3. 设计并实现控制电路。

根据指令集需求,设计时钟控制电路,以控制指令的执行顺序和时钟周期。

同时,设计指令译码电路和控制信号生成电路,以实现指令的解析和对各个功能单元的控制。

4. 设计输入输出接口电路。

根据项目需求,设计输入输出接口电路,以实现与外部设备的数据交互。

5. 搭建整个微处理器电路的原型,并进行测试。

根据上述设计,搭建微处理器电路的原型,并进行功能测试和性能优化。

数据存储和寻址在本项目中,我们选择了直接寻址的方式。

设计了4个通用寄存器,分别用于存储运算数据和结果。

同时,设计了地址译码电路,实现了地址线的解码和控制信号的生成。

控制电路为了实现指令的执行和时钟周期的控制,我们设计了一个简单的时钟控制电路,以及一个指令译码电路和控制信号生成电路。

时钟控制电路用于控制时钟信号的频率和占空比,以保证电路的正常工作。

指令译码电路用于解析指令,生成相应的控制信号,控制各个功能单元的操作。

输入输出接口电路根据项目需求,我们设计了一个简单的串口接口电路,用于与外部设备进行数据交互。

该接口电路采用了UART协议,能够实现串行通信和数据传输。

电路实现与测试基于上述设计思路和电路设计,我们搭建了微处理器电路的原型,并进行了功能测试和性能优化。

微机原理课设报告

微机原理课设报告

中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握8088,8255,0809,0832,8279 等多种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。

同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、课程设计任务本次课设选题为“模拟电压采集,直流电机控制”。

根据我自己对这个课题的理解,我认为这个课题应该实现以下的要求:基本要求:1、对模拟电压进行采集转换为数字信号,并实时显示。

2、用转换的到的数字信号再经数模转换,对直流电机进行控制。

拓展要求:1、通过发光二极管作为信号指示灯,实时的指示直流电机的工作状态是否正常。

2、建立报警电路,对电机非正常工作情况以及反转工作情况下进行报警。

三、设计思想与原理1、设计思想本次课设选题为“模拟电压采集,直流电机控制”,基本分为两大部分:模拟量采集的模数转换部分,以及电机控制中的数模转换部分。

而为了让模拟量的采集结果更加明显可察,将加入数码管显示模块,实时显示模拟量采集的大小情况。

与此同时,在选题基础上添加了直流电机工作状态指示灯电路和报警电路。

2、设计原理根据试验箱相关配置,取电位器0~5V 可调电压为模拟量输出模块,可线性调节输出。

取芯片ADC 0809 对采集到的模拟信号进行模数转换,将0~5V 的电压信号转为00~FF 的数字信号,并通过8279 键盘扫描输出模块进行相应的显示输出。

得到转换后的数字量之后,使用DAC0832 数模转换芯片进行数模转换,并将所得模拟量输出到直流电机控制端,进行电机驱动。

对于添加的模块,主要通过8255 芯片来实现,取8255 的PA0 口作为输出端口,连接试验箱上的开关量输入显示区的发光二极管。

对A口分别赋值01H (直流电机正向非正常工作)、02H(直流电机正常工作)、04H(直流电机反向非正常工作)并输入给开关量输入显示区的发光二极管,驱动前三个二极管在电机的三种工作状态下分别发光,从而实现指示灯电路。

微机原理项目报告

微机原理项目报告

汽车玻璃总成工装的计算机控制技术的实现项目组别:第一组班级: 08级车辆工程二班学号: 080108030005姓名:苗露课程名称:16/32位微机原理,汇编语言及接口技术指导教师:李艳文2011年5月汽车玻璃总成工装控制系统设计作者:苗露(燕山大学车辆与能源学院)摘要:该项目的主要内容为在某工位上装配玻璃插片,并记录每班生产件数。

经过项目分析,方案转换及确定,编写出相关程序,经实验台布线,调试,测试试验结果并最终得出正确结果达到项目要求。

项目用到了8255A,实验过程中要了解8255A的工作原理,熟悉8255内部结构,及控制字格式熟悉初始化编程方法及输入、输出程序技巧。

前言:微机原理主要内容包括微型计算机体系结构、8088微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。

微机原理接口技术是一门实践性强的学科,不但要求较高的理论水平,而且还要求有实际的动手能力。

这次项目设计的主要目的是提高我们的实践能力,包括提高汇编语言都的编程能力,在进行项目设计的过程中,通过亲身体验、自己分析解决问题,从而系统地掌握微机原理的接口技术的相关知识。

项目设计使用星研集成环境软件和STAR ES598PCI 试验仪进行仿真,包括程序输入、调试、运行,最后进行结果分析,验证程序的正确性。

一、设计任务某生产线生产汽车玻璃,需要在某工步中装配两个插片,装配插片时需要一种自动化装置,要采用三个定位点检测,两个粘结动作和一个计数装置记录每班生产件数。

二、项目分析三、设计流程四、设计思路使用8255A•用了A口,B口,C口,A口、B口和C口的上半部分输出,C口下半部分输入。

•PA0~PA7接数码管位选端,PB0~PB7接数码管段选端,用于工件计数显示•PC1~PC3接led灯,用于定位检测和液压缸工作。

•PC5~PC7接控制开关,用于控制生产线开始或停止。

五、实验设备六、8255A接线图七、详细程序stack1 segment stackdb 1024 dup(0)stack1 endsdata segmentled1 db 8 dup(0) ;定义八个内存单元,用于存放数码管所要显示的数字shumag db 3fh,06h, 5bh,4fh,66h,6dh,7dh,07h,7fh,6fhnum db ?timer db 10timer1=0ahdata endscode segment 'code'assume ss:stack1,ds:data,cs:codestart: mov ax,datamov ds,axmov dx,0e003hmov al,10001000b;写入方式控制字,c口高位输入,a,b口和c口低位输出out dx,almov al,11111111bmov dx,0e002hout dx,almov num,0mov cx,9again: mov dx,0e002hin al,dxmov al,00011111b;打开控制开关jne again ;控制开关未打开则跳回againjmp start1 ;控制开关打开则执行下面的指令start1:mov dx,0e002hmov al,11111000b ;打开定位指示灯out dx,alcall delaymov al,11111111b ;定位指示灯灭mov dx,0e002hout dx,almov al,11110111b; 液压缸指示灯亮进行粘结mov dx,0e002hout dx,alcall delaycall delaycall delaymov al,11111111b ;液压缸指示灯灭mov dx,0e002hout dx,alcall delay;加工完成,工件下线call delaycall delayinc num ;num加1mov al,nummov led1,almov si,offset led1call xianshi ;计数cmp num,9jnz again ;开始下一工件的加工jmp overover:mov ax,4c00hint 21hDelay proc ;延时子程序push bxpush cxmov bx,timer1a1: xor cx,cxa2: dec bxjnz delaypop cxpop bxretdelay endpxianshi proc ;显示子程序push axpush bxpush dxpush cxmov si,offset led1mov bx,offset shumagjishu:mov cx,0ffhjishu1:mov dx,0e000hmov al ,11111110bout dx,almov dx,0e001hmov al,[si]xlatout dx,almov dx,0e001hmov al,0out dx,aljishu2:loop jishu1dec timerjnz jishupop dxpop bxpop axretxianshi endpcode endsend start八、实现的功能1.程序调试情况:A. 刚开始用三个led灯代表三点定位指示,由于试验箱第一个led灯不能显示,经检查不是程序问题,而是试验箱的问题,最后改用两个灯代表三个三点定位。

微机原理课程设计报告

微机原理课程设计报告

设计题目流水灯控制总体构想级基本设计方案a.基本流水灯电路的设计(设计主体)该项目中我们选用8255A作为控制芯片,因为它是并行接口的典型芯片,通过它的并行输入、输出功能,可以方便的实现对一组发光二极管的点亮与关断控制。

在该项目中我们选择PA口作为八个发光二极管的连接口,并且将PA口的数据,即控制八个发光二极管点亮与关断的一组八位二进制数,赋值到BX中的BH部分,用循环移位语句将这八位二进制数进行移位,延时一段时间后再输出,即可实现基本的流水灯效果。

b.正反方向的选择功能把PC0口接在开关上,编程实现对PC0口数据的读取功能,并进行判断,当PC0为高电平时灯向左移动,当PC0为低电平时灯向右移动。

c.流水效果的选择功能在该项目中我们定义了两种流水效果:第一种是基本流水效果,即每一次移动时只有一个发光二极管移动;第二种为每一次移动时有两个发光二极管移动。

该功能可以通过对循环移位指令中CL——循环位数的不同定义来实现。

首先将PC2与一个开关相连,编程实现对PC2口数据的读取功能,并进行判断,当PC2为高电平时,将CL赋值为2,即实现第二种流水效果;当PC2为低电平时,将CL赋值为1,即实现第一种流水效果。

d.流水效果编号的显示功能根据设计要求,选用数码管来显示流水效果编号。

在该项目中8255A只有PB口未被定义,因此将PB口与一数码管相连接。

在该功能中我们同样根据PC2口高低电平的判断来决定数码管的显示。

当PC2为高电平时,将PB口赋值为DAH,使数码管显示为数字‘2’,当PC2为低电平时,将PB口赋值为60H, 使数码管显示为数字‘1’。

e.速度快慢的选择功能在该功能中,我们定义了两种速度模式,即快速与慢速。

并且通过PC1口的高低电平变化来实现。

将BX,CX分别赋值并且自减一,在此我们假设BX减为零的时间为t1,CX减为零的时间为t2,当PC1为高电平时,通过编程将DELAY子程序的延时时间设置为t1,而当PC1为低电平时,将DELAY 子程序的延迟时间设置为t1+t2,这样便实现了速度快慢的选择功能。

微机原理课程设计报告文库

微机原理课程设计报告文库

微机原理课程设计报告文库一、课程目标知识目标:1. 理解微机原理的基本概念,掌握微机硬件结构及其功能;2. 学会分析微机工作原理,了解指令系统及编程方法;3. 掌握微机接口技术,了解常见接口芯片的功能和应用。

技能目标:1. 能够运用所学知识进行微机系统的简单设计和调试;2. 培养学生具备一定的微机编程能力,能够编写简单的汇编语言程序;3. 提高学生动手实践能力,能够进行基本的硬件焊接和电路搭建。

情感态度价值观目标:1. 培养学生对微机原理课程的兴趣,激发学生学习热情;2. 培养学生具备良好的团队合作意识,学会与他人共同解决问题;3. 增强学生的创新意识,鼓励学生勇于探索新知识,提高自主学习能力。

课程性质:本课程为理论与实践相结合的课程,强调培养学生的动手实践能力和创新能力。

学生特点:学生已具备一定的电子技术和计算机基础,具有较强的学习能力和好奇心。

教学要求:教师应注重理论与实践相结合,引导学生主动参与课堂讨论,鼓励学生动手实践,培养学生解决问题的能力。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过本课程的学习,使学生能够掌握微机原理的基本知识,具备实际应用能力,为后续相关课程和未来职业发展打下坚实基础。

二、教学内容本课程教学内容主要包括以下几部分:1. 微机硬件结构:介绍微处理器、存储器、输入输出接口等硬件组件的工作原理和功能;教材章节:第一章 微机系统概述内容列举:CPU结构、存储器分类、I/O接口基础等。

2. 指令系统与编程:讲解汇编语言的基本指令、寻址方式、程序设计方法等;教材章节:第二章 指令系统与汇编语言内容列举:基本指令、汇编语言程序结构、循环、分支等编程技巧。

3. 微机接口技术:分析常见接口芯片的原理与应用,如并行接口、串行接口、定时器/计数器等;教材章节:第三章 微机接口技术内容列举:并行接口、串行接口、定时器/计数器接口芯片等。

4. 微机系统设计与实践:培养学生动手实践能力,进行简单的微机系统设计与调试;教材章节:第四章 微机系统设计与实践内容列举:硬件焊接、电路搭建、程序下载与调试等。

微机原理课程设计报告

微机原理课程设计报告

微机原理课程设计报告课程设计是每一个大学生在大学生涯中都不可或缺的,它使我们在实践中了巩固了所学的知识、在实践中锻炼自己的动手能力,本文就来分享一篇微机原理课程设计报告,希望对大家能有所帮助!微机原理课程设计报告(一) 以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。

当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己不会或者做不好。

但是当真的要做的时候也只好进自己作大的努力去做,做到自己最好的。

我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。

我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。

看着自己做出来的东西,心里面的感觉真的很好。

虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。

很有成就感。

我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。

但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。

对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。

微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。

讨论某一部分原理时又要涉及到其它部分的工作原理。

这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。

所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。

学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。

微机原理课程设计报告

微机原理课程设计报告

微机应用系统设计与综合应用实验——(微机原理)课程设计报告专业班级学生姓名学生学号指导老师完成时间目录第一章设计课题概述 (3)1.1课程设计目的 (3)1.2课程设计要求 (4)1.3课程设计用途 (4)1.4实现技术指标 (4)第二章设计思想和实施方案 (5)2.1功能分析 (5)2.1.1波形产生 (5)2.1.2波形切换 (5)2.1.3 屏幕显示 (5)2.1.4小键盘控制 (5)2.1.5无极调频 (6)2.1.6无极调幅 (6)2.2所需芯片功能简介 (6)2.2.1 8088功能简介 (6)2.2.2 8255A功能简介 (7)2.2.3 A/D0832功能简介 (8)2.2.4 D/A0809功能简介 (9)2.3实施方案 (10)2.3.1 系统总体设计方案 (10)2.3.2系统设计方框图 (10)第三章典型程序模块及编程技巧分析 (12)3.1键盘扫描及逻辑判断模块 (12)3.2键盘编码模块 (13)3.3波形产生模块 (14)3.3.1方波 (14)3.3.2 锯齿波 (16)3.3.3 三角波 (18)3.3.4 正弦波 (20)3.4波形切换及基本控制模块 (21)3.5无级调频调幅判断及控制模块 (23)第四章遇到的问题及解决方法 (26)第五章程序清单和程序注释 (28)5.1汇编源程序 (28)5.2C语言源程序 (49)第六章课程设计收获与体会 (63)6.1实验收获 (63)6.2心得体会 (63)第七章参考文献 (65)第八章附录 (66)8.18088最小模式的连接图 (66)微机应用系统设计与综合应用课程设计报告第一章设计课题概述1.1 课程设计目的《微机应用系统设计与综合实验(实践)》课程设计是自动化专业本科生必修的一门技术基础课。

通过本课程设计,让学生对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。

微机原理课程设计实验报告

微机原理课程设计实验报告

微机原理课程设计实验报告评语:成绩教师:年月日班级:学号:姓名:地点:时间:课题七直流电机转速闭环控制系统设计与实现一、课程设计题目:直流电机转速闭环控制系统设计与实现二、课程设计目的:1. 掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。

2. 了解霍尔器件的工作原理,电机转速的测量与控制的基本原理。

3. 了解闭环控制系统的组成原理。

掌握电机转速测量与控制系统的构成方法。

三、课程设计的内容:设计一个对直流电机转速测量与转速控制的闭环控制系统。

微机控制中心在监控界面上设置电机转速。

电机转速测量利用霍尔传感器电路产生转速脉冲,定时/计数电路通过脉冲计数获得转速参量。

电机转速调整采用PWM(脉宽调节)方法,控制中心采样到电机转速参量,算得转速值同预定转速设置值进行比较,若不相同,则调整控制转速脉冲的占空比,来达到调速的目的。

(占空比=脉冲宽度/脉冲周期)四、系统功能要求与设计要求1.基本功能要求:具有友好的人机交互界面,通过鼠标或键盘,选择相关按钮对系统进行监控,监控系统具有转速参数设置窗口、采样的电机转速数据显示窗口和强行干预系统运行的按钮或相应功能选择菜单。

监控程序用查询(或中断)方式获取转速数据。

2.硬件设计要求:充分利用现有实验系统资源设计一个性能较好的直流电机转速闭环控制系统。

利用带锁存的I/O接口电路(如8253,8255,74LS273,D/A-DA0832)输出控制电机转速的脉冲。

采样转速用霍尔传感器件提供电机转速脉冲。

利用定时/计数电路对电机转速脉冲计数。

微机可从定时/计数电路中获得电机转速数值,并产生控制电机转速的PWM脉冲。

五、设计详情1)闭环控制系统原理图电机转速测量与控制闭环系统基本功能图2)电机控制及转速测量原理图3)操作步骤直流电机的in接8255的PA0口,out接T0的clk0口,通过8253的T1实现1s定时,T0实现转速的测量;通过程序将设置的转速和测出的转速相比,改变占空比,使之达到要求。

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

瓶装饮料生产线传送控制系统设计燕山大学机械工程学院摘要:本报告主要以程序设计的方法解决了保健饮品生产线控制问题。

以保健饮品生产线控制为工程背景,运用汇编语言的编程设计方法,实现了预置的各个状态。

同时,通过模拟和替代的方法,用实验室的现有装置包括8155芯片,8255芯片,LED数码管,步进电机以及LED灯和拨动开关来代替工程实体较好的仿真了工程实际的环境,达到了一定的效果。

以下正文为项目的相关内容和研究过程及结果。

1、项目要求某厂生产瓶装保健饮品,每10瓶装一箱,要求箱满时,启动送箱装置,先送走满箱到位(延时一定时间),再送来空箱到位(延时一定时间),满箱和空箱分别在两个不同的传送带上传送。

能人为控制生产线的启动和停止(比如键盘上,按某一键启动,启动后按任意键停止)。

能在数码管上显示当时已装满送出的箱数。

2、方案设计及实现用到的元件及各元件的功能:2.1步进电机:代表送走满箱到位和送来空箱到位2.2 LED数码管:用于计数,显示已装满送出的箱数2.3发光管:两个黄色灯交替共闪十次表示装了十瓶,红灯亮表示箱子已装满,绿灯表示送来空箱。

2.4开关:最右端开关闭合表示生产线启动,再闭合任意开关表示停止生产线2.5 8155芯片:A口控制LED数码管的段码,B口控制LED数码管的位码2.6 8255芯片:A口控制LED灯,B口读取开关状态,C口控制步进电机3、原理接线图(如下图所示)4、实物接线图(如下图所示)5、系统工作流程图工作流程:(1)开始;(2)初始化各元件,为各元件送入控制字;(3)检查最右侧开关是否闭合,没有闭合,返回继续扫描开关状态;(4)最右侧开关闭合,开始装箱;(5)一箱装满十瓶后,启动送箱装置,先送走满箱到位再送来空箱到位;(6)自动进入下一个工作循环;(7)在此期间检测是否有别的开关闭合,有则停止,没有则继续;6、各元件具体功能的实现6.1 8155芯片6.1.1 控制字的确定:A口控制要显示的位,B口控制显示位对应的数字,都为输出,其余为任意故其控制字为:00001111b8155由CS2进行片选,故其控制口、A口、B口地址分别为:0e000、0e001、0e002. 6.1.2 控制LED数码管显示的子程序:;数据段ledt db 3fh,6h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;0~9段码shu db 0,0,0,0xiang dw 0ws dw 0xunhuan db 01h,02h,04h,08h,10h,20h,40h,80h ;显示第几位;代码段xssz proc ;8155用于数字显示push axpush dxpush cxpush sipush dimov al,0fhmov dx,0e000hout dx,almov ax,xiangmov si,0shu1: mov dx,0div n ;将各位数字送入对应位mov shu[si],dlinc simov ws,sicmp ax,0jne shu1mov cx,0fh ;重复显示次,形成视觉xianshi1: mov si,0 ;八位数码显示,huan: mov dx,0e001h ;显示这几位数字mov al,xunhuan[si] ;端口A用来控制那位数字要显示not alout dx,almov dx,0e002h ;端口B用来控制显示几mov bx,offset ledtmov al,[shu+si]xlat ;转换成对应数字的七段显示代码out dx,almov al,00hout dx,alinc sijne huanloop xianshi1pop dipop sipop cxpop dxpop axretxssz endp6.2 8255芯片6.2.1各输出口功能、端口地址及控制字各输出口功能:A口输出LED灯; PC0、PC1、PC2、PC3控制步进电机输入口功能:B口为输入口读入开关状态;各端口地址:8255由CS1进行片选,A口地址为:0f000h,输出LED灯;B口地址为:0f001h,读入开关状态控制口地址:0f003h,控制字为:10000010b6.2.2 控制步进电机转动子程序djzhuan proc ;电机转动子程序push axpush bxpush cxpush dxmov dx,0f002hmov al,01hout dx,alcall delay1mov al,02hout dx,alcall delay1mov al,04hout dx,alcall delay1mov al,08hout dx,alcall delay1pop dxpop cxpop axretdjzhuan endpdelay1 procpush axpush bxpush cxpush dxmov cx,5000begin: loop beginpop dxpop cxpop bxpop axretdelay1 endp6.2.3 检查最右端开关是否闭合begain:mov dx,0f001h ;用8255B端口检测最右端开关是否闭合 in al,dxcmp al,7fhjnz begainjmp dj_com1 ;是0开始工作6.2.4 检查是否有别的开关闭合mov dx,0f001h ;用8255B端口控制任意开关闭合结束 in al,dxcmp al,7fhjnz done7、项目程序清单stack segment stackdb 1024 dup(0)stack endsdata segmentpc = 0f002hledt db 3fh,06h,5bh,4fh,66h,6dh,7dh,07,7fh,6fhshu db 0,0,0,0xiang dw 0ws dw 0xunhuan db 01h,02h,04h,08h,10h,20h,40h,80h ;显示第几位data endscode segment 'code'assume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,axmov dx,0f003h ;8255方式控制字A口输出,B口输入,C口输出 mov al,10000010bout dx,almov dx,0e000h ;8155方式控制字mov al,0fhout dx,albegain:mov dx,0f001h ;用8255B端口检测最右端开关是否闭合in al,dxcmp al,7fhjnz begainjmp dj_com1 ;是0开始工作dj_com1:mov dx,0f001h ;用8255B端口控制任意开关闭合结束in al,dxcmp al,7fhjnz donemov cx,5ten: mov dx,0f000h ;黄灯闪十次表示装十瓶mov al,11111101bout dx,alcall delay1mov dx,0f000hmov al,11011111bout dx,alcall delay1loop tenmov dx,0f000hmov al,11111011bout dx,al ;红灯亮箱子满mov dx,0f001h ;用8255B端口控制任意开关闭合结束in al,dxcmp al,7fhjnz donecall djzhuan ; 启动送箱装置送走满箱到位add xiang,1 ;计数mov cx,5000xunhuan1:call xsszloop xunhuan1 ;调用显示子程序,显示装满箱数(延时一段时间)mov dx,0f000hmov al,11111110bout dx,al ;绿灯亮启动输送空箱传送带mov dx,0f001h ;用8255B端口控制任意开关闭合结束in al,dxcmp al,7fhjnz donecall djzhuan ; 启动送箱装置送走空箱到位mov cx,5000xunhuan2:call xsszloop xunhuan2 ;调用显示子程序,显示装满箱数(延时一段时间)jmp dj_com1done: mov ax,4c00hint 21hxssz proc ;8155用于数字显示push axpush dxpush cxpush sipush dimov al,0fhmov dx,0e000hout dx,almov ax,xiangmov si,0shu1: mov dx,0div n ;将各位数字送入对应位mov shu[si],dlinc simov ws,sicmp ax,0jne shu1mov cx,0fh ;重复显示次,形成视觉xianshi1:mov si,0 ;八位数码显示,huan: mov dx,0e001h ;显示这几位数字mov al,xunhuan[si] ;端口A用来控制那位数字要显示 not alout dx,almov dx,0e002h ;端口B用来控制显示几mov bx,offset ledtmov al,[shu+si]xlat ;转换成对应数字的七段显示代码 out dx,almov al,00hout dx,alinc sicmp si,wsjne huanloop xianshi1pop dipop sipop dxpop axretxssz endpdjzhuan proc ;电机转动子程序 push axpush bxpush cxpush dxmov dx,pcmov al,01hout dx,alcall delay1mov al,02hout dx,alcall delay1mov al,04hout dx,alcall delay1mov al,08hout dx,alcall delay1pop dxpop cxpop bxpop axretdjzhuan endpdelay1 procpush axpush bxpush cxpush dxmov cx,5000begin: loop beginpop dxpop cxpop axretdelay1 endpcode endsend start8、模拟结果及结论程序运行过程良好,实验结果基本满足项目要求,达到了预期的目的,总体令人满意。

但是,在实际应用中还有需要待改进的地方。

首先,在实际应用中,控制程序定要简洁有效且不易出错,否则将会带来很大的经济损失,所以,在此程序的基础上,应追求更加简洁的程序设计,比如,可将检测任意开关闭合结束设计为子程序模块,既方便,又便于改进。

其次,还要根据实际应用中的具体控制元件来调整程序,即实际工程中用的是什么微处理器,用什么芯片控制什么样的功能,这主要是由该设备的实际定位决定的。

相关文档
最新文档