版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-摘要?电风扇控制器?课程设计中主要应用了芯片8086、8255、8254、DAC0832。8086为控制系统的核心。8255A口输入,检测开关的状态;B口输出,控制数码管,显示开关状态;C口输出,控制发光二极管LED,指示各开关状态。8254起定时作用,计数器0输出周期为50ms的方波信号;计数器2数定时4秒输出一个高电平信号。DAC0832控制电机的转速。最终在各芯片共同作用下实现对电风扇的控制。关键字:8255;8254;DAC0832;定时第1章 小组成员及分工小组成员及分工见表2.1表 2.1 小组成员及分工工作实验程序,硬件调试,实验报告硬件调试,实验报告第2章 设计题目及要求2.
2、1、设计的题目1、设计家用电风扇控制器,实现电风扇的启停控制、风速控制和类型选择功能,所有操作由发光二极管LED指示,编制相应的汇编语言源程序并进展系统调试。2、控制器面板包括:风速、类型和启停键,发光二极管LED指示灯。风速分强、中、弱。类型为睡眠、自然和正常。3、电风扇处于停转状态时,所有指示灯不点亮,只有按下“风速键时,才会进入起始工作状态。不管电风扇处于何种状态,只要按下停顿键,电风扇就进入停转状态。2.2、设计要求1、初始状态:风速为“弱,类型为“正常。2、按“风速键,其状态由“弱“中“强“弱往复循环改变,按每一下键,状态改变一次。3、按“类型键,其状态由“正常“睡眠“自然“正常往复
3、循环改变。4、风速的弱,中,强对应于电风扇转动的慢快。5、类型的不同选择,分别对应如下情况。 正常:电风扇连续转动。 自然:电风扇模拟自然风,转动8秒,停顿8秒。 睡眠:电风扇慢转,产生轻柔的微风,转动4秒,停顿8秒。6、按照风速与类型的设置输出相应的控制信号,点亮或熄灭相应的指示灯。第3章 所需芯片功能简介3.1、8255功能简介1、8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片40引脚。 其各口功能可由软件选择,使用灵活,通用性强。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址
4、线、控制线接口。同时必须具有与外设连接的接口A、B、C口。 2、8255在使用前要写入一个方式控制字,设置三个端口A、B、C的工作方式。共三种。方式0:根本输入/输出方式,其特点信号时与外设传送数据时,不需要设置专用的联络信号,可以无条件的直接进展I/O传送。A,B,C3个端口都可以工作在方式0.A口和B口工作在方式0时,只设置以8位数据格式输入/输出;C口工作在方式0时,可以高4位和低4位分别设置为数据输入或数据输出方式。方式0常用于与外设无条件数据传送或查询方式数据传送。方式1:单向选通输入/输出方式,方式1是一种带选通信号的单方向输入/输出工作方式,其特点是:与外设传送数据时,需要联络信
5、号进展协调,允许用查询或中断方式传送数据。由于C口的,和定义为B口工作在方式1的联络信号线,, 和定义为A口工作方式1的联络信号,因此只允许A口和B口工作在方式1.方式2:双向选通输入/输出方式,是方式1输入和输出的组合,即同一端口的信号线既可以输入又可以输出。由于C口的定义为A口工作在方式2时的联络信号线,因此只允许A口工作在方式。3.2、8254功能简介8254 芯片是一款使用十分广泛的可编程定时,计数芯片,其主要功能是定时和计数的功能。8254芯片主要由四局部组成: 1、数据总线缓冲器 数据总线缓冲器是一个三态、双向8位存放器主要作用是与cpu进展数据交换,8位数据线D7D0与CPU的系
6、统数据总线连接,构成CPU和8254之间信息传送的通道,CPU通过数据总线缓冲器向8254写入控制命令、计数初始值或读取计数值。 2、读写逻辑 读写逻辑是芯片的控制局部,编程人员通过控制信号的选择来选择芯片的工作方式。读/写控制逻辑用来接收CPU系统总线的读、写控制信号和端口选择信号,用于控制8254部存放器的读/写操作。 3、控制字存放器 控制存放器是一个只能写不能读的8位存放器,系统通过指令将控制字写入控制存放器,设定8254的不同工作方式。 4、计数器 8254部有三个构造完全一样而又相互独立的16位减“1计数器,每个计数器有六种工作方式,各自可按照编程设定的方式工作。 8254芯片的工
7、作方式8254芯片共有六种工作方式,分别对应与六种不同的用途。 (1)方式0:计数完毕产生中断 方式0时序如图所示。图 方式0时序在写入控制字CW后,OUT引脚初始电平为低电平,写入计数初始值N之后的第一个CLK的下降沿将N装入计数执行部件,待下一个CLK的下降沿到来且门控信号GATE为高电平时,开场启动减“1计数,随后每一个CLK的下降沿,计数器减1。在计数过程中,OUT引脚一直保持低电平,直到计数为“0时,OUT引脚输出由低电平变为高电平,并且保持高电平。方式0的特点:计数初始值无自动装入功能,假设要继续计数,则需要重新写入计数初始值。门控信号GATE用来控制CE,当GATE为高电平时,允
8、许计数;当GATE为低电平时,制止计数。当GATE重新为高电平时,计数器接着当前的计数值继续计数。计数期间给计数器装入新值,则会在写入计数初始值后重新开场计数过程。 由于方式0在计数完毕后,OUT引脚输出一个由低电平到高电平的跳变信号,因此可以用它作为计数完毕的中断请求信号。(2)方式1:可重复触发的单稳态触发器,方式1时序如图3.2.2所示。图 方式1时序方式1的特点:硬件启动计数,即由门控信号GATE的上升沿触发计数。在计数过程中,CPU可改变计数值,但是对计数过程没有影响。计数为“0,OUT引脚输出高电平,假设再次触发,则计数器将按新输入的计数初始值进展计数。(3)方式2:分频器,方式2
9、时序如图3.2.3所示,图 方式2时序控制字CW写入之后,OUT引脚初始电平为高,在写入计数值N之后第一个CLK的下降沿将N装入计数执行单元CE,待下一个CLK的下降沿到来且门控信号GATE为高电平时,启动计数。在计数过程中,OUT引脚始终保持高电平,直到CE减到“1时,OUT引脚变为低电平,维持一个时钟周期后,又恢复为高电平,同时自动将计数值N加载到CE,重新启动计数,形成循环计数过程,OUT引脚连续输出负脉冲。方式2的特点:计数初始值有自动装入功能,不用重新写入计数值,计数过程可由GATE信号控制。当GATE为低电平时,暂停计数;在GATE变为高电平后的下一个CLK脉冲使计数器恢复计数初始
10、值,重新开场计数。(4)方式3:方波发生器,方式3时序如图3.2.4所示,图 方式3时序工作原理与方式2类似,有自动重复计数功能,但OUT引脚输出的波形不同。当计数值N为偶数时,OUT输出对称的方波信号,正负脉冲的宽度为个时钟周期;当计数值N为奇数时,OUT输出不对称的方波信号,正脉冲宽度为。个时钟周期,负脉冲宽度为个时钟周期(5)方式4:软件触发计数,方式4时序如图3.2.5所示,图 方式时4序写入控制字CW后,OUT初始电平为高,在写入计数初始值N之后的第一个CLK的下降沿将N装入计数执行单元CE,待下一个计数脉冲信号CLK到来且门控信号GATE为高电平时即软件启动,开场计数。当计数为“0
11、时,OUT引脚由高电平变为低电平,维持一个时钟周期,OUT引脚由低电平变为高电平。一次计数过程完毕后,OUT引脚输出宽度为一个时钟周期的负脉冲信号方式4的特点:无自动重复计数功能,只有在输入新的计数值后,才能开场新的计数。假设设置的计数值为N,则在写入计数值N个时钟脉冲之后,才使OUT引脚产生一个负脉冲信号。(6)方式5:硬件触发计数,方式5时序如图3.2.6所示。图 方式时5序写入控制字CW后,OUT引脚初始电平为高,在写入计数值N后,计数器并不开场计数,只有GATE信号出现由低到高的上升沿即硬件启动之后的第一个CLK的下降沿,将N装入计数执行单元CE,待下一个CLK的下降沿才开场计数。当计
12、数为“0后,OUT引脚由高电平变为低电平,维持一个时钟周期,OUT引脚由低电平变为高电平。一次计数过程完毕后,OUT引脚输出宽度为一个时钟周期的负脉冲信号。方式5输出波形与方式4一样。两种工作方式的区别是:方式4为软件启动计数,即GATE1,写入计数初始值时启动计数;方式5为硬件启动计数,即先写入计数初始值,由GATE的上升沿触发,启动计数。在设置8254的工作方式时,需要注意上述六种工作方式的一些特点:方式0, 1, 4, 5的计数初始值无自动加载功能,当一次计数完毕后,假设要继续计数,需要再次编程写入计数值;方式2和方式3的计数初始值有自动加载功能,只要写入一次计数值,就可以连续进展重复计
13、数。方式2, 4, 5的输出波形虽然一样,即都是宽度为一个时钟周期的负脉冲,但方式2可以连续自开工作,方式4由软件触发启动,方式5由硬件触发启动。8254的六种工作方式的特点及其功能见表3.2。表3.2 8254的六种工作方式的特点及其功能工作方式OUT触发计数方式OUT终止计数方式初始值自动装载功能0高电平低电平无计数定时中断1上升沿无影响无单脉冲发生器2高电平或上升沿低电平有频率发生器或分频器3高电平或上升沿低电平有方波发生器或分频器4高电平低电平无单脉冲发生器5上升沿无影响无单脉冲发生器注:GATE高电平触发方式也称为软件触发方式,GATA上升沿触发方式也称为硬件触发方式。3.3、DAC
14、0832功能简介DAC0832是NS公司生产的部带有数据输入存放器和R2R T型电阻解码网络的8位D/A转换器。主要特性 : 电流输出型D/A转换器。 数字量输入有双缓冲、单缓冲或直通三种方式。 与所有微处理器可直接连接。 输入数据的逻辑电平满足TTL电平规。 分辨率为8位。 满量程误差为±1 LSB。 转换时间建立时间1ms。 增益温度系数为20×10-6/。 参考电压±10V。 单电源5V15V。第4章 硬件连接图4.1、硬件实验整体连线图如图4.1所示图4.1 硬件实验整体连线图4.2、Proteus仿真整体连接图如图4.2所示图4.2 Proteus仿真整
15、体连接图4.3、Proteus仿真8255连接图如图4.3所示图4.3 Proteus仿真8255连接图4.4、Proteus仿真8254连接图如图4.4所示图4.4 Proteus仿真8254连接图4.5、Proteus仿真DAC0832连接图如图4.5所示图4.5 Proteus仿真DAC0832连接图第5章 工作原理及流程图5.1、工作原理8254计数器/定时器0和2作为定时器,定时器0的输入端CLK0连1MHZ脉冲频率,产生周期为50ms的方波信号。OUT0作为定时器2的输入,与CLK2相连,定时4s输出一个高电平信号。OUT2与8255A的PA7相连。8255A的端口A0A7读入7个
16、开关状态;PA7与8254的OUT2相连,检测OUT2输出的高电平,起定时作用;B0B6与七段数码管相连,显示正在运行的状态;C0C6与LED灯相连,指示各开关的状态。DAC0832控制电机的转速。通过设置延时时间常数,控制高电平、低电平输出时间比,从而控制电机的转速。5.2、程序流程图电风扇控制器流程图如图所示8254定时器2置初值,定时4s产生一高电平8254定时器0置初值,周期为50ms的方波开场读入开关状态,PA7=1?完毕YN(a) 定时子程序开场K=49H?8255初始化,PA口输入,PB口输出,PC口输出读入开关状态,屏蔽最高位K=4CH?K=4AH?K=60H?K=50H?有键
17、按下.延时时间常数延时时间常数延时时间常数延时时间常数延时时间常数延时通过0832输出5V延时完毕显示提示信息显示提示信息显示提示信息显示提示信息显示提示信息开关K6、K3、K0对应LED灯亮开关K6、K3、K1对应LED灯亮开关K6、K3、K2对应LED灯亮开关K6、K5对应LED灯亮开关K6、K4对应LED灯亮显示提示信息全部LED灯熄灭通过0832输出0V8254定时4s通过0832输出0V8254定时4s延时通过0832输出5V延时延时通过0832输出5V延时8254定时4s通过0832输出0V8254定时8sYYYYYYNNNNNN(b) 主程序 图 电风扇控制器程序流图第6章 实验
18、结果实验结果图如图6.1所示图 6.1 实验结果第7章 实验总结及问题分析7.1 问题分析问题一:在读入开关状态后,需要与预设置的状态相比拟,之前我选择了TEST指令,但硬件实验调试时一直不能按实验程序走。解决方法:屡次调试不成功后,我认真学习比拟了TEST指令与CMP指令。TEST指令TEST指令完成的操作、操作数的约定,以及对标志位的影响同AND指令,只是TEST指令不回送结果到目标操作数。使用TEST指令,通常是在不希望改变原有操作数的情况下,检测*一位或*几位的状态。所以常被用于条件转移指令之前,根据测试的结果令程序发生跳转。CMP指令的操作功能、操作数的规定以及影响标志位的情况类似于
19、SUB指令,惟一不同的是CMP指令不保存相减以后的结果差,即该指令执行后,两个操作数原先的容不会改变,只是根据相减操作的结果设置标志位。CMP指令通常用在分支程序构造中比拟两个数的大小,在该指令之后经常安排一条条件转移指令,根据比拟的结果让程序转移到相应的分支去执行。他们的区别为:需要用到TEST指令处,一般是与源操作数为的倍数的数相比拟。CMP指令则没有要求。由于我预设置的状态不是的倍数,所以不能简单的运用TEST指令。在将TEST指令修改为CMP指令后,调试成功。问题二:硬件调试时,改变开关的状态,但结果始终为初始驱动时的状态解决方法:在认真检查程序后,检查出跳转指令跳转的位置不正确。跳转
20、指令跳转的位置未使8255一直检测开关的状态。修改后,调试成功。7.2 课程设计感想贤成的感想:感想一:这次课程设计,总的来说完成的还比拟顺利。在原来软件实验和硬件实验的根底上更进一步学习了汇编语言编写程序的设计方法和硬件调试的技巧。提高了运用现有的资源解决问题的能力,增强了对知识融会贯穿的能力。在实验中,通过与教师、同学的讨论,在网上查找资料,更加深刻的理解了8255,、8254、DAC0832芯片功能的应用。通过实践,进一步的熟悉了教材有关类容(比方汇编语言指令)。通过对各模块的分布设计,并调试,最终实现了对电风扇的控制。感想二:这次实验我也学会了灵活应对实验中的一些错误和故障比方死循环、
21、接线错误、符号格式不正确等等,始终应该冷静的分析问题和排除出现错误的各种原因。通过这次实践学习,我再次认识到,不管学习什么,都必须重视实践操作,自己要多动手操作,才能更好的理解理论知识、增长在实践中的经历。朱杭天的感想:这次微机原理的课程设计,让我学到很多,从开场选题,设计,到理论联系到实际,我们花了很多时间和心血,毕竟对于做课设设计,我们也是刚开场接触,所以做起来比拟生疏也比拟辛苦,做课程设计不仅可以稳固以前所学的知识,而且学到了很多书本上没有的东西。通过这次课程设计,我懂得理论必须和实际相结合,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会
22、效劳,从而提高自己的实际动手能力和独立思考的能力。设计过程碰到了许多问题,可以说得上是困难重重,同时在设计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不够深刻,掌握得不够结实,程序逻辑上的设计老是出现问题,总体的构造在开场的时候也显得有点混乱。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在马教师的辛勤指导下,终于迎刃而解。同时,在马教师的身上我学得到很多实用的知识,在此我表示感!同时,对给过我帮助的所有同学和指导教师再次表示忠心的感!参考文献1 马春燕.微机原理与接口技术. :电子工业,20212 马春燕.微机原理与接口技术实验与学习辅导.:电子工业.,20073?微
23、机应用系统设计与综合应用实验?.doc88./p-94151315901.html.2021-1-34?模拟电风扇动作?.doc88./p-703738826135.html.2021-1-35 ?微机原理.电子时钟课程设计?.docin./p-310458949.html. 2021-1-3附录参考程序DATA SEGMENTIOPORT EQU0D880H-280HIO0832A EQUIOPORT+2A0HIO8255A EQUIOPORT+280HIO8255B EQUIOPORT+281HIO8255C EQUIOPORT+282HIO8255T EQUIOPORT+283HIO82
24、54K EQUIOPORT+28BHIO82542 EQUIOPORT+28AHIO82541 EQUIOPORT+289HIO82540 EQUIOPORT+288HBUF1 DW 0BUF2 DW 0ZHT1 DB 'ZHENG CHAND RUO',0DH,0AH,'$'ZHT2 DB 'ZHENG CHAND ZHONG',0DH,0AH,'$'ZHT3 DB 'ZHENG CHAND QIANG',0DH,0AH,'$'ZHT4 DB 'ZI RAN',0DH,0AH,
25、39;$'ZHT5 DB 'SHUI MIAN',0DH,0AH,'$'ZHT6 DB 'TING ZHI',0DH,0AH,'$'DATA ENDSSTACKS SEGMENT DB 100 DUP(?)STACKS ENDSCODE SEGMENT ASSUME CS: CODE, DS: DATA, SS: STACKS,ES: DATASTART: MOV A*, DATA MOV DS,A* MOV ES,A* MOV A*,STACKS MOV SS,A* MOV D*,IO8254K MOV AL,36H;
26、00110110,计数器0,方式3,先读低8位,再读高8位 OUT D*,AL MOV D*,IO82540 MOV A*,50000; 初值50000,产输出周期为50ms的方波信号 OUT D*,AL NOP NOP MOV AL,AH OUT D*,ALKSH: MOV D*,IO8255T MOV AL,90H; 10010000,工作方式0,A口输入,B口、C口输出 OUT D*,AL MOV D*,IO8255A IN AL,D*; A口输入,检测开关的状态 AND AL,7FH; A口输入,最高位清零 CMP AL,49H; 正常弱,开关状态假设为01001001则跳转到ZHR
27、JZ ZHR CMP AL,4AH; 正常中,开关状态假设为01001010则跳转到ZHZH JZ ZHZH CMP AL,4CH; 正常强,开关状态假设为01001100则跳转到ZHQ JZ ZHQ CMP AL,60H; 自然,开关状态假设为01100000则跳转到ZR JZ ZR CMP AL,50H; 睡眠,开关状态假设为01010000则跳转到SHM JZ SHM MOV AH,06H MOV DL,0FFH INT 21H JNZ PPP; 有键按下退出 JMP TZH; 没键按下且开关的为其他状态则跳转到TZHPPP: MOV AH,4CH INT 21HTZH: MOV D*,
28、OFFSET ZHT6; 显示ZHT6中的类容 MOV AH,09H INT 21H MOV D*,IO8255B; B口输出,数码管显示6 MOV AL,7DH OUT D*,AL MOV D*,IO8255C; 00000000 全部灯熄灭 MOV AL,00H OUT D*,AL MOV AL,80H;0832输出0V低电压 MOV D*,IO0832A OUT D*,AL JMP KSH; 继续检测开关的状态ZHR:MOV D*,OFFSET ZHT1; 显示ZHT1中的类容 MOV AH,09H INT 21H MOV D*,IO8255B; 数码管显示1 MOV AL,06H OU
29、T D*,AL MOV D*,IO8255C ;01001001,开关K6,K3,K0 对应的LED灯亮其,其他灯熄灭 MOV AL,49H OUT D*,AL MOV BUF1, 0FFFFH;设置延时常数 MOV BUF2, 0090HDELAY: MOV C*,BUF1DELAY1:LOOP DELAY1; LOOP延时 MOV AL,0FFH;0832输出+5V高电平 MOV D*,IO0832A OUT D*,AL MOV C*,BUF2DELAY2:LOOP DELAY2; LOOP延时 JMP KSH; 继续检测开关的状态ZHZH:MOV D*,OFFSET ZHT2; 显示ZH
30、T2中的类容 MOV AH,09H INT 21H MOV D*,IO8255B; 数码管显示2 MOV AL,5BH;状态2 OUT D*,AL MOV D*,IO8255C;01001010,开关K6,K3,K1 对应的LED灯亮其,其他灯熄灭 MOV AL,4AH OUT D*,AL MOV BUF1,0FFFFH;设置延时常数 MOV BUF2,0900H JMP DELAY;跳转到DELAYZHQ:MOV D*,OFFSET ZHT3; 显示ZHT3中的类容 MOV AH,09H INT 21H MOV D*,IO8255B; 数码管显示3 MOV AL,4FH;状态3 OUT D*,AL MOV D*,IO8255C;01001100,开关K6,K3,K1 对应的LED灯亮其,其他灯熄灭 MOV AL,4CH OUT D*,AL MOV BUF1,0FFFFH;设置延时常数 MOV BUF2,1000H JMP DELAY; 跳转到DELAYZR: MOV D*,OFFSET ZHT4; 显示ZHT4中的类容 MOV AH,09H INT 21H MOV D*,IO8255B; 数码管显示4 MOV AL,66H;状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理观察中的疼痛评估与管理
- 2025年家政服务行业发展趋势分析
- 山西省长治市上党区第一中学校2025-2026学年高一下学期期中考试语文试卷(含答案)
- 护理7S:数据驱动决策
- 福建省泉州市2025-2026学年八年级下学期模拟考试生物试卷(有答案)
- 链轮制造工创新意识知识考核试卷含答案
- 炼焦煤制备工岗前基础实操考核试卷含答案
- 真空冶炼工岗前常识考核试卷含答案
- 2026年新科教版高中高一化学上册第三单元氧化还原综合应用卷含答案
- 无机化学反应生产工安全实践能力考核试卷含答案
- BB/T 0045-2021纸浆模塑制品工业品包装
- 抽油机常见故障2概要课件
- HP-DL380-Gen10-服务器用户手册
- 药理学 治疗充血性心力衰竭的药物
- 煤化工概述-课件
- 变电工程110kV户内项目
- GB∕T 5336-2022 汽车车身修理技术条件
- 地铁通风空调施工组织设计
- 《外科学》第七节 直肠癌
- OceanStor 5000 6000存储技术手册
- 红虫养殖技术
评论
0/150
提交评论