版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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.1、设计的题目1、设计家用电风扇控制器,实现电风扇的启停
2、控制、风速控制和类型选择功能,所有操作由发光二极管LED指示,编制相应的汇编语言源程序并进行系统调试。2、控制器面板包括:风速、类型和启停键,发光二极管LED指示灯。风速分强、中、弱。类型为睡眠、自然和正常。3、电风扇处于停转状态时,所有指示灯不点亮,只有按下“风速”键时,才会进入起始工作状态。不论电风扇处于何种状态,只要按下停止键,电风扇就进入停转状态。2.2、设计要求1、初始状态:风速为“弱”,类型为“正常”。2、按“风速”键,其状态由“弱”“中”“强”“弱”往复循环改变,按每一下键,状态改变一次。3、按“类型”键,其状态由“正常”“睡眠”“自然”“正常”往复循环改变。4、风速的弱,中,强
3、对应于电风扇转动的慢快。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 口的0PC ,1PC 和2PC 定义为B 口工作在方式1的联络信号线,3PC ,4PC 和5PC 定义为A 口工作方式1的联络信号,因此只允许A 口和B 口工作在方式1.方式2:双向选通输入/输出方式,是方式1输入和输出的组合,即同一端口的信号线既可以输入又可以输出。由于C 口的7PC 3PC 定义为A 口工作在方式2时的联络信号线,因此只允许A 口工作在方式。3.2、8254功能简介8254 芯片是一款使用十分广泛的可编程定时,计数芯片,其主要功能是定时和计数的功能。8254芯片主要由四部分组成:1、数据总线缓冲器数据总线缓冲器是一个三态、双向
6、8位寄存器主要作用是与cpu 进行数据交换,8位数据线D7D0与CPU 的系统数据总线连接,构成CPU 和8254之间信息传送的通道,CPU通过数据总线缓冲器向8254写入控制命令、计数初始值或读取计数值。2、读写逻辑读写逻辑是芯片的控制部分,编程人员通过控制信号的选择来选择芯片的工作方式。读/写控制逻辑用来接收CPU系统总线的读、写控制信号和端口选择信号,用于控制8254内部寄存器的读/写操作。3、控制字寄存器控制寄存器是一个只能写不能读的8位寄存器,系统通过指令将控制字写入控制寄存器,设定8254的不同工作方式。4、计数器8254内部有三个结构完全相同而又相互独立的16位减“1”计数器,每
7、个计数器有六种工作方式,各自可按照编程设定的方式工作。8254芯片的工作方式8254芯片共有六种工作方式,分别对应与六种不同的用途。(1方式0:计数结束产生中断 在写入控制字CW后,OUT引脚初始电平为低电平,写入计数初始值N之后的第一个CLK的下降沿将N装入计数执行部件,待下一个CLK的下降沿到来且门控信号GATE为高电平时,开始启动减“1”计数,随后每一个CLK的下降沿,计数器减1。在计数过程中,OUT引脚一直保持低电平,直到计数为“0”时,OUT 引脚输出由低电平变为高电平,并且保持高电平。方式0的特点:计数初始值无自动装入功能,若要继续计数,则需要重新写入计数初始值。门控信号GATE用
8、来控制CE,当GATE为高电平时,允许计数;当GATE为低电平时,禁止计数。当GATE重新为高电平时,计数器接着当前的计数值继续计数。计数期间给计数器装入新值,则会在写入计数初始值后重新开始计数过程。由于方式0在计数结束后,OUT引脚输出一个由低电平到高电平的跳变信号,因此可以用它作为计数结束的中断请求信号。 方式1的特点:硬件启动计数,即由门控信号GATE的上升沿触发计数。在计数过程中,CPU可改变计数值,但是对计数过程没有影响。计数为“0”,OUT 引脚输出高电平,若再次触发,则计数器将按新输入的计数初始值进行计数。 控制字CW写入之后,OUT引脚初始电平为高,在写入计数值N之后第一个CL
9、K的下降沿将N装入计数执行单元CE,待下一个CLK的下降沿到来且门控信号GATE为高电平时,启动计数。在计数过程中,OUT引脚始终保持高电平,直到CE减到“1”时,OUT引脚变为低电平,维持一个时钟周期后,又恢复为高电平,同时自动将计数值N加载到CE,重新启动计数,形成循环计数过程,OUT引脚连续输出负脉冲。方式2的特点:计数初始值有自动装入功能,不用重新写入计数值,计数过程可由GATE信号控制。当GATE为低电平时,暂停计数;在GATE变为高电平后的下一个CLK脉冲使计数器恢复计数初始值,重新开始计数。 工作原理与方式2类似,有自动重复计数功能,但OUT 引脚输出的波形不同。当计数值N 为偶
10、数时,OUT 输出对称的方波信号,正负脉冲的宽度为2N 个时钟周期;当计数值N 为奇数时,OUT 输出不对称的方波信号,正脉冲宽度为21+N 。 个时钟周期,负脉冲宽度为2 写入控制字CW 后,OUT 初始电平为高,在写入计数初始值N 之后的第一个CLK 的下降沿将N 装入计数执行单元CE ,待下一个计数脉冲信号CLK 到来且门控信号GATE 为高电平时(即软件启动,开始计数。当计数为“0”时,OUT 引脚由高电平变为低电平,维持一个时钟周期,OUT 引脚由低电平变为高电平。一次计数过程结束后,OUT 引脚输出宽度为一个时钟周期的负脉冲信号.方式4的特点:无自动重复计数功能,只有在输入新的计数
11、值后,才能开始新的计数。若设置的计数值为N ,则在写入计数值N 个时钟脉冲之后,才使OUT 引脚产生一个负脉冲信号。 写入控制字CW后,OUT引脚初始电平为高,在写入计数值N后,计数器并不开始计数,只有GATE信号出现由低到高的上升沿(即硬件启动之后的第一个CLK的下降沿,将N装入计数执行单元CE,待下一个CLK的下降沿才开始计数。当计数为“0”后,OUT引脚由高电平变为低电平,维持一个时钟周期,OUT 引脚由低电平变为高电平。一次计数过程结束后,OUT引脚输出宽度为一个时钟周期的负脉冲信号。方式5输出波形与方式4相同。两种工作方式的区别是:方式4为软件启动计数,即GATE=1,写入计数初始值
12、时启动计数;方式5为硬件启动计数,即先写入计数初始值,由GATE的上升沿触发,启动计数。在设置8254的工作方式时,需要注意上述六种工作方式的一些特点:方式0, 1, 4, 5的计数初始值无自动加载功能,当一次计数结束后,若要继续计数,需要再次编程写入计数值;方式2和方式3的计数初始值有自动加载功能,只要写入一次计数值,就可以连续进行重复计数。方式2, 4, 5的输出波形虽然相同,即都是宽度为一个时钟周期的负脉冲,但方式2可以连续自动工作,方式4由软件触发启动,方式5由硬件触发启动。8254的六种工作方式的特点及其功能见表3.2。表3.2 8254的六种工作方式的特点及其功能 注:GATE高电
13、平触发方式也称为软件触发方式,GATA上升沿触发方式也称为硬件触发方式。3.3、DAC0832功能简介DAC0832是NS公司生产的内部带有数据输入寄存器和R2R T型电阻解码网络的8位D/A转换器。主要特性: 电流输出型D/A转换器。 数字量输入有双缓冲、单缓冲或直通三种方式。 与所有微处理器可直接连接。 输入数据的逻辑电平满足TTL电平规范。 分辨率为8位。 满量程误差为1 LS B。 转换时间(建立时间1ms。 增益温度系数为2010-6/。 参考电压10V。 单电源+5V+15V。第4章硬件连接图4.1、硬件实验整体连线图如图4.1所示 图 4.1 硬件实验整体连线图4.2、Prote
14、us仿真整体连接图如图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输出一个
15、高电平信号。OUT2与8255A的PA7相连。8255A的端口A0A7读入7个开关状态;PA7与8254的OUT2相连,检测OUT2输出的高电平,起定时作用;B0B6与七段数码管相连,显示正在运行的状态; C0C6与LED灯相连,指示各开关的状态。DAC0832控制电机的转速。通过设置延时时间常数,控制高电平、低电平输出时间比,从而控制电机的转速。5.2、程序流程图 (a定时子程序 (b主程序第6章实验结果实验结果图如图6.1所示 图 6.1 实验结果第7章实验总结及问题分析7.1 问题分析问题一:在读入开关状态后,需要与预设置的状态相比较,之前我选择了TEST指令,但硬件实验调试时一直不能按
16、实验程序走。解决方法:多次调试不成功后,我认真学习比较了TEST指令与CMP指令。TEST指令TEST指令完成的操作、操作数的约定,以及对标志位的影响同AND指令,只是TEST指令不回送结果到目标操作数。使用TEST指令,通常是在不希望改变原有操作数的情况下,检测某一位或某几位的状态。所以常被用于条件转移指令之前,根据测试的结果令程序发生跳转。CMP指令的操作功能、操作数的规定以及影响标志位的情况类似于SUB指令,惟一不同的是CMP指令不保存相减以后的结果(差,即该指令执行后,两个操作数原先的内容不会改变,只是根据相减操作的结果设置标志位。CMP指令通常用在分支程序结构中比较两个数的大小,在该
17、指令之后经常安排一条条件转移指令,根据比较的结果让程序转移到相应的分支去执行。他们的区别为:需要用到TEST指令处,一般是与源操作数为n2的倍数的数相比较。CMP指令则没有要求。由于我预设置的状态不是n2的倍数,所以不能简单的运用TEST指令。在将TEST指令修改为CMP指令后,调试成功。问题二:硬件调试时,改变开关的状态,但结果始终为初始驱动时的状态解决方法:在认真检查程序后,检查出跳转指令跳转的位置不正确。跳转指令跳转的位置未使8255一直检测开关的状态。修改后,调试成功。7.2 课程设计感想赵贤成的感想:感想一:这次课程设计,总的来说完成的还比较顺利。在原来软件实验和硬件实验的基础上更进
18、一步学习了汇编语言编写程序的设计方法和硬件调试的技巧。提高了运用现有的资源解决问题的能力,增强了对知识融会贯通的能力。在实验中,通过与老师、同学的讨论,在网上查找资料,更加深刻的理解了8255,、8254、DAC0832芯片功能的应用。通过实践,进一步的熟悉了教材有关类容(比如汇编语言指令。通过对各模块的分布设计,并调试,最终实现了对电风扇的控制。感想二:这次实验我也学会了灵活应对实验中的一些错误和故障(比如死循环、接线错误、符号格式不正确等等,始终应该冷静的分析问题和排除出现错误的各种原因。通过这次实践学习,我再次认识到,不管学习什么,都必须重视实践操作,自己要多动手操作,才能更好的理解理论
19、知识、增长在实践中的经验。朱杭天的感想:这次微机原理的课程设计,让我学到很多,从开始选题,设计,到理论联系到实际,我们花了很多时间和心血,毕竟对于做课设设计,我们也是刚开始接触,所以做起来比较生疏也比较辛苦,做课程设计不仅可以巩固以前所学的知识,而且学到了很多书本上没有的东西。通过这次课程设计,我懂得理论必须和实际相结合,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。设计过程碰到了许多问题,可以说得上是困难重重,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够
20、牢固,程序逻辑上的设计老是出现问题,总体的结构在开始的时候也显得有点混乱。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在马老师的辛勤指导下,终于迎刃而解。同时,在马老师的身上我学得到很多实用的知识,在此我表示感谢!同时,对给过我帮助的所有同学和指导老师再次表示忠心的感谢!参考文献1 马春燕.微机原理与接口技术. 北京:电子工业出版社,20103微机应用系统设计与综合应用实验.4模拟电风扇动作.5 微机原理.电子时钟课程设计.附录参考程序DATA SEGMENTIOPORT EQU 0D880H-280HIO0832A EQU IOPORT+2A0HIO8255A EQU IOP
21、ORT+280HIO8255B EQU IOPORT+281HIO8255C EQU IOPORT+282HIO8255T EQU IOPORT+283HIO8254K EQU IOPORT+28BHIO82542 EQU IOPORT+28AHIO82541 EQU IOPORT+289HIO82540 EQU IOPORT+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
22、ZI RAN,0DH,0AH,$ZHT5 DB SHUI MIAN,0DH,0AH,$ZHT6 DB TING ZHI,0DH,0AH,$DATA ENDSSTACKS SEGMENTDB 100 DUP(?STACKS ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA, SS: STACKS,ES: DATA START: MOV AX, DATAMOV DS,AXMOV ES,AXMOV AX,STACKSMOV SS,AXMOV DX,IO8254KMOV AL,36H; 00110110,计数器0,方式3,先读低8位,再读高8位 OUT DX,ALMO
23、V DX,IO82540MOV AX,50000; 初值50000,产输出周期为50ms的方波信号OUT DX,ALNOPNOPMOV AL,AHOUT DX,ALKSH:MOV DX,IO8255TMOV AL,90H; 10010000,工作方式0,A口输入,B口、C口输出OUT DX,ALMOV DX,IO8255AIN AL,DX; A口输入,检测开关的状态AND AL,7FH; A口输入,最高位清零CMP AL,49H; 正常弱,开关状态若为01001001则跳转到ZHRJZ ZHRCMP AL,4AH; 正常中,开关状态若为01001010则跳转到ZHZHJZ ZHZHCMP AL
24、,4CH; 正常强,开关状态若为01001100则跳转到ZHQJZ ZHQCMP AL,60H; 自然,开关状态若为01100000则跳转到ZRJZ ZRCMP AL,50H; 睡眠,开关状态若为01010000则跳转到SHMJZ SHMMOV AH,06HMOV DL,0FFHINT 21HJNZ PPP; 有键按下退出JMP TZH; 没键按下且开关的为其他状态则跳转到TZHPPP: MOV AH,4CHINT 21HTZH: MOV DX,OFFSET ZHT6; 显示ZHT6中的类容MOV AH,09HINT 21HMOV DX,IO8255B; B口输出,数码管显示6MOV AL,7
25、DHOUT DX,ALMOV DX,IO8255C; 00000000 全部灯熄灭MOV AL,00HOUT DX,ALMOV AL,80H;0832输出0V低电压MOV DX,IO0832AOUT DX,ALJMP KSH; 继续检测开关的状态ZHR: MOV DX,OFFSET ZHT1; 显示ZHT1中的类容MOV AH,09HINT 21HMOV DX,IO8255B; 数码管显示1MOV AL,06HOUT DX,ALMOV DX,IO8255C ;01001001,开关K6,K3,K0 对应的LED灯亮其,其他灯熄灭MOV AL,49HOUT DX,ALMOV BUF1, 0FFF
26、FH;设置延时常数MOV BUF2, 0090HDELAY: MOV CX,BUF1DELAY1: LOOP DELAY1; LOOP延时MOV AL,0FFH;0832输出+5V高电平MOV DX,IO0832AOUT DX,ALMOV CX,BUF2DELAY2: LOOP DELAY2; LOOP延时JMP KSH; 继续检测开关的状态ZHZH: MOV DX,OFFSET ZHT2; 显示ZHT2中的类容MOV AH,09HINT 21HMOV DX,IO8255B; 数码管显示2MOV AL,5BH;状态2OUT DX,ALMOV DX,IO8255C;01001010,开关K6,K
27、3,K1 对应的LED灯亮其,其他灯熄灭MOV AL,4AHOUT DX,ALMOV BUF1,0FFFFH;设置延时常数MOV BUF2,0900HJMP DELAY;跳转到DELAYZHQ: MOV DX,OFFSET ZHT3; 显示ZHT3中的类容MOV AH,09HINT 21HMOV DX,IO8255B; 数码管显示3MOV AL,4FH;状态3OUT DX,ALMOV DX,IO8255C;01001100,开关K6,K3,K1 对应的LED灯亮其,其他灯熄灭MOV AL,4CH OUT DX,AL MOV BUF1,0FFFFH;设置延时常数 MOV BUF2,1000H JMP DELAY; 跳转到 DELAY ZR: MOV DX,OFFSET ZHT4; 显示 ZHT4 中的类容 MOV AH,09H INT 21H MOV DX,IO8255B; MOV AL,66H;状态 4 OUT DX,AL MOV DX,IO8255C ;01100000,开关 K6,K5, 对应的 LED 灯亮其,其他灯熄 灭 MOV AL,60H OUT DX,AL K0: MOV BUF1,0FFFFH;设置延时常数 MOV BUF2,0090H MOV CX,BUF1 K1: LOOP K1; LOOP 延时 MOV AL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人出售商场合同范例
- 省代合同范例
- 硬件驻场维护合同范例
- 酒吧业绩合同范例
- 车位广告销售合同范例
- 航拍拍摄合同范例
- 货车快递租赁合同范例
- 避免合同范例弄错签字
- 软件使用合同模板
- 速卖通转让合同范例
- (正式版)JBT 10618-2024 组合式电涌保护器(箱)
- 宴会设计与服务 课件 项目四、西式宴会台面设计
- 2024年极兔速递有限公司招聘笔试参考题库附带答案详解
- 2024年考研政治试题及详细解析
- 征兵工作试题
- 金融服务外包战略策划书
- TCALC 003-2023 手术室患者人文关怀管理规范
- 航天工程的技术规范与质量管理
- 2024年上海市第二十七届初中物理竞赛初赛试题及答案
- 红旗汽车促销策划方案
- 小学科学人教鄂教版四年级上册期末练习题(2022秋)(附参考答案)
评论
0/150
提交评论