logo资料库

微机原理 家用电风扇控制器.doc

第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
资料共19页,剩余部分请下载后查看
(芙蓉学院) (芙蓉学院) 微机原理 课程设计 课 姓 学 题: 名: 号: 同组姓名: 专业班级: 家用风扇控制器设计 罗文华 07120136 孙 勇 计科 0701 指导教师: 杨红杰老师 设计时间: 2010-1-6 评阅意见: 评定成绩: 指导老师签名: 年 月 日
目 录 一、设计目标...................................................................................2 二、设计要求……………………………………………………..2 三、总体设计...................................................................................2 四、硬件设计...................................................................................2 五、软件设计...................................................................................3 六、程序清单...................................................................................9 七、调试结果...................................................................................17 八、心得体会...................................................................................17 九、参考文献...................................................................................18 1
模拟家用风扇控制器的设计 一、设计目标 设计并制作一个模拟家用风扇控制器。 二、设计要求 1、控制器面板为:按钮三个,分别为风速、类型和停止,LED 指示灯六个, 指示风速强、中、弱,类型为睡眠、自然和正常。 2、电扇处于停转状态时:所有指示灯不亮,只有按下“风速”键时,才会 响应,进入起始工作状态;电扇在任何状态,只要按停止键,则进入停转状态。 3、处于工作状态时有: (1) 初始状态为:风速-“弱”,类型-“正常”; (2) 按“风速”键,其状态由“弱”→ “中” → “强” → “弱” …… 往复循环改变,每按一下按键改变一次; (3) 按“类型”键,其状态由“正常” → “睡眠” → “自然” → “正 常” …… 往复循环改变; 4、风速:风速的弱、中、强对应于电扇的转动由慢到快。 5、风速类型的不同选择分别为: (1) 正常 电扇连续运转; (2) 自然 电扇模拟自然风,即转 4s,停 8s; (3) 睡眠 电扇慢转,产生轻柔的微风,运转 8s,停转 8s; 6、按照风速与类型的设置输出相应的控制信号。 三、总体设计 1.8253 定时/计数器通道 0 定时控制步进速度,通道 2 和 3 定时电机的转停 时间,8255 的 PA0 控制步进电机的转停。 2.8255 的 C 口输出控制脉冲,经 74452 电路驱动电路。B 口输出控制 LED 显示风扇当前的状态。 四、硬件设计 由于本设计主要是用步进电机的控制来模拟家用风扇控制器,所以电路是在 步进电机控制系统的电路作了一些修改。除利用了 PC 机本身资源外(如中断资 源),还利用了平台上的 8253 计数/定时器、8255 并行接口单元,LED 指示灯电 路等,再加上电机的驱动电路,便构成以风扇电机控制电路。 2
硬件原理图如图 1: 图 1: 硬件原理图 五、软件设计 本设计通过软件编程使 8253 通道 0 输出定时信号申请中断,CPU 发出命令 由 8255 的下 C 口输出脉宽信号来控制步进电机的走步。8253 的定时时间决定了 电机转动的快慢。电机的转动和停止则是通过 8255 的 PA0 端子输出高低电平来 继续或暂停 8253 通道 0 的计数从而控制中断申请来实现的。用 8253 的通道 1 和 2 一起来定时控制电机转动和停止时间的长短。 1.总体设计思路 控制系统分四个功能模块,分别是风速设置、类型设置、默认状态运行、退 出系统,在前四个功能块中都设置了 ESC 键来取消或暂停执行当前操作。程序中 同时提供三个操作界面,一个主菜单和两个子菜单界面,进行可视控制。 (1) 风速设置 风速即为电机转速设置,风速分为强、中、弱三种,对应不同的电机转速。 根据赋给计数器的计数初值,我们可以计算出步进电机各相脉宽信号的频率和电 机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。 这里采用的是 8253 的 0 号计数器和方波产生方式,输入时钟为 f=46875hz, 设计数初值为 n,要求转速为 0.25 转/秒,对四相步进电机而言即为 5 步/秒, 3
则有: f / n = 5 n=f/5=46875/5=9375 反过来,当计数器初值确定时,决定了电机的转速,如计数初值为 625 时, 有电机转速为 1 步每秒(本设计中的慢风速);当计数初值为 125 时,电机转速 为 375 步每秒(本设计中的快快速)。具体设置初值及风速见表 1。 风速 慢 中 快 步速 75 125 375 转速 3.75 6.25 18.75 计数初值 625 375 125 表 1:风速设置初值 (2)风的类型设置 风的类型有:正常、自然、睡眠三种。 风的类型的不同选择,用 FLAG0 来记录状态: a) 正常 电扇连续运转。FLAG0=2 b) 自然 电扇模拟自然风,即转 4s,停 8s。FLAG0=0 c) 睡眠 电扇慢转,产生轻柔的微风,运转 8s,停转 8s。FLAG0=1 电机的运转是通过让 8255 的 A0 口输出高电平到 8253 的 GATE0 使其 0 号计 数器继续工作,并开放中断进入循环等待中断状态。A0 口为低电平使 8253 的 0 号计数器暂停计数,则无法产生中断信号,电机停止转动。 电扇的运转和停转的时间是由 8253 的通道 1 和通道 2 两个计数器一起来定 时的。通道 1 的输入时钟为 f=46875hz,设计数初值为 46875,则会产生 1s 的定 时。通道 1 的 OUT1 作为通道 2 的输入脉冲,输入的计数初值为 N,则定时的时 间为 N 秒。我们需要的是定时 4s 和 8s,定时中断到修改 8255 的 A0 口的输出的 电平和下次计数的初值就可以实现风的不同类型。风的类型为正常时,不用启用 计数器 2 产生中断,让计数器 0 一直运行。睡眠时,通道 2 的计数初值一直为 8, 不用修改。如果是自然就得修改了。 (3)中断子程序 1 在由 8253 定时器通道 0 产生的中断子程序 1 中,将值为 11001100B 的 NUM 内存单元循环左移或右移一位,通过 8255 的下 C 口输出低四位,控制步进电机 的相序变化,从而使电机连续转动。 (4)中断子程序 2 4
8253 定时器通道 2 产生的中断子程序 2 中,修改输入到 8255 的 A0 口的电 平值,控制电机的转停,令 NUM1=0,每次求反,输出到 8255 的 A 口。根据当前 选择的风的类型 FLAG0 以及当前所处的状态,修改通道 2 的计数初值。 (5)菜单界面设置 利用 DOS 下的 BIOS 功能调用,设计出彩色的形象而又易于操作的界面. 使用类型 10H 中断,可以实现对屏幕的完整的控制。常用的彩色文本功能的 参数设置见表 2。 AH=0 设置显示方式 AL=3 80×25 彩色方案 AH=1 设置光标类型 CH= 位 4-0 为光标起始行 CL= 位 4-0 为光标结束行 AH=2 设置光标位置 DH= 行 DL= 列 AH=9 在光标位置写属性/字符 AH=11 选择彩色调色板 AH=19 写字符串 CX= 要写的字符数 AL= 要写的字符 BH= 调色板 ID(0-127) BL= 调色板 ID 的颜色 ES:BP= 指向字符串 CX= 字符串的长度 BH= 页号 表 2:彩色文本功能的参数设置 2. 对步进电机的控制 1、用 8255 并行接口控制 A、B、C 的通断。 8255A 的 CS 端可接地址 200~207H。实验室中,用 LED 指示灯通断模拟步进 电机绕组的通电情况。8255A 工作于方式 0。8255A 内部结构图如图 2。 端口 A 地址(00): 200H 端口 A 地址(01): 201H 端口 A 地址(10): 202H 控制端口地址(11): 203H 图 2:8255A 的内部结构 5
8255 与步进电机连接示意图如图 3 所示。 图 3:8255 与步进电机连接 8255 控制字如图 4 所示: 图 4:8255 控制字 (1)、控制方法: 速度选择方式,可通过键盘、转换开关控制。 A 口工作于输入方式,接受速度选择信号,B 口工作于输出方式,控制 A、B、 C 的通断。用 LED 指示灯模拟步进电机的工作,输入为“0”时,LED 指示灯点亮,; 为“1”时熄灭。 (2)、设置 8255A 的方式控制字 MOV MOV MOV DX,203H AL,90H ;A 口为输入,B 口为输出 DX,AL ;送控制字 3.步进电机的速度控制 调节步进电机绕组通电时间,即可调整速度(频率)。 6
X  延迟时间 一次循环时间  23  1 ms .0 125 s   347 (1).1ms(1KHZ)的软件延迟程序: 设系统的 CPU 的频率为 8MHZ,则时钟节拍为:0.125 微秒。执行 PUSHF、POPF、 LOOP 指令需 23 个节拍。延迟 1 秒要循环的次数: DELAY PROC NEAR PUSH CX STAR20T: MOV CX,347 ;送循环次数 ;PUSHF、POPF、LOOP 需 23 个节拍。 LP1: DELAY PUSHF POPF LOOP LP1 CX POP RET ENDP (2)、采用 8253A 定时器控制定时时间 4.程序流程图 (1)主程序流程图如图 5 图 5: 主程序流程图 7
分享到:
收藏