矿大硬件课程设计顺序控制系统.docx
- 文档编号:26720910
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:27
- 大小:6.08MB
矿大硬件课程设计顺序控制系统.docx
《矿大硬件课程设计顺序控制系统.docx》由会员分享,可在线阅读,更多相关《矿大硬件课程设计顺序控制系统.docx(27页珍藏版)》请在冰豆网上搜索。
矿大硬件课程设计顺序控制系统
硬件课程设计——
顺序控制系统
姓名:
学号:
专业:
计算机科学与技术
班级:
计科13-04班
设计题目:
顺序控制系统(七段数码管)
********************************
1设计任务与要求
1.1选题报告
顺序控制系统是一种按照一定顺序实现的微机系统,它是实现大型机组自动化,保证安全经济运行的重要措施。
在影响系统完好率和投入率的诸多因素中,合理划分设计界面及人-机界面的设计是两个最重要的因素。
顺序控制是自动控制领域中最基本应用又最广泛的一个方面,进入21世纪以来,它发展的非常迅速,在多个行业都有应用,备受人们的青睐。
经过前一阶段的学习和认识,我做出了一个简单的顺序控制系统,用来模拟一些机器生产等,以及生产过程中出现安全隐患的排查情况等。
我学习了微机原理与接口技术这门课程,课上我学到了一些计算机硬件工作的基本原理,汇编语言程序设计方法,微型计算机接口技术,建立微型计算机系统的整体概念,初步形成微机系统软硬件开发的能力,我决定通过这次硬件课程设计来指导督促自己的学习,培养学习的兴趣,使我的学习更有针对性。
根据课程设计的要求,我用微机原理与接口实验仪来模拟机器的工作过程,用到了8254、8255、数码管、0832、直流电机、步进电机等等,利用这些器件的工作原理可以模仿正常工作、报警等等一系列过程。
在实现运行的过程中,我利用汇编语言,利用上述几种芯片,增加对计算机硬件系统的了解和熟悉,培养创新能力和动手能力,将理论与具体的实践相联系,进一步的提升自己的能力。
1.2提出问题
随着社会经济的发展和科学技术水平的提高,顺序控制在社会日常生活中的作用越来越受到人们的重视。
利用微型计算机接口技术以及相应计算机硬件工作基本原理,设计一套顺序控制系统,用微机原理与接口实验仪来模拟机器的工作过程,使用8254、8255、0832等芯片以及汇编语言,使系统中各个部件如直流电机、步进电机、蜂鸣器、继电器、数码管等,依次工作。
1.3需求分析
整个顺序控制实验我将系统分为四个过程:
第一步:
数码管亮第一格,继电器亮、步进电机连续正转48圈;(转多少圈可以进行设置)
第二步:
数码管第二格亮,步进电机连续反转50圈;
第三步:
数码管第三格亮,蜂鸣器响、直流电机加速转动5秒;
第四步:
数码管第四格亮,直流电机减速转动直至停止转动;
其中最主要的过程是8254控制电机运转的时间,以及8255控制步进电机的正反转和0832控制直流电机转速,这三个过程是整个顺序系统的关键。
1.4设计思想
用8254控制电机运转的时间,8255控制步进电机的正反转,0832控制直流电机转动,这三个过程是整个顺序系统的关键。
其中8254发出时钟脉冲信号进行定时,而8255控制电机正反转,当时间到时,自动调整输出脉冲的顺序,从而实现步进电机的正反转,0832负责直流电机的转动。
最后对进行编程,控制所有芯片工作,达到使各个部件依次工作的目的。
2硬件方案
2.1设备器材
设计所需要的芯片:
8254、8255A、0832
所需要的设备:
pc、微机原理实验箱、导线
2.2硬件的选择以及芯片说明
2.2.18255的基本工作原理
8255A是Intel公司为其80系列微处理器生产的通用可编程并行输入输出接口芯片,也可以与其他系列的微处理器配套使用。
由于其通用性强,与微机接口方便,且可通过程序指定完成各种输入输出操作,因此,8255获得了广泛的应用。
它是具有3个8位的并行I/O端口,具有三种工作方式,被广泛地使用于单片机的并行I/O端口。
工作方式0:
基本输入输出方式
工作方式1:
选通输入输出方式
工作方式2:
双向传送方式
2.2.28255引脚功能说明:
RESET:
复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
CS:
片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
RD:
读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送
2.2.38255A的工作方式
8255A在使用前要先写入一个工作方式控制字,以指定A、B、C三个端口各自的工作方式。
8255A共有三种工作方式:
方式0——基本输入输出方式,即无须联络就可以直接进行8255A与外设之间的数据输入或输出操作。
A口、B口、C口的高四位和低四位均可设置为方式0。
方式1——选通输入输出方式,此时8255A的A口和B口与外设之间进行输入或输出操作时,需要C口的部分I/O线提供联络信号。
只有A口和B口可工作在方式1。
方式2——选通双向输入输出方式,即同一端口的I/O线既可以输入也可以输出,只有A口可工作于方式2。
此种方式下需要C口的部分I/O线提供联络信号。
有关8255A三种工作方式的功能及应用的详细介绍见下一节。
2.2.48255A的控制字
(1)工作方式选择控制字
8255A的工作方式可由CPU写一个工作方式选择控制字到8255A的控制寄存器来选择。
控制字的格式,可以分别选择端口A、端口B和端口C上下两部分的工作方式。
端口A有方式0、方式1和方式2共三种工作方式,端口B只能工作在方式0和方式1,而端口C仅工作在方式0。
注意:
在端口A工作在方式1或方式2,端口B工作在方式1时,C口部分I/O线被定义为8255A与外设之间进行数据传送的联络信号线,此时,C口剩下的I/O线仍工作在方式0,是输入还是输出则由工作方式控制字的D0和D3位决定。
(2)C口按位置位/复位控制字
8255A的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向8255A的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的状态不变。
控制字格式。
应注意的是,C口的按位置位/复位控制字必须跟在方式选择控制字之后写入控制字寄存器,即使仅使用该功能,也应先选送一个方式控制字。
方式选择控制字只需写入一次,之后就可多次使用C口按位置位/复位控制字对C口的某些位进行置1或清0操作。
2.2.58255A引脚及功能示意图
图28255A内部结构框图
2.2.68254基本原理
8254是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8254(5MHz)。
8254内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
8254在本实验中工作于方式2和方式3。
2.2.78254引脚及功能示意图:
图38254内部结构框图
图48254引脚及功能示意图
2.2.80832基本原理
NSC公司生产的DAC0832是一种内部带有数据输入寄存器的8位D/A转换器,采用先进的CMOS工艺制成,芯片内有R-2R梯形电阻网路,用于对参考电压产生的电流进行分流,完成模数转换,转换结果以一组差动电流Iout1和Iout2输出。
在DAC0832内部有一个8位输入寄存器和一个8位DAC寄存器,它们可以分别选通。
这样,就可以把从CPU送来的数据先打入输入寄存器,在需要进行D/A转换时再选通DAC寄存器,实现D/A转换,这种工作方式称为双缓冲工作方式。
2.2.9DAC0832引脚以及功能示意图
图5
2.3硬件电路
直流电机
2MHZ280---287H288---28FH
步进电机:
BABBBCBD
+Vcc(5V)
L1L2L3L4L5
图6
2.4实验连线图
图7
3软件方案
3.1功能模块
初始化—8254—8255—数码管—继电器—步进电机—蜂鸣器—直流电机
3.2系统各模块程序流程图
Y
Y
4源程序清单和注释
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,28BH;8255的初始化
MOVAL,10010000B;A口输入,B口C口输出,方式0
OUTDX,AL
MOVDX,283H
MOVAL,00110101B;通道0,读写,方式2,BCD计数
OUTDX,AL;向8254的控制口写控制字
MOVDX,280H
MOVAL,00H;向通道0写初值计数2000
OUTDX,AL
MOVAL,20H
OUTDX,AL
MOVDX,283H
MOVAL,01110111B;通道1,读写,方式3,BCD
OUTDX,AL
MOVDX,281H
MOVAL,00H
OUTDX,AL
MOVAL,10H
OUTDX,AL;向通道1写初值10008254输出2MHZ方波
CALLS1
NOP
NOP
CALLS2
NOP
NOP
CALLS3
NOP
NOP
CALLS6
NOP
NOP
CALLS4
NOP
NOP
S1PROCNEAR
A:
MOVDX,28AH;8255B
MOVAL,00H;先送0
OUTDX,AL
MOVAL,01H;送低电平,使第一个灯亮11111110
OUTDX,AL
MOVBX,50
WORK:
MOVAL,01H;送01H
MOVDX,289H;8255C
OUTDX,AL
MOVCX,0FFFFH
DELAY1:
DECCX
CMPCX,00
JNZDELAY1
MOVAL,02H;送02H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY2:
DECCX
CMPCX,00
JNZDELAY2
MOVAL,04H;送04H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY3:
DECCX
CMPCX,00
JNZDELAY3
MOVAL,08H;送08H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY4:
DECCX
CMPCX,00
JNZDELAY4
MOVAL,10H;送10H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY5:
DECCX
CMPCX,00
JNZDELAY5
MOVAL,20H;送20H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY6:
DECCX
CMPCX,00
JNZDELAY6
MOVAL,40H;送40H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY7:
DECCX
CMPCX,00
JNZDELAY7
MOVAL,80H;送80H
MOVDX,289H
OUTDX,Al
MOVCX,0FFFFH
DELAY8:
DECCX
CMPCX,00
JNZDELAY8
DECBX;依次从A到D输入以上八个脉冲,正转
CMPBX,00
JNEWORK;循环,达到连续正转的效果
MOVDX,288H
INAL,DX;检测A口第二位的开关状态
ANDAL,00000010B
CMPAL,00H
JZT3
JMPS2
T3:
MOVDX,28AH
MOVAL,10H
OUTDX,AL
MOVDX,288H
INAL,DX;检测A口第二位的开关状态
ANDAL,00000010B
CMPAL,00H
JZT3
JMPS2
S1ENDP
S2PROCNEAR
MOVDX,28AH
MOVAL,00H
OUTDX,AL
MOVAL,02H;给第二个灯送低电平,使其亮
OUTDX,AL
MOVBX,50
WORK1:
MOVAL,80H;送80H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY11:
DECCX
CMPCX,00
JNZDELAY11
MOVAL,40H;送40H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY22:
DECCX
CMPCX,00
JNZDELAY22
MOVAL,20H;送20H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY33:
DECCX
CMPCX,00
JNZDELAY33
MOVAL,10H;送10H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY44:
DECCX
CMPCX,00
JNZDELAY44
MOVAL,08H;送08H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY55:
DECCX
CMPCX,00
JNZDELAY55
MOVAL,04H;送04H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY66:
DECCX
CMPCX,00
JNZDELAY66
MOVAL,02H;送02H
MOVDX,289H
OUTDX,AL
MOVCX,0FFFFH
DELAY77:
DECCX
CMPCX,00
JNZDELAY77
MOVAL,01H;送01H
MOVDX,289H
OUTDX,Al
MOVCX,0FFFFH
DELAY88:
DECCX
CMPCX,00
JNZDELAY88
DECBX
CMPBX,00
JNZWORK1;循环使其连续反转
MOVDX,288H
INAL,DX;检测A口第二位的开关状态
ANDAL,00000010B
CMPAL,00H
JZT4
JMPS3
T4:
MOVDX,28AH
MOVAL,10H
OUTDX,AL
MOVDX,288H
INAL,DX;检测A口第二位的开关状态
ANDAL,00000010B
CMPAL,00H
JZT4
JMPS3
S2ENDP
S3PROCNEAR
MOVDX,28AH
MOVAL,00H
OUTDX,AL
MOVAL,04H;给第三个灯送低电平,使其亮
OUTDX,AL
MOVDX,290H
MOVAL,00H
UP:
MOVCX,0FFFFH
DELAY000:
DECCX
CMPCX,00
JNZDELAY000
MOVCX,0FFFFH
DELAY001:
DECCX
CMPCX,00
JNZDELAY001
OUTDX,AL;直流电机加速转动
INCAL
CMPAL,0FFH
JNEUP
MOVAH,AL
MOVDX,288H
INAL,DX;检测A口第二位的开关状态
ANDAL,00000010B
CMPAL,00H
JZT8
JMPS6
T8:
MOVDX,28AH
MOVAL,10H
OUTDX,AL
MOVDX,288H
INAL,DX;检测A口第二位的开关状态
ANDAL,00000010B
CMPAL,00H
JZT8
JMPS6
S3ENDP
S6PROCNEAR
MOVDX,28AH
MOVAL,00H
OUTDX,AL
MOVAL,08H;给第四个灯送低电平,使其亮
OUTDX,AL
MOVDX,290H
MOVAL,AH
DOWN:
MOVCX,0FFFFH
DELAY003:
DECCX
CMPCX,00
JNZDELAY003
MOVCX,0FFFFH
DELAY004:
DECCX
CMPCX,00
JNZDELAY004
OUTDX,AL;直流电机减速转动
DECAL
CMPAL,00H
JNZDOWN
S6ENDP
S4PROCNEAR
MOVDX,288H
INAL,DX;检测A口第二位的开关状态
ANDAL,00000010B
CMPAL,00H
JZT2
JMPA
T2:
MOVDX,28AH
MOVAL,10H
OUTDX,AL
MOVDX,288H
INAL,DX;检测A口第二位的开关状态
ANDAL,00000010B
CMPAL,00H
JZT2
JMPA
S4ENDP
CODEENDS
ENDSTART
5运行结果
图8步进电机正转
图9
步进电机反转
图10直流电机加速工作
图11直流电机减速至停——继电器工作(下一个循环)
6问题分析与解决方案
6.1实验设计前的问题与解决方案
在运行程序的过程中出现了很多错误,给8255送控制字和初值,通过级联来给每个过程计时,8255的A口作输入,8254的输出接A口;B口作输出,8255循环检测A口的状态,通过B输出到数码管上。
通过老师和同学的帮助才解决了各种问题。
6.2实验过程中的问题与解决方案
最开始时,七段数码管亮的没太有规律,和其他部件工作不匹配,尝试了很多办法也没有解决了这个问题。
后来在查阅了相关资料问了一些同学后,才发现是自己在线路连接方面连错了两根线。
然后进行改正,最终实现了自己想要的结果。
7结论与体会
当时学微机原理课程的时候就学的不是太扎实,直接导致刚接触实验时感觉无从下手。
然后多次询问了老师顺序控制系统的相关知识,课后又重新学习了汇编,实验才有了初步的进展。
而最难的还是程序,线路图连接好了之后,程序迟迟没有写出来,最后在其他同学及老师的指导下慢慢探索了出来。
这次实验过后我深刻认识到,如果理论知识不扎实,以后实践会遇到很多麻烦,以后一定要把基础打扎实!
参考文献
[1]微型计算机原理与接口技术(第四版)周荷琴吴秀清编著
[2]计算机硬件课程设计指导书
[3]微型计算机原理与接口技术实验指导书
[4]演示实验实例
.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 课程设计 顺序 控制系统