10家用电扇控制实验与驱动电路设计

上传人:QQ加14****9609 文档编号:89308 上传时间:2017-06-22 格式:DOC 页数:45 大小:611KB
返回 下载 相关 举报
10家用电扇控制实验与驱动电路设计_第1页
第1页 / 共45页
10家用电扇控制实验与驱动电路设计_第2页
第2页 / 共45页
10家用电扇控制实验与驱动电路设计_第3页
第3页 / 共45页
点击查看更多>>
资源描述
家用电扇控制与驱动电路设计 报告 2 家用电扇控制实验与驱动电路设计 一、 课程设计的目的 课程设计是本科教学全过程中的重要环节。微机应用系统设计与综合实验(实践 )课程设计主要培养自动化专业学生,运用所学知识解决计算机应用领域内实际问题能力,进一步提高学生运用计算机编程语言综合编程能力、程序调试技能和微机系统接口综合应用及电路设计能力。 1、学习在 统中扩展简单的 I O 接口的方法。 2、熟练掌握和运用汇编 语言 和 255各口的输入输出,并正确带动数码管及步进电机;能熟练运用汇编和 C 语言实现 8255 的 输入输出以及小键盘的输入 功能 ,并利用软件来实现设计中对延迟的要求 。 3、熟练掌握 在唐都实验箱上对各硬件芯片的接线,并在 实现对汇编程序和 二、 设计的题目名称及要求 设计题目:小家用电扇控制实验与驱动电路设计 基本设计要求: 1. 编程语言为汇编语言、 2. 控制硬件电路基于 80 3. 驱动电路(主回路)仅需设计; 4. 控制器功能包括:按钮三个,分别为风速、类型和停止, 示灯六个,指示风速强、中、弱,类型为睡眠、自然和正常。 指标如下: 1) 电扇处于停转状态时,所有指示灯不亮,只有按下“风速”键时,才会响应,进入起始工作状态;电扇在任何状态,只要按停止键,则进入停转状态。 2) 处于工作状态时,有: 初始状态为:风速 -“弱”,类型 -“正常” 按“风速”键,其状态由“弱” “中” “强” “弱” 往复循环改变,每按一下按键改变一次; 按“类型”键,其状态由“正常” “睡眠” “自然” “正常” 往复家用电扇控制与驱动电路设计 报告 3 循环改变; 3) 风速的弱、中、强对应于电扇的转动由慢到快。 4) 类型的不同选择,分别为:正常 电扇连续运转;自然 电扇模拟自然 风,即转 4s,停 8s;睡眠 电扇慢转,产生轻柔的微风,运转 8s,停转 8s; 5) 按照风速与类型的设置输出相应的控制信号。 附加功能扩展 : 1. 根据 控制性能要求, 同时 实现 了对直流 电机 的 启动、 转速及模式的调节选择和停止功能选择 ,并可以明显观测到电机风扇的变化。 2. 实现了 在数码管上实时显示 直流风扇 当前 的 工作状态。编程语言为汇编语言和 三、实验设备 有 唐都 四、设计的思想和实施方案 本次 课程设计 的目的是 小家用电扇控制实验与驱动电路设计, 为了 使课程设计的结果能够具有直接的可观测性。我们选择了实验箱上的直流电机作为驱动电路的控制电机。 首先我得通过查阅相关资料对 直流 电机有个初步的了解和认识 , 直流电动机的工作原理 : 这一对电磁力形成了作用于电枢一个力矩,这个力矩在旋转电机里称为电磁转矩,转矩的方向是逆时针方向,企图使电枢逆时针方向转动。如果此电磁转矩能够克服电枢上的阻转矩(例如由摩擦引起的阻转矩以及其它负载转矩),电枢就能按逆时针方向旋转起来。 因此,电枢一经转动,由于换向器配合电刷对电流的换向作用,直流电流交替地由导体 入,使线 圈边只要处于 N 极下,其中通过电流的方向总是由电刷 A 流入的方向,而在 S 极下时,总是从电刷 B 流出的方向。这就保证了每个极下线圈边中的电流始终是一个方向,从而形成一种方向不变的转矩,使电动机能连续地旋转。这就是直流电动机的工作原理。 家用电扇控制与驱动电路设计 报告 4 考虑到所控制的电扇共有九种状态,其中风速分别为低速、中速和高速;类型分别为正常、自然和睡眠。故设想通过 数字量转换为模拟量,然后通过 出占空比不同的矩形波来控制和调节风扇的转速大小。再考虑到,硬件延时会增加芯片和成本,使系统过于复杂,故采用软件延时的 方法。通过 出电压为 0,再软件延时 4s 或 8s 来改变类型,实现三种类型的改变。 为了增强风扇的实时响应能力,我采用实验箱上键盘单元上的三个键来实现实时控制。 1#键实现启动和风速的调节功能, 2#键实现类型的调节功能, 3#键实现风扇的停止功能。键盘信号的输入通过 8255的 个端口来实现。 为了显示风扇的实时状态,我用 6 个 显示,分别代表低速、中速、高速、正常、自然和睡眠。通过 8255的 中有两个口恒输出 0,即没有使用)来控制。 由于 8255的 考虑到利用一个七段数码显示管来显示风扇的类型,当类型为正常、自然和睡眠时数码管对应输出为 1、 2 和 3。通过 B 口输出控制信号。同时,在电脑的屏幕上,我们设计了一个状态显示的画面,通过程序来实现。 五、 系统各单元的实现及介绍 1. 可编程外围接口芯片 8255 图 1 8255内部结构图和管脚图 家用电扇控制与驱动电路设计 报告 5 图 2 8255控制字格式 8255 内部包含 3 个 8 位的输入输出端口 A、 B 和 C,端口 A 和端口 B 都可以用作一个 8位的输入口或 8位的输出口,端口 为一个 8位的输入口或8 位的输出口,又可以作为两个 4 位的输入输出口( C 口上半部分和 C 口下半部分)使用,还可以配合 口工作,分别用来产生 口的输出控制信号和输入 口的端口状态信号。 针对电扇控制的特点 , 设置 8255的工作方式如下 : 8255的 0作方式为 0,输出; B 口接数码管的 A、 B、 C、 D、 E、 F、 G 和使数码管显示 电扇的类型,工作方式 0,输出; C 口低四位接键盘及数码管显示单元的 作方式 0,输入,用来接受键盘的输入信号 。 8255的 位 在本系统中 没有用到。 综上分析:初始化控制字为 10000001B。 2. D/家用电扇控制与驱动电路设计 报告 6 图 3 D/此次用 D/要是为了实现通过 现对电扇的控制。故 系统总线的 接电机驱动电路的 A 端。 3. 图 4 本次设计中,只用到 2别表示三个风速和三个状态。在接线时,我们将 8255 的 0相应的位输出为 1时,对应的 0 时,则灭。 4. 键盘及数码管显示单元 家用电扇控制与驱动电路设计 报告 7 图 5 键盘及数码管电路 本次设计,我们用到了第一个数码管来显示电扇转动的类型, 0#、 4#和 8#键来控制风扇的状态。根据设计要求,将 地, 255的 口,用来输入信号。 255的 制数码管的显示。 5. 驱动电路及直流电机单元 图 6 驱动电路及直流电机 本次设计中,将驱动芯片的 +12V 与直流电机1端相连, A端与 2相连,其余 悬空。 家用电扇控制与驱动电路设计 报告 8 六 、硬件电路原理图 及分析 图 7 电扇控制硬件原理图 上图为用 件绘制的硬件电路图 :该图涉及到系统总线、可编程外围接口芯片 8255、键盘及数码管显示单元和 直流 电机及其驱动电路 。 1. 硬件接线及分析 设置 8255 的工作方式如下 : 8255 的 A 口接 示单元的 作方式为 0,输出; 、 B、 C、 D、 E、 F、 P,以使数码管显示 电扇的类型,工作方式 0,输出; 显示单元的 作方式 0,输入,用来接受键盘的输入信号 。 8255的 位 在本系统中没有用到。 D/要是为了实现通过 现对电扇的控制。故 系统总线的 接电机驱动电路的 本次设计中,只用到 别表示三个风速和三个状态。在接线时,我们将 8255的 0相应的位输出为 1时,对应的 0时,则灭 我们用到了第一个数码管来显示电扇转动的家用电扇控制与驱动电路设计 报告 9 类型, 0#、 4#和 8#键来控 制风扇的状态。根据设计要求,将 255的 口,用来输入信号。 次接 8255的 制数码管的显示。本次设计中,将驱动芯片的 +12V 与直流电机 1端相连, A端与 2相连,其余悬空。其他读写及总线端口与实验箱总线系统的相应接口连接。 本设计通过软件编程 使 8255的 再通过 出命令由 8255 的 A 口 和 B 口 输出信号来 分别 控制 及数码管来显示电扇的状态 。 再通过对 出矩形波的占 空比的控制来调节风速,而停转时间则由软件延时来实现。 控制系统分四个功能模块,分别是风速设置、类型设置、默认状态运行、退出系统 。 提供 了三个按键来进行控制,并在屏幕上实时显示状态。 ( 1)风速设置 风速即为电机转速设置,风速分为强、中、弱三种,对应不同的电机 转 速。根据给 出的占空比来调节 ,我们可以计算出步进电机各相脉宽信号的频率和电机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。 具体设置 占空比 见表 1。 表 1 风速 输出 00H(延迟常数) 输出 0迟常数) 占空比 慢 200 100 1/3 中 100 100 1/2 快 50 100 2/3 ( 2) 风的类型设置 风的类型有:正常、自然、睡眠三种。 风的类型的不同选择,用 a) 正常 电扇连续运转。 b) 自然 电扇模拟自然风,即转 4s,停 8s。 c) 睡眠 电扇慢转,产生轻柔的微风,运转 8s,停转 8s。 电机的运转是 出为 0时,电机停转。本次设计通过软件延时来控制电机停转的时间,从而改变电扇运行的类型 。 家用电扇控制与驱动电路设计 报告 10 七 、典型程序模块 及分析 ) 首先,检测小键盘的 1#键是否有输入,若无输入就循环检测小键盘。当有小键盘的 1#键有输入时,就赋给 和 ,并进入 风速和类型子程序)。 本次程序设计的控制风扇的功能,主要在风速和类型子程序 )中实现。 ) 此子函数主要 任务:当程序在风速和类型子程序 )运行时,实时的对小键盘进行检测,从而修改两个标志位, 再返回风速和类型子程序 )的相应循环体运行。 程序 ) 此函数主要完成 ,当程序在风扇运行时,使 时的延时,即控制矩形波的占空比。 子程序 ) 此函数 主要 完成 :当程序在风扇类型为自然或睡眠时,实现停转 4s 或 8了很好的具有键盘实时响应的功能,我们在此延迟程序中,调用了键盘检测的子程序,具有良好 的实时性。 ) 此程序是本次程序设计的重点和难点。我们用了两个标志 分别标志风扇运行的风速和类型。为了使程序具有良好的可读性,我们采用了两重 有 9个循环体。 家用电扇控制与驱动电路设计 报告 11 ) ) 针对风扇运行的九个状态,我们编写了九个状态屏幕显示的子程序,并用清屏函数实时刷新。 八 、 典型编程技巧分析 本次设计由于采用了较少的芯片和软件延迟方式,对程序的设计具有较高 的要求。在整个程序设计中有以下几大亮点和编程技巧: 应用,很好的解决了风扇类型和风速的嵌套调用关系,使程序更加明了且思路清晰。 写了 不带键盘检测的延时 子程序 )和 带键盘检测的延 时子程序 )两个子程序。增强了风扇的实时响应能力和延迟时间的精确性。 用了 句,简化了编程,使之更加具有条理性。 九 、 课程设计中遇到的问题及解决方法 这种情 况出现在电机的加速、减速和改变转向中,这主要是在原有的 键盘检测子 程序中有一段判断按键是否弹起的程序,将此段换成一个合适的软件延时便可以起到很好的效果(按键不松时可以连续的加速和减速)。 2. 程序调试应遵循的步骤 查看各端口地址是否正确; 根据程序运行中的出现的现象分析出程序出错的位置; 在 使程序有少到多有简单到复杂逐一验证其的正确性,以排除错误。 家用电扇控制与驱动电路设计 报告 12 示问题 调用了数码管显示程序而却看不到数码管有示数,这主要是调用数码管显示子函数的频率不够 高,可以把数码管显示子函数换个位置,或者是多调用几次就可以解决了。至于数码管好像是全亮,情况正好相反,是数码管显示子函数调用的频率过高,把数码管显示子函数换个位置,或者是在关键位置调用一下延时函数就可以解决了。 死机 出现死机的原因很难说得清楚,有的是同一个程序换台机子运行就会死机,有的是同一台机子同一个程序运行多次就会死机,不过总的来看死机的出现多少是和所编写的程序有关,记得我以前用小键盘时就是很容易就死机了,不过在这次的课程设计中 我把所有的和小键盘有关的程序都用了子函数代替,大大简化了主程序的结构,这样就基本再也没发生过死机现象了。 十、 实验程序的流程图 1、主程序流程图 ) 家用电扇控制与驱动电路设计 报告 13 2、风速 类型子函数流程图 ) 3、键盘检测子函数 ) 家用电扇控制与驱动电路设计 报告 14 十一 、 程 序清单及程序注释 1. C 语言程序 /使用芯片: 08328255 /风扇控制 # /不带键盘检测的延时模块 /带键盘检测的延时模块 /*根据查看配置信息修改下列符号值 * # 0 0* # 0 # 0 # 0 # 0 /* # 0 ,; ; f; 家用电扇控制与驱动电路设计 报告 15 n); ) f= f=f&0if(f!=0f) ; ); /*风速模式 * f,a,b; f; f) /* 则设置风速为弱,占空比 1/3* : /t); /屏幕以及指示灯提示风速 f=1) :; b=1; a=0;ab;a+) /,正常模式 0 0家用电扇控制与驱动电路设计 报告 16 :; b=0a=0;a(b/0a+) /,自然模式 0 0 if(2|f!=1) if(2|f!=1) b, :; b=0a=0;a(b/0a+) /,睡眠模式 0 家用电扇控制与驱动电路设计 报告 17 0 if(3) /小键盘有输入,跳出 环 ; if(f!=1) if(3|f!=1) b, if(3) ; f; /* /* 则风速为中,占空比为 1/2* : /t); /屏幕以及指示灯提示风速 f=2) :; 家用电扇控制与驱动电路设计 报告 18 b=1; a=0;ab;a+) /,正常模式 0 0 :; b=0a=0;a(b/0a+) /,自然模式 0 0 if(2|f!=2) if(2|f!=2) b, :; b=0a=0;a(b/0a+) /,睡眠模式 0家用电扇控制与驱动电路设计 报告 19 0 if(3) /小键盘有输入,跳出 环 ; if(f!=2) if(3|f!=2) b, if(3) ; f; /* /* 则风速为强,占空比为 2/3* : /t); /屏幕以及指示灯提示风速 f=3) :; 家用电扇控制与驱动电路设计 报告 20 b=1; a=0;ab;a+) /,正常模式 0 0 :; b=0a=0;a(b/0a+) /,自然模式 0 0 if(2|f!=3) if(2|f!=3) b, :; b=0a=0;a(b/0a+) /,睡眠模式 0 家用电扇控制与驱动电路设计 报告 21 0 if(3) ; if(f!=3) if(3|f!=3) b, if(3) ; if(f!=3) ; /* /*小键盘检测 * ; C= C=C&0!=0 C= 家用电扇控制与驱动电路设计 报告 22 C=C&0) *+;*+;(*+; /* /*不带小键盘检测的延时 * i; j; i=0;i=i+) j=0;j=0j+) /* /*带小键盘检测的延时 * i; j; f,f=(* * i=0;i=i+) j=0;j=0j+) *=f|(*= 家用电扇控制与驱动电路设计 报告 23 /*屏幕显示子函数 * 0,2); *); 0,4); * ); ; 0,6); * ); ; 0,2); *); 0,4); * ); ; 0,6); * ); ; 0,2); *); 0,4); * ); ; 0,6); * ); ; 0,2); 家用电扇控制与驱动电路设计 报告 24 *); 0,4); * ); ; 0,6); * ); ; 0,2); *); 0,4); * ); ; 0,6); * ); ; 0,2); *); 0,4); * ); ; 0,6); * ); ; 0,2); *); 0,4); * ); ; 0,6); * ); ; 家用电扇控制与驱动电路设计 报告 25 0,2); *); 0,4); * ); ; 0,6); * ); ; 0,2); *); 0,4); * ); ; 0,6); * ); ; 2. 汇编语言程序 ( 1)用小键盘输入信号、无数码管显示 ;*根据 置信息修改下列符号值 * 0 ;片选 应的端口始地址 ;* 0H*4 ;8255 的 A 口地址 1H*4 ;8255 的 B 口地址 2H*4 ;8255 的 C 口地址 3H*4 ;8255 的控制寄存器地 址 0 ;端口地址 ;堆栈段定义 256 ) 家用电扇控制与驱动电路设计 报告 26 1H 1H 0H 0H 36H,56H,67H,77H,79H,59H,71H O T!,0 ,0 ,0 ;定义字符串 0$ S: X ;显示字符串 21H X ;定义 8255 工作方式 1H ;工作方式 0, A 口和 B 口为输出 , L ;写 A 口发出的起始数据 0H L ;写 口起始数据 0H L ;写 B 口发出的起始数据 0H L 家用电扇控制与驱动电路设计 报告 27 ;按 1 键则进入起始工作状态 ,否则等待重新按键 21H 1H H H H H 1: ;返回到 21H L L 时一秒 家用电扇控制与驱动电路设计 报告 28 0H L 1: L 时一秒 家用电扇控制与驱动电路设计 报告 29 0H L 3: 家用电扇控制与驱动电路设计 报告 30 1: H H,02H 6H L,1 L,2 L,3 1: L,L H,0H L,3H L H H 2: L,家用电扇控制与驱动电路设计 报告 31 L H,0H L,3H L H H 4 H ;软件延时子程序 1: 2: ;显示键值子程序 X X X,L,0X,L,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!