ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:140.91KB ,
资源ID:4695597      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4695597.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理项目报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理项目报告.docx

1、微机原理项目报告微机原理项目七 姓 名:李守烨班 级:08级机电2班指导老师:史 艳 国学 号:080101010398 时 间:2011/5/21目录1题目及要求 22过程示意图 23总体设计思路 33.1步进电机的模拟 33.2控制系统的启停控制 33.3指示灯的控制 33.4数码管静态显示 34系统流程框图 45系统接线示意图 56程序部分 67实验结果及分析 127.1实验结果 127.2实验分析 128结论 129感想 121题目及要求瓶装饮料生产线传送控制系统某厂生产瓶装保健品饮品,每10瓶装一箱,要求箱满时,启动送箱装置,先送走满箱到位(延时一定时间),再送来空箱到位(延时一定时

2、间),满箱和空箱分别在两个不同的传送带上传送。能人为控制生产线的启动和停止(比如键盘上,按某一键启动,启动后按任意键停止)。能在数码管上显示当时已装满送出的箱数。2过程示意图图2. 13总体设计思路3.1步进电机的模拟用步进电机的正反转来模拟送来空箱和送走满箱。用8255的PC0PC3作为输出给步进电机AD口,选用单双八拍工作方式(A-AB-B-BC-C-CD-D-DA-A)。步进电机的驱动原理是通过它每相线圈的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲来控制,所以调节脉冲的频率便可改变步进电机的转速,微控制器最适合控制步进电机。3.2控制系统的启停控制用8255的PC7和PC6作为输

3、入采集开关信号控制系统的启停。首先设置8255的工作方式为0方式,C口的高4位设为输入,然后把PC7和PC6和开关相连。系统通过采集开关信号来判别是否启动和暂停系统。3.3指示灯的控制用8255的A口作为输出来控制指示灯。绿灯代表送来空箱子,黄灯代表装箱过程,红灯代表送走满箱。3.4数码管静态显示选用8279连接数码管来静态显示所记录的箱数。8279自身有刷新数码管的频率,较之8255能更稳定地显示数字。4系统流程框图图4. 15系统接线示意图图5. 16程序部分stac segment stack db 1024 dup(0)stac endsdata segment;定义数据段z8279

4、equ 0bf01h ;8279命令字、状态字地址8279连cs5d8279 equ 0bf00h ;8279读写数据口的地址led db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,080h,90h ;段码counter dw 0num db 10temporary db ?data endscode segment code assume cs:code,ds:data,ss:stacstart: mov ax,data mov ds,ax start1: mov al,10000010b ;对8255进行初始化 mov dx,0f003h out dx,al

5、 mov dx,0f001h in al,dx and al,80h cmp al,0 jnz start1 jz start2 start2: call init8279 ;8279写入方式控制字,初始化 call lightoff ;系统刚启动指示灯全灭 call leddisp ;系统刚启动数码管显示为0 call delay;主程序start3: call step_motor1 ;电动机正转,送来空箱 call delay ;延时一段时间 call yellowlight ;装箱过程,黄灯亮 call delay ;延时 call Step_motor2 ;电动机反转 ,送走满箱,且

6、计数并显示 call delay call stop ;检测是否按下停止键 jmp start3 ;如果没按停止键,则程序系统继续工作 mov ax,4c00h int 21h ;8279初始化 init8279 proc mov dx,z8279 ;cmd_8279为写命令地址、读状地址 mov al,34h out dx,al ;可编程时钟设置,设置分频系数(20分频) mov al,0 ;8*8字符显示,左边输入,外部译码键扫描方式 out dx,al mov al,0a0h ;显示禁止/熄灭命令 out dx,al call init8279_1 ret init8279 endp i

7、nit8279_1 proc call clear mov al,90h ;从第一个数码管开始移位显示 out dx,al retinit8279_1 endp ;清除命令 clear proc mov dx,z8279 mov al,0deh out dx,al wait1: in al,dx test al,80h jnz wait1 ; 显示ram清除完毕吗? ret clear endp;段码编写write proc div num ;cx=ax,把计数值除十,取出余数存入ah, ;商存入al,显示余数 mov temporary,al 商暂存在temporary mov al,ah

8、;余数存入al mov bx,offset led xlat ;换码即al=ds:bx+al out dx,al ;输出段码 mov ah,0 ;ax高位复0 mov al,temporary ;把商又赋给al,即商存入到ax里,为下一次 ;除法做准备 ret write endp leddisp proc ;显示子程序 mov dx,d8279 mov ax,counter push cx mov cx,8 ;往8279里面写8次again: call write loop again pop cx retleddisp endpdelay proc ;延时子程序 push bx push

9、cx mov bx,8delay1:mov cx,0delay2:loop delay2 dec bx jnz delay1 pop cx pop bx retdelay endp motor_delay proc ;步进电机延时子程序 push bx push cx mov bx,5motor_delay1: mov cx,500motor_delay2: loop motor_delay2 dec bx jnz motor_delay1 pop cx pop bx retmotor_delay endp redlight proc ;红灯亮子程序 mov dx,0f000h mov al,

10、11011111b out dx,al ret redlight endpgreenlight proc ;绿灯亮子程序 mov dx,0f000h mov al,01111111b out dx,al ret greenlight endpYellowlight proc ;黄灯亮子程序 mov dx,0f000h mov al,10111111b out dx,al ret yellowlight endp lightoff proc ;程序开始指示灯全灭 mov dx,0f000h mov al,0ffh out dx,al retlightoff endp step_motor1 pr

11、oc ;电动机正转子程序 push cx mov cx,6 call greenlight again1: mov dx,0f002h mov al,00000001b out dx,al call motor_delay mov al,00000011b out dx,al call motor_delay mov al,00000010b out dx,al call motor_delay mov al,00000110b out dx,al mov al,00000100b out dx,al call motor_delay mov al,00001100b out dx,al ca

12、ll motor_delay mov al,00001000b out dx,al call motor_delay mov al,00001001b out dx,al call motor_delay loop again1 pop cx ret step_motor1 endpStep_motor2 proc ;电动机反正子程序 call redlight ;送走满箱 红灯亮 inc counter ;计数值加1 call leddisp ;显示送走箱子个数 push cx mov cx,8 again2: mov dx,0f002h mov al,00001000b out dx,al

13、 call motor_delay mov al,00001100b out dx,al call motor_delay mov al,00000100b out dx,al call motor_delay mov al,00000110b out dx,al call motor_delay mov al,00000010b out dx,al call motor_delay mov al,00000011b out dx,al call motor_delay mov al,00000001b out dx,al call motor_delay mov al,00001001b o

14、ut dx,al call motor_delay loop again2 pop cx retStep_motor2 endp;暂停子程序stop proc mov dx,0f001h in al,dx and al,40h cmp al,0 jz prostop jnz return prostop: mov dx,0f001h in al,dx and al,80h cmp al,0 jz return jnz prostop return: retstop endp code ends end start ;程序结束7实验结果及分析7.1实验结果 通过对程序的调试,基本上能模拟出该控制

15、系统。启动程序,按下启动开关,系统才开始工作。首先步进电机正转(送来空箱子)并且绿灯亮,然后延时一段时间并且黄灯亮(装箱过程),最后步进电机反转(送走满箱)并且红灯亮,送满箱的过程中LED数码管显示的计数值加1,再延时一段时间后进电机正转(送来空箱子)并且绿灯亮,如此循环。如果拨动停止开关,系统则暂停,再拨动启动开关,系统又恢复工作。7.2实验分析刚开始用的是8255接数码管,但是调试的时候数码管不能静态显示,后来选用8279接数码管,通过调试能够静态显示所记录的个数。而且通过对实验的调试发现,在每拍之间加一个延时的程序,可以改变步进电机的转速。8结论 该实验基本上能模拟出项目所要求的控制系统,但是仍有许多不足之处。比方说忽略了装箱过程,没有具体指明多少瓶饮料装一箱;没有检测部分,如果装箱质量不合格就必须重新装箱;而且该系统的停止控制只能在送走满箱后才有效,应该设计成在整个装箱过程中都有效。9感想 通过这次做微机原理实验项目,使我更加感性的认识了微机原理这门学科,对汇编语言和接口技术的认识也更加深刻了,同时也锻炼了自己的实践能力。虽然是每人单独做一个项目,但是大家互相交流和学习的氛围很浓烈,每个人在这个过程都得到了提高。在做项目的过程中,发现了许多的不足,提醒自己在以后的设计中,努力做到最好,尽量不要遗漏一些关键和细节部分。

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

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