版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要电风扇控制器课程设计中主要应用了芯片8086、8255、8254、DAC0832。8086为控制系统的核心。8255 A口输入,检测开关的状态;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作为主机与外设的连接芯片,必须提供与主
4、机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口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进行数
6、据交换,8位数据线D7D0与CPU的系统数据总线连接,构成CPU和8254之间信息传送的通道,CPU通过数据总线缓冲器向8254写入控制命令、计数初始值或读取计数值。 2、读写逻辑 读写逻辑是芯片的控制部分,编程人员通过控制信号的选择来选择芯片的工作方式。读/写控制逻辑用来接收CPU系统总线的读、写控制信号和端口选择信号,用于控制8254内部寄存器的读/写操作。 3、控制字寄存器 控制寄存器是一个只能写不能读的8位寄存器,系统通过指令将控制字写入控制寄存器,设定8254的不同工作方式。 4、计数器 8254内部有三个结构完全相同而又相互独立的16位减“1”计数器,每个计数器有六种工作方式,各自
7、可按照编程设定的方式工作。 8254芯片的工作方式 8254芯片共有六种工作方式,分别对应与六种不同的用途。 (1)方式0:计数结束产生中断 方式0时序如图所示。图 方式0时序在写入控制字CW后,OUT引脚初始电平为低电平,写入计数初始值N之后的第一个CLK的下降沿将N装入计数执行部件,待下一个CLK的下降沿到来且门控信号GATE为高电平时,开始启动减“1”计数,随后每一个CLK的下降沿,计数器减1。在计数过程中,OUT引脚一直保持低电平,直到计数为“0”时,OUT引脚输出由低电平变为高电平,并且保持高电平。方式0的特点:计数初始值无自动装入功能,若要继续计数,则需要重新写入计数初始值。门控信
8、号GATE用来控制CE,当GATE为高电平时,允许计数;当GATE为低电平时,禁止计数。当GATE重新为高电平时,计数器接着当前的计数值继续计数。计数期间给计数器装入新值,则会在写入计数初始值后重新开始计数过程。 由于方式0在计数结束后,OUT引脚输出一个由低电平到高电平的跳变信号,因此可以用它作为计数结束的中断请求信号。(2)方式1:可重复触发的单稳态触发器,方式1时序如图3.2.2所示。图 方式1时序方式1的特点:硬件启动计数,即由门控信号GATE的上升沿触发计数。在计数过程中,CPU可改变计数值,但是对计数过程没有影响。计数为“0”,OUT引脚输出高电平,若再次触发,则计数器将按新输入的
9、计数初始值进行计数。(3)方式2:分频器,方式2时序如图3.2.3所示,图 方式2时序控制字CW写入之后,OUT引脚初始电平为高,在写入计数值N之后第一个CLK的下降沿将N装入计数执行单元CE,待下一个CLK的下降沿到来且门控信号GATE为高电平时,启动计数。在计数过程中,OUT引脚始终保持高电平,直到CE减到“1”时,OUT引脚变为低电平,维持一个时钟周期后,又恢复为高电平,同时自动将计数值N加载到CE,重新启动计数,形成循环计数过程,OUT引脚连续输出负脉冲。方式2的特点:计数初始值有自动装入功能,不用重新写入计数值,计数过程可由GATE信号控制。当GATE为低电平时,暂停计数;在GATE
10、变为高电平后的下一个CLK脉冲使计数器恢复计数初始值,重新开始计数。(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到来且门控信号G
11、ATE为高电平时(即软件启动),开始计数。当计数为“0”时,OUT引脚由高电平变为低电平,维持一个时钟周期,OUT引脚由低电平变为高电平。一次计数过程结束后,OUT引脚输出宽度为一个时钟周期的负脉冲信号方式4的特点:无自动重复计数功能,只有在输入新的计数值后,才能开始新的计数。若设置的计数值为N,则在写入计数值N个时钟脉冲之后,才使OUT引脚产生一个负脉冲信号。(6)方式5:硬件触发计数,方式5时序如图3.2.6所示。图 方式时5序写入控制字CW后,OUT引脚初始电平为高,在写入计数值N后,计数器并不开始计数,只有GATE信号出现由低到高的上升沿(即硬件启动)之后的第一个CLK的下降沿,将N装
12、入计数执行单元CE,待下一个CLK的下降沿才开始计数。当计数为“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高电平触发方式也称为软件触发
14、方式,GATA上升沿触发方式也称为硬件触发方式。3.3、DAC0832功能简介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、
15、Proteus仿真整体连接图如图4.2所示图 4.2 Proteus仿真整体连接图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输出一
16、个高电平信号。OUT2与8255A的PA7相连。8255A的端口A0A7读入7个开关状态;PA7与8254的OUT2相连,检测OUT2输出的高电平,起定时作用;B0B6与七段数码管相连,显示正在运行的状态;C0C6与LED灯相连,指示各开关的状态。DAC0832控制电机的转速。通过设置延时时间常数,控制高电平、低电平输出时间比,从而控制电机的转速。5.2、程序流程图电风扇控制器流程图如图5.2.1所示8254定时器2置初值,定时4s产生一高电平8254定时器0置初值,周期为50ms的方波开始读入开关状态,PA7=1?结束YN(a) 定时子程序开始K=49H?8255初始化,PA口输入,PB口输
17、出,PC口输出读入开关状态,屏蔽最高位K=4CH?K=4AH?K=60H?K=50H?有键按下?延时时间常数延时时间常数延时时间常数延时时间常数延时时间常数延时通过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输出0V8
18、254定时8sYYYYYYNNNNNN(b) 主程序 图 5.2.1 电风扇控制器程序流图第6章 实验结果实验结果图如图6.1所示图 6.1 实验结果第7章 实验总结及问题分析7.1 问题分析问题一:在读入开关状态后,需要与预设置的状态相比较,之前我选择了TEST指令,但硬件实验调试时一直不能按实验程序走。解决方法:多次调试不成功后,我认真学习比较了TEST指令与CMP指令。TEST指令TEST指令完成的操作、操作数的约定,以及对标志位的影响同AND指令,只是TEST指令不回送结果到目标操作数。使用TEST指令,通常是在不希望改变原有操作数的情况下,检测某一位或某几位的状态。所以常被用于条件转
19、移指令之前,根据测试的结果令程序发生跳转。CMP指令的操作功能、操作数的规定以及影响标志位的情况类似于SUB指令,惟一不同的是CMP指令不保存相减以后的结果(差),即该指令执行后,两个操作数原先的内容不会改变,只是根据相减操作的结果设置标志位。CMP指令通常用在分支程序结构中比较两个数的大小,在该指令之后经常安排一条条件转移指令,根据比较的结果让程序转移到相应的分支去执行。他们的区别为:需要用到TEST指令处,一般是与源操作数为的倍数的数相比较。CMP指令则没有要求。由于我预设置的状态不是的倍数,所以不能简单的运用TEST指令。在将TEST指令修改为CMP指令后,调试成功。问题二:硬件调试时,
20、改变开关的状态,但结果始终为初始驱动时的状态解决方法:在认真检查程序后,检查出跳转指令跳转的位置不正确。跳转指令跳转的位置未使8255一直检测开关的状态。修改后,调试成功。7.2 课程设计感想赵贤成的感想:感想一:这次课程设计,总的来说完成的还比较顺利。在原来软件实验和硬件实验的基础上更进一步学习了汇编语言编写程序的设计方法和硬件调试的技巧。提高了运用现有的资源解决问题的能力,增强了对知识融会贯通的能力。在实验中,通过与老师、同学的讨论,在网上查找资料,更加深刻的理解了8255,、8254、DAC0832芯片功能的应用。通过实践,进一步的熟悉了教材有关类容(比如汇编语言指令)。通过对各模块的分
21、布设计,并调试,最终实现了对电风扇的控制。感想二:这次实验我也学会了灵活应对实验中的一些错误和故障(比如死循环、接线错误、符号格式不正确等等),始终应该冷静的分析问题和排除出现错误的各种原因。通过这次实践学习,我再次认识到,不管学习什么,都必须重视实践操作,自己要多动手操作,才能更好的理解理论知识、增长在实践中的经验。朱杭天的感想:这次微机原理的课程设计,让我学到很多,从开始选题,设计,到理论联系到实际,我们花了很多时间和心血,毕竟对于做课设设计,我们也是刚开始接触,所以做起来比较生疏也比较辛苦,做课程设计不仅可以巩固以前所学的知识,而且学到了很多书本上没有的东西。通过这次课程设计,我懂得理论
22、必须和实际相结合,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。设计过程碰到了许多问题,可以说得上是困难重重,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,程序逻辑上的设计老是出现问题,总体的结构在开始的时候也显得有点混乱。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在马老师的辛勤指导下,终于迎刃而解。同时,在马老师的身上我学得到很多实用的知识,在此我表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!参考文献1 马春燕
23、.微机原理与接口技术. 北京:电子工业出版社,20102 马春燕.微机原理与接口技术实验与学习辅导.北京:电子工业出版社.,20073微机应用系统设计与综合应用实验. /p-94151315901.html.2012-1-3访问4模拟电风扇动作.2012-1-3访问5 微机原理.电子时钟课程设计. 2012-1-3访问附录参考程序DATA SEGMENTIOPORT EQU0D880H-280HIO0832A EQUIOPORT+2A0HIO8255A EQUIOPORT+280HIO8255B EQUIOPORT+281HIO8255C EQUIOPORT+282HIO8255T EQUIO
24、PORT+283HIO8254K 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
25、9;,0DH,0AH,'$'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 AX, DATA MOV DS,AX MOV ES,AX MOV AX,STACKS MOV SS,AX MOV DX,IO8254K
26、 MOV AL,36H; 00110110,计数器0,方式3,先读低8位,再读高8位 OUT DX,AL MOV DX,IO82540 MOV AX,50000; 初值50000,产输出周期为50ms的方波信号 OUT DX,AL NOP NOP MOV AL,AH OUT DX,ALKSH: MOV DX,IO8255T MOV AL,90H; 10010000,工作方式0,A口输入,B口、C口输出 OUT DX,AL MOV DX,IO8255A IN AL,DX; A口输入,检测开关的状态 AND AL,7FH; A口输入,最高位清零 CMP AL,49H; 正常弱,开关状态若为0100
27、1001则跳转到ZHR 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:
28、 MOV DX,OFFSET ZHT6; 显示ZHT6中的类容 MOV AH,09H INT 21H MOV DX,IO8255B; B口输出,数码管显示6 MOV AL,7DH OUT DX,AL MOV DX,IO8255C; 00000000 全部灯熄灭 MOV AL,00H OUT DX,AL MOV AL,80H;0832输出0V低电压 MOV DX,IO0832A OUT DX,AL JMP KSH; 继续检测开关的状态ZHR: MOV DX,OFFSET ZHT1; 显示ZHT1中的类容 MOV AH,09H INT 21H MOV DX,IO8255B; 数码管显示1 MOV
29、AL,06H OUT DX,AL MOV DX,IO8255C ;01001001,开关K6,K3,K0 对应的LED灯亮其,其他灯熄灭 MOV AL,49H OUT DX,AL MOV BUF1, 0FFFFH;设置延时常数 MOV BUF2, 0090H DELAY: MOV CX,BUF1DELAY1: LOOP DELAY1; LOOP延时 MOV AL,0FFH;0832输出+5V高电平 MOV DX,IO0832A OUT DX,AL MOV CX,BUF2DELAY2: LOOP DELAY2; LOOP延时 JMP KSH; 继续检测开关的状态ZHZH: MOV DX,OFFS
30、ET ZHT2; 显示ZHT2中的类容 MOV AH,09H INT 21H MOV DX,IO8255B; 数码管显示2 MOV AL,5BH;状态2 OUT DX,AL MOV DX,IO8255C;01001010,开关K6,K3,K1 对应的LED灯亮其,其他灯熄灭 MOV AL,4AH OUT DX,AL MOV BUF1,0FFFFH;设置延时常数 MOV BUF2,0900H JMP DELAY;跳转到DELAYZHQ: MOV DX,OFFSET ZHT3; 显示ZHT3中的类容 MOV AH,09H INT 21H MOV DX,IO8255B; 数码管显示3 MOV AL,4FH;状态3 OUT DX,AL MOV DX,IO8255C;01001100,开关K6,K3,K1 对应的LED灯亮其,其他灯熄灭 MOV AL,4CH OUT DX,AL MOV BUF1,0FFFFH;设置延时常数 MOV BUF2,1000H JMP DELAY; 跳转到DELAYZR: MOV DX,OFFSET ZHT4; 显示ZHT4中的类容 MOV AH,09H INT 21H MOV DX,IO8255B; 数码管显示4 MOV AL,66H;状
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度钢筋工工伤事故责任赔偿合同2篇
- 精装修房子购买合同模板
- 能耗在线监测服务合同模板
- 2024电子商务平台合作伙伴协议2篇
- 销售代理协议书模板
- 美术老师合同范例-
- 2024年度工程质量保证责任合同
- 内外墙粉墙施工合同协议书粉墙施工合同
- 物管合同模板ktv
- 物业用工劳务合同模板
- 200个句子涵盖了高考英语3500词汇(诵读加记忆)
- 婴幼儿托育服务与管理的职业生涯规划职业目标自我分析职业定位实施计划
- 企业文化价值观对员工的影响
- 初中语文新课程标准与解读课件
- 外部压力与心理的处理
- 手电筒项目商业计划书
- 初中道德与法治课堂议题式教学探究
- 110kv各类型变压器的计算单
- CRH380B型高寒动车组空调系统
- 空调维护保养报告范本
- “班会主题课件-如何提升自我修养”
评论
0/150
提交评论