欢迎来到天天文库
浏览记录
ID:308137
大小:181.00 KB
页数:16页
时间:2017-07-21
《家用电风扇程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计任务书弱中强正常自然睡眠30分60分风速风种定时停止家用电风扇程序设计一、设计要求设计一个操作面板如上图所示的电风扇,具有以下功能:²电风扇处于停转状态时,所有指示灯不亮,此时只有按“风速”键电扇才会响应,其初始工作状态为“风速”——弱,“风种”——正常,“定时”——连续状态,且相应指示灯亮。²电扇一经启动后,再按动“风速”键可循环选择弱、中或强三种状态中的任意一种状态。弱、中、强对应电扇转速由慢到快。²按动风种键可循环选择正常、自然或睡眠三种状态中的某一种状态。“风种”在正常位置是指电扇连续运转,在“自然”
2、位置,是表示电扇模拟产生自然风,即运转5秒,间断5秒;在:“睡眠”位置,是产生轻柔的微风,此时风速被设为弱,电扇运转10秒,间断10秒。²按动定时键可循环选择连续、30分钟、60分钟、90分钟四种定时方式中的某一种。其两指示灯全灭表示连续状态;全亮表示90分钟定时。²在电扇任间工作状态下,按停止键,电扇停止工作,所有指示灯熄灭。二、总体方案根据设计要求和内容,用可编程并行接口芯片8255A的PA口控制8个状态指示灯(即8个发光二极管),分别表示强、中、弱、正常、自然、睡眠、30分钟、60分钟。PB口接收4个按键(分别
3、表示风速、风种、定时、停止)的状态以启动电扇或设置相应的工作状态。这样就需要4个按键,因此可以用实验箱上的某一列的4个按键,可以将此列的列选择线直接接为低电平,4个行输入线接到8255的口。这样可以直接从8255的口读取按键的状态,从而执行相应的操作。要通过一个按键来控制2个以上的状态,可以通过按键的次数来控制第几种状态,比如风速有三种状态(弱、中、强),可以用按键1次控制弱,按键2次控制中,按键3次控制强,这样就可以实现一键控制多钟状态了。用实验箱上的直流电动机作为电风扇,其转速可有D/A转换芯片0832来产生不同
4、的电压来控制电风扇。8位D/A转换器的输入数据与输出电压的关系为U(-5V~5V)=2Uref/256*N-5V(Uref为+5V)风种及定时的时间控制可由可编程计数器/定时器8253来实现。可选用由8253工作方式2,在这种方式下,当CPU输入控制字后,输出将为高,在写入计数值后计数器将立即自动对输入时钟CLK计数,计数器减为1时,输出将变低,方式2时8253不可用重新设置计数值就能连续工作,保证了定时的精确。可以将定时时间设为50ms。可将8253定时器的输出信号与8259中断控制器的中断请求信号相连,每个定时周
5、期可产生一次中断响应作为风种和定时的时间基准。这样可在中断服务程序中设计计数单元,对此时间基准作为计数,以生成所需的定时时间。三、原理框图流程图(二)中断服务程序开始初始化8255、8255、8259设置风速为停止,风种为正常,定时为连续状态,所有输出清零风速键吗?设置8253的时间常数并启动定时器、设置8259中断矢量有键按下吗?停止键吗?风扇运行控制子程序风种键吗?定时键吗?风种状态设置子程序定时状态设置子程序风速状态设置子程序流程图(一)主程序流程图(三)风扇运行控制程序四、系统模块详细设计与调试1.四个键分别
6、控制风速、风种、定时、停止采用实验箱上的键盘上的一列的4个按键(A,B,C,E)分别表示风速、风种、定时、停止,将此列的列选择线直接接为低电平,4个行输入线分别接到8255PB口的PB7、PB6、PB5、PB4。这样在编程就可以实现用按键控制了。编写的程序中可以用TEST指令来判断,如果有某个键按下,就转到相应的状态设置程序,否着则继续执行下面的指令,如风速键的编程,用TESTAL,80H来判断风速键是否按下,如果检测到风速键按下,就转到风速状态(即弱、中、强三种状态)设置子程序,以便能够通过风速键控制这三种状态(用
7、三个二极管来显示)。如果没有检测到按下,则继续进行下面的风种键的检测。这样就可以实现四个键分别控制风速、风种、定时、停止。2.风速、风种、定时状态设置因为要实现风速、风种、定时3个按键对风速(弱、中、强)、风种(正常、自然、睡眠)、定时(30min、60min、90min、连续)共8个状态的控制,就需要对这8个状态进行设置,因为一个键所对应的设置方法大同小异,可以以风速状态做代表来说明设置方法,其设置方法如下:因为风速的3状态要保存,所以要在数据段声请一个地址来存放。这里用风速键按下的次数来实现三种状态的变换,初始状
8、态为按第一下表示弱状态,在按一次表示中状态(即使表示中状态的发光二极管亮),在按一次表示强状态,在按一次表示又返回到弱状态,这样依次循环下去。用编程是这样实现的,当转到风速风速状态设置子程序时,先把所声请数据段的地址内的内容变为01H并取出来放到AL中,用左移指令RCL,左移的次数等于风速键按下的次数,并存储到声请数据段的地址内。当AL中的内容
此文档下载收益归作者所有